[MERGE] merge with latest trunk

bzr revid: amb@tinyerp.com-20130717051958-qpl3u5aoo15au5c2
This commit is contained in:
Amit Bhavsar (Open ERP) 2013-07-17 10:49:58 +05:30
commit 9ce89b12a9
31 changed files with 2503 additions and 633 deletions

View File

@ -17,7 +17,7 @@ By far the most beautiful and full featured accounting software. OpenERP Account
Activate features on demand, from integrated analytic accounting to budget, assets and multiple companies consolidation. Activate features on demand, from integrated analytic accounting to budget, assets and multiple companies consolidation.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=account" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@
automatically based on your activities. automatically based on your activities.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=account_voucher" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@
Manage your sales funnel with no effort. Attract leads, follow-up on phone calls and meetings. Analyse the quality of your leads to make informed decisions and save time by integrating emails directly into the application. Manage your sales funnel with no effort. Attract leads, follow-up on phone calls and meetings. Analyse the quality of your leads to make informed decisions and save time by integrating emails directly into the application.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=crm" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@ Get all your HR operations managed easily: knowledge sharing, recruitments, appr
Each need is provided by a specific app that you activate on demand. Each need is provided by a specific app that you activate on demand.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=hr" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -101,17 +101,19 @@ class LongPollingController(http.Controller):
raise Exception("Not usable in a server not running gevent") raise Exception("Not usable in a server not running gevent")
from openerp.addons.im.watcher import ImWatcher from openerp.addons.im.watcher import ImWatcher
if db is not None: if db is not None:
request.session.authenticate(db=db, uid=uid, password=password) openerp.service.security.check(db, uid, password)
else: else:
request.session.authenticate(db=request.session._db, uid=request.session._uid, password=request.session._password) uid = request.session.uid
db = request.session.db
with request.registry.cursor() as cr: registry = openerp.modules.registry.RegistryManager.get(db)
request.registry.get('im.user').im_connect(cr, request.uid, uuid=uuid, context=request.context) with registry.cursor() as cr:
my_id = request.registry.get('im.user').get_by_user_id(cr, request.uid, uuid or request.session._uid, request.context)["id"] registry.get('im.user').im_connect(cr, uid, uuid=uuid, context=request.context)
my_id = registry.get('im.user').get_by_user_id(cr, uid, uuid or uid, request.context)["id"]
num = 0 num = 0
while True: while True:
with request.registry.cursor() as cr: with registry.cursor() as cr:
res = request.registry.get('im.message').get_messages(cr, request.uid, last, users_watch, uuid=uuid, context=request.context) res = registry.get('im.message').get_messages(cr, uid, last, users_watch, uuid=uuid, context=request.context)
if num >= 1 or len(res["res"]) > 0: if num >= 1 or len(res["res"]) > 0:
return res return res
last = res["last"] last = res["last"]

View File

@ -37,36 +37,45 @@ env.filters["json"] = json.dumps
class LiveChatController(http.Controller): class LiveChatController(http.Controller):
@http.route('/im_livechat/loader') def _auth(self, db):
reg = openerp.modules.registry.RegistryManager.get(db)
uid = openerp.netsvc.dispatch_rpc('common', 'authenticate', [db, "anonymous", "anonymous", None])
return reg, uid
@http.route('/im_livechat/loader', auth="none")
def loader(self, **kwargs): def loader(self, **kwargs):
p = json.loads(kwargs["p"]) p = json.loads(kwargs["p"])
db = p["db"] db = p["db"]
channel = p["channel"] channel = p["channel"]
user_name = p.get("user_name", None) user_name = p.get("user_name", None)
request.session.authenticate(db=db, login="anonymous", password="anonymous")
info = request.session.model('im_livechat.channel').get_info_for_chat_src(channel)
info["db"] = db
info["channel"] = channel
info["userName"] = user_name
return request.make_response(env.get_template("loader.js").render(info),
headers=[('Content-Type', "text/javascript")])
@http.route('/im_livechat/web_page') reg, uid = self._auth(db)
with reg.cursor() as cr:
info = reg.get('im_livechat.channel').get_info_for_chat_src(cr, uid, channel)
info["db"] = db
info["channel"] = channel
info["userName"] = user_name
return request.make_response(env.get_template("loader.js").render(info),
headers=[('Content-Type', "text/javascript")])
@http.route('/im_livechat/web_page', auth="none")
def web_page(self, **kwargs): def web_page(self, **kwargs):
p = json.loads(kwargs["p"]) p = json.loads(kwargs["p"])
db = p["db"] db = p["db"]
channel = p["channel"] channel = p["channel"]
request.session.authenticate(db=db, login="anonymous", password="anonymous") reg, uid = self._auth(db)
script = request.session.model('im_livechat.channel').read(channel, ["script"])["script"] with reg.cursor() as cr:
info = request.session.model('im_livechat.channel').get_info_for_chat_src(channel) script = reg.get('im_livechat.channel').read(cr, uid, channel, ["script"])["script"]
info["script"] = script info = reg.get('im_livechat.channel').get_info_for_chat_src(cr, uid, channel)
return request.make_response(env.get_template("web_page.html").render(info), info["script"] = script
headers=[('Content-Type', "text/html")]) return request.make_response(env.get_template("web_page.html").render(info),
headers=[('Content-Type', "text/html")])
@http.route('/im_livechat/available', type='json') @http.route('/im_livechat/available', type='json', auth="none")
def available(self, db, channel): def available(self, db, channel):
request.session.authenticate(db=db, login="anonymous", password="anonymous") reg, uid = self._auth(db)
return request.session.model('im_livechat.channel').get_available_user(channel) > 0 with reg.cursor() as cr:
return reg.get('im_livechat.channel').get_available_user(cr, uid, channel) > 0
class im_livechat_channel(osv.osv): class im_livechat_channel(osv.osv):
_name = 'im_livechat.channel' _name = 'im_livechat.channel'

View File

@ -135,11 +135,47 @@
<record model="account.account.template" id="a189"> <record model="account.account.template" id="a189">
<field name="name">Tax Receivable</field> <field name="name">Tax Receivable</field>
<field name="code">189</field> <field name="code">189</field>
<field name="type">other</field> <field name="type">view</field>
<field name="user_type" ref="account.data_account_type_asset"/> <field name="user_type" ref="account.data_account_type_asset"/>
<field name="reconcile" eval="False"/>
<field name="parent_id" ref="a10"/> <field name="parent_id" ref="a10"/>
</record> </record>
<record model="account.account.template" id="a189100">
<field name="name">Purchase Tax Receivable</field>
<field name="code">189100</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="reconcile" eval="True"/>
<field name="parent_id" ref="a189"/>
</record>
<record model="account.account.template" id="a189200">
<field name="name">VAT Receivable</field>
<field name="code">189200</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="reconcile" eval="True"/>
<field name="parent_id" ref="a189"/>
</record>
<record model="account.account.template" id="a189300">
<field name="name">Service Tax Receivable</field>
<field name="code">189300</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="reconcile" eval="True"/>
<field name="parent_id" ref="a189"/>
</record>
<record model="account.account.template" id="a189400">
<field name="name">Exice Duty Receivable</field>
<field name="code">189400</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="reconcile" eval="True"/>
<field name="parent_id" ref="a189"/>
</record>
<!-- Liabilities --> <!-- Liabilities -->
<record model="account.account.template" id="a20"> <record model="account.account.template" id="a20">

View File

@ -2,269 +2,403 @@
<openerp> <openerp>
<data noupdate="1"> <data noupdate="1">
<!-- Taxes Sale Tax --> <!-- Taxes Sale Tax -->
<record id="sales_private" model="account.tax.template"> <record id="sales_private" model="account.tax.template">
<field name="name">Sale Tax-15%</field> <field name="name">Sales Tax 15%</field>
<field name="price_include" eval="0"/> <field name="description">Sales Tax 15%</field>
<field name="amount">0.15</field> <field name="amount">0.15</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">sale</field> <field name="type_tax_use">sale</field>
<field name="account_collected_id" ref="a2161"/> <field name="account_collected_id" ref="a2161"/>
<field name="account_paid_id" ref="a2161"/> <field name="account_paid_id" ref="a2161"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_base_tax_sale15"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="tax_code_id" ref="vat_code_rec_sale15"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_base_code_id" ref="vat_code_base_tax_sale15"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="child_depend" eval="0"/> <field name="ref_tax_code_id" ref="vat_code_rec_sale15"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="sales_private_main" model="account.tax.template"> <record id="sales_private_main" model="account.tax.template">
<field name="name">Sale Tax-12%</field> <field name="name">Sales Tax 12%</field>
<field name="price_include" eval="0"/> <field name="description">Sales Tax 12%</field>
<field name="amount">0.12</field> <field name="amount">0.12</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">sale</field> <field name="type_tax_use">sale</field>
<field name="account_collected_id" ref="a2161"/> <field name="account_collected_id" ref="a2161"/>
<field name="account_paid_id" ref="a2161"/> <field name="account_paid_id" ref="a2161"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_base_tax_sale12"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="tax_code_id" ref="vat_code_rec_sale12"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_base_code_id" ref="vat_code_base_tax_sale12"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="child_depend" eval="0"/> <field name="ref_tax_code_id" ref="vat_code_rec_sale12"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="sales_private_main_4" model="account.tax.template"> <record id="sales_private_main_4" model="account.tax.template">
<field name="name">Sale Tax-4%</field> <field name="name">Sales Tax 4%</field>
<field name="price_include" eval="0"/> <field name="description">Sales Tax 4%</field>
<field name="amount">0.04</field> <field name="amount">0.04</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">sale</field> <field name="type_tax_use">sale</field>
<field name="account_collected_id" ref="a2161"/> <field name="account_collected_id" ref="a2161"/>
<field name="account_paid_id" ref="a2161"/> <field name="account_paid_id" ref="a2161"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_base_tax_sale4"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="tax_code_id" ref="vat_code_rec_sale4"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_base_code_id" ref="vat_code_base_tax_sale4"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="child_depend" eval="0"/> <field name="ref_tax_code_id" ref="vat_code_rec_sale4"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<!-- Purchase tax --> <!-- Purchase tax -->
<record id="purchase_tax_private" model="account.tax.template"> <record id="purchase_tax_private" model="account.tax.template">
<field name="name">Purchase Tax-15%</field> <field name="name">Purchase Tax 15%</field>
<field name="description">Purchase Tax 15%</field>
<field name="account_collected_id" ref="a189"/> <field name="account_collected_id" ref="a189"/>
<field name="account_paid_id" ref="a189"/> <field name="account_paid_id" ref="a189"/>
<field name="price_include" eval="0"/>
<field name="amount">0.15</field> <field name="amount">0.15</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">purchase</field> <field name="type_tax_use">purchase</field>
<field name="base_code_id" ref="vat_code_base_tax_purchase"/> <field name="base_code_id" ref="vat_code_base_tax_pur15"/>
<field name="tax_code_id" ref="vat_code_payable"/> <field name="tax_code_id" ref="vat_code_pay_pur4"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_purchase"/> <field name="ref_base_code_id" ref="vat_code_base_tax_pur15"/>
<field name="ref_tax_code_id" ref="vat_code_payable"/> <field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_pay_pur4"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<!-- vat --> <!-- vat -->
<record id="vat_private_main" model="account.tax.template"> <record id="vat_private_out_vat5" model="account.tax.template">
<field name="name">VAT-5%(4% VAT+1% Add. Tax.)</field> <field name="name">Output VAT 5% (VAT 4% + Add. VAT 1%)</field>
<field name="price_include" eval="0"/> <field name="description">Output VAT 5%</field>
<field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.04</field>
<field name="account_collected_id" ref="a2162"/>
<field name="account_paid_id" ref="a2162"/>
<field name="base_code_id" ref="vat_code_tax_sal_vat5"/>
<field name="tax_code_id" ref="vat_code_tax_rec_vat5"/>
<field name="ref_base_code_id" ref="vat_code_tax_sal_vat5"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec_vat5"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="vat_private_in_vat5" model="account.tax.template">
<field name="name">Input VAT 5% (VAT 4% + Add. VAT 1%)</field>
<field name="description">Input VAT 5%</field>
<field name="amount">0.05</field> <field name="amount">0.05</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">all</field> <field name="type_tax_use">purchase</field>
<field name="account_collected_id" ref="a2162"/> <field name="account_collected_id" ref="a189200"/>
<field name="account_paid_id" ref="a2162"/> <field name="account_paid_id" ref="a189200"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_pur_vat5"/>
<field name="base_sign">1</field> <field name="tax_code_id" ref="vat_code_tax_pay_vat5"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_code_id" ref="vat_code_tax_pur_vat5"/>
<field name="tax_sign">1</field> <field name="ref_base_sign" eval="-1"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_code_id" ref="vat_code_tax_pay_vat5"/>
<field name="ref_base_sign">1</field> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/>
<field name="ref_tax_sign">1</field>
<field name="child_depend" eval="0"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="vat_private_main_tax" model="account.tax.template"> <record id="vat_private_in_vat15" model="account.tax.template">
<field name="name">VAT-15%(12.5% VAT+2.5% Add. Tax.)</field> <field name="name">Input VAT 15% (VAT 12.5% + Add. VAT 2.5%)</field>
<field name="price_include" eval="0"/> <field name="description">Input VAT 15%</field>
<field name="amount">0.15</field> <field name="amount">0.15</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">all</field> <field name="type_tax_use">purchase</field>
<field name="account_collected_id" ref="a2162"/> <field name="account_collected_id" ref="a189200"/>
<field name="account_paid_id" ref="a2162"/> <field name="account_paid_id" ref="a189200"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_pur_vat15"/>
<field name="base_sign">1</field> <field name="tax_code_id" ref="vat_code_tax_pay_vat15"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_code_id" ref="vat_code_tax_pur_vat15"/>
<field name="tax_sign">1</field> <field name="ref_base_sign" eval="-1"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_code_id" ref="vat_code_tax_pay_vat15"/>
<field name="ref_base_sign">1</field> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/>
<field name="ref_tax_sign">1</field>
<field name="child_depend" eval="0"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="vat_private_tax" model="account.tax.template"> <record id="vat_private_out_vat15" model="account.tax.template">
<field name="name">VAT-8%</field> <field name="name">Output VAT 15% (VAT 12.5% + Add. VAT 2.5%)</field>
<field name="price_include" eval="0"/> <field name="description">Output VAT 15%</field>
<field name="amount">0.15</field>
<field name="type">percent</field>
<field name="type_tax_use">sale</field>
<field name="account_collected_id" ref="a2162"/>
<field name="account_paid_id" ref="a2162"/>
<field name="base_code_id" ref="vat_code_tax_sal_vat15"/>
<field name="tax_code_id" ref="vat_code_tax_rec_vat15"/>
<field name="ref_base_code_id" ref="vat_code_tax_sal_vat15"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec_vat15"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="vat_private_in_vat8" model="account.tax.template">
<field name="name">Input VAT 8%</field>
<field name="description">Input VAT 8%</field>
<field name="amount">0.08</field> <field name="amount">0.08</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">all</field> <field name="type_tax_use">purchase</field>
<field name="account_collected_id" ref="a2162"/> <field name="account_collected_id" ref="a189200"/>
<field name="account_paid_id" ref="a2162"/> <field name="account_paid_id" ref="a189200"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_pur_vat8"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="tax_code_id" ref="vat_code_tax_pay_vat8"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_base_code_id" ref="vat_code_tax_pur_vat8"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="child_depend" eval="0"/> <field name="ref_tax_code_id" ref="vat_code_tax_pay_vat8"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="vat_private_tax_10" model="account.tax.template"> <record id="vat_private_out_vat8" model="account.tax.template">
<field name="name">VAT-10%</field> <field name="name">Output VAT 8%</field>
<field name="price_include" eval="0"/> <field name="description">Output VAT 8%</field>
<field name="amount">0.08</field>
<field name="type">percent</field>
<field name="type_tax_use">sale</field>
<field name="account_collected_id" ref="a2162"/>
<field name="account_paid_id" ref="a2162"/>
<field name="base_code_id" ref="vat_code_tax_sal_vat8"/>
<field name="tax_code_id" ref="vat_code_tax_rec_vat8"/>
<field name="ref_base_code_id" ref="vat_code_tax_sal_vat8"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec_vat8"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="vat_private_in_vat10" model="account.tax.template">
<field name="name">Input VAT 10%</field>
<field name="description">Input VAT 10%</field>
<field name="amount">0.10</field> <field name="amount">0.10</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">all</field> <field name="type_tax_use">purchase</field>
<field name="account_collected_id" ref="a2162"/> <field name="account_collected_id" ref="a189200"/>
<field name="account_paid_id" ref="a2162"/> <field name="account_paid_id" ref="a189200"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_pur_vat10"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="tax_code_id" ref="vat_code_tax_pay_vat10"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_base_code_id" ref="vat_code_tax_pur_vat10"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="child_depend" eval="0"/> <field name="ref_tax_code_id" ref="vat_code_tax_pay_vat10"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="vat_private_tax_12" model="account.tax.template"> <record id="vat_private_out_vat10" model="account.tax.template">
<field name="name">VAT-12.5%</field> <field name="name">Output VAT 10%</field>
<field name="price_include" eval="0"/> <field name="description">Output VAT 10%</field>
<field name="amount">12.5</field>
<field name="type">percent</field>
<field name="type_tax_use">all</field>
<field name="account_collected_id" ref="a2162"/>
<field name="account_paid_id" ref="a2162"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/>
<field name="child_depend" eval="0"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<!-- Exice Duty -->
<record id="exice_duty_private_main" model="account.tax.template">
<field name="name">Excise Duty-10.30%</field>
<field name="include_base_amount" eval="True"/>
<field name="amount">0.10</field> <field name="amount">0.10</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">sale</field> <field name="type_tax_use">sale</field>
<field name="account_collected_id" ref="a2164"/> <field name="account_collected_id" ref="a2162"/>
<field name="account_paid_id" ref="a2164"/> <field name="account_paid_id" ref="a2162"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_sal_vat10"/>
<field name="base_sign">1</field> <field name="tax_code_id" ref="vat_code_tax_rec_vat10"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_code_id" ref="vat_code_tax_sal_vat10"/>
<field name="tax_sign">1</field> <field name="ref_base_sign" eval="-1"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_code_id" ref="vat_code_tax_rec_vat10"/>
<field name="ref_base_sign">1</field> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/>
<field name="ref_tax_sign">1</field>
<field name="child_depend" eval="0"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="exice_private_duty_parent" model="account.tax.template"> <record id="vat_private_in_vat12" model="account.tax.template">
<field name="name">Excise Duty-2%</field> <field name="name">Input VAT 12.5%</field>
<field name="amount">0.02</field> <field name="description">Input VAT 12.5%</field>
<field name="amount">0.125</field>
<field name="type">percent</field>
<field name="type_tax_use">purchase</field>
<field name="account_collected_id" ref="a189200"/>
<field name="account_paid_id" ref="a189200"/>
<field name="base_code_id" ref="vat_code_tax_pur_vat12"/>
<field name="tax_code_id" ref="vat_code_tax_pay_vat12"/>
<field name="ref_base_code_id" ref="vat_code_tax_pur_vat12"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_pay_vat12"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="vat_private_out_vat12" model="account.tax.template">
<field name="name">Output VAT 12.5%</field>
<field name="description">Output VAT 12.5%</field>
<field name="amount">0.125</field>
<field name="type">percent</field> <field name="type">percent</field>
<field name="type_tax_use">sale</field> <field name="type_tax_use">sale</field>
<field name="parent_id" ref="exice_duty_private_main"/> <field name="account_collected_id" ref="a2162"/>
<field name="account_collected_id" ref="a2164"/> <field name="account_paid_id" ref="a2162"/>
<field name="account_paid_id" ref="a2164"/> <field name="base_code_id" ref="vat_code_tax_sal_vat12"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="tax_code_id" ref="vat_code_tax_rec_vat12"/>
<field name="base_sign">1</field> <field name="ref_base_code_id" ref="vat_code_tax_sal_vat12"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="tax_sign">1</field> <field name="ref_tax_code_id" ref="vat_code_tax_rec_vat12"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_base_sign">1</field>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/>
<field name="ref_tax_sign">1</field>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="exice_private_duty" model="account.tax.template"> <!-- Exice Duty -->
<field name="name">Excise Duty-1%</field>
<field name="amount">0.01</field> <record id="exice_duty_private_sale12" model="account.tax.template">
<field name="type">percent</field> <field name="name">Excise Duty 12% - Sales</field>
<field name="description">Excise Duty 12% - Sales</field>
<field name="type_tax_use">sale</field> <field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.1200</field>
<field name="account_collected_id" ref="a2164"/> <field name="account_collected_id" ref="a2164"/>
<field name="account_paid_id" ref="a2164"/> <field name="account_paid_id" ref="a2164"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_sales_excise"/>
<field name="base_sign">1</field> <field name="tax_code_id" ref="vat_code_tax_rec_exice12"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_code_id" ref="vat_code_tax_sales_excise"/>
<field name="tax_sign">1</field> <field name="ref_base_sign" eval="-1"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_code_id" ref="vat_code_tax_rec_exice12"/>
<field name="ref_base_sign">1</field> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/>
<field name="ref_tax_sign">1</field>
<field name="parent_id" ref="exice_duty_private_main"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="exice_duty_private_sale2" model="account.tax.template">
<field name="name">Excise Duty 2% - Sales</field>
<field name="description">Excise Duty 2% - Sales</field>
<field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.020</field>
<field name="account_collected_id" ref="a2164"/>
<field name="account_paid_id" ref="a2164"/>
<field name="base_code_id" ref="vat_code_tax_sales_excise"/>
<field name="tax_code_id" ref="vat_code_tax_rec_exice2"/>
<field name="ref_base_code_id" ref="vat_code_tax_sales_excise"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec_exice2"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="exice_duty_private_sale1" model="account.tax.template">
<field name="name">Output Excise Duty 1%</field>
<field name="description">Output Excise Duty 1%</field>
<field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.0100</field>
<field name="account_collected_id" ref="a2164"/>
<field name="account_paid_id" ref="a2164"/>
<field name="base_code_id" ref="vat_code_tax_sales_excise"/>
<field name="tax_code_id" ref="vat_code_tax_rec_exice1"/>
<field name="ref_base_code_id" ref="vat_code_tax_sales_excise"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec_exice1"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<!-- Service Tax --> <!-- Service Tax -->
<record id="service_private_main" model="account.tax.template"> <record id="service_private_ser12_sale" model="account.tax.template">
<field name="type_tax_use">all</field> <field name="name">Output Service Tax 12%</field>
<field name="name">Service Tax-12.30%</field> <field name="description">Output Service Tax 12%</field>
<field name="include_base_amount" eval="True"/> <field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.12</field> <field name="amount">0.12</field>
<field name="type">percent</field> <field name="sequence">1</field>
<field name="account_collected_id" ref="a2163"/> <field name="account_collected_id" ref="a2163"/>
<field name="account_paid_id" ref="a2163"/> <field name="account_paid_id" ref="a2163"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="base_code_id" ref="vat_code_tax_sale_ser12"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="tax_code_id" ref="vat_code_tax_rec_st12"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_base_code_id" ref="vat_code_tax_sale_ser12"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_base_sign" eval="-1"/>
<field name="child_depend" eval="0"/> <field name="ref_tax_code_id" ref="vat_code_tax_rec_st12"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="service_private_tax_parent" model="account.tax.template"> <record id="service_private_ser2_sale" model="account.tax.template">
<field name="name">Service Tax-%2</field> <field name="name">Output Sales Service Tax 2%</field>
<field name="description">Output Sales Service Tax 2%</field>
<field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.02</field> <field name="amount">0.02</field>
<field name="type">percent</field> <field name="sequence">3</field>
<field name="type_tax_use">all</field>
<field name="account_collected_id" ref="a2163"/> <field name="account_collected_id" ref="a2163"/>
<field name="account_paid_id" ref="a2163"/> <field name="account_paid_id" ref="a2163"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="tax_code_id" ref="vat_code_tax_rec_st2"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_tax_code_id" ref="vat_code_tax_rec_st2"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="parent_id" ref="service_private_ser12_sale"/>
<field name="parent_id" ref="service_private_main"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="service_private_tax" model="account.tax.template"> <record id="service_private_ser1_sale" model="account.tax.template">
<field name="name">Service Tax-%1</field> <field name="name">Output Service Tax 1%</field>
<field name="description">Output Service Tax 1%</field>
<field name="type_tax_use">sale</field>
<field name="type">percent</field>
<field name="amount">0.01</field> <field name="amount">0.01</field>
<field name="type">percent</field> <field name="sequence">5</field>
<field name="type_tax_use">all</field>
<field name="account_collected_id" ref="a2163"/> <field name="account_collected_id" ref="a2163"/>
<field name="account_paid_id" ref="a2163"/> <field name="account_paid_id" ref="a2163"/>
<field name="base_code_id" ref="vat_code_base_tax_sale"/> <field name="tax_code_id" ref="vat_code_tax_rec_st1"/>
<field name="tax_code_id" ref="vat_code_tax_rec"/> <field name="ref_tax_code_id" ref="vat_code_tax_rec_st1"/>
<field name="ref_base_code_id" ref="vat_code_base_tax_sale"/> <field name="ref_tax_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_rec"/> <field name="parent_id" ref="service_private_ser12_sale"/>
<field name="parent_id" ref="service_private_main"/>
<field name="chart_template_id" ref="indian_chart_template_private"/> <field name="chart_template_id" ref="indian_chart_template_private"/>
</record> </record>
<record id="service_private_ser12_purchase" model="account.tax.template">
<field name="name">Input Service Tax 12%</field>
<field name="description">Input Service Tax 12%</field>
<field name="type_tax_use">purchase</field>
<field name="type">percent</field>
<field name="amount">0.1200</field>
<field name="sequence">1</field>
<field name="account_collected_id" ref="a189300"/>
<field name="account_paid_id" ref="a189300"/>
<field name="base_code_id" ref="vat_code_tax_pur_ser12"/>
<field name="tax_code_id" ref="vat_code_tax_pay_ic_st"/>
<field name="ref_base_code_id" ref="vat_code_tax_pur_ser12"/>
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="vat_code_tax_pay_ic_st"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="service_private_ser2_purchase" model="account.tax.template">
<field name="name">Input Service Tax Edu. Cess. 2%</field>
<field name="description">Input Service Tax Edu. Cess. 2%</field>
<field name="type_tax_use">purchase</field>
<field name="type">percent</field>
<field name="amount">0.0200</field>
<field name="sequence">3</field>
<field name="account_collected_id" ref="a189300"/>
<field name="account_paid_id" ref="a189300"/>
<field name="tax_code_id" ref="vat_code_tax_pay_ic_edu_cess"/>
<field name="ref_tax_code_id" ref="vat_code_tax_pur_PCST5"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="parent_id" ref="service_private_ser12_purchase"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
<record id="service_private_ser1_purchase" model="account.tax.template">
<field name="name">Input Service Tax Seco. &amp; HEC 1%</field>
<field name="description">Input Service Tax Seco. &amp; HEC 1%</field>
<field name="type_tax_use">purchase</field>
<field name="type">percent</field>
<field name="amount">0.0100</field>
<field name="sequence">5</field>
<field name="account_collected_id" ref="a189300"/>
<field name="account_paid_id" ref="a189300"/>
<field name="tax_code_id" ref="vat_code_tax_pay_ic_seco_hec"/>
<field name="ref_tax_code_id" ref="vat_code_tax_pay_ic_seco_hec"/>
<field name="ref_tax_sign" eval="-1"/>
<field name="parent_id" ref="service_private_ser12_purchase"/>
<field name="chart_template_id" ref="indian_chart_template_private"/>
</record>
</data> </data>
</openerp> </openerp>

View File

@ -116,7 +116,7 @@
<record model="account.account.template" id="p15400"> <record model="account.account.template" id="p15400">
<field name="name">Tax Receivable</field> <field name="name">Tax Receivable</field>
<field name="code">15400</field> <field name="code">15400</field>
<field name="type">other</field> <field name="type">view</field>
<field name="user_type" ref="account.data_account_type_asset"/> <field name="user_type" ref="account.data_account_type_asset"/>
<field name="reconcile" eval="False"/> <field name="reconcile" eval="False"/>
<field name="parent_id" ref="p10000"/> <field name="parent_id" ref="p10000"/>
@ -658,7 +658,327 @@
<field name="reconcile" eval="False"/> <field name="reconcile" eval="False"/>
<field name="parent_id" ref="p96000"/> <field name="parent_id" ref="p96000"/>
</record> </record>
<record model="account.account.template" id="p154001">
<field name="name">Input CST 5%</field>
<field name="code">154001</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_expense"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154002">
<field name="name">Input Service Tax Seco. &amp; HEC 1%</field>
<field name="code">154002</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154003">
<field name="name">Input Credit - URD</field>
<field name="code">154003</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154004">
<field name="name">TDS on Audit Fees - 94J</field>
<field name="code">154004</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154005">
<field name="name">TDS on Commission Or Brokerage - 94H</field>
<field name="code">154005</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154006">
<field name="name">Input Credit - Import Duty</field>
<field name="code">154006</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154007">
<field name="name">Additional Duty (Imports) 4%</field>
<field name="code">154007</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154008">
<field name="name">Input Service Tax 12%</field>
<field name="code">154008</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154009">
<field name="name">Input Service Tax Edu. Cess. 2%</field>
<field name="code">154009</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154010">
<field name="name">TDS on Salary - 92B</field>
<field name="code">154010</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154011">
<field name="name">Input Excise Duty 6%</field>
<field name="code">154011</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154012">
<field name="name">Input Excise Duty 5%</field>
<field name="code">154012</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154013">
<field name="name">Input Excise Duty 12%</field>
<field name="code">154013</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154014">
<field name="name">Education Cess 2% - Purchase</field>
<field name="code">154014</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154015">
<field name="name">Seco. &amp; Higher Edu. Cess 1% - Purchase</field>
<field name="code">154015</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p247001">
<field name="name">Excise Duty 12% - Sales</field>
<field name="code">247001</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247010">
<field name="name">Education Cess 2% - Sales</field>
<field name="code">247010</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247002">
<field name="name">Seco. &amp; Higher Edu. Cess 1% - Sales</field>
<field name="code">247002</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p154016">
<field name="name">Input Sec. &amp; HEC - Capital Goods</field>
<field name="code">154016</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154017">
<field name="name">TDS on Contractor - 94C</field>
<field name="code">154017</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154018">
<field name="name">TDS on Director's Interest</field>
<field name="code">154018</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154019">
<field name="name">TDS on Director's Remuneration - 92B</field>
<field name="code">154019</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154020">
<field name="name">TDS on Interest</field>
<field name="code">154020</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154021">
<field name="name">TDS on Professional Fees - 94J</field>
<field name="code">154021</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154022">
<field name="name">TDS on Rent - 94I</field>
<field name="code">154022</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154023">
<field name="name">Input Edu. Cess - Capital Goods</field>
<field name="code">154023</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154024">
<field name="name">Input Excise Duty 12% - Capital Goods</field>
<field name="code">154024</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154025">
<field name="name">Input VAT 4%</field>
<field name="code">154025</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154026">
<field name="name">Input Additional VAT 1%</field>
<field name="code">154026</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154027">
<field name="name">Input VAT 15%</field>
<field name="code">154027</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p247003">
<field name="name">Output VAT 4%</field>
<field name="code">247003</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247004">
<field name="name">Output Adi. VAT 1%</field>
<field name="code">247004</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247005">
<field name="name">CST 2% on Sales - Against Form - C</field>
<field name="code">247005</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247006">
<field name="name">CST 5% on Sales</field>
<field name="code">247006</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p154028">
<field name="name">Input VAT 12.5%</field>
<field name="code">154028</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154029">
<field name="name">Input Additional VAT 2.5%</field>
<field name="code">154029</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p154030">
<field name="name">Input CST 2%</field>
<field name="code">154030</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_expense"/>
<field name="parent_id" ref="p15400"/>
</record>
<record model="account.account.template" id="p247007">
<field name="name">CST 2% on Sales - CT3 Against Form C</field>
<field name="code">247007</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247008">
<field name="name">Output VAT 4% on Sales - CT3</field>
<field name="code">247008</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record model="account.account.template" id="p247009">
<field name="name">Output Adi. VAT 1% Sales CT3</field>
<field name="code">247009</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
<field name="parent_id" ref="p24700"/>
</record>
<record id="indian_chart_template_public" model="account.chart.template"> <record id="indian_chart_template_public" model="account.chart.template">
<field name="name">India - Chart of Accounts for Public Ltd</field> <field name="name">India - Chart of Accounts for Public Ltd</field>
<field name="account_root_id" ref="p0"/> <field name="account_root_id" ref="p0"/>

File diff suppressed because it is too large Load Diff

View File

@ -19,6 +19,7 @@
<record model="account.tax.code.template" id="vat_code_payable"> <record model="account.tax.code.template" id="vat_code_payable">
<field name="name">Tax Paid</field> <field name="name">Tax Paid</field>
<field name="sign">-1</field>
<field name="parent_id" ref="vat_code_balance_net"/> <field name="parent_id" ref="vat_code_balance_net"/>
</record> </record>
@ -27,16 +28,540 @@
<field name="parent_id" ref="vat_code_tax"/> <field name="parent_id" ref="vat_code_tax"/>
</record> </record>
<record model="account.tax.code.template" id="vat_code_base_tax_sale"> <record model="account.tax.code.template" id="vat_code_base_tax_sale">
<field name="name">Base of Taxed Sales</field> <field name="name">Taxable Sale Bases</field>
<field name="parent_id" ref="vat_code_base_net"/> <field name="parent_id" ref="vat_code_base_net"/>
</record> </record>
<record model="account.tax.code.template" id="vat_code_base_tax_purchase"> <record model="account.tax.code.template" id="vat_code_base_tax_purchase">
<field name="name">Base of Taxed Purchases</field> <field name="name">Taxable Purchase Bases</field>
<field name="parent_id" ref="vat_code_base_net"/> <field name="parent_id" ref="vat_code_base_net"/>
</record> </record>
<record model="account.tax.code.template" id="vat_code_tax_pur_CSTP5">
<field name="name">Input CST 5%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_PCST5">
<field name="name">Purchase CST 5%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_ser12">
<field name="name">Purchase Service Tax 12%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sale_ser12">
<field name="name">Sales Service Tax 12%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_exice_salebase">
<field name="name">Excise Duty 12.36% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_exice12">
<field name="name">Excise Duty 12% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec_exice_salebase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_exice2">
<field name="name">Excise Duty 2% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_exice1">
<field name="name">Excise Duty 1% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_ic_st_purbase">
<field name="name">Excise Duty 12.36% - Purchase</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_exice12">
<field name="name">Excise Duty 12% - Purchase</field>
<field name="parent_id" ref="vat_code_tax_pay_ic_st_purbase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_cess2">
<field name="name">Education Cess 2% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec_exice_salebase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_cess2">
<field name="name">Education Cess 2% - Purchase</field>
<field name="parent_id" ref="vat_code_tax_pay_ic_st_purbase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_import_duty">
<field name="name">Input Credit - Import Duty</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_edu_cess">
<field name="name">Input Credit On Capital Goods - Edu. Cess</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_cap_goods">
<field name="name">Input Excise Duty 12% - Capital Goods</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_seco_hec">
<field name="name">Input Credit on Capital Goods - Seco. &amp; HEC</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_ic_st_base">
<field name="name">Input Service Tax 12.36%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_ic_st">
<field name="name">Input Service Tax 12%</field>
<field name="parent_id" ref="vat_code_tax_pay_ic_st_base"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_ic_edu_cess">
<field name="name">Input Service Tax Edu. Cess. 2%</field>
<field name="parent_id" ref="vat_code_tax_pay_ic_st_base"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_ic_seco_hec">
<field name="name">Input Service Tax Seco. &amp; HEC 1%</field>
<field name="parent_id" ref="vat_code_tax_pay_ic_st_base"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_sec_hig_edu">
<field name="name">Seco. &amp; Higher Edu. Cess 1% - Purchase</field>
<field name="parent_id" ref="vat_code_tax_pay_ic_st_purbase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_sec_hig_cess">
<field name="name">Seco. &amp; Higher Edu. Cess 1% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec_exice_salebase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_cst2">
<field name="name">CST 2% on Sales</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_cst5">
<field name="name">CST 5% on Sales</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_add_vat1">
<field name="name">Input Additional VAT 1%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_add_vat2">
<field name="name">Input Additional Vat 2.5%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_vat12">
<field name="name">Input VAT 12.5%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_vat15">
<field name="name">Input VAT 15%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_vat10">
<field name="name">Input VAT 10%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_vat8">
<field name="name">Input VAT 8%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_vat5">
<field name="name">Input VAT 5%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_vat4">
<field name="name">Input VAT 4%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_vat15">
<field name="name">Output VAT 15%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_vat12">
<field name="name">Output VAT 12.5%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_vat10">
<field name="name">Output VAT 10%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_vat8">
<field name="name">Output VAT 8%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_vat5">
<field name="name">Output VAT 5%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_vat4">
<field name="name">Output VAT 4%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_add_vat1">
<field name="name">Output Adi. VAT 1%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_cst2">
<field name="name">CST 2% on Purchase</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_exice5">
<field name="name">Input Excise Duty 5%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_exice6">
<field name="name">Input Excise Duty 6%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_urd">
<field name="name">Input Credit - URD</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_audit_fee">
<field name="name">TDS on Audit Fees - 94J</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_brokerage">
<field name="name">TDS on Commission Or Brokerage- 94H</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_contractor">
<field name="name">TDS on Contractor-94C</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_dir_intrest">
<field name="name">TDS on Director's Interest</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_dir_ren">
<field name="name">TDS on Director's Remuneration - 92B</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_intrest">
<field name="name">TDS on Interest</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_prof_fee">
<field name="name">TDS on Professional Fees - 94J</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_rent">
<field name="name">TDS on Rent - 94I</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_tds_sal">
<field name="name">TDS on Salary - 92B</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_tds_pur_import">
<field name="name">Import Purchase</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat">
<field name="name">Purchase VAT 4% / VAT 12.5% / VAT 15% / CST 2% / CST 5%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_plant_machinery">
<field name="name">Plant &amp; Machinery</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_exp_act">
<field name="name">Expense Accounts</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sales_excise">
<field name="name">Sales Excise</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sale_cst2">
<field name="name">Sales CST 2%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sale_cst15">
<field name="name">Sales CST 5%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat15">
<field name="name">Purchase VAT 15%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat12">
<field name="name">Purchase VAT 12.5%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat10">
<field name="name">Purchase VAT 10%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat8">
<field name="name">Purchase VAT 8%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat5">
<field name="name">Purchase VAT 5%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat4">
<field name="name">Purchase VAT 4%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_vat25">
<field name="name">Purchase VAT 2.5%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_vat15">
<field name="name">Sales VAT 15%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_vat12">
<field name="name">Sales VAT 12.5%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_vat10">
<field name="name">Sales VAT 10%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_vat8">
<field name="name">Sales VAT 8%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_vat5">
<field name="name">Sales VAT 5%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_vat4">
<field name="name">Sales VAT 4%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_cst2">
<field name="name">Input CST 2%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_urd">
<field name="name">Purchase URD</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pur_base_tds">
<field name="name">Base Expenses for TDS</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_pay_add_imp_duty">
<field name="name">Additional Duty (Imports) 4%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_formh_tax">
<field name="name">Sales Export - Form H - With Tax</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_cst2_on_sal_cst3">
<field name="name">CST 2% on Sales CT3</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_cst3">
<field name="name">Sales CT3 VAT</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_out4_sal_cst3">
<field name="name">Output VAT 4% on Sales CT3</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_out_add1_sale_cst3">
<field name="name">Output Adi. VAT 1% on Sales CT3</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_ct3_cst">
<field name="name">Sales CT3 CST</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_exp_ct1">
<field name="name">Sales Export - Form H - With CT1</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_sez_out_guj">
<field name="name">Sales Export - SEZ - Out of Gujarat</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_sez_in_guj">
<field name="name">Sales Export - SEZ - In Gujarat</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_no_saz_ogs">
<field name="name">No Tax SEZ OGS</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_no_sez_guj">
<field name="name">No Tax SEZ Gujarat</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_out_country">
<field name="name">Sales Export - Out of Country</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_sal_proj">
<field name="name">Sales Others (Projects)</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_formh_bed">
<field name="name">No Tax Form H with BED</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_fomh">
<field name="name">No Tax Form H</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_no_out_country">
<field name="name">No Tax Export Out of Country</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_no_proj">
<field name="name">No Tax Projects</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_st_salebase">
<field name="name">Service Tax 12.36% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_st12">
<field name="name">Service Tax 12% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec_st_salebase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_st2">
<field name="name">Service Tax 2% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec_st_salebase"/>
</record>
<record model="account.tax.code.template" id="vat_code_tax_rec_st1">
<field name="name">Service Tax 1% - Sales</field>
<field name="parent_id" ref="vat_code_tax_rec_st_salebase"/>
</record>
<record model="account.tax.code.template" id="vat_code_base_tax_sale15">
<field name="name">Sales Tax 15%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_rec_sale15">
<field name="name">Sales Tax - 15%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_base_tax_sale12">
<field name="name">Sales Tax 12%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_rec_sale12">
<field name="name">Sales Tax - 12%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_base_tax_sale4">
<field name="name">Sales Tax 4%</field>
<field name="parent_id" ref="vat_code_base_tax_sale"/>
</record>
<record model="account.tax.code.template" id="vat_code_rec_sale4">
<field name="name">Sales Tax - 4%</field>
<field name="parent_id" ref="vat_code_tax_rec"/>
</record>
<record model="account.tax.code.template" id="vat_code_base_tax_pur15">
<field name="name">Purchase Tax 15%</field>
<field name="parent_id" ref="vat_code_base_tax_purchase"/>
</record>
<record model="account.tax.code.template" id="vat_code_pay_pur4">
<field name="name">Purchase Tax - 15%</field>
<field name="parent_id" ref="vat_code_payable"/>
</record>
</data> </data>
</openerp> </openerp>

View File

@ -21,7 +21,7 @@ email overload.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=mail" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -20,7 +20,7 @@ planning with the smart kanban and gantt views. Use the advanced analytics
features to detect bottleneck in resources capacities and inventory locations. features to detect bottleneck in resources capacities and inventory locations.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=mrp" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -15,7 +15,7 @@
Organize yourself with efficient todo lists and notes. From personnal tasks to collaborative meeting minutes, increase your user's productivity by giving them the tools to prioritize their work, share their ideas and collaborate on documents. Organize yourself with efficient todo lists and notes. From personnal tasks to collaborative meeting minutes, increase your user's productivity by giving them the tools to prioritize their work, share their ideas and collaborate on documents.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=note" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -4,29 +4,31 @@ import simplejson
import os import os
import openerp import openerp
from openerp.addons.web import http
from openerp.addons.web.http import request
from openerp.addons.web.controllers.main import manifest_list, module_boot, html_template from openerp.addons.web.controllers.main import manifest_list, module_boot, html_template
class PointOfSaleController(openerp.addons.web.http.Controller): class PointOfSaleController(http.Controller):
_cp_path = '/pos'
@openerp.addons.web.http.httprequest @http.route('/pos/app', type='http', auth='admin')
def app(self, req, s_action=None, **kw): def app(self):
js = "\n ".join('<script type="text/javascript" src="%s"></script>' % i for i in manifest_list(req, None, 'js')) js = "\n ".join('<script type="text/javascript" src="%s"></script>' % i for i in manifest_list('js',db=request.db))
css = "\n ".join('<link rel="stylesheet" href="%s">' % i for i in manifest_list(req, None, 'css')) css = "\n ".join('<link rel="stylesheet" href="%s">' % i for i in manifest_list('css',db=request.db))
cookie = req.httprequest.cookies.get("instance0|session_id") cookie = request.httprequest.cookies.get("instance0|session_id")
session_id = cookie.replace("%22","") session_id = cookie.replace("%22","")
template = html_template.replace('<html','<html manifest="/pos/manifest?session_id=%s"'%session_id) template = html_template.replace('<html','<html manifest="/pos/manifest?session_id=%s"' % request.session_id)
r = template % { r = template % {
'js': js, 'js': js,
'css': css, 'css': css,
'modules': simplejson.dumps(module_boot(req)), 'modules': simplejson.dumps(module_boot(request)),
'init': 'var wc = new s.web.WebClient();wc.appendTo($(document.body));' 'init': 'var wc = new s.web.WebClient();wc.appendTo($(document.body));'
} }
return r return r
@openerp.addons.web.http.httprequest @http.route('/pos/manifest',type='http', auth='admin')
def manifest(self, req, **kwargs): def manifest(self):
""" This generates a HTML5 cache manifest files that preloads the categories and products thumbnails """ This generates a HTML5 cache manifest files that preloads the categories and products thumbnails
and other ressources necessary for the point of sale to work offline """ and other ressources necessary for the point of sale to work offline """
@ -45,16 +47,16 @@ class PointOfSaleController(openerp.addons.web.http.Controller):
imgdir = openerp.modules.get_module_resource('point_of_sale','static/src/img'); imgdir = openerp.modules.get_module_resource('point_of_sale','static/src/img');
load_css_img(imgdir,'/point_of_sale/static/src/img') load_css_img(imgdir,'/point_of_sale/static/src/img')
products = req.session.model('product.product') products = request.registry.get('product.product')
for p in products.search_read([('pos_categ_id','!=',False)], ['name']): for p in products.search_read(request.cr, request.uid, [('pos_categ_id','!=',False)], ['name']):
product_id = p['id'] product_id = p['id']
url = "/web/binary/image?session_id=%s&model=product.product&field=image&id=%s" % (req.session_id, product_id) url = "/web/binary/image?session_id=%s&model=product.product&field=image&id=%s" % (request.session_id, product_id)
ml.append(url) ml.append(url)
categories = req.session.model('pos.category') categories = request.registry.get('pos.category')
for c in categories.search_read([],['name']): for c in categories.search_read(request.cr, request.uid, [], ['name']):
category_id = c['id'] category_id = c['id']
url = "/web/binary/image?session_id=%s&model=pos.category&field=image&id=%s" % (req.session_id, category_id) url = "/web/binary/image?session_id=%s&model=pos.category&field=image&id=%s" % (request.session_id, category_id)
ml.append(url) ml.append(url)
ml += ["NETWORK:","*"] ml += ["NETWORK:","*"]
@ -62,108 +64,103 @@ class PointOfSaleController(openerp.addons.web.http.Controller):
return m return m
@openerp.addons.web.http.jsonrequest @http.route('/pos/scan_item_success', type='json', auth='admin')
def dispatch(self, request, iface, **kwargs): def scan_item_success(self, ean):
method = 'iface_%s' % iface
return getattr(self, method)(request, **kwargs)
@openerp.addons.web.http.jsonrequest
def scan_item_success(self, request, ean):
""" """
A product has been scanned with success A product has been scanned with success
""" """
print 'scan_item_success: ' + str(ean) print 'scan_item_success: ' + str(ean)
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/scan_item_error_unrecognized')
def scan_item_error_unrecognized(self, request, ean): def scan_item_error_unrecognized(self, ean):
""" """
A product has been scanned without success A product has been scanned without success
""" """
print 'scan_item_error_unrecognized: ' + str(ean) print 'scan_item_error_unrecognized: ' + str(ean)
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/help_needed', type='json', auth='admin')
def help_needed(self, request): def help_needed(self):
""" """
The user wants an help (ex: light is on) The user wants an help (ex: light is on)
""" """
print "help_needed" print "help_needed"
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/help_canceled', type='json', auth='admin')
def help_canceled(self, request): def help_canceled(self):
""" """
The user stops the help request The user stops the help request
""" """
print "help_canceled" print "help_canceled"
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/weighting_start', type='json', auth='admin')
def weighting_start(self, request): def weighting_start(self):
print "weighting_start" print "weighting_start"
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/weighting_read_kg', type='json', auth='admin')
def weighting_read_kg(self, request): def weighting_read_kg(self):
print "weighting_read_kg" print "weighting_read_kg"
return 0.0 return 3.14
@openerp.addons.web.http.jsonrequest @http.route('/pos/weighting_end', type='json', auth='admin')
def weighting_end(self, request): def weighting_end(self):
print "weighting_end" print "weighting_end"
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/payment_request', type='json', auth='admin')
def payment_request(self, request, price): def payment_request(self, price):
""" """
The PoS will activate the method payment The PoS will activate the method payment
""" """
print "payment_request: price:"+str(price) print "payment_request: price:"+str(price)
return 'ok' return 'ok'
@openerp.addons.web.http.jsonrequest @http.route('/pos/payment_status', type='json', auth='admin')
def payment_status(self, request): def payment_status(self):
print "payment_status" print "payment_status"
return { 'status':'waiting' } return { 'status':'waiting' }
@openerp.addons.web.http.jsonrequest @http.route('/pos/payment_cancel', type='json', auth='admin')
def payment_cancel(self, request): def payment_cancel(self):
print "payment_cancel" print "payment_cancel"
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/transaction_start', type='json', auth='admin')
def transaction_start(self, request): def transaction_start(self):
print 'transaction_start' print 'transaction_start'
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/transaction_end', type='json', auth='admin')
def transaction_end(self, request): def transaction_end(self):
print 'transaction_end' print 'transaction_end'
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/cashier_mode_activated', type='json', auth='admin')
def cashier_mode_activated(self, request): def cashier_mode_activated(self):
print 'cashier_mode_activated' print 'cashier_mode_activated'
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/cashier_mode_deactivated', type='json', auth='admin')
def cashier_mode_deactivated(self, request): def cashier_mode_deactivated(self):
print 'cashier_mode_deactivated' print 'cashier_mode_deactivated'
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/open_cashbox', type='json', auth='admin')
def open_cashbox(self, request): def open_cashbox(self):
print 'open_cashbox' print 'open_cashbox'
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/print_receipt', type='json', auth='admin')
def print_receipt(self, request, receipt): def print_receipt(self, receipt):
print 'print_receipt' + str(receipt) print 'print_receipt' + str(receipt)
return return
@openerp.addons.web.http.jsonrequest @http.route('/pos/print_pdf_invoice', type='json', auth='admin')
def print_pdf_invoice(self, request, pdfinvoice): def print_pdf_invoice(self, pdfinvoice):
print 'print_pdf_invoice' + str(pdfinvoice) print 'print_pdf_invoice' + str(pdfinvoice)
return return

View File

@ -63,6 +63,7 @@ class pos_config(osv.osv):
'iface_electronic_scale' : fields.boolean('Electronic Scale Interface'), 'iface_electronic_scale' : fields.boolean('Electronic Scale Interface'),
'iface_vkeyboard' : fields.boolean('Virtual KeyBoard Interface'), 'iface_vkeyboard' : fields.boolean('Virtual KeyBoard Interface'),
'iface_print_via_proxy' : fields.boolean('Print via Proxy'), 'iface_print_via_proxy' : fields.boolean('Print via Proxy'),
'iface_invoicing': fields.boolean('Invoicing',help='Enables invoice generation from the Point of Sale'),
'state' : fields.selection(POS_CONFIG_STATE, 'Status', required=True, readonly=True), 'state' : fields.selection(POS_CONFIG_STATE, 'Status', required=True, readonly=True),
'sequence_id' : fields.many2one('ir.sequence', 'Order IDs Sequence', readonly=True, 'sequence_id' : fields.many2one('ir.sequence', 'Order IDs Sequence', readonly=True,
@ -127,7 +128,8 @@ class pos_config(osv.osv):
'warehouse_id': _default_warehouse, 'warehouse_id': _default_warehouse,
'journal_id': _default_sale_journal, 'journal_id': _default_sale_journal,
'group_by' : True, 'group_by' : True,
'pricelist_id': _default_pricelist 'pricelist_id': _default_pricelist,
'iface_invoicing': True,
} }
def set_active(self, cr, uid, ids, context=None): def set_active(self, cr, uid, ids, context=None):
@ -492,13 +494,17 @@ class pos_order(osv.osv):
#_logger.info("orders: %r", orders) #_logger.info("orders: %r", orders)
order_ids = [] order_ids = []
for tmp_order in orders: for tmp_order in orders:
to_invoice = tmp_order['to_invoice']
order = tmp_order['data'] order = tmp_order['data']
order_id = self.create(cr, uid, { order_id = self.create(cr, uid, {
'name': order['name'], 'name': order['name'],
'user_id': order['user_id'] or False, 'user_id': order['user_id'] or False,
'session_id': order['pos_session_id'], 'session_id': order['pos_session_id'],
'lines': order['lines'], 'lines': order['lines'],
'pos_reference':order['name'] 'pos_reference':order['name'],
'partner_id': order['partner_id'] or False
}, context) }, context)
for payments in order['statement_ids']: for payments in order['statement_ids']:
@ -529,6 +535,12 @@ class pos_order(osv.osv):
}, context=context) }, context=context)
order_ids.append(order_id) order_ids.append(order_id)
self.signal_paid(cr, uid, [order_id]) self.signal_paid(cr, uid, [order_id])
if to_invoice:
self.action_invoice(cr, uid, [order_id], context)
order_obj = self.browse(cr, uid, order_id, context)
self.pool['account.invoice'].signal_invoice_open(cr, uid, [order_obj.invoice_id.id])
return order_ids return order_ids
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):
@ -881,6 +893,7 @@ class pos_order(osv.osv):
inv_line_ref.create(cr, uid, inv_line, context=context) inv_line_ref.create(cr, uid, inv_line, context=context)
inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context) inv_ref.button_reset_taxes(cr, uid, [inv_id], context=context)
self.signal_invoice(cr, uid, [order.id]) self.signal_invoice(cr, uid, [order.id])
inv_ref.signal_validate(cr, uid, [inv_id])
if not inv_ids: return {} if not inv_ids: return {}

View File

@ -794,6 +794,7 @@
<field name="iface_self_checkout" /> <field name="iface_self_checkout" />
<field name="iface_cashdrawer" /> <field name="iface_cashdrawer" />
<field name="iface_payment_terminal" /> <field name="iface_payment_terminal" />
<field name="iface_invoicing" />
</group> </group>
<group> <group>
<field name="iface_electronic_scale" /> <field name="iface_electronic_scale" />

View File

@ -22,7 +22,7 @@
consolidations amongst all shops without the hassle of integrating several applications. consolidations amongst all shops without the hassle of integrating several applications.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=point_of_sale" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -291,10 +291,15 @@
display: inline-block; display: inline-block;
text-align: center; text-align: center;
vertical-align: top; vertical-align: top;
width: 205px;
max-height: 232px;
overflow-y: auto;
overflow-x: hidden;
} }
.point-of-sale #paypad button { .point-of-sale #paypad button {
height: 50px; height: 50px;
width: 208px; display: block;
width: 100%;
margin: 0px -6px 4px -2px; margin: 0px -6px 4px -2px;
font-weight: bold; font-weight: bold;
vertical-align: middle; vertical-align: middle;
@ -302,6 +307,17 @@
border-top: 1px solid #efefef; border-top: 1px solid #efefef;
font-size: 14px; font-size: 14px;
} }
.point-of-sale #paypad button, .point-of-sale #numpad button, .point-of-sale .popup button{
position: relative;
top: 0;
-webkit-transition: top 150ms linear;
-moz-transition: top 150ms linear;
-ms-transition: top 150ms linear;
transition: top 150ms linear;
}
.point-of-sale #paypad button:active, .point-of-sale #numpad button:active, .point-of-sale .popup button:active{
top:3px;
}
.point-of-sale #paypad button:hover, .point-of-sale #numpad button:hover, .point-of-sale #numpad .selected-mode, .point-of-sale .popup button:hover { .point-of-sale #paypad button:hover, .point-of-sale #numpad button:hover, .point-of-sale #numpad .selected-mode, .point-of-sale .popup button:hover {
border: none; border: none;
color: white; color: white;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -267,11 +267,21 @@ function openerp_pos_db(instance, module){
return results; return results;
}, },
add_order: function(order){ add_order: function(order){
var last_id = this.load('last_order_id',0); var order_id = order.uid;
var orders = this.load('orders',[]); var orders = this.load('orders',[]);
orders.push({id: last_id + 1, data: order});
this.save('last_order_id',last_id+1); // if the order was already stored, we overwrite its data
for(var i = 0, len = orders.length; i < len; i++){
if(orders[i].id === order_id){
orders[i].data = order;
this.save('orders',orders);
return order_id;
}
}
orders.push({id: order_id, data: order});
this.save('orders',orders); this.save('orders',orders);
return order_id;
}, },
remove_order: function(order_id){ remove_order: function(order_id){
var orders = this.load('orders',[]); var orders = this.load('orders',[]);
@ -283,5 +293,14 @@ function openerp_pos_db(instance, module){
get_orders: function(){ get_orders: function(){
return this.load('orders',[]); return this.load('orders',[]);
}, },
get_order: function(order_id){
var orders = this.get_orders();
for(var i = 0, len = orders.length; i < len; i++){
if(orders[i].id === order_id){
return orders[i];
}
}
return undefined;
},
}); });
} }

View File

@ -104,7 +104,6 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
return self.fetch('res.currency',['symbol','position','rounding','accuracy'],[['id','=',self.get('company').currency_id[0]]]); return self.fetch('res.currency',['symbol','position','rounding','accuracy'],[['id','=',self.get('company').currency_id[0]]]);
}).then(function(currencies){ }).then(function(currencies){
console.log('Currency:',currencies[0]);
self.set('currency',currencies[0]); self.set('currency',currencies[0]);
return self.fetch('product.uom', null, null); return self.fetch('product.uom', null, null);
@ -145,7 +144,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
['name','journal_ids','warehouse_id','journal_id','pricelist_id', ['name','journal_ids','warehouse_id','journal_id','pricelist_id',
'iface_self_checkout', 'iface_led', 'iface_cashdrawer', 'iface_self_checkout', 'iface_led', 'iface_cashdrawer',
'iface_payment_terminal', 'iface_electronic_scale', 'iface_barscan', 'iface_vkeyboard', 'iface_payment_terminal', 'iface_electronic_scale', 'iface_barscan', 'iface_vkeyboard',
'iface_print_via_proxy','iface_cashdrawer','state','sequence_id','session_ids'], 'iface_print_via_proxy','iface_cashdrawer','iface_invoicing','state','sequence_id','session_ids'],
[['id','=', self.get('pos_session').config_id[0]]] [['id','=', self.get('pos_session').config_id[0]]]
); );
}).then(function(configs){ }).then(function(configs){
@ -156,6 +155,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
self.iface_vkeyboard = !!pos_config.iface_vkeyboard; self.iface_vkeyboard = !!pos_config.iface_vkeyboard;
self.iface_self_checkout = !!pos_config.iface_self_checkout; self.iface_self_checkout = !!pos_config.iface_self_checkout;
self.iface_cashdrawer = !!pos_config.iface_cashdrawer; self.iface_cashdrawer = !!pos_config.iface_cashdrawer;
self.iface_invoicing = !!pos_config.iface_invoicing;
return self.fetch('stock.warehouse',[],[['id','=',pos_config.warehouse_id[0]]]); return self.fetch('stock.warehouse',[],[['id','=',pos_config.warehouse_id[0]]]);
}).then(function(shops){ }).then(function(shops){
@ -240,12 +240,6 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
} }
}, },
// saves the order locally and try to send it to the backend. 'record' is a bizzarely defined JSON version of the Order
push_order: function(record) {
this.db.add_order(record);
this.flush();
},
//creates a new empty order and sets it as the current order //creates a new empty order and sets it as the current order
add_new_order: function(){ add_new_order: function(){
var order = new module.Order({pos:this}); var order = new module.Order({pos:this});
@ -253,45 +247,161 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
this.set('selectedOrder', order); this.set('selectedOrder', order);
}, },
// saves the order locally and try to send it to the backend.
// it returns a deferred that succeeds after having tried to send the order and all the other pending orders.
push_order: function(order) {
var self = this;
var order_id = this.db.add_order(order.export_as_JSON());
var pushed = new $.Deferred();
this.set('nbr_pending_operations',self.db.get_orders().length);
this.flush_mutex.exec(function(){
var flushed = self._flush_all_orders();
flushed.always(function(){
pushed.resolve();
});
return flushed;
});
return pushed;
},
// saves the order locally and try to send it to the backend and make an invoice
// returns a deferred that succeeds when the order has been posted and successfully generated
// an invoice. This method can fail in various ways:
// error-no-client: the order must have an associated partner_id. You can retry to make an invoice once
// this error is solved
// error-transfer: there was a connection error during the transfer. You can retry to make the invoice once
// the network connection is up
push_and_invoice_order: function(order){
var self = this;
var invoiced = new $.Deferred();
if(!order.get_client()){
invoiced.reject('error-no-client');
return invoiced;
}
var order_id = this.db.add_order(order.export_as_JSON());
this.set('nbr_pending_operations',self.db.get_orders().length);
this.flush_mutex.exec(function(){
var done = new $.Deferred(); // holds the mutex
// send the order to the server
// we have a 30 seconds timeout on this push.
// FIXME: if the server takes more than 30 seconds to accept the order,
// the client will believe it wasn't successfully sent, and very bad
// things will happen as a duplicate will be sent next time
// so we must make sure the server detects and ignores duplicated orders
var transfer = self._flush_order(order_id, {timeout:30000, to_invoice:true});
transfer.fail(function(){
invoiced.reject('error-transfer');
done.reject();
});
// on success, get the order id generated by the server
transfer.pipe(function(order_server_id){
// generate the pdf and download it
self.pos_widget.do_action('point_of_sale.pos_invoice_report',{additional_context:{
active_ids:order_server_id,
}});
invoiced.resolve();
done.resolve();
});
return done;
});
return invoiced;
},
// attemps to send all pending orders ( stored in the pos_db ) to the server, // attemps to send all pending orders ( stored in the pos_db ) to the server,
// and remove the successfully sent ones from the db once // and remove the successfully sent ones from the db once
// it has been confirmed that they have been sent correctly. // it has been confirmed that they have been sent correctly.
flush: function() { flush: function() {
//TODO make the mutex work var self = this;
//this makes sure only one _int_flush is called at the same time var flushed = new $.Deferred();
/*
return this.flush_mutex.exec(_.bind(function() { this.flush_mutex.exec(function(){
return this._flush(0); var done = new $.Deferred();
}, this));
*/ self._flush_all_orders()
this._flush(0); .done( function(){ flushed.resolve();})
.fail( function(){ flushed.reject(); })
.always(function(){ done.resolve(); });
return done;
});
return flushed;
}, },
// attempts to send an order of index 'index' in the list of order to send. The index
// is used to skip orders that failed. do not call this method outside the mutex provided // attempts to send the locally stored order of id 'order_id'
// by flush() // the sending is asynchronous and can take some time to decide if it is successful or not
_flush: function(index){ // it is therefore important to only call this method from inside a mutex
// this method returns a deferred indicating wether the sending was successful or not
// there is a timeout parameter which is set to 2 seconds by default.
_flush_order: function(order_id, options){
var self = this;
options = options || {};
timeout = typeof options.timeout === 'number' ? options.timeout : 5000;
var order = this.db.get_order(order_id);
order.to_invoice = options.to_invoice || false;
if(!order){
// flushing a non existing order always fails
return (new $.Deferred()).reject();
}
// we try to send the order. shadow prevents a spinner if it takes too long. (unless we are sending an invoice,
// then we want to notify the user that we are waiting on something )
var rpc = (new instance.web.Model('pos.order')).call('create_from_ui',[[order]],undefined,{shadow: !options.to_invoice, timeout:timeout});
rpc.fail(function(unused,event){
// prevent an error popup creation by the rpc failure
// we want the failure to be silent as we send the orders in the background
event.preventDefault();
console.error('Failed to send order:',order);
});
rpc.done(function(){
self.db.remove_order(order_id);
self.set('nbr_pending_operations',self.db.get_orders().length);
});
return rpc;
},
// attempts to send all the locally stored orders. As with _flush_order, it should only be
// called from within a mutex.
// this method returns a deferred that always succeeds when all orders have been tried to be sent,
// even if none of them could actually be sent.
_flush_all_orders: function(){
var self = this; var self = this;
var orders = this.db.get_orders(); var orders = this.db.get_orders();
self.set('nbr_pending_operations',orders.length); var tried_all = new $.Deferred();
var order = orders[index]; function rec_flush(index){
if(!order){ if(index < orders.length){
return; self._flush_order(orders[index].id).always(function(){
rec_flush(index+1);
})
}else{
tried_all.resolve();
}
} }
//try to push an order to the server rec_flush(0);
// shadow : true is to prevent a spinner to appear in case of timeout
(new instance.web.Model('pos.order')).call('create_from_ui',[[order]],undefined,{ shadow:true }) return tried_all;
.fail(function(unused, event){
//don't show error popup if it fails
event.preventDefault();
console.error('Failed to send order:',order);
self._flush(index+1);
})
.done(function(){
//remove from db if success
self.db.remove_order(order.id);
self._flush(index);
});
}, },
scan_product: function(parsed_ean){ scan_product: function(parsed_ean){
@ -590,11 +700,12 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
module.Order = Backbone.Model.extend({ module.Order = Backbone.Model.extend({
initialize: function(attributes){ initialize: function(attributes){
Backbone.Model.prototype.initialize.apply(this, arguments); Backbone.Model.prototype.initialize.apply(this, arguments);
this.uid = this.generateUniqueId();
this.set({ this.set({
creationDate: new Date(), creationDate: new Date(),
orderLines: new module.OrderlineCollection(), orderLines: new module.OrderlineCollection(),
paymentLines: new module.PaymentlineCollection(), paymentLines: new module.PaymentlineCollection(),
name: "Order " + this.generateUniqueId(), name: "Order " + this.uid,
client: null, client: null,
}); });
this.pos = attributes.pos; this.pos = attributes.pos;
@ -770,7 +881,7 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
currency: this.pos.get('currency'), currency: this.pos.get('currency'),
}; };
}, },
exportAsJSON: function() { export_as_JSON: function() {
var orderLines, paymentLines; var orderLines, paymentLines;
orderLines = []; orderLines = [];
(this.get('orderLines')).each(_.bind( function(item) { (this.get('orderLines')).each(_.bind( function(item) {
@ -789,8 +900,9 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
lines: orderLines, lines: orderLines,
statement_ids: paymentLines, statement_ids: paymentLines,
pos_session_id: this.pos.get('pos_session').id, pos_session_id: this.pos.get('pos_session').id,
partner_id: this.pos.get('client') ? this.pos.get('client').id : undefined, partner_id: this.get_client() ? this.get_client().id : false,
user_id: this.pos.get('cashier') ? this.pos.get('cashier').id : this.pos.get('user').id, user_id: this.pos.get('cashier') ? this.pos.get('cashier').id : this.pos.get('user').id,
uid: this.uid,
}; };
}, },
getSelectedLine: function(){ getSelectedLine: function(){

View File

@ -434,6 +434,14 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
template:'ErrorNegativePricePopupWidget', template:'ErrorNegativePricePopupWidget',
}); });
module.ErrorNoClientPopupWidget = module.ErrorPopupWidget.extend({
template: 'ErrorNoClientPopupWidget',
});
module.ErrorInvoiceTransferPopupWidget = module.ErrorPopupWidget.extend({
template: 'ErrorInvoiceTransferPopupWidget',
});
module.ScaleInviteScreenWidget = module.ScreenWidget.extend({ module.ScaleInviteScreenWidget = module.ScreenWidget.extend({
template:'ScaleInviteScreenWidget', template:'ScaleInviteScreenWidget',
@ -452,7 +460,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
clearInterval(this.intervalID); clearInterval(this.intervalID);
self.pos_widget.screen_selector.set_current_screen(self.next_screen); self.pos_widget.screen_selector.set_current_screen(self.next_screen);
} }
},500); },100);
this.add_action_button({ this.add_action_button({
label: _t('Back'), label: _t('Back'),
@ -507,7 +515,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
self.weight = weight; self.weight = weight;
self.renderElement(); self.renderElement();
} }
},200); },100);
}, },
renderElement: function(){ renderElement: function(){
var self = this; var self = this;
@ -640,7 +648,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
var cashregister = selfCheckoutRegisters[0] || self.pos.get('cashRegisters').models[0]; var cashregister = selfCheckoutRegisters[0] || self.pos.get('cashRegisters').models[0];
currentOrder.addPaymentLine(cashregister); currentOrder.addPaymentLine(cashregister);
self.pos.push_order(currentOrder.exportAsJSON()) self.pos.push_order(currentOrder)
currentOrder.destroy(); currentOrder.destroy();
self.pos.proxy.transaction_end(); self.pos.proxy.transaction_end();
self.pos_widget.screen_selector.set_current_screen(self.next_screen); self.pos_widget.screen_selector.set_current_screen(self.next_screen);
@ -808,19 +816,42 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this._super(); this._super();
var self = this; var self = this;
this.add_action_button({ var print_button = this.add_action_button({
label: _t('Print'), label: _t('Print'),
icon: '/point_of_sale/static/src/img/icons/png48/printer.png', icon: '/point_of_sale/static/src/img/icons/png48/printer.png',
click: function(){ self.print(); }, click: function(){ self.print(); },
}); });
this.add_action_button({ var finish_button = this.add_action_button({
label: _t('Next Order'), label: _t('Next Order'),
icon: '/point_of_sale/static/src/img/icons/png48/go-next.png', icon: '/point_of_sale/static/src/img/icons/png48/go-next.png',
click: function() { self.finishOrder(); }, click: function() { self.finishOrder(); },
}); });
window.print(); window.print();
// THIS IS THE HACK OF THE CENTURY
//
// The problem is that in chrome the print() is asynchronous and doesn't
// execute until all rpc are finished. So it conflicts with the rpc used
// to send the orders to the backend, and the user is able to go to the next
// screen before the printing dialog is opened. The problem is that what's
// printed is whatever is in the page when the dialog is opened and not when it's called,
// and so you end up printing the product list instead of the receipt...
//
// Fixing this would need a re-architecturing
// of the code to postpone sending of orders after printing.
//
// But since the print dialog also blocks the other asynchronous calls, the
// button enabling in the setTimeout() is blocked until the printing dialog is
// closed. But the timeout has to be big enough or else it doesn't work
// 2 seconds is the same as the default timeout for sending orders and so the dialog
// should have appeared before the timeout... so yeah that's not ultra reliable.
finish_button.set_disabled(true);
setTimeout(function(){
finish_button.set_disabled(false);
}, 2000);
}, },
print: function() { print: function() {
window.print(); window.print();
@ -870,15 +901,15 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this.set_numpad_state(this.pos_widget.numpad.state); this.set_numpad_state(this.pos_widget.numpad.state);
this.back_button = this.add_action_button({ this.add_action_button({
label: _t('Back'), label: _t('Back'),
icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png', icon: '/point_of_sale/static/src/img/icons/png48/go-previous.png',
click: function(){ click: function(){
self.pos_widget.screen_selector.set_current_screen(self.back_screen); self.pos_widget.screen_selector.set_current_screen(self.back_screen);
}, },
}); });
this.validate_button = this.add_action_button({ this.add_action_button({
label: _t('Validate'), label: _t('Validate'),
name: 'validation', name: 'validation',
icon: '/point_of_sale/static/src/img/icons/png48/validate.png', icon: '/point_of_sale/static/src/img/icons/png48/validate.png',
@ -886,6 +917,17 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
self.validateCurrentOrder(); self.validateCurrentOrder();
}, },
}); });
if(this.pos.iface_invoicing){
this.add_action_button({
label: 'Invoice',
name: 'invoice',
icon: '/point_of_sale/static/src/img/icons/png48/invoice.png',
click: function(){
self.validateCurrentOrder({invoice: true});
},
});
}
this.updatePaymentSummary(); this.updatePaymentSummary();
this.line_refocus(); this.line_refocus();
@ -898,15 +940,44 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
back: function() { back: function() {
this.pos_widget.screen_selector.set_current_screen(self.back_screen); this.pos_widget.screen_selector.set_current_screen(self.back_screen);
}, },
validateCurrentOrder: function() { validateCurrentOrder: function(options) {
var self = this;
options = options || {};
var currentOrder = this.pos.get('selectedOrder'); var currentOrder = this.pos.get('selectedOrder');
this.pos.push_order(currentOrder.exportAsJSON())
if(this.pos.iface_print_via_proxy){ if(options.invoice){
this.pos.proxy.print_receipt(currentOrder.export_for_printing()); // deactivate the validation button while we try to send the order
this.pos.get('selectedOrder').destroy(); //finish order and go back to scan screen this.pos_widget.action_bar.set_button_disabled('validation',true);
this.pos_widget.action_bar.set_button_disabled('invoice',true);
var invoiced = this.pos.push_and_invoice_order(currentOrder);
invoiced.fail(function(error){
if(error === 'error-no-client'){
self.pos_widget.screen_selector.show_popup('error-no-client');
}else{
self.pos_widget.screen_selector.show_popup('error-invoice-transfer');
}
self.pos_widget.action_bar.set_button_disabled('validation',false);
self.pos_widget.action_bar.set_button_disabled('invoice',false);
});
invoiced.done(function(){
self.pos_widget.action_bar.set_button_disabled('validation',false);
self.pos_widget.action_bar.set_button_disabled('invoice',false);
self.pos.get('selectedOrder').destroy();
});
}else{ }else{
this.pos_widget.screen_selector.set_current_screen(this.next_screen); this.pos.push_order(currentOrder)
if(this.pos.iface_print_via_proxy){
this.pos.proxy.print_receipt(currentOrder.export_for_printing());
this.pos.get('selectedOrder').destroy(); //finish order and go back to scan screen
}else{
this.pos_widget.screen_selector.set_current_screen(this.next_screen);
}
} }
}, },
bindPaymentLineEvents: function() { bindPaymentLineEvents: function() {
@ -985,6 +1056,7 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
if(this.pos_widget.action_bar){ if(this.pos_widget.action_bar){
this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0.000001); this.pos_widget.action_bar.set_button_disabled('validation', remaining > 0.000001);
this.pos_widget.action_bar.set_button_disabled('invoice', remaining > 0.000001);
} }
}, },
set_numpad_state: function(numpadState) { set_numpad_state: function(numpadState) {

View File

@ -838,6 +838,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
instance.web.blockUI(); instance.web.blockUI();
this.pos = new module.PosModel(this.session); this.pos = new module.PosModel(this.session);
this.pos.pos_widget = this;
this.pos_widget = this; //So that pos_widget's childs have pos_widget set automatically this.pos_widget = this; //So that pos_widget's childs have pos_widget set automatically
this.numpad_visible = true; this.numpad_visible = true;
@ -952,6 +953,12 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
this.error_negative_price_popup = new module.ErrorNegativePricePopupWidget(this, {}); this.error_negative_price_popup = new module.ErrorNegativePricePopupWidget(this, {});
this.error_negative_price_popup.appendTo($('.point-of-sale')); this.error_negative_price_popup.appendTo($('.point-of-sale'));
this.error_no_client_popup = new module.ErrorNoClientPopupWidget(this, {});
this.error_no_client_popup.appendTo($('.point-of-sale'));
this.error_invoice_transfer_popup = new module.ErrorInvoiceTransferPopupWidget(this, {});
this.error_invoice_transfer_popup.appendTo($('.point-of-sale'));
// -------- Misc --------- // -------- Misc ---------
this.notification = new module.SynchNotificationWidget(this,{}); this.notification = new module.SynchNotificationWidget(this,{});
@ -1013,6 +1020,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
'error-session': this.error_session_popup, 'error-session': this.error_session_popup,
'error-negative-price': this.error_negative_price_popup, 'error-negative-price': this.error_negative_price_popup,
'choose-receipt': this.choose_receipt_popup, 'choose-receipt': this.choose_receipt_popup,
'error-no-client': this.error_no_client_popup,
'error-invoice-transfer': this.error_invoice_transfer_popup,
}, },
default_client_screen: 'welcome', default_client_screen: 'welcome',
default_cashier_screen: 'products', default_cashier_screen: 'products',

View File

@ -336,11 +336,11 @@
<div class="modal-dialog"> <div class="modal-dialog">
<div class="popup popup-help"> <div class="popup popup-help">
<p class="message">The scanned product was not recognized<br /> Please wait, a cashier is on the way</p> <p class="message">The scanned product was not recognized<br /> Please wait, a cashier is on the way</p>
</div> <div class="footer">
</div> <div class="button">
<div class="footer"> Ok
<div class="button"> </div>
Ok </div>
</div> </div>
</div> </div>
</t> </t>
@ -361,6 +361,33 @@
</div> </div>
</t> </t>
<t t-name="ErrorNoClientPopupWidget">
<div class="modal-dialog">
<div class="popup popup-help">
<p class="message">An anonymous order cannot be invoiced</p>
<div class="footer">
<div class="button">
Ok
</div>
</div>
</div>
</div>
</t>
<t t-name="ErrorInvoiceTransferPopupWidget">
<div class="modal-dialog">
<div class="popup popup-help">
<p class="message">The Order could not be sent to the server for invoicing. Invoices cannot be generated
in offline mode. Please check your internet connection and try again.</p>
<div class="footer">
<div class="button">
Ok
</div>
</div>
</div>
</div>
</t>
<t t-name="ErrorPopupWidget"> <t t-name="ErrorPopupWidget">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="popup popup-help"> <div class="popup popup-help">
@ -538,7 +565,6 @@
<button class="paypad-button" t-att-cash-register-id="widget.cashRegister.get('id')"> <button class="paypad-button" t-att-cash-register-id="widget.cashRegister.get('id')">
<t t-esc="widget.cashRegister.get('journal').name"/> <t t-esc="widget.cashRegister.get('journal').name"/>
</button> </button>
<br />
</t> </t>
<t t-name="OrderButtonWidget"> <t t-name="OrderButtonWidget">

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n" "POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-07-08 14:09+0000\n" "PO-Revision-Date: 2013-07-14 04:15+0000\n"
"Last-Translator: Alan <shuchuan.wu@gmail.com>\n" "Last-Translator: Alan <shuchuan.wu@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-07-09 05:16+0000\n" "X-Launchpad-Export-Date: 2013-07-15 04:51+0000\n"
"X-Generator: Launchpad (build 16696)\n" "X-Generator: Launchpad (build 16696)\n"
#. module: project #. module: project
@ -458,7 +458,7 @@ msgstr "延期的任务"
#. module: project #. module: project
#: view:project.task:0 #: view:project.task:0
msgid "Delegation" msgid "Delegation"
msgstr "代表" msgstr "任务委派"
#. module: project #. module: project
#: field:project.task,create_date:0 #: field:project.task,create_date:0
@ -636,6 +636,15 @@ msgid ""
" </p>\n" " </p>\n"
" " " "
msgstr "" msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" 创建一个新项目\n"
" </p><p>\n"
" "
"项目是组织活动,计划任务,跟踪问题,记录人力资源成本的组织形式。项目可以分为内部项目(研发活动,加快销售进度),私有项目或者客户参与的项目。\n"
" </p><p>\n"
" 内部用户以项目成员的方式参与到项目中,也可以邀请客户加入到项目中分享项目活动。\n"
" </p>\n"
" "
#. module: project #. module: project
#: view:project.config.settings:0 #: view:project.config.settings:0
@ -647,7 +656,7 @@ msgstr "计划"
#: field:project.task,date_deadline:0 #: field:project.task,date_deadline:0
#: field:report.project.task.user,date_deadline:0 #: field:report.project.task.user,date_deadline:0
msgid "Deadline" msgid "Deadline"
msgstr "最后期限" msgstr "计划完成日期"
#. module: project #. module: project
#: view:project.task.history.cumulative:0 #: view:project.task.history.cumulative:0
@ -1137,7 +1146,7 @@ msgstr "您的文档的状态将自动更改选定的阶段。例如,如果某
#. module: project #. module: project
#: view:project.task:0 #: view:project.task:0
msgid "Extra Info" msgid "Extra Info"
msgstr "额外信息" msgstr "其它信息"
#. module: project #. module: project
#: view:project.task:0 #: view:project.task:0
@ -1479,7 +1488,7 @@ msgstr "总小时数"
#. module: project #. module: project
#: model:ir.model,name:project.model_project_config_settings #: model:ir.model,name:project.model_project_config_settings
msgid "project.config.settings" msgid "project.config.settings"
msgstr "" msgstr "项目配置"
#. module: project #. module: project
#: model:project.task.type,name:project.project_tt_development #: model:project.task.type,name:project.project_tt_development
@ -1717,7 +1726,7 @@ msgstr "文档"
#. module: project #. module: project
#: model:mail.message.subtype,description:project.mt_task_new #: model:mail.message.subtype,description:project.mt_task_new
msgid "Task created" msgid "Task created"
msgstr "" msgstr "任务已创建"
#. module: project #. module: project
#: view:report.project.task.user:0 #: view:report.project.task.user:0
@ -1981,7 +1990,7 @@ msgstr "请删除与此科目关联的项目"
#: model:mail.message.subtype,name:project.mt_project_task_new #: model:mail.message.subtype,name:project.mt_project_task_new
#: model:mail.message.subtype,name:project.mt_task_new #: model:mail.message.subtype,name:project.mt_task_new
msgid "Task Created" msgid "Task Created"
msgstr "" msgstr "任务已创建"
#. module: project #. module: project
#: view:report.project.task.user:0 #: view:report.project.task.user:0
@ -2046,7 +2055,7 @@ msgstr ""
#. module: project #. module: project
#: model:mail.message.subtype,description:project.mt_task_closed #: model:mail.message.subtype,description:project.mt_task_closed
msgid "Task closed" msgid "Task closed"
msgstr "" msgstr "已关闭的任务"
#. module: project #. module: project
#: selection:report.project.task.user,month:0 #: selection:report.project.task.user,month:0

View File

@ -17,7 +17,7 @@ work done. Keep track of everything, from the big picture to the minute
details, from the customer contract to the billing. details, from the customer contract to the billing.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=project" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n" "Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n" "POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-07-07 04:44+0000\n" "PO-Revision-Date: 2013-07-14 03:57+0000\n"
"Last-Translator: Alan <shuchuan.wu@gmail.com>\n" "Last-Translator: Alan <shuchuan.wu@gmail.com>\n"
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" "Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-07-08 05:25+0000\n" "X-Launchpad-Export-Date: 2013-07-15 04:51+0000\n"
"X-Generator: Launchpad (build 16696)\n" "X-Generator: Launchpad (build 16696)\n"
#. module: project_long_term #. module: project_long_term
@ -41,7 +41,7 @@ msgstr "阶段"
#: view:project.phase:0 #: view:project.phase:0
#: view:project.user.allocation:0 #: view:project.user.allocation:0
msgid "Team Planning" msgid "Team Planning"
msgstr "" msgstr "项目团队计划"
#. module: project_long_term #. module: project_long_term
#: field:project.phase,user_ids:0 #: field:project.phase,user_ids:0

View File

@ -17,7 +17,7 @@
Automate procurement propositions, launch request for quotations, track purchase orders, manage suppliers' information, control products reception and check suppliers' invoices. Automate procurement propositions, launch request for quotations, track purchase orders, manage suppliers' information, control products reception and check suppliers' invoices.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=purchase" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@ you need, easily accessible. Keep track of long term contracts, automate invoici
and notify sales when they have things to do. and notify sales when they have things to do.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=sale" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@
Decrease your process times, automate transactions, reduce your stock levels and get complete traceability on all operations with the OpenERP double entry inventory system. Decrease your process times, automate transactions, reduce your stock levels and get complete traceability on all operations with the OpenERP double entry inventory system.
</p> </p>
<div class="oe_centeralign oe_websiteonly"> <div class="oe_centeralign oe_websiteonly">
<a href="http://www.openerp.com/start" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a> <a href="http://www.openerp.com/start?app=stock" class="oe_button oe_big oe_tacky">Start your <span class="oe_emph">free</span> trial</a>
</div> </div>
</div> </div>
</div> </div>