diff --git a/addons/marketing/__openerp__.py b/addons/marketing/__openerp__.py
index 90f6e076cae..0c77fe59a86 100644
--- a/addons/marketing/__openerp__.py
+++ b/addons/marketing/__openerp__.py
@@ -42,7 +42,6 @@ Contains the installer for marketing-related modules.
'demo': ['marketing_demo.xml'],
'installable': True,
'auto_install': False,
- 'certificate': '00598574977629228189',
'images': ['images/config_marketing.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py
index 61d5d2ada29..a51347fd1bb 100644
--- a/addons/marketing_campaign/__openerp__.py
+++ b/addons/marketing_campaign/__openerp__.py
@@ -68,7 +68,6 @@ input segments, workflow.
'test': ['test/marketing_campaign.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '00421723279617928365',
'images': ['images/campaign.png', 'images/campaigns.jpeg','images/email_account.jpeg','images/email_templates.jpeg','images/segments.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing_campaign_crm_demo/__openerp__.py b/addons/marketing_campaign_crm_demo/__openerp__.py
index aae0d72e9d0..9265561bd64 100644
--- a/addons/marketing_campaign_crm_demo/__openerp__.py
+++ b/addons/marketing_campaign_crm_demo/__openerp__.py
@@ -39,7 +39,6 @@ Creates demo data like leads, campaigns and segments for the module marketing_ca
'demo': ['marketing_campaign_demo.xml'],
'installable': True,
'auto_install': False,
- 'certificate': '001005497972871352957',
'images': ['images/campaigns.jpeg','images/email_templates.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/membership/__openerp__.py b/addons/membership/__openerp__.py
index 316a2f0f120..4a0a80694b3 100644
--- a/addons/membership/__openerp__.py
+++ b/addons/membership/__openerp__.py
@@ -51,7 +51,6 @@ invoice and send propositions for membership renewal.
'test': ['test/test_membership.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0042907796381',
'images': ['images/members.jpeg','images/membership_list.jpeg', 'images/membership_products.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index cce5272bd79..73564f2b460 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -84,6 +84,5 @@ Dashboard / Reports for MRP will include:
'installable': True,
'application': True,
'auto_install': False,
- 'certificate': '0032052481373',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index ae29ad324db..94ee4bdb3b2 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -356,7 +356,7 @@ class mrp_bom(osv.osv):
if default is None:
default = {}
bom_data = self.read(cr, uid, id, [], context=context)
- default.update({'name': bom_data['name'] + ' ' + _('Copy'), 'bom_id':False})
+ default.update(name=_("%s (copy)") % (bom_data['name']), bom_id=False)
return super(mrp_bom, self).copy_data(cr, uid, id, default, context=context)
def create(self, cr, uid, vals, context=None):
diff --git a/addons/mrp_jit/__openerp__.py b/addons/mrp_jit/__openerp__.py
index ddd5e3d63fb..9df8ab9908b 100644
--- a/addons/mrp_jit/__openerp__.py
+++ b/addons/mrp_jit/__openerp__.py
@@ -45,6 +45,5 @@ In that case, you can not use priorities any more on the different picking.
'test': ['test/mrp_jit.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0086634760061',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp_operations/__openerp__.py b/addons/mrp_operations/__openerp__.py
index a5bda80f924..97c76f90546 100644
--- a/addons/mrp_operations/__openerp__.py
+++ b/addons/mrp_operations/__openerp__.py
@@ -73,6 +73,5 @@ So, that we can compare the theoretic delay and real delay.
],
'installable': True,
'auto_install': False,
- 'certificate': '0056233813133',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp_repair/__openerp__.py b/addons/mrp_repair/__openerp__.py
index da4070d6210..d522bdc36e8 100644
--- a/addons/mrp_repair/__openerp__.py
+++ b/addons/mrp_repair/__openerp__.py
@@ -59,6 +59,5 @@ The following topics should be covered by this module:
],
'installable': True,
'auto_install': False,
- 'certificate': '0060814381277',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mrp_subproduct/__openerp__.py b/addons/mrp_subproduct/__openerp__.py
index c45584eb1a9..6475cbe4a91 100644
--- a/addons/mrp_subproduct/__openerp__.py
+++ b/addons/mrp_subproduct/__openerp__.py
@@ -50,6 +50,5 @@ With this module:
'test': ['test/mrp_subproduct.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0050060616733',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/multi_company/__openerp__.py b/addons/multi_company/__openerp__.py
index 501740188db..bbaa161ee57 100644
--- a/addons/multi_company/__openerp__.py
+++ b/addons/multi_company/__openerp__.py
@@ -41,7 +41,6 @@ This module is the base module for other multi-company modules.
'demo': ['multi_company_demo.xml'],
'installable': True,
'auto_install': False,
- 'certificate' : '001115526094673097933',
'images': ['images/companies.jpeg','images/default_company_per_object_form.jpeg', 'images/default_company_per_object_list.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/pad/__openerp__.py b/addons/pad/__openerp__.py
index 50b280d2c32..b99e6d828c9 100644
--- a/addons/pad/__openerp__.py
+++ b/addons/pad/__openerp__.py
@@ -18,7 +18,6 @@ pads (by default, http://ietherpad.com/).
'installable': True,
'auto_install': False,
'web': True,
- 'certificate' : '001183545978470526509',
'js': ['static/src/js/pad.js'],
'qweb' : ['static/src/xml/*.xml'],
'images': ['static/src/img/pad_link_companies.jpeg'],
diff --git a/addons/plugin_outlook/__openerp__.py b/addons/plugin_outlook/__openerp__.py
index 3f26399e71f..98a1d70eb9f 100644
--- a/addons/plugin_outlook/__openerp__.py
+++ b/addons/plugin_outlook/__openerp__.py
@@ -40,7 +40,6 @@ into mail.message with attachments.
'data' : ['plugin_outlook.xml'],
'auto_install': False,
'installable': True,
- 'certificate' : '001278773815818292125',
'images': ['images/config_outlook.jpeg','images/outlook_config_openerp.jpeg','images/outlook_push.jpeg'],
}
diff --git a/addons/plugin_thunderbird/__openerp__.py b/addons/plugin_thunderbird/__openerp__.py
index 54e05603e53..56c9d47cd65 100644
--- a/addons/plugin_thunderbird/__openerp__.py
+++ b/addons/plugin_thunderbird/__openerp__.py
@@ -40,6 +40,5 @@ HR Applicant and Project Issue from selected mails.
'data' : ['plugin_thunderbird.xml'],
'auto_install': False,
'installable': True,
- 'certificate' : '00899858104035139949',
'images': ['images/config_thunderbird.jpeg','images/config_thunderbird_plugin.jpeg','images/thunderbird_document.jpeg'],
}
diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml
index 9c92145ed89..d9836527013 100644
--- a/addons/point_of_sale/point_of_sale_view.xml
+++ b/addons/point_of_sale/point_of_sale_view.xml
@@ -863,6 +863,8 @@
diff --git a/addons/product/test/product_pricelist.yml b/addons/product/test/product_pricelist.yml
index 85230261312..66e256d4cd1 100644
--- a/addons/product/test/product_pricelist.yml
+++ b/addons/product/test/product_pricelist.yml
@@ -49,14 +49,14 @@
!python {model: product.product}: |
context.update({'quantity':1, 'date': False, 'partner': ref('base.res_partner_4'), 'pricelist': ref("supplier_pricelist")})
product = self.browse(cr, uid, ref("product_product_6"), context=context)
- assert product.price == 785, "cost price is not correspond."
+ assert product.price == 792, "cost price is not correspond."
-
I check cost price of LCD Monitor if more than 3 Unit.
-
!python {model: product.product}: |
context.update({'quantity':3})
product = self.browse(cr, uid, ref("product_product_6"), context=context)
- assert product.price == 780, "cost price is not correspond."
+ assert product.price == 787, "cost price is not correspond."
-
I print the sale prices report.
diff --git a/addons/product_expiry/__openerp__.py b/addons/product_expiry/__openerp__.py
index b4f66edc482..ae65c9092b3 100644
--- a/addons/product_expiry/__openerp__.py
+++ b/addons/product_expiry/__openerp__.py
@@ -39,7 +39,6 @@ Used, for example, in food industries.""",
'data' : ['product_expiry_view.xml'],
'auto_install': False,
'installable': True,
- 'certificate': '00421222123914960109',
'images': ['images/production_lots_dates.jpeg','images/products_dates.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_manufacturer/__openerp__.py b/addons/product_manufacturer/__openerp__.py
index 8e24f8476f0..f43ed923860 100644
--- a/addons/product_manufacturer/__openerp__.py
+++ b/addons/product_manufacturer/__openerp__.py
@@ -41,7 +41,6 @@ You can now define the following for a product:
],
'auto_install': False,
'installable': True,
- 'certificate': '00720153953662760781',
'images': ['images/products_manufacturer.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_margin/__openerp__.py b/addons/product_margin/__openerp__.py
index 76e4d3964b1..41c2a53474a 100644
--- a/addons/product_margin/__openerp__.py
+++ b/addons/product_margin/__openerp__.py
@@ -41,7 +41,6 @@ The wizard to launch the report has several options to help you get the data you
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate': '0064392591773',
'images': ['images/open_margins.jpeg','images/product_margins_form.jpeg', 'images/product_margins_list.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/product_visible_discount/__openerp__.py b/addons/product_visible_discount/__openerp__.py
index d3c35dfe8b0..09cf5ce61fd 100644
--- a/addons/product_visible_discount/__openerp__.py
+++ b/addons/product_visible_discount/__openerp__.py
@@ -40,7 +40,6 @@ To this end, a new check box named 'Visible Discount' is added to the pricelist
'data': ['product_visible_discount_view.xml'],
'auto_install': False,
'installable': True,
- 'certificate' : '001144718884654279901',
'images': ['images/pricelists_visible_discount.jpeg'],
}
diff --git a/addons/profile_tools/__openerp__.py b/addons/profile_tools/__openerp__.py
index ddd1eba5ca0..17588a4de02 100644
--- a/addons/profile_tools/__openerp__.py
+++ b/addons/profile_tools/__openerp__.py
@@ -38,7 +38,6 @@ modules like share, lunch, pad, idea, survey and subscription.
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate' : '00557100228403879621',
'images': ['images/config_extra_Hidden.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py
index edf0100c8bc..85e33be777a 100644
--- a/addons/project/__openerp__.py
+++ b/addons/project/__openerp__.py
@@ -85,6 +85,5 @@ Dashboard / Reports for Project Management will include:
'application': True,
'css': ['static/src/css/project.css'],
'js': ['static/src/js/project.js'],
- 'certificate': '0075116868317',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/project.py b/addons/project/project.py
index f15656905ca..3572fd094b3 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -323,7 +323,7 @@ class project(osv.osv):
default.pop('alias_id', None)
proj = self.browse(cr, uid, id, context=context)
if not default.get('name', False):
- default['name'] = proj.name + _(' (copy)')
+ default.update(name=_("%s (copy)") % (proj.name))
res = super(project, self).copy(cr, uid, id, default, context)
self.map_tasks(cr,uid,id,res,context)
return res
@@ -344,7 +344,7 @@ class project(osv.osv):
new_date_end = (datetime(*time.strptime(new_date_start,'%Y-%m-%d')[:3])+(end_date-start_date)).strftime('%Y-%m-%d')
context.update({'copy':True})
new_id = self.copy(cr, uid, proj.id, default = {
- 'name': proj.name +_(' (copy)'),
+ 'name':_("%s (copy)") % (proj.name),
'state':'open',
'date_start':new_date_start,
'date':new_date_end,
@@ -694,7 +694,7 @@ class task(base_stage, osv.osv):
if not default.get('name', False):
default['name'] = self.browse(cr, uid, id, context=context).name or ''
if not context.get('copy',False):
- new_name = _("%s (copy)")%default.get('name','')
+ new_name = _("%s (copy)") % (default.get('name', ''))
default.update({'name':new_name})
return super(task, self).copy_data(cr, uid, id, default, context)
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 93d01a5619b..83d3414f74e 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -104,7 +104,7 @@
-
+
diff --git a/addons/project_gtd/__openerp__.py b/addons/project_gtd/__openerp__.py
index ae1d5ee909c..eb05cdfa848 100644
--- a/addons/project_gtd/__openerp__.py
+++ b/addons/project_gtd/__openerp__.py
@@ -53,6 +53,5 @@ GTD rests on the principle that a person needs to move tasks out of the mind by
'installable': True,
'application': True,
'auto_install': False,
- 'certificate': '0043525236301',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index 1c4006329a9..f35ca0251d3 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -61,7 +61,6 @@ It allows the manager to quickly check the issues, assign them and decide on the
'installable': True,
'auto_install': False,
'application': True,
- 'certificate': '001236490750848623845',
'js': ['static/src/js/project_issue.js'],
}
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 6121acbd607..f39be0c09d5 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -355,7 +355,7 @@ class project_issue(base_stage, osv.osv):
if not default:
default = {}
default = default.copy()
- default['name'] = issue['name'] + _(' (copy)')
+ default.update(name=_('%s (copy)') % (issue['name']))
return super(project_issue, self).copy(cr, uid, id, default=default,
context=context)
@@ -534,7 +534,7 @@ class project(osv.osv):
def _get_alias_models(self, cr, uid, context=None):
return [('project.task', "Tasks"), ("project.issue", "Issues")]
-
+
def _issue_count(self, cr, uid, ids, field_name, arg, context=None):
res = dict.fromkeys(ids, 0)
issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)])
@@ -557,7 +557,7 @@ class project(osv.osv):
_constraints = [
(_check_escalation, 'Error! You cannot assign escalation to the same project!', ['project_escalation_id'])
]
-
+
project()
class account_analytic_account(osv.osv):
diff --git a/addons/project_issue_sheet/__openerp__.py b/addons/project_issue_sheet/__openerp__.py
index e12bc1a14cd..3eac04133d4 100644
--- a/addons/project_issue_sheet/__openerp__.py
+++ b/addons/project_issue_sheet/__openerp__.py
@@ -44,7 +44,6 @@ Worklogs can be maintained to signify number of hours spent by users to handle a
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate' : '00856032058128997037',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index 2968a5b035d..3a3307d2898 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -58,7 +58,6 @@ Features:
],
'installable': True,
'auto_install': False,
- 'certificate': '001227470751077315069',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py
index 2eab5fa6ac6..5b88d5209c8 100644
--- a/addons/project_long_term/project_long_term.py
+++ b/addons/project_long_term/project_long_term.py
@@ -138,7 +138,7 @@ class project_phase(osv.osv):
if default is None:
default = {}
if not default.get('name', False):
- default['name'] = self.browse(cr, uid, id, context=context).name + _(' (copy)')
+ default.update(name=_('%s (copy)') % (self.browse(cr, uid, id, context=context).name))
return super(project_phase, self).copy(cr, uid, id, default, context)
def set_draft(self, cr, uid, ids, *args):
@@ -227,7 +227,7 @@ class project(osv.osv):
'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"),
'phase_count': fields.function(_phase_count, type='integer', string="Open Phases"),
}
-
+
def schedule_phases(self, cr, uid, ids, context=None):
context = context or {}
if type(ids) in (long, int,):
@@ -250,7 +250,7 @@ class project(osv.osv):
# Maybe it's better to update than unlink/create if it already exists ?
p = getattr(project_gantt, 'Phase_%d' % (phase.id,))
- self.pool.get('project.user.allocation').unlink(cr, uid,
+ self.pool.get('project.user.allocation').unlink(cr, uid,
[x.id for x in phase.user_ids],
context=context
)
diff --git a/addons/project_mrp/__openerp__.py b/addons/project_mrp/__openerp__.py
index dd20c1c9c1e..91212b92c1d 100644
--- a/addons/project_mrp/__openerp__.py
+++ b/addons/project_mrp/__openerp__.py
@@ -55,6 +55,5 @@ task is completed.
'test': ['test/project_task_procurement.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0031976495453',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_retro_planning/__openerp__.py b/addons/project_retro_planning/__openerp__.py
index e3e7a444676..4fc0dc41a75 100644
--- a/addons/project_retro_planning/__openerp__.py
+++ b/addons/project_retro_planning/__openerp__.py
@@ -37,6 +37,5 @@ the tasks will change accordingly.
'test': ['test/deadline_change.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0057235475485',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_timesheet/__openerp__.py b/addons/project_timesheet/__openerp__.py
index 805556c1a96..0651d7b9ce4 100644
--- a/addons/project_timesheet/__openerp__.py
+++ b/addons/project_timesheet/__openerp__.py
@@ -49,6 +49,5 @@ with the effect of creating, editing and deleting either ways.
],
'installable': True,
'auto_install': True,
- 'certificate': '0075123647453',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/__openerp__.py b/addons/purchase/__openerp__.py
index 38706d96670..a7c66344f4a 100644
--- a/addons/purchase/__openerp__.py
+++ b/addons/purchase/__openerp__.py
@@ -84,7 +84,6 @@ Dashboard / Reports for Purchase Management will include:
],
'installable': True,
'auto_install': False,
- 'certificate': '0057234283549',
'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index 955d55b3825..d2060016866 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -179,7 +179,7 @@ class purchase_order(osv.osv):
'shipped_rate': fields.function(_shipped_rate, string='Received', type='float'),
'invoiced': fields.function(_invoiced, string='Invoice Received', type='boolean', help="It indicates that an invoice has been paid"),
'invoiced_rate': fields.function(_invoiced_rate, string='Invoiced', type='float'),
- 'invoice_method': fields.selection([('manual','Based on Purchase Order lines'),('order','Based on generated draft invoice'),('picking','Bases on incoming shipments')], 'Invoicing Control', required=True,
+ 'invoice_method': fields.selection([('manual','Based on Purchase Order lines'),('order','Based on generated draft invoice'),('picking','Based on incoming shipments')], 'Invoicing Control', required=True,
help="Based on Purchase Order lines: place individual lines in 'Invoice Control > Based on P.O. lines' from where you can selectively create an invoice.\n" \
"Based on generated invoice: create a draft invoice you can validate later.\n" \
"Bases on incoming shipments: let you create an invoice when receptions are validated."
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 759c0561631..7702d182b09 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -367,7 +367,7 @@
Quotations
ir.actions.act_window
purchase.order
- {}
+ {'search_default_draft': 1, 'search_default_to_approve': 1}
[('state','in',('draft','sent','confirmed'))]
tree,form,graph,calendar
diff --git a/addons/purchase/report/request_quotation.rml b/addons/purchase/report/request_quotation.rml
index 9d23e97b385..dc222a42398 100644
--- a/addons/purchase/report/request_quotation.rml
+++ b/addons/purchase/report/request_quotation.rml
@@ -2,7 +2,7 @@
-
+
diff --git a/addons/purchase_analytic_plans/__openerp__.py b/addons/purchase_analytic_plans/__openerp__.py
index 801551c7a07..98a1ee2a704 100644
--- a/addons/purchase_analytic_plans/__openerp__.py
+++ b/addons/purchase_analytic_plans/__openerp__.py
@@ -39,6 +39,5 @@ on a supplier purchase order into several accounts and analytic plans.
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate': '0062176518909',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml
index d224b9800f7..6feb6d27bf2 100644
--- a/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml
+++ b/addons/purchase_analytic_plans/purchase_analytic_plans_view.xml
@@ -13,5 +13,30 @@
+
+ purchase.order.form.analytic.inherit
+ purchase.order
+
+
+
+
+
+
+
+
+
+
+ purchase.order.form.editable.list
+ purchase.order
+
+
+
+
+
+
+
+
+
diff --git a/addons/purchase_double_validation/__openerp__.py b/addons/purchase_double_validation/__openerp__.py
index d05870ca951..8c56f2af9ed 100644
--- a/addons/purchase_double_validation/__openerp__.py
+++ b/addons/purchase_double_validation/__openerp__.py
@@ -46,9 +46,7 @@ exceeds minimum amount set by configuration wizard.
],
'demo': [],
'installable': True,
- 'auto_install': False,
- 'certificate' : '00436592682510544157',
-
+ 'auto_install': False
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase_double_validation/board_purchase_view.xml b/addons/purchase_double_validation/board_purchase_view.xml
index 0557963fcb1..c2cc4df88b8 100644
--- a/addons/purchase_double_validation/board_purchase_view.xml
+++ b/addons/purchase_double_validation/board_purchase_view.xml
@@ -3,7 +3,7 @@
- Purchase Order Waiting Approval
+ Purchase Orders Waiting Approval
ir.actions.act_window
purchase.order
form
@@ -17,7 +17,7 @@
-
+
diff --git a/addons/purchase_requisition/__openerp__.py b/addons/purchase_requisition/__openerp__.py
index f2492b207c0..2ba0ad95e09 100644
--- a/addons/purchase_requisition/__openerp__.py
+++ b/addons/purchase_requisition/__openerp__.py
@@ -32,7 +32,7 @@ When a purchase order is created, you now have the opportunity to save the
related requisition. This new object will regroup and will allow you to easily
keep track and order all your purchase orders.
""",
- 'depends' : ['purchase','mrp'],
+ 'depends' : ['purchase'],
'demo': ['purchase_requisition_demo.xml'],
'data': ['security/purchase_tender.xml',
'wizard/purchase_requisition_partner_view.xml',
@@ -48,7 +48,6 @@ keep track and order all your purchase orders.
'test/cancel_purchase_requisition.yml',
],
'installable': True,
- 'certificate': '001023264099823179629',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_designer/__openerp__.py b/addons/report_designer/__openerp__.py
index 3a2b9e95ea5..2bfba48b204 100644
--- a/addons/report_designer/__openerp__.py
+++ b/addons/report_designer/__openerp__.py
@@ -38,7 +38,6 @@ modules like base_report_designer and base_report_creator.
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate' : '00764037194670093149',
'images': ['images/config_reporting_Hidden.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_intrastat/__openerp__.py b/addons/report_intrastat/__openerp__.py
index aa4fa31a0b0..0fa57977db1 100644
--- a/addons/report_intrastat/__openerp__.py
+++ b/addons/report_intrastat/__openerp__.py
@@ -43,7 +43,6 @@ European Union.""",
'test': ['test/report_intrastat_report.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0056982189085',
'images': ['images/country_intrastat_code.jpeg','images/intrastat_code.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_webkit/__openerp__.py b/addons/report_webkit/__openerp__.py
index 28ad16b63d4..5b88cb78eb4 100644
--- a/addons/report_webkit/__openerp__.py
+++ b/addons/report_webkit/__openerp__.py
@@ -91,7 +91,6 @@ TODO:
],
'installable': True,
'auto_install': False,
- 'certificate': '001159699313338995949',
'images': ['images/companies_webkit.jpeg','images/header_html.jpeg','images/header_img.jpeg'],
}
diff --git a/addons/report_webkit_sample/__openerp__.py b/addons/report_webkit_sample/__openerp__.py
index d10c336609e..7ea85759732 100644
--- a/addons/report_webkit_sample/__openerp__.py
+++ b/addons/report_webkit_sample/__openerp__.py
@@ -49,7 +49,6 @@ You have to create the print buttons by calling the wizard. For more details see
'data': ['report_webkit_html_view.xml'],
'installable': True,
'auto_install': False,
- 'certificate': '00436592682591421981',
'images': ['images/webkit_invoice_report.jpeg'],
}
diff --git a/addons/resource/__openerp__.py b/addons/resource/__openerp__.py
index 94c55105c2a..b8a9f57c910 100644
--- a/addons/resource/__openerp__.py
+++ b/addons/resource/__openerp__.py
@@ -47,7 +47,6 @@ associated to every resource. It also manages the leaves of every resource.
],
'installable': True,
'auto_install': False,
- 'certificate': '00746371192190459469',
'images': ['images/resource_leaves_calendar.jpeg','images/resource_leaves_form.jpeg'],
}
diff --git a/addons/resource/resource.py b/addons/resource/resource.py
index 354e9c5b27c..ed21eea85cc 100644
--- a/addons/resource/resource.py
+++ b/addons/resource/resource.py
@@ -45,24 +45,24 @@ class resource_calendar(osv.osv):
def working_hours_on_day(self, cr, uid, resource_calendar_id, day, context=None):
"""Calculates the Working Total Hours based on Resource Calendar and
given working day (datetime object).
-
+
@param resource_calendar_id: resource.calendar browse record
@param day: datetime object
-
+
@return: returns the working hours (as float) men should work on the given day if is in the attendance_ids of the resource_calendar_id (i.e if that day is a working day), returns 0.0 otherwise
"""
res = 0.0
for working_day in resource_calendar_id.attendance_ids:
if (int(working_day.dayofweek) + 1) == day.isoweekday():
res += working_day.hour_to - working_day.hour_from
- return res
+ return res
def _get_leaves(self, cr, uid, id, resource):
- """Private Method to Calculate resource Leaves days
-
+ """Private Method to Calculate resource Leaves days
+
@param id: resource calendar id
- @param resource: resource id for which leaves will ew calculated
-
+ @param resource: resource id for which leaves will ew calculated
+
@return : returns the list of dates, where resource on leave in
resource.calendar.leaves object (e.g.['%Y-%m-%d', '%Y-%m-%d'])
"""
@@ -85,9 +85,9 @@ class resource_calendar(osv.osv):
"""
Calculates the working Schedule from supplied from date to till hours
will be satisfied based or resource calendar id. If resource is also
- given then it will consider the resource leave also and than will
+ given then it will consider the resource leave also and than will
calculates resource working schedule
-
+
@param dt_from: datetime object, start of working scheduled
@param hours: float, total number working hours needed scheduled from
start date
@@ -187,29 +187,29 @@ class resource_calendar(osv.osv):
def interval_get(self, cr, uid, id, dt_from, hours, resource=False, byday=True):
"""Calculates Resource Working Internal Timing Based on Resource Calendar.
-
+
@param dt_from: start resource schedule calculation.
@param hours : total number of working hours to be scheduled.
- @param resource: optional resource id, If supplied it will take care of
+ @param resource: optional resource id, If supplied it will take care of
resource leave while scheduling.
@param byday: boolean flag bit enforce day wise scheduling
-
+
@return : list of scheduled working timing based on resource calendar.
"""
res = self.interval_get_multi(cr, uid, [(dt_from.strftime('%Y-%m-%d %H:%M:%S'), hours, id)], resource, byday)[(dt_from.strftime('%Y-%m-%d %H:%M:%S'), hours, id)]
return res
def interval_hours_get(self, cr, uid, id, dt_from, dt_to, resource=False):
- """ Calculates the Total Working hours based on given start_date to
- end_date, If resource id is supplied that it will consider the source
+ """ Calculates the Total Working hours based on given start_date to
+ end_date, If resource id is supplied that it will consider the source
leaves also in calculating the hours.
-
+
@param dt_from : date start to calculate hours
@param dt_end : date end to calculate hours
@param resource: optional resource id, If given resource leave will be
- considered.
-
- @return : Total number of working hours based dt_from and dt_end and
+ considered.
+
+ @return : Total number of working hours based dt_from and dt_end and
resource if supplied.
"""
if not id:
@@ -257,7 +257,7 @@ resource_calendar()
class resource_calendar_attendance(osv.osv):
_name = "resource.calendar.attendance"
_description = "Work Detail"
-
+
_columns = {
'name' : fields.char("Name", size=64, required=True),
'dayofweek': fields.selection([('0','Monday'),('1','Tuesday'),('2','Wednesday'),('3','Thursday'),('4','Friday'),('5','Saturday'),('6','Sunday')], 'Day of Week', required=True, select=True),
@@ -266,9 +266,9 @@ class resource_calendar_attendance(osv.osv):
'hour_to' : fields.float("Work to", required=True),
'calendar_id' : fields.many2one("resource.calendar", "Resource's Calendar", required=True),
}
-
+
_order = 'dayofweek, hour_from'
-
+
_defaults = {
'dayofweek' : '0'
}
@@ -302,12 +302,12 @@ class resource_resource(osv.osv):
'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.resource', context=context)
}
-
+
def copy(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
if not default.get('name', False):
- default['name'] = self.browse(cr, uid, id, context=context).name + _(' (copy)')
+ default.update(name=_('%s (copy)') % (self.browse(cr, uid, id, context=context).name))
return super(resource_resource, self).copy(cr, uid, id, default, context)
def generate_resources(self, cr, uid, user_ids, calendar_id, context=None):
@@ -368,7 +368,7 @@ class resource_resource(osv.osv):
"""
if not calendar_id:
# Calendar is not specified: working days: 24/7
- return [('fri', '8:0-12:0','13:0-17:0'), ('thu', '8:0-12:0','13:0-17:0'), ('wed', '8:0-12:0','13:0-17:0'),
+ return [('fri', '8:0-12:0','13:0-17:0'), ('thu', '8:0-12:0','13:0-17:0'), ('wed', '8:0-12:0','13:0-17:0'),
('mon', '8:0-12:0','13:0-17:0'), ('tue', '8:0-12:0','13:0-17:0')]
resource_attendance_pool = self.pool.get('resource.calendar.attendance')
time_range = "8:00-8:00"
diff --git a/addons/sale/__openerp__.py b/addons/sale/__openerp__.py
index 13f0fb53696..d76ea064c2c 100644
--- a/addons/sale/__openerp__.py
+++ b/addons/sale/__openerp__.py
@@ -88,6 +88,5 @@ The Dashboard for the Sales Manager will include
'installable': True,
'auto_install': False,
'application': True,
- 'certificate': '0058103601429',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_analytic_plans/__openerp__.py b/addons/sale_analytic_plans/__openerp__.py
index df33feae578..5f4d980a339 100644
--- a/addons/sale_analytic_plans/__openerp__.py
+++ b/addons/sale_analytic_plans/__openerp__.py
@@ -37,6 +37,5 @@ Using this module you will be able to link analytic accounts to sales orders.
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate': '0066055860861',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_crm/__openerp__.py b/addons/sale_crm/__openerp__.py
index 4846b61f624..88608af8922 100644
--- a/addons/sale_crm/__openerp__.py
+++ b/addons/sale_crm/__openerp__.py
@@ -49,6 +49,5 @@ modules.
'test': ['test/sale_crm.yml'],
'installable': True,
'auto_install': True,
- 'certificate': '0064360130141',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_journal/__openerp__.py b/addons/sale_journal/__openerp__.py
index 9ca3858f817..30a6a281c49 100644
--- a/addons/sale_journal/__openerp__.py
+++ b/addons/sale_journal/__openerp__.py
@@ -61,6 +61,5 @@ Some statistics by journals are provided.
'test': [ ],
'installable': True,
'auto_install': False,
- 'certificate': '0077661619085',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_margin/__openerp__.py b/addons/sale_margin/__openerp__.py
index 6cacdcda7b4..9b393b6c5ad 100644
--- a/addons/sale_margin/__openerp__.py
+++ b/addons/sale_margin/__openerp__.py
@@ -37,7 +37,6 @@ Price and Cost Price.
'data':['security/ir.model.access.csv','sale_margin_view.xml'],
'auto_install': False,
'installable': True,
- 'certificate' : '001165700015525701661',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_mrp/__openerp__.py b/addons/sale_mrp/__openerp__.py
index c93fdcc91fd..bc9b84cd471 100644
--- a/addons/sale_mrp/__openerp__.py
+++ b/addons/sale_mrp/__openerp__.py
@@ -43,6 +43,5 @@ from sales order. It adds sales name and sales Reference on production order.
'test':['test/sale_mrp.yml'],
'installable': True,
'auto_install': True,
- 'certificate': '00395598976683092013',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_order_dates/__openerp__.py b/addons/sale_order_dates/__openerp__.py
index 7c3360f3547..6db8f2b27d9 100644
--- a/addons/sale_order_dates/__openerp__.py
+++ b/addons/sale_order_dates/__openerp__.py
@@ -43,7 +43,6 @@ You can add the following additional dates to a sale order:
'test': [],
'installable': True,
'auto_install': False,
- 'certificate' : '00867497685972962845',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/share/__openerp__.py b/addons/share/__openerp__.py
index 87a2f68bb04..94eccba2a56 100644
--- a/addons/share/__openerp__.py
+++ b/addons/share/__openerp__.py
@@ -50,7 +50,6 @@ synchronization with other companies.
],
'installable': True,
'web': True,
- 'certificate' : '001301246528927038493',
'js': ['static/src/js/share.js'],
'css': ['static/src/css/share.css'],
'qweb' : ['static/src/xml/*.xml'],
diff --git a/addons/stock/__openerp__.py b/addons/stock/__openerp__.py
index b7d9ec1ceb9..966186121b6 100644
--- a/addons/stock/__openerp__.py
+++ b/addons/stock/__openerp__.py
@@ -98,7 +98,6 @@ Dashboard / Reports for Warehouse Management will include:
'installable': True,
'application': True,
'auto_install': False,
- 'certificate': '0055421559965',
'css': [ 'static/src/css/stock.css' ],
}
diff --git a/addons/stock/i18n/nl.po b/addons/stock/i18n/nl.po
index 04c3875df25..e74b8c680eb 100644
--- a/addons/stock/i18n/nl.po
+++ b/addons/stock/i18n/nl.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
-"PO-Revision-Date: 2012-05-10 17:48+0000\n"
-"Last-Translator: Raphael Collet (OpenERP) \n"
+"PO-Revision-Date: 2012-09-24 13:55+0000\n"
+"Last-Translator: Erwin \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-08-28 05:56+0000\n"
-"X-Generator: Launchpad (build 15864)\n"
+"X-Launchpad-Export-Date: 2012-09-25 04:44+0000\n"
+"X-Generator: Launchpad (build 16019)\n"
#. module: stock
#: field:product.product,track_outgoing:0
@@ -1179,7 +1179,7 @@ msgstr "Auteur"
#: code:addons/stock/stock.py:1332
#, python-format
msgid "Delivery Order"
-msgstr "Leveringsbon"
+msgstr "Uitgaande levering"
#. module: stock
#: selection:stock.location,chained_auto_packing:0
@@ -1791,7 +1791,7 @@ msgstr "Voorraadwaarde rekening (inkomend)"
#. module: stock
#: model:stock.location,name:stock.stock_location_14
msgid "Shelf 2"
-msgstr "Schap 2"
+msgstr "Plank 2"
#. module: stock
#: field:stock.report.tracklots,tracking_id:0
diff --git a/addons/stock/res_config.py b/addons/stock/res_config.py
index 888488dc586..a4094cb9afc 100644
--- a/addons/stock/res_config.py
+++ b/addons/stock/res_config.py
@@ -46,7 +46,7 @@ class stock_config_settings(osv.osv_memory):
manage product manufacturing chains, manage default locations per product,
define routes within your warehouse according to business needs, etc.
This installs the module stock_location."""),
- 'group_uom': fields.boolean("Manage different units of measure per products",
+ 'group_uom': fields.boolean("Manage different units of measure for products",
implied_group='product.group_uom',
help="""Allows you to select and maintain different units of measure for products."""),
'group_uos': fields.boolean("Invoice products in a different unit of measure than the sale order",
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 329159494d3..efd596684cb 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -709,6 +709,15 @@ class stock_picking(osv.osv):
for move in picking_obj.move_lines:
move_obj.write(cr, uid, [move.id], {'tracking_id': False,'prodlot_id':False, 'move_history_ids2': [(6, 0, [])], 'move_history_ids': [(6, 0, [])]})
return res
+
+ def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
+ if view_type == 'form' and not view_id:
+ mod_obj = self.pool.get('ir.model.data')
+ if self._name == "stock.picking.in":
+ model,view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_in_form')
+ if self._name == "stock.picking.out":
+ model,view_id = mod_obj.get_object_reference(cr, uid, 'stock', 'view_picking_out_form')
+ return super(stock_picking,self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar, submenu=submenu)
def onchange_partner_in(self, cr, uid, context=None, partner_id=None):
return {}
@@ -720,14 +729,16 @@ class stock_picking(osv.osv):
""" Confirms picking.
@return: True
"""
+ pickings = self.browse(cr, uid, ids, context=context)
+ for picking in pickings:
+ if picking.state <> 'confirmed':
+ self.confirm_send_note(cr, uid, [picking.id], context=context)
self.write(cr, uid, ids, {'state': 'confirmed'})
todo = []
- for picking in self.browse(cr, uid, ids, context=context):
+ for picking in pickings:
for r in picking.move_lines:
if r.state == 'draft':
todo.append(r.id)
-
-
todo = self.action_explode(cr, uid, todo, context)
if len(todo):
self.pool.get('stock.move').action_confirm(cr, uid, todo, context=context)
@@ -1161,8 +1172,9 @@ class stock_picking(osv.osv):
return True
for move in pick.move_lines:
if move.state == 'done':
- raise osv.except_osv(_('Error!'), _('You cannot cancel picking because stock move is in done state!'))
+ raise osv.except_osv(_('Error!'), _('You cannot cancel the picking as some moves have been done. You should cancel the picking lines.'))
return True
+
def unlink(self, cr, uid, ids, context=None):
move_obj = self.pool.get('stock.move')
if context is None:
@@ -1376,17 +1388,21 @@ class stock_picking(osv.osv):
# OpenChatter methods and notifications
# -----------------------------------------
- def _get_document_type(self, type):
+ def _get_document_type(self, cr, uid, obj, context=None):
type_dict = {
- 'out': 'Delivery order',
- 'in': 'Shipment',
- 'internal': 'Internal picking',
+ 'out': _('Delivery order'),
+ 'in': _('Shipment'),
+ 'internal': _('Internal picking'),
}
- return type_dict.get(type, 'Stock picking')
+ return type_dict.get(obj.type, _('Picking'))
def create_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
- self.message_post(cr, uid, [obj.id], body=_("%s has been created .") % (self._get_document_type(obj.type)), context=context)
+ self.message_post(cr, uid, [obj.id], body=_("%s has been created .") % (self._get_document_type(cr, uid, obj, context=context)), context=context)
+
+ def confirm_send_note(self, cr, uid, ids, context=None):
+ for obj in self.browse(cr, uid, ids, context=context):
+ self.message_post(cr, uid, [obj.id], body=_("%s has been confirmed .") % (self._get_document_type(cr, uid, obj, context=context)), context=context)
def scrap_send_note(self, cr, uid, ids, quantity, uom, name, context=None):
return self.message_post(cr, uid, ids, body= _("%s %s %s has been moved to scrap.") % (quantity, uom, name), context=context)
@@ -1396,16 +1412,16 @@ class stock_picking(osv.osv):
def ship_done_send_note(self, cr, uid, ids, context=None):
type_dict = {
- 'out': 'delivered',
- 'in': 'received',
- 'internal': 'moved',
+ 'out': _("Products have been delivered ."),
+ 'in': _("Products have been received ."),
+ 'internal': _("Products have been moved ."),
}
for obj in self.browse(cr, uid, ids, context=context):
- self.message_post(cr, uid, [obj.id], body=_("Products have been %s .") % (type_dict.get(obj.type, 'move done')), context=context)
+ self.message_post(cr, uid, [obj.id], body=type_dict.get(obj.type, _('Products have been moved.')), context=context)
def ship_cancel_send_note(self, cr, uid, ids, context=None):
for obj in self.browse(cr, uid, ids, context=context):
- self.message_post(cr, uid, [obj.id], body=_("%s has been cancelled .") % (self._get_document_type(obj.type)), context=context)
+ self.message_post(cr, uid, [obj.id], body=_("%s has been cancelled .") % (self._get_document_type(cr, uid, obj, context=context)), context=context)
stock_picking()
@@ -1492,7 +1508,7 @@ class stock_production_lot(osv.osv):
'product_id': fields.many2one('product.product', 'Product', required=True, domain=[('type', '<>', 'service')]),
'date': fields.datetime('Creation Date', required=True),
'stock_available': fields.function(_get_stock, fnct_search=_stock_search, type="float", string="Available", select=True,
- help="Current quantity of products with this Production Lot Number available in company warehouses",
+ help="Current quantity of products with this Serial Number available in company warehouses",
digits_compute=dp.get_precision('Product Unit of Measure')),
'revisions': fields.one2many('stock.production.lot.revision', 'lot_id', 'Revisions'),
'company_id': fields.many2one('res.company', 'Company', select=True),
@@ -1830,8 +1846,8 @@ class stock_move(osv.osv):
warning = {}
if (location.usage == 'internal') and (product_qty > (amount_actual or 0.0)):
warning = {
- 'title': _('Insufficient Stock in Lot !'),
- 'message': _('You are moving %.2f %s products but only %.2f %s available in this lot.') % (product_qty, uom.name, amount_actual, uom.name)
+ 'title': _('Insufficient Stock for Serial Number !'),
+ 'message': _('You are moving %.2f %s but only %.2f %s available for this serial number.') % (product_qty, uom.name, amount_actual, uom.name)
}
return {'warning': warning}
@@ -2300,7 +2316,11 @@ class stock_move(osv.osv):
or move.location_id.company_id != move.location_dest_id.company_id):
journal_id, acc_src, acc_dest, acc_valuation = self._get_accounting_data_for_valuation(cr, uid, move, src_company_ctx)
reference_amount, reference_currency_id = self._get_reference_accounting_values_for_valuation(cr, uid, move, src_company_ctx)
- account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_valuation, acc_dest, reference_amount, reference_currency_id, context))]
+ #returning goods to supplier
+ if move.location_dest_id.usage == 'supplier':
+ account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_valuation, acc_src, reference_amount, reference_currency_id, context))]
+ else:
+ account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_valuation, acc_dest, reference_amount, reference_currency_id, context))]
# Incoming moves (or cross-company input part)
if move.location_dest_id.company_id \
@@ -2308,7 +2328,11 @@ class stock_move(osv.osv):
or move.location_id.company_id != move.location_dest_id.company_id):
journal_id, acc_src, acc_dest, acc_valuation = self._get_accounting_data_for_valuation(cr, uid, move, dest_company_ctx)
reference_amount, reference_currency_id = self._get_reference_accounting_values_for_valuation(cr, uid, move, src_company_ctx)
- account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_src, acc_valuation, reference_amount, reference_currency_id, context))]
+ #goods return from customer
+ if move.location_id.usage == 'customer':
+ account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_dest, acc_valuation, reference_amount, reference_currency_id, context))]
+ else:
+ account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_src, acc_valuation, reference_amount, reference_currency_id, context))]
move_obj = self.pool.get('account.move')
for j_id, move_lines in account_moves:
@@ -2942,6 +2966,7 @@ class stock_picking_in(osv.osv):
return self.pool.get('stock.picking')._workflow_signal(cr, uid, ids, signal, context=context)
_columns = {
+ 'backorder_id': fields.many2one('stock.picking.in', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
'state': fields.selection(
[('draft', 'Draft'),
('auto', 'Waiting Another Operation'),
@@ -2986,6 +3011,7 @@ class stock_picking_out(osv.osv):
return self.pool.get('stock.picking')._workflow_signal(cr, uid, ids, signal, context=context)
_columns = {
+ 'backorder_id': fields.many2one('stock.picking.out', 'Back Order of', states={'done':[('readonly', True)], 'cancel':[('readonly',True)]}, help="If this shipment was split, then this field links to the shipment which contains the already processed part.", select=True),
'state': fields.selection(
[('draft', 'Draft'),
('auto', 'Waiting Another Operation'),
diff --git a/addons/stock/wizard/stock_invoice_onshipping_view.xml b/addons/stock/wizard/stock_invoice_onshipping_view.xml
index 10d748624fc..a65afb377b3 100644
--- a/addons/stock/wizard/stock_invoice_onshipping_view.xml
+++ b/addons/stock/wizard/stock_invoice_onshipping_view.xml
@@ -21,7 +21,7 @@
-
+
+
diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml
index 3df336b5e30..5dc0d0d824c 100644
--- a/addons/stock/wizard/stock_move_view.xml
+++ b/addons/stock/wizard/stock_move_view.xml
@@ -109,7 +109,9 @@
diff --git a/addons/stock_invoice_directly/__openerp__.py b/addons/stock_invoice_directly/__openerp__.py
index 57b4f8e38bb..d6f8472a8c6 100644
--- a/addons/stock_invoice_directly/__openerp__.py
+++ b/addons/stock_invoice_directly/__openerp__.py
@@ -40,6 +40,5 @@ wizard if the delivery is to be invoiced.
'test': ['test/stock_invoice_directly.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0081385081261',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock_location/__openerp__.py b/addons/stock_location/__openerp__.py
index 8cc1790e7de..9d5386863e6 100644
--- a/addons/stock_location/__openerp__.py
+++ b/addons/stock_location/__openerp__.py
@@ -107,7 +107,6 @@ You can use the demo data as follow:
'test/stock_location_push_flow.yml',
],
'auto_install': False,
- 'certificate': '0046505115101',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock_no_autopicking/__openerp__.py b/addons/stock_no_autopicking/__openerp__.py
index d8fbb44d8bf..daae84252ad 100644
--- a/addons/stock_no_autopicking/__openerp__.py
+++ b/addons/stock_no_autopicking/__openerp__.py
@@ -41,6 +41,5 @@ routing of the assembly operation.
'test': ['test/stock_no_autopicking.yml'],
'installable': True,
'auto_install': False,
- 'certificate': '0075124168925',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/stock_planning/__openerp__.py b/addons/stock_planning/__openerp__.py
index 7e38019e3f3..ff626c63679 100644
--- a/addons/stock_planning/__openerp__.py
+++ b/addons/stock_planning/__openerp__.py
@@ -243,7 +243,6 @@ Remarks:
'test': ['test/stock_planning.yml'],
'auto_install': False,
'installable': True,
- 'certificate' : '00872589676639788061',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/subscription/__openerp__.py b/addons/subscription/__openerp__.py
index d644daa15e6..416c691f043 100644
--- a/addons/subscription/__openerp__.py
+++ b/addons/subscription/__openerp__.py
@@ -42,7 +42,6 @@ e.g. To have an invoice generated automatically periodically:
'demo': ['subscription_demo.xml',],
'installable': True,
'auto_install': False,
- 'certificate': '0029454782573',
'images': ['images/subscription_document_fields.jpeg','images/subscriptions.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/survey/__openerp__.py b/addons/survey/__openerp__.py
index 40eb3073d61..acd76ba9a6b 100644
--- a/addons/survey/__openerp__.py
+++ b/addons/survey/__openerp__.py
@@ -58,7 +58,6 @@ user name and password for the invitation of the survey.
],
'installable': True,
'auto_install': False,
- 'certificate' : '001131639736864143245',
'images': ['images/survey_answers.jpeg','images/survey_pages.jpeg','images/surveys.jpeg'],
'css': ['static/src/css/survey.css','static/css/survey.css'],
}
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 0239f8bf32f..2426ae5eeed 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -94,7 +94,7 @@ class survey(osv.osv):
def copy(self, cr, uid, ids, default=None, context=None):
vals = {}
current_rec = self.read(cr, uid, ids, context=context)
- title = current_rec.get('title') + ' (Copy)'
+ title = _("%s (copy)") % (current_rec.get('title'))
vals.update({'title':title})
vals.update({'history':[],'tot_start_survey':0,'tot_comp_survey':0})
return super(survey, self).copy(cr, uid, ids, vals, context=context)
@@ -143,7 +143,7 @@ class survey(osv.osv):
'nodestroy':True,
}
return report
-
+
def fill_survey(self, cr, uid, ids, context=None):
sur_obj = self.read(cr, uid, ids,['title'], context=context)
for sur in sur_obj:
@@ -232,7 +232,7 @@ class survey_page(osv.osv):
def copy(self, cr, uid, ids, default=None, context=None):
vals = {}
current_rec = self.read(cr, uid, ids, context=context)
- title = current_rec.get('title') + ' (Copy)'
+ title = _("%s (copy)") % (current_rec.get('title'))
vals.update({'title':title})
return super(survey_page, self).copy(cr, uid, ids, vals, context=context)
diff --git a/addons/warning/__openerp__.py b/addons/warning/__openerp__.py
index c03dc1ec488..e44b9624251 100644
--- a/addons/warning/__openerp__.py
+++ b/addons/warning/__openerp__.py
@@ -37,7 +37,6 @@ picking and invoice. The message is triggered by the form's onchange event.
'demo': [],
'installable': True,
'auto_install': False,
- 'certificate': '0080334018749',
'images': ['images/customers_warnings.jpeg','images/sale_order_warning.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/warning/warning.py b/addons/warning/warning.py
index f04f97d6f8a..9e6c2a0a2b8 100644
--- a/addons/warning/warning.py
+++ b/addons/warning/warning.py
@@ -174,6 +174,60 @@ class stock_picking(osv.osv):
stock_picking()
+# FIXME:(class stock_picking_in and stock_picking_out) this is a temporary workaround because of a framework bug (ref: lp:996816).
+# It should be removed as soon as the bug is fixed
+class stock_picking_in(osv.osv):
+ _inherit = 'stock.picking.in'
+
+ def onchange_partner_in(self, cr, uid, context, partner_id=None):
+ if not partner_id:
+ return {}
+ partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
+ warning = {}
+ title = False
+ message = False
+ if partner.picking_warn != 'no-message':
+ if partner.picking_warn == 'block':
+ raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg)
+ title = _("Warning for %s") % partner.name
+ message = partner.picking_warn_msg
+ warning = {
+ 'title': title,
+ 'message': message
+ }
+ result = super(stock_picking_in, self).onchange_partner_in(cr, uid, context, partner_id)
+ if result.get('warning',False):
+ warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
+ warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message']
+
+ return {'value': result.get('value',{}), 'warning':warning}
+
+class stock_picking_out(osv.osv):
+ _inherit = 'stock.picking.out'
+
+ def onchange_partner_in(self, cr, uid, context, partner_id=None):
+ if not partner_id:
+ return {}
+ partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
+ warning = {}
+ title = False
+ message = False
+ if partner.picking_warn != 'no-message':
+ if partner.picking_warn == 'block':
+ raise osv.except_osv(_('Alert for %s !') % (partner.name), partner.picking_warn_msg)
+ title = _("Warning for %s") % partner.name
+ message = partner.picking_warn_msg
+ warning = {
+ 'title': title,
+ 'message': message
+ }
+ result = super(stock_picking_out, self).onchange_partner_in(cr, uid, context, partner_id)
+ if result.get('warning',False):
+ warning['title'] = title and title +' & '+ result['warning']['title'] or result['warning']['title']
+ warning['message'] = message and message + ' ' + result['warning']['message'] or result['warning']['message']
+
+ return {'value': result.get('value',{}), 'warning':warning}
+
class product_product(osv.osv):
_inherit = 'product.product'
_columns = {
@@ -228,8 +282,8 @@ sale_order_line()
class purchase_order_line(osv.osv):
_inherit = 'purchase.order.line'
- def product_id_change(self,cr, uid, ids, pricelist, product, qty, uom,
- partner_id, date_order=False, fiscal_position=False, date_planned=False,
+ def onchange_product_id(self,cr, uid, ids, pricelist, product, qty, uom,
+ partner_id, date_order=False, fiscal_position_id=False, date_planned=False,
name=False, price_unit=False, notes=False, context=None):
warning = {}
if not product:
@@ -247,8 +301,8 @@ class purchase_order_line(osv.osv):
warning['title'] = title
warning['message'] = message
- result = super(purchase_order_line, self).product_id_change(cr, uid, ids, pricelist, product, qty, uom,
- partner_id, date_order, fiscal_position)
+ result = super(purchase_order_line, self).onchange_product_id(cr, uid, ids, pricelist, product, qty, uom,
+ partner_id, date_order, fiscal_position_id)
if result.get('warning',False):
warning['title'] = title and title +' & '+result['warning']['title'] or result['warning']['title']
diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js
index 3cdfbfff410..863e51e913f 100644
--- a/addons/web_linkedin/static/src/js/linkedin.js
+++ b/addons/web_linkedin/static/src/js/linkedin.js
@@ -88,7 +88,7 @@ openerp.web_linkedin = function(instance) {
selected_entity: function(entity) {
var self = this;
this.create_on_change(entity).then(function(to_change) {
- self.view.on_processed_onchange({value:to_change});
+ self.view.set_values(to_change);
});
},
create_on_change: function(entity) {