@@ -292,7 +306,7 @@
Other No.
- [[ o.pan_no or ' ']]
+ [[ o.otherid or '' ]]
Address
@@ -329,52 +343,55 @@
[[ repeatIn(get_periods(data['form']),'m') ]] [[ get_employee_detail(o) ]]
-
+
Title
- [[ m[0] ]]
+ [[ m[0] != 'None' and m[0] or '' ]]
- [[ m[1] ]]
+ [[ m[1] != 'None' and m[1] or '' ]]
- [[ m[2] ]]
+ [[ m[2] != 'None' and m[2] or '' ]]
- [[ m[3] ]]
+ [[ m[3] != 'None' and m[3] or '' ]]
- [[ m[4] ]]
+ [[ m[4] != 'None' and m[4] or '' ]]
- [[ m[5] ]]
+ [[ m[5] != 'None' and m[5] or '' ]]
- [[ m[6] ]]
+ [[ m[6] != 'None' and m[6] or '' ]]
- [[ m[7] ]]
+ [[ m[7] != 'None' and m[7] or '' ]]
- [[ m[8] ]]
+ [[ m[8] != 'None' and m[8] or '' ]]
- [[ m[9] ]]
+ [[ m[9] != 'None' and m[9] or '' ]]
- [[ m[10] ]]
+ [[ m[10] != 'None' and m[10] or '' ]]
- [[ m[11] ]]
+ [[ m[11] != 'None' and m[11] or '' ]]
Total
+
+
+
@@ -384,8 +401,8 @@
- [[ repeatIn(get_allow(),'e1') ]]
-
+ [[ repeatIn(get_allow(),'e1') ]]
+
[[ e1[0] ]]
@@ -440,9 +457,8 @@
-
- [[ repeatIn(get_deduct(),'e2') ]]
-
+ [[ repeatIn(get_deduct(),'e2') ]]
+
[[ e2[0] ]]
@@ -497,8 +513,8 @@
- [[ repeatIn(get_other(),'e3') ]]
-
+ [[ repeatIn(get_other(),'e3') ]]
+
[[ e3[0] ]]
@@ -546,49 +562,49 @@
-
+
[[ get_monthly_total()[0] ]]
- [[ formatLang(get_monthly_total()[1]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[1]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[2]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[2]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[3]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[3]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[4]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[4]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[5]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[5]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[6]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[6]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[7]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[7]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[8]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[8]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[9]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[9]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[10]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[10]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[11]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[11]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_monthly_total()[12]) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_monthly_total()[12]) ]][[ company.currency_id.symbol ]]
- [[ formatLang(get_total()) ]] [[ company.currency_id.symbol ]]
+ [[ formatLang(get_total()) ]][[ company.currency_id.symbol ]]
diff --git a/addons/hr_payroll/report/report_year_report.rml b/addons/hr_payroll/report/report_year_report.rml
index e191b5108f2..212bb59e7b3 100755
--- a/addons/hr_payroll/report/report_year_report.rml
+++ b/addons/hr_payroll/report/report_year_report.rml
@@ -146,58 +146,55 @@
- [[ repeatIn(get_periods(data['form']),'m') ]]
+ [[ repeatIn(get_periods(data['form']),'m') ]]
Name
- [[ m[0] ]]
+ [[ m[0] != 'None' and m[0] or '' ]]
- [[ m[1] ]]
+ [[ m[1] != 'None' and m[1] or '' ]]
- [[ m[2] ]]
+ [[ m[2] != 'None' and m[2] or '' ]]
- [[ m[3] ]]
+ [[ m[3] != 'None' and m[3] or '' ]]
- [[ m[4] ]]
+ [[ m[4] != 'None' and m[4] or '' ]]
- [[ m[5] ]]
+ [[ m[5] != 'None' and m[5] or '' ]]
- [[ m[6] ]]
+ [[ m[6] != 'None' and m[6] or '' ]]
- [[ m[7] ]]
+ [[ m[7] != 'None' and m[7] or '' ]]
- [[ m[8] ]]
+ [[ m[8] != 'None' and m[8] or '' ]]
- [[ m[9] ]]
+ [[ m[9] != 'None' and m[9] or '' ]]
- [[ m[10] ]]
+ [[ m[10] != 'None' and m[10] or '' ]]
- [[ m[11] ]]
+ [[ m[11] != 'None' and m[11] or '' ]]
Total
-
-
-
- [[ repeatIn(get_employee(data['form']),'e') ]]
+ [[ repeatIn(get_employee(data['form']),'e') ]]
@@ -247,7 +244,7 @@
- [[ repeatIn(get_months_tol(),'t') ]]
+ [[ repeatIn(get_months_tol(),'t') ]]
@@ -298,8 +295,5 @@
-
-
-
\ No newline at end of file
diff --git a/addons/hr_payroll/report/report_year_salary.py b/addons/hr_payroll/report/report_year_salary.py
index 4d0e0aa670c..0a7857582d4 100755
--- a/addons/hr_payroll/report/report_year_salary.py
+++ b/addons/hr_payroll/report/report_year_salary.py
@@ -43,6 +43,9 @@ class year_salary_report(rml_parse.rml_parse):
cm = 0
cy = ly
cm = cm +1
+ for c in range(0,(12-no_months)):
+ mnth_name.append('None')
+ self.mnths.append('None')
return [mnth_name]
def get_employee(self,form):
@@ -58,11 +61,14 @@ class year_salary_report(rml_parse.rml_parse):
ls1.append(emp_id.name)
tol = 0.0
for mnth in self.mnths:
- if len(mnth) != 7:
- mnth = '0' + str(mnth)
- query = "select net from hr_payslip where employee_id = "+str(emp_id.id)+" and to_char(date,'mm-yyyy') like '%"+mnth+"%' and state = 'done' "
- self.cr.execute(query)
- sal = self.cr.fetchall()
+ if mnth <> 'None':
+ if len(mnth) != 7:
+ mnth = '0' + str(mnth)
+ query = "select net from hr_payslip where employee_id = "+str(emp_id.id)+" and to_char(date,'mm-yyyy') like '%"+mnth+"%' and state = 'done' "
+ self.cr.execute(query)
+ sal = self.cr.fetchall()
+ else:
+ sal = [(0.0,)]
try:
ls1.append(sal[0][0])
except:
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index cb034a8659d..96d8483160f 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -181,8 +181,9 @@
-
+ parent="base.menu_main_pm" sequence="5" groups="project.group_project_finance_user"/>
+
diff --git a/addons/membership/membership_view.xml b/addons/membership/membership_view.xml
index ad9c3bcf772..afa1ee9bebe 100644
--- a/addons/membership/membership_view.xml
+++ b/addons/membership/membership_view.xml
@@ -140,7 +140,8 @@
parent="menu_membership"
id="menu_membership_products"
action="action_membership_products"
- sequence="1"/>
+ sequence="1"
+ groups="base.group_partner_manager"/>
diff --git a/addons/membership/report/report_membership_view.xml b/addons/membership/report/report_membership_view.xml
index abe8b44bcba..291efee4834 100644
--- a/addons/membership/report/report_membership_view.xml
+++ b/addons/membership/report/report_membership_view.xml
@@ -116,7 +116,8 @@
+ id="menu_report_membership"
+ groups="base.group_partner_manager"/>
diff --git a/addons/membership/security/ir.model.access.csv b/addons/membership/security/ir.model.access.csv
index 6cf3eb755c2..f3d91646c44 100644
--- a/addons/membership/security/ir.model.access.csv
+++ b/addons/membership/security/ir.model.access.csv
@@ -1,4 +1,4 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_membership_membership_line_partner_manager","membership.membership_line partner_manager","model_membership_membership_line","base.group_partner_manager",1,0,0,0
+"access_membership_membership_line_partner_manager","membership.membership_line partner_manager","model_membership_membership_line","base.group_partner_manager",1,1,1,1
"access_membership_membership_line","membership.membership_line","model_membership_membership_line",,1,0,0,0
"access_report_membership","report.membership","model_report_membership","base.group_partner_manager",1,0,0,0
diff --git a/addons/mrp/test/mrp_procurement.yml b/addons/mrp/test/mrp_procurement.yml
index 40d22ae817f..4e01062d7b2 100644
--- a/addons/mrp/test/mrp_procurement.yml
+++ b/addons/mrp/test/mrp_procurement.yml
@@ -177,7 +177,7 @@
purch_ids = self.search(cr, uid, [('partner_id.name','=','Maxtor')])
wf_service = netsvc.LocalService("workflow")
for p_id in purch_ids:
- wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
+ wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
-
I confirm purchase order for Buttons.
@@ -187,7 +187,7 @@
purch_ids = self.search(cr, uid, [('partner_id.name','=','ASUStek')])
wf_service = netsvc.LocalService("workflow")
for p_id in purch_ids:
- wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
+ wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
-
I Check incoming shipments for cloth. And receive products.
@@ -284,7 +284,7 @@
assert prod_ids, _('No Ready Manufacturing Orders found!')
wf_service = netsvc.LocalService("workflow")
for p_id in prod_ids:
- wf_service.trg_validate(uid, 'mrp.production', p_id, 'button_produce', cr)
+ wf_service.trg_validate(uid, 'mrp.production', p_id, 'button_produce', cr)
-
I create record for producing products with quantity 5.00.
-
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index c8cb8f460f0..4f0d3530a80 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -322,7 +322,7 @@ class procurement_order(osv.osv):
if procurement.procure_method == 'make_to_order':
source = procurement.product_id.product_tmpl_id.property_stock_procurement.id
id = move_obj.create(cr, uid, {
- 'name': 'PROC:' + procurement.name,
+ 'name': procurement.name,
'location_id': source,
'location_dest_id': procurement.location_id.id,
'product_id': procurement.product_id.id,
@@ -374,10 +374,6 @@ class procurement_order(osv.osv):
"Not enough stock and no minimum orderpoint rule defined.") % \
procurement.name
self.log(cr, uid, procurement.id, message)
- if procurement.state=='exception' and procurement.message=='':
- cr.execute('update procurement_order set message=%s where id=%s',
- (_('Not enough stock '), procurement.id) )
-
return ok
def action_produce_assign_service(self, cr, uid, ids, context={}):
diff --git a/addons/procurement/schedulers.py b/addons/procurement/schedulers.py
index 06cbb86957a..9abdf3d1ff5 100644
--- a/addons/procurement/schedulers.py
+++ b/addons/procurement/schedulers.py
@@ -23,8 +23,10 @@ import time
from mx import DateTime
from osv import osv
+from tools.translate import _
import netsvc
import pooler
+from tools.translate import _
class procurement_order(osv.osv):
_inherit = 'procurement.order'
@@ -170,8 +172,8 @@ class procurement_order(osv.osv):
else:
continue
proc_id = proc_obj.create(cr, uid, {
- 'name': 'Automatic OP: %s' % product.name,
- 'origin': 'SCHEDULER',
+ 'name': _('Automatic OP: %s') % (product.name,),
+ 'origin': _('SCHEDULER'),
'date_planned': newdate.strftime('%Y-%m-%d %H:%M:%S'),
'product_id': product.id,
'product_qty': -product.virtual_available,
@@ -236,7 +238,7 @@ class procurement_order(osv.osv):
continue
if op.product_id.type not in ('consu'):
proc_id = procurement_obj.create(cr, uid, {
- 'name': 'OP:' + str(op.id),
+ 'name': op.name,
'date_planned': newdate.strftime('%Y-%m-%d'),
'product_id': op.product_id.id,
'product_qty': qty,
diff --git a/addons/product/product.py b/addons/product/product.py
index 22f57ac981f..05ec8459bcd 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -386,7 +386,7 @@ class product_product(osv.osv):
def _get_partner_code_name(self, cr, uid, ids, product, partner_id, context={}):
for supinfo in product.seller_ids:
if supinfo.name.id == partner_id:
- return {'code': supinfo.product_code, 'name': supinfo.product_name, 'variants': ''}
+ return {'code': supinfo.product_code or product.default_code, 'name': supinfo.product_name or product.name, 'variants': ''}
res = {'code': product.default_code, 'name': product.name, 'variants': product.variants}
return res
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index 5872e325715..a9409e62aa8 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -197,7 +197,6 @@
In OpenERP, a product is something you can buy and sell. It can be a raw material, a stockable product, a consumable or a service. The product form contains a detailed information on the products like procurement logistic, sales price, product category, suppliers, etc.
-
diff --git a/addons/project/project.py b/addons/project/project.py
index 25e2421e758..1711789a311 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -350,7 +350,7 @@ class project(osv.osv):
if child_ids:
self.setActive(cr, uid, child_ids, value, context=None)
return True
-
+
project()
class users(osv.osv):
@@ -461,7 +461,7 @@ class task(osv.osv):
'active': fields.function(_is_template, method=True, store=True, string='Not a Template Task', type='boolean', help="This field is computed automatically and have the same behavior than the boolean 'active' field: if the task is linked to a template or unactivated project, it will be hidden unless specifically asked."),
'name': fields.char('Task Summary', size=128, required=True),
'description': fields.text('Description'),
- 'priority' : fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Urgent'), ('0','Very urgent')], 'Priority'),
+ 'priority': fields.selection([('4','Very Low'), ('3','Low'), ('2','Medium'), ('1','Urgent'), ('0','Very urgent')], 'Priority'),
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of tasks."),
'type_id': fields.many2one('project.task.type', 'Stage',),
'state': fields.selection([('draft', 'Draft'),('open', 'In Progress'),('pending', 'Pending'), ('cancelled', 'Cancelled'), ('done', 'Done')], 'State', readonly=True, required=True,
@@ -584,7 +584,7 @@ class task(osv.osv):
if not project_id: return False
task = self.browse(cr, uid, project_id, context=context)
project = task.project_id
- res = self.do_close(cr, uid, [project_id], context=context)
+ res = self.do_close(cr, uid, [project_id], context=context)
if project.warn_manager or project.warn_customer:
return {
'name': _('Send Email after close task'),
@@ -595,7 +595,7 @@ class task(osv.osv):
'target': 'new',
'nodestroy': True,
'context': {'active_id': task.id}
- }
+ }
return res
def do_close(self, cr, uid, ids, context=None):
@@ -736,7 +736,7 @@ class task(osv.osv):
if types:
if not typeid:
self.write(cr, uid, task.id, {'type_id': types[0]})
- elif typeid and typeid in types and types.index(typeid) != len(types)-1 :
+ elif typeid and typeid in types and types.index(typeid) != len(types)-1:
index = types.index(typeid)
self.write(cr, uid, task.id, {'type_id': types[index+1]})
return True
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index a55f24a8619..7890ae1fbd6 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -7,7 +7,7 @@
name="Project" sequence="10"
groups="group_project_manager,group_project_user,base.group_system,group_project_finance_user"/>
-
+
@@ -112,7 +112,7 @@
-
+
diff --git a/addons/project/report/project_report_view.xml b/addons/project/report/project_report_view.xml
index 682a2c99485..39365c1c467 100644
--- a/addons/project/report/project_report_view.xml
+++ b/addons/project/report/project_report_view.xml
@@ -149,7 +149,7 @@
Get detailed analysis by task
-
+
diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv
index cdd939c79ec..b409a98bc52 100644
--- a/addons/project/security/ir.model.access.csv
+++ b/addons/project/security/ir.model.access.csv
@@ -1,12 +1,12 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_project_project_manager","project.project manager","model_project_project","project.group_project_manager",1,1,1,1
-"access_account_analytic_account_manager","account.analytic.account","analytic.model_account_analytic_account","project.group_project_manager",1,0,0,0
+"access_account_analytic_account_manager","account.analytic.account","analytic.model_account_analytic_account","project.group_project_manager",1,1,1,1
"access_project_project","project.project","model_project_project","project.group_project_user",1,1,1,1
"access_account_analytic_account","account.analytic.account","analytic.model_account_analytic_account","project.group_project_user",1,1,1,1
"access_project_task_type_user","project.task.type user","model_project_task_type","project.group_project_user",1,1,1,1
"access_project_task_type","project.task.type","model_project_task_type","project.group_project_manager",1,1,1,1
"access_project_task_manager","project.task manager","model_project_task","project.group_project_manager",1,1,1,1
-"access_project_task","project.task","model_project_task","project.group_project_user",1,1,1,1
+"access_project_task","project.task","model_project_task","project.group_project_user",1,1,1,0
"access_project_task_work","project.task.work","model_project_task_work","project.group_project_user",1,1,1,1
"access_project_task_work_manager","project.task.work.manager","model_project_task_work","project.group_project_manager",1,1,1,1
"access_report_project_task_user","report.project.task.user","model_report_project_task_user","project.group_project_manager",1,1,1,1
@@ -28,3 +28,11 @@
"access_project_vs_hours_system","project.vs.hours.system","model_project_vs_hours","base.group_system",1,0,0,0
"access_project_task_sale_user","project.task salesman","model_project_task","base.group_sale_salesman",1,0,0,0
"access_project_project_sale_user","project.project salesman","model_project_project","base.group_sale_salesman",1,0,0,0
+"access_project_project_project_financial_user","project.project.project.financial.user","model_project_project","group_project_finance_user",1,0,0,0
+"access_project_task_project_financial_user","project.task.project.financial.user","model_project_task","group_project_finance_user",1,0,0,0
+"access_project_task_work_project_financial_user","project.task.work.project.financial.user","model_project_task_work","group_project_finance_user",1,0,0,0
+"access_report_project_task_user_project_financial_user","report.project.task.user.project.financial.user","model_report_project_task_user","group_project_finance_user",1,0,0,0
+"access_project_board_project_financial_user","board.board.project.financial.user","board.model_board_board","group_project_finance_user",1,0,0,0
+"access_account_analytic_account_project_financial_user","account.analytic.account.project.financial.user","analytic.model_account_analytic_account","group_project_finance_user",1,0,0,0
+"access_project_task_type_project_financial_user","project.task.type.project.financial.user","model_project_task_type","group_project_finance_user",1,0,0,0
+"access_project_vs_hours_project_financial_user","project.vs.hours.project.financial.user","model_project_vs_hours","group_project_finance_user",1,0,0,0
diff --git a/addons/project/security/project_security.xml b/addons/project/security/project_security.xml
index 97453dcb33b..a5c5388ab72 100644
--- a/addons/project/security/project_security.xml
+++ b/addons/project/security/project_security.xml
@@ -51,7 +51,15 @@
Projects According to User
- [('user_id','=',user.id)]
+ [('members','in',[user.id])]
+
+
+
+ Projects According to Members
+
+
+
+ [('members','in',[user.id])]
diff --git a/addons/project_gtd/project_gtd_view.xml b/addons/project_gtd/project_gtd_view.xml
index fc05ee00e61..d80dd86a243 100644
--- a/addons/project_gtd/project_gtd_view.xml
+++ b/addons/project_gtd/project_gtd_view.xml
@@ -30,7 +30,7 @@
project.gtd.context
-
diff --git a/addons/project_gtd/security/ir.model.access.csv b/addons/project_gtd/security/ir.model.access.csv
index 210ac9f6c4a..0986ea1570f 100644
--- a/addons/project_gtd/security/ir.model.access.csv
+++ b/addons/project_gtd/security/ir.model.access.csv
@@ -7,3 +7,5 @@
"access_project_gtd_timebox_manager","project.gtd.timebox project manager","model_project_gtd_timebox","project.group_project_manager",1,1,1,1
"access_project_gtd_context_system","project.gtd.context system","model_project_gtd_context","base.group_system",1,1,1,1
"access_project_gtd_timebox_system","project.gtd.timebox system","model_project_gtd_timebox","base.group_system",1,1,1,1
+"access_project_gtd_context_finacial_user","project.gtd.context.financial.user","model_project_gtd_context","project.group_project_finance_user",1,0,0,0
+"access_project_gtd_timebox_finacial_user","project.gtd.timebox.financial.user","model_project_gtd_timebox","project.group_project_finance_user",1,0,0,0
\ No newline at end of file
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index b7c7a58dec4..d8d30edc7c6 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -2,7 +2,7 @@
-
+
Issue Version
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index eed71191d59..0f2704cbfce 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -177,7 +177,7 @@
-
+
diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv
index ece2be3a784..5e82efa761e 100755
--- a/addons/project_issue/security/ir.model.access.csv
+++ b/addons/project_issue/security/ir.model.access.csv
@@ -1,5 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_project_issue_all","project.issue","model_project_issue","project.group_project_manager",1,0,0,0
+"access_project_issue_all","project.issue","model_project_issue","project.group_project_manager",1,1,1,1
"access_project_issue_user","project.issue","model_project_issue","project.group_project_user",1,1,1,1
"access_project_issue","project.issue","model_project_issue","project_issue.group_project_supporter",1,1,1,1
"access_project_issue_report_all","project.issue.report","model_project_issue_report","project.group_project_manager",1,1,1,1
@@ -11,4 +11,14 @@
"access_project_issue_system","project.issue system","model_project_issue","base.group_system",1,0,0,0
"access_project_issue_report_system","project.issue.report system","model_project_issue_report","base.group_system",1,0,0,0
"access_crm_case_section_system","crm.case.section system","crm.model_crm_case_section","base.group_system",1,1,1,1
-"access_project_issue_report_user","project.issue.report user","model_project_issue_report","project.group_project_user",1,0,0,0
+"access_project_issue_version_financial_user","project.issue.version.financial.user","model_project_issue_version","project.group_project_finance_user",1,0,0,0
+"access_crm_case_categ_financial_user","crm.case.categ.financial.user","crm.model_crm_case_categ","project.group_project_finance_user",1,0,0,0
+"access_crm_case_stage_financial_user","crm.case.stage.financial.user","crm.model_crm_case_stage","project.group_project_finance_user",1,0,0,0
+"access_project_issue_report_financial_user","project.issue.report.financial.user","model_project_issue_report","project.group_project_finance_user",1,0,0,0
+"access_project_issue_board_project_financial_user","board.board.project.issue.financial.user","board.model_board_board","project.group_project_finance_user",1,0,0,0
+"access_project_issue_project_financial_user","project.issue.financial.user","model_project_issue","project.group_project_finance_user",1,0,0,0
+"access_mailgate_message_project_financial_user","mailgate.message.financial.user","mail_gateway.model_mailgate_message","project.group_project_finance_user",1,0,0,0
+"access_mailgate_message_project_manager","mailgate.message.manager","mail_gateway.model_mailgate_message","project.group_project_manager",1,1,1,1
+"access_resource_calendar_project_manager","resource.calendar.project.manager","resource.model_resource_calendar","project.group_project_manager",1,1,1,1
+"access_project_issue_report_user","project.issue.report user","model_project_issue_report","project.group_project_user",1,1,1,0
+"access_mailgate_message_issue_project_user","project.mailgate.message.issue.user","mail_gateway.model_mailgate_message","project.group_project_user",1,1,1,0
diff --git a/addons/project_issue/security/project_issue_security.xml b/addons/project_issue/security/project_issue_security.xml
index d0aeabafc05..a73eca5a43c 100644
--- a/addons/project_issue/security/project_issue_security.xml
+++ b/addons/project_issue/security/project_issue_security.xml
@@ -4,5 +4,15 @@
Project / Support Manager
+
+
+ Issues according to Users
+
+
+
+
+
+ [('project_id.members','in',[user.id])]
+
diff --git a/addons/project_issue_sheet/security/ir.model.access.csv b/addons/project_issue_sheet/security/ir.model.access.csv
index 235bb4d1bfc..25bcbe03ccd 100644
--- a/addons/project_issue_sheet/security/ir.model.access.csv
+++ b/addons/project_issue_sheet/security/ir.model.access.csv
@@ -5,4 +5,18 @@
"access_hr_timesheet_sheet_sheet_project_manager","hr_timesheet_sheet.sheet manager","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","project.group_project_manager",1,0,0,0
"access_hr_analytic_timesheet_system","hr_analytic_timesheet system","hr_timesheet_sheet.model_hr_analytic_timesheet","base.group_system",1,0,0,0
"access_hr_timesheet_sheet_sheet_project_system","hr_timesheet_sheet.sheet system","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","base.group_system",1,0,0,0
-
+"access_hr_analytic_timesheet_project_financial_user","account.analytic.line.timesheet.project.financial.user","account.model_account_analytic_line","project.group_project_finance_user",1,1,1,0
+"access_account_analytic_journal_project_financial_user","account.analytic.journal.project.financial.user","account.model_account_analytic_journal","project.group_project_finance_user",1,1,1,0
+"access_account_fiscalyear_project_financial_user","account.fiscalyear.project.financial.user","account.model_account_fiscalyear","project.group_project_finance_user",1,1,1,0
+"access_hr_timesheet_invoice_factor_project_financial_user","hr_timesheet_invoice.factor.project.financial.user","hr_timesheet_invoice.model_hr_timesheet_invoice_factor","project.group_project_finance_user",1,1,1,0
+"access_account_invoice_project_financial_user","account.invoice.project.financial.user","account.model_account_invoice","project.group_project_finance_user",1,1,1,0
+"access_hr_analytic_timesheet_project_manager","account.analytic.line.timesheet.project.manager","account.model_account_analytic_line","project.group_project_manager",1,1,1,1
+"access_account_analytic_journal_project_manager","account.analytic.journal.project.manager","account.model_account_analytic_journal","project.group_project_manager",1,1,1,1
+"access_account_fiscalyear_project_manager","account.fiscalyear.project.manager","account.model_account_fiscalyear","project.group_project_manager",1,1,1,1
+"access_hr_timesheet_invoice_factor_project_manager","hr_timesheet_invoice.factor.project.manager","hr_timesheet_invoice.model_hr_timesheet_invoice_factor","project.group_project_manager",1,1,1,1
+"access_account_invoice_project_manager","account.invoice.project.manager","account.model_account_invoice","project.group_project_manager",1,1,1,1
+"access_analytic_account_line_project_user","analytic_account_line_timesheet user","analytic.model_account_analytic_line","project.group_project_user",1,1,1,0
+"access_account_analytic_journal_project_user","account.analytic.journal.project.user","account.model_account_analytic_journal","project.group_project_user",1,1,1,0
+"access_account_fiscalyear_project_user","account.fiscalyear.project.user","account.model_account_fiscalyear","project.group_project_user",1,1,1,0
+"access_hr_timesheet_invoice_factor_project_user","hr_timesheet_invoice.factor.project.user","hr_timesheet_invoice.model_hr_timesheet_invoice_factor","project.group_project_user",1,1,1,0
+"access_account_invoice_project_user","account.invoice.project.user","account.model_account_invoice","project.group_project_user",1,1,1,0
diff --git a/addons/project_long_term/project_long_term_view.xml b/addons/project_long_term/project_long_term_view.xml
index fa645af4127..70bd88f1a20 100644
--- a/addons/project_long_term/project_long_term_view.xml
+++ b/addons/project_long_term/project_long_term_view.xml
@@ -373,17 +373,17 @@
# ------------------------------------------------------
-
+
diff --git a/addons/project_long_term/security/ir.model.access.csv b/addons/project_long_term/security/ir.model.access.csv
index 7af7984d7e6..ecb10470af2 100644
--- a/addons/project_long_term/security/ir.model.access.csv
+++ b/addons/project_long_term/security/ir.model.access.csv
@@ -1,10 +1,16 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_project_phase","project.phase","model_project_phase","project.group_project_user",1,1,1,0
-"access_project_resource_allocation","project.resource.allocation","model_project_resource_allocation","project.group_project_user",1,1,1,0
+"access_project_resource_allocation","project.resource.allocation","model_project_resource_allocation","project.group_project_user",1,0,0,0
"access_project_phase_manager","project.phase manager","model_project_phase","project.group_project_manager",1,0,0,0
"access_project_resource_allocation_manager","project.resource.allocation manager","model_project_resource_allocation","project.group_project_manager",1,0,0,0
"access_project_resource_allocation_system","project.resource.allocation system","model_project_resource_allocation","base.group_system",1,0,0,0
"access_project_phase_system","project.phase system","model_project_phase","base.group_system",1,0,0,0
-"access_resource_resource_user","resource.resource user","resource.model_resource_resource","project.group_project_user",1,0,1,1
+"access_resource_resource_user","resource.resource user","resource.model_resource_resource","project.group_project_user",1,0,0,0
"access_resource_calendar_leaves_user","resource.calendar.leaves user","resource.model_resource_calendar_leaves","project.group_project_user",1,1,1,1
"access_resource_resource_manager","resource.resource manager","resource.model_resource_resource","project.group_project_manager",1,1,1,1
+"access_project_resource_allocation_financial_user","project.resource.allocation.financial.user","model_project_resource_allocation","project.group_project_finance_user",1,0,0,0
+"access_project_phase_financial_user","project.phase.financial.user","model_project_phase","project.group_project_finance_user",1,0,0,0
+"access_resource_resource_financial_user","resource.resource.financial.user","model_resource_resource","project.group_project_finance_user",1,0,0,0
+"access_resource_calendar_financial_user","resource.calendar.financial.user","resource.model_resource_calendar","project.group_project_finance_user",1,0,0,0
+"access_resource_calendar_financial_user","resource.calendar.financial.user","resource.model_resource_calendar_leaves","project.group_project_finance_user",1,0,0,0
+"access_project_resource_allocation_manager","project.resource.allocation.manager","model_project_resource_allocation","project.group_project_manager",1,1,1,1
diff --git a/addons/project_mailgate/__openerp__.py b/addons/project_mailgate/__openerp__.py
index cd3d0caeaf8..77802362c7d 100644
--- a/addons/project_mailgate/__openerp__.py
+++ b/addons/project_mailgate/__openerp__.py
@@ -33,8 +33,8 @@ It allows creating tasks as soon as a new mail arrives in our configured mail se
Moreover, it keeps track of all further communications and task states.
""",
"init_xml": [],
- "update_xml": [
- "project_mailgate_view.xml",
+ "update_xml": ["security/ir.model.access.csv",
+ "project_mailgate_view.xml",
],
'demo_xml': [
],
diff --git a/addons/project_mailgate/security/ir.model.access.csv b/addons/project_mailgate/security/ir.model.access.csv
new file mode 100644
index 00000000000..1a840d89e9a
--- /dev/null
+++ b/addons/project_mailgate/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_mailgate_message_project_manager","project.mailgate.message.manager","mail_gateway.model_mailgate_message","project.group_project_manager",1,1,1,0
+"access_mailgate_message_project_user","project.mailgate.message.user","mail_gateway.model_mailgate_message","project.group_project_user",1,1,1,0
diff --git a/addons/project_messages/__openerp__.py b/addons/project_messages/__openerp__.py
index 352fe797f22..97f9c4f2be5 100644
--- a/addons/project_messages/__openerp__.py
+++ b/addons/project_messages/__openerp__.py
@@ -32,7 +32,8 @@
""",
'website': 'http://www.openerp.com',
'init_xml': [],
- 'update_xml': ['project_messages_view.xml'],
+ 'update_xml': ['security/ir.model.access.csv',
+ 'project_messages_view.xml'],
'demo_xml': [],
'installable': True,
'active': False,
diff --git a/addons/project_messages/project_messages_view.xml b/addons/project_messages/project_messages_view.xml
index e270d2d001a..7042ce9d9b2 100644
--- a/addons/project_messages/project_messages_view.xml
+++ b/addons/project_messages/project_messages_view.xml
@@ -109,6 +109,6 @@
tree,form
-
+
diff --git a/addons/project_messages/security/ir.model.access.csv b/addons/project_messages/security/ir.model.access.csv
index fb0b4e8255a..e31ffd860cb 100644
--- a/addons/project_messages/security/ir.model.access.csv
+++ b/addons/project_messages/security/ir.model.access.csv
@@ -1,3 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_project_messages","project.messages","model_project_messages","project.group_project_user",1,1,1,1
"access_project_messages_manager","project.messages manager","model_project_messages","project.group_project_manager",1,1,1,1
+"access_project_messages_financial_user","project.messages.financial.user","model_project_messages","project.group_project_finance_user",1,0,0,0
+"access_project_message_project_user","project.project.user","model_project_project","project.group_project_user",1,0,0,0
diff --git a/addons/project_planning/security/ir.model.access.csv b/addons/project_planning/security/ir.model.access.csv
index 330a25485c7..2c6c92db8ff 100644
--- a/addons/project_planning/security/ir.model.access.csv
+++ b/addons/project_planning/security/ir.model.access.csv
@@ -1,5 +1,5 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_report_account_analytic_planning_project_manager","report_account_analytic.planning manager","model_report_account_analytic_planning","project.group_project_manager",1,0,0,0
+"access_report_account_analytic_planning_project_manager","report_account_analytic.planning manager","model_report_account_analytic_planning","project.group_project_manager",1,1,1,1
"access_report_account_analytic_planning_line_project_manager","report_account_analytic.planning.line manager","model_report_account_analytic_planning_line","project.group_project_manager",1,0,0,0
"access_report_account_analytic_planning_stat_project_manager","report_account_analytic.planning.stat manager","model_report_account_analytic_planning_stat","project.group_project_manager",1,0,0,0
"access_report_account_analytic_planning_stat_project_user","report_account_analytic.planning.stat user","model_report_account_analytic_planning_stat","project.group_project_user",1,1,1,0
@@ -9,3 +9,7 @@
"access_report_account_analytic_planning_line_project_user","report_account_analytic.planning.line user","model_report_account_analytic_planning_line","project.group_project_user",1,1,1,0
"access_report_account_analytic_planning_account_project_user","report_account_analytic.planning.account user","model_report_account_analytic_planning_account","project.group_project_user",1,1,1,0
"access_report_account_analytic_planning_system","report_account_analytic.planning system","model_report_account_analytic_planning","base.group_system",1,0,0,0
+"access_report_account_analytic_planning_financial_user","report_account_analytic.planning.financial.user","model_report_account_analytic_planning","project.group_project_finance_user",1,0,0,0
+"access_report_account_analytic_planning_stat_financial_user","report_account_analytic.planning.stat.financial.user","model_report_account_analytic_planning_stat","project.group_project_finance_user",1,0,0,0
+"access_report_account_analytic_planning__project_manager","report_account_analytic.planning.manager","model_report_account_analytic_planning_user","project.group_project_manager",1,1,1,1
+"access_report_account_analytic_planning__project_finance_user","report_account_analytic.planning.finance.user","model_report_account_analytic_planning_user","project.group_project_finance_user",1,0,0,0
\ No newline at end of file
diff --git a/addons/project_scrum/security/ir.model.access.csv b/addons/project_scrum/security/ir.model.access.csv
index 109dba056df..eb83fb8d117 100644
--- a/addons/project_scrum/security/ir.model.access.csv
+++ b/addons/project_scrum/security/ir.model.access.csv
@@ -2,11 +2,14 @@
"access_scrum_sprint","project_scrum.sprint","model_project_scrum_sprint","project.group_project_user",1,1,1,0
"access_scrum_product_backlog","project_scrum.product.backlog","model_project_scrum_product_backlog","project.group_project_user",1,1,1,0
"access_scrum_meeting","project_scrum.meeting","model_project_scrum_meeting","project.group_project_user",1,1,1,0
-"access_scrum_meeting_manager","project_scrum.meeting.manager","model_project_scrum_meeting","project.group_project_manager",1,0,0,0
-"access_scrum_sprint_manager","project_scrum.sprint.manager","model_project_scrum_sprint","project.group_project_manager",1,0,0,0
-"access_scrum_product_backlog_manager","project_scrum.product.backlog manager","model_project_scrum_product_backlog","project.group_project_manager",1,0,0,0
+"access_scrum_meeting_manager","project_scrum.meeting.manager","model_project_scrum_meeting","project.group_project_manager",1,1,1,1
+"access_scrum_sprint_manager","project_scrum.sprint.manager","model_project_scrum_sprint","project.group_project_manager",1,1,1,1
+"access_scrum_product_backlog_manager","project_scrum.product.backlog manager","model_project_scrum_product_backlog","project.group_project_manager",1,1,1,1
"access_product_uom_project_manager","product.uom project manager","product.model_product_uom","project.group_project_manager",1,1,1,1
"access_product_uom_project_user","product.uom project user","product.model_product_uom","project.group_project_user",1,0,0,0
"access_scrum_sprint_system","project_scrum.sprint system","model_project_scrum_sprint","base.group_system",1,0,0,0
"access_scrum_product_backlog_system","project_scrum.product.backlog system","model_project_scrum_product_backlog","base.group_system",1,0,0,0
"access_scrum_meeting_system","project_scrum.meeting system","model_project_scrum_meeting","base.group_system",1,0,0,0
+"access_project_scrum_backlog_financial_user","project_scrum.product.backlog.financial.user","model_project_scrum_product_backlog","project.group_project_finance_user",1,0,0,0
+"access_project_scrum_sprint_financial_user","project_scrum.sprint.financial.user","model_project_scrum_sprint","project.group_project_finance_user",1,0,0,0
+"access_scrum_meeting_financial_user","project_scrum.meeting.financial.user","model_project_scrum_meeting","project.group_project_finance_user",1,0,0,0
diff --git a/addons/project_timesheet/security/ir.model.access.csv b/addons/project_timesheet/security/ir.model.access.csv
index ab1e82cacb6..c3e10338ebc 100644
--- a/addons/project_timesheet/security/ir.model.access.csv
+++ b/addons/project_timesheet/security/ir.model.access.csv
@@ -4,3 +4,6 @@
"access_hr_timesheet_sheet_sheet_user","hr.timesheet.sheet.sheet.user","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","project.group_project_user",1,1,1,0
"access_hr_analytic_timesheet_system","hr.analytic.timesheet.system","hr_timesheet_sheet.model_hr_analytic_timesheet","base.group_system",1,1,1,1
"access_hr_timesheet_sheet_sheet_system","hr.timesheet.sheet.sheet.system","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","base.group_system",1,1,1,1
+"access_project_timesheet_project_financial_user","hr_timesheet_sheet.sheet.project.financial.user","hr_timesheet_sheet.model_hr_timesheet_sheet_sheet","project.group_project_finance_user",1,1,1,0
+"access_report_timesheet_task_user_financial_user","report.timesheet.task.user.financial.user","model_report_timesheet_task_user","project.group_project_finance_user",1,0,0,0
+
diff --git a/addons/purchase/purchase_demo.xml b/addons/purchase/purchase_demo.xml
index ebd0b0becaf..b3fe345308a 100644
--- a/addons/purchase/purchase_demo.xml
+++ b/addons/purchase/purchase_demo.xml
@@ -3,19 +3,17 @@
-
-
+
+
-
-
-
-
+
+
+
-
@@ -30,7 +28,6 @@
150
5
- make_to_stock
@@ -57,4 +54,4 @@
-
\ No newline at end of file
+
diff --git a/addons/purchase/security/ir.model.access.csv b/addons/purchase/security/ir.model.access.csv
index 86784a34351..77a0aff7bb4 100644
--- a/addons/purchase/security/ir.model.access.csv
+++ b/addons/purchase/security/ir.model.access.csv
@@ -31,8 +31,9 @@
"access_account_sequence_fiscalyear_purchase_user","account.sequence.fiscalyear purchase","account.model_account_sequence_fiscalyear","group_purchase_user",1,1,1,1
"access_res_partner_purchase_user","res.partner purchase","base.model_res_partner","group_purchase_user",1,0,0,0
"access_res_partner_address_purchase_user","res.partner.address purchase","base.model_res_partner_address","group_purchase_user",1,0,0,0
-"access_account_journal","account.journal","account.model_account_journal","group_purchase_user",1,1,1,0
-"access_account_journal_manager","account.journal","account.model_account_journal","group_purchase_manager",1,1,1,1
+"access_account_journal_period","account.journal.period","account.model_account_journal_period","group_purchase_user",1,1,1,0
+"access_account_journal","account.journal","account.model_account_journal","group_purchase_user",1,0,0,0
+"access_account_journal_manager","account.journal","account.model_account_journal","group_purchase_manager",1,0,0,0
"access_account_period","account.period","account.model_account_period","group_purchase_user",1,0,0,0
"access_account_fiscalyear","account.fiscalyear","account.model_account_fiscalyear","group_purchase_user",1,0,0,0
"access_account_move","account.move","account.model_account_move","group_purchase_user",1,1,1,1
diff --git a/addons/purchase_requisition/test/purchase_requisition.yml b/addons/purchase_requisition/test/purchase_requisition.yml
index 3f3aae2d8f0..c61a83a9b39 100644
--- a/addons/purchase_requisition/test/purchase_requisition.yml
+++ b/addons/purchase_requisition/test/purchase_requisition.yml
@@ -127,7 +127,7 @@
-
!python {model: stock.picking }: |
from tools.translate import _
- picking_id = self.search(cr, uid, [('origin','=','TEST/TENDER/0001'),('type','=','delivery')])
+ picking_id = self.search(cr, uid, [('origin','=','TEST/TENDER/0001')])
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
assert (pick.state =='confirmed'),_('Picking is not in confirm state.')
diff --git a/addons/sale/board_sale_view.xml b/addons/sale/board_sale_view.xml
index 39ce39eee9d..0aa1a9d238d 100644
--- a/addons/sale/board_sale_view.xml
+++ b/addons/sale/board_sale_view.xml
@@ -33,8 +33,7 @@
form
-
+
-
-
\ No newline at end of file
+
diff --git a/addons/sale/process/sale_process.xml b/addons/sale/process/sale_process.xml
index 20f20a7ef72..e20cf959c9b 100644
--- a/addons/sale/process/sale_process.xml
+++ b/addons/sale/process/sale_process.xml
@@ -85,7 +85,6 @@
-
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index c3d3d0ffc44..cfb96f7d095 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -1233,11 +1233,6 @@ class sale_config_picking_policy(osv.osv_memory):
ir_values_obj.set(cr, uid, 'default', False, 'order_policy', ['sale.order'], o.order_policy)
if o.step == 'one':
md = self.pool.get('ir.model.data')
- group_id = md._get_id(cr, uid, 'base', 'group_no_one')
- group_id = md.browse(cr, uid, group_id, context=context).res_id
- menu_id = md._get_id(cr, uid, 'stock', 'menu_action_picking_tree_delivery')
- menu_id = md.browse(cr, uid, menu_id, context=context).res_id
- self.pool.get('ir.ui.menu').write(cr, uid, [menu_id], {'groups_id': [(6, 0, [group_id])]})
location_id = md._get_id(cr, uid, 'stock', 'stock_location_output')
location_id = md.browse(cr, uid, location_id, context=context).res_id
self.pool.get('stock.location').write(cr, uid, [location_id], {'chained_auto_packing': 'transparent'})
diff --git a/addons/sale/sale_data.xml b/addons/sale/sale_data.xml
index 6c8249131e8..f2ebe3af020 100644
--- a/addons/sale/sale_data.xml
+++ b/addons/sale/sale_data.xml
@@ -2,16 +2,16 @@
+ Requests Links
+ -->
Sale Order
sale.order
+ Resource: sale.shop
+ -->
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 913dfa1f82d..0c7da4cad2d 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -2,7 +2,8 @@
-
+
@@ -375,22 +376,22 @@ to your configuration: from the sales order, from the pickings, etc.
form
-
-
-
- stock.picking.journal.view.form
- form
- stock.picking
-
-
-
-
-
-
-
-
-
-
-
-
-
- stock.picking.journal.view.tree
- tree
- stock.picking
-
-
-
-
-
-
-
-
-
-
stock.picking.journal.view.form
form
@@ -487,18 +455,6 @@
-
- stock.picking.journal.search
- stock.picking
- search
-
-
-
-
-
-
-
-
stock.picking.journal.search
stock.picking
diff --git a/addons/stock/report/report_stock_move.py b/addons/stock/report/report_stock_move.py
index 618c086cd4f..49c3f8fb327 100644
--- a/addons/stock/report/report_stock_move.py
+++ b/addons/stock/report/report_stock_move.py
@@ -39,7 +39,7 @@ class report_stock_move(osv.osv):
'product_id':fields.many2one('product.product', 'Product', readonly=True),
'company_id':fields.many2one('res.company', 'Company', readonly=True),
'picking_id':fields.many2one('stock.picking', 'Packing', readonly=True),
- 'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('delivery', 'Delivery'), ('other', 'Others')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
+ 'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('other', 'Others')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
'location_id': fields.many2one('stock.location', 'Source Location', readonly=True, select=True, help="Sets a location if you produce at a fixed location. This can be a partner location if you subcontract the manufacturing operations."),
'location_dest_id': fields.many2one('stock.location', 'Dest. Location', readonly=True, select=True, help="Location where the system will stock the finished products."),
'state': fields.selection([('draft', 'Draft'), ('waiting', 'Waiting'), ('confirmed', 'Confirmed'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')], 'State', readonly=True, select=True),
@@ -85,7 +85,7 @@ class report_stock_move(osv.osv):
al.stock_journal as stock_journal,
sum(al.in_value - al.out_value) as value
FROM (SELECT
- CASE WHEN sp.type in ('out','delivery') THEN
+ CASE WHEN sp.type in ('out') THEN
sum(sm.product_qty * pu.factor)
ELSE 0.0
END AS out_qty,
@@ -93,7 +93,7 @@ class report_stock_move(osv.osv):
sum(sm.product_qty * pu.factor)
ELSE 0.0
END AS in_qty,
- CASE WHEN sp.type in ('out','delivery') THEN
+ CASE WHEN sp.type in ('out') THEN
sum(sm.product_qty * pu.factor) * pt.standard_price
ELSE 0.0
END AS out_value,
diff --git a/addons/stock/report/report_stock_move_view.xml b/addons/stock/report/report_stock_move_view.xml
index 353b8b6bc9c..e1db3ebfa49 100644
--- a/addons/stock/report/report_stock_move_view.xml
+++ b/addons/stock/report/report_stock_move_view.xml
@@ -96,7 +96,6 @@
-
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 5e9fb88b7d5..d19003d117b 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -186,7 +186,7 @@ class stock_location(osv.osv):
"validated automatically. With 'Manual Operation', the stock move has to be validated "\
"by a worker. With 'Automatic No Step Added', the location is replaced in the original move."
),
- 'chained_picking_type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('delivery', 'Delivery')], 'Shipping Type', help="Shipping Type of the Picking List that will contain the chained move (leave empty to automatically detect the type based on the source and destination locations)."),
+ 'chained_picking_type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], 'Shipping Type', help="Shipping Type of the Picking List that will contain the chained move (leave empty to automatically detect the type based on the source and destination locations)."),
'chained_company_id': fields.many2one('res.company', 'Chained Company', help='The company the Picking List containing the chained move will belong to (leave empty to use the default company determination rules'),
'chained_delay': fields.integer('Chaining Lead Time',help="Delay between original move and chained move in days"),
'address_id': fields.many2one('res.partner.address', 'Location Address',help="Address of customer or supplier."),
@@ -242,7 +242,7 @@ class stock_location(osv.osv):
"""
result = 'internal'
if (from_location.usage=='internal') and (to_location and to_location.usage in ('customer', 'supplier')):
- result = 'delivery'
+ result = 'out'
elif (from_location.usage in ('supplier', 'customer')) and (to_location.usage == 'internal'):
result = 'in'
return result
@@ -602,7 +602,7 @@ class stock_picking(osv.osv):
'name': fields.char('Reference', size=64, select=True),
'origin': fields.char('Origin', size=64, help="Reference of the document that produced this picking.", select=True),
'backorder_id': fields.many2one('stock.picking', 'Back Order of', help="If this picking was split this field links to the picking that contains the other part that has been processed already.", select=True),
- 'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal'), ('delivery', 'Delivery')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
+ 'type': fields.selection([('out', 'Sending Goods'), ('in', 'Getting Goods'), ('internal', 'Internal')], 'Shipping Type', required=True, select=True, help="Shipping type specify, goods coming in or going out."),
'note': fields.text('Notes'),
'stock_journal_id': fields.many2one('stock.journal','Stock Journal', select=True),
'location_id': fields.many2one('stock.location', 'Location', help="Keep empty if you produce at the location where the finished products are needed." \
@@ -633,7 +633,7 @@ class stock_picking(osv.osv):
'move_lines': fields.one2many('stock.move', 'picking_id', 'Internal Moves', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
'auto_picking': fields.boolean('Auto-Picking'),
'address_id': fields.many2one('res.partner.address', 'Address', help="Address of partner"),
- 'partner_id': fields.related('address_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True),
+ 'partner_id': fields.related('address_id','partner_id',type='many2one',relation='res.partner',string='Partner',store=True),
'invoice_state': fields.selection([
("invoiced", "Invoiced"),
("2binvoiced", "To Be Invoiced"),
@@ -1063,14 +1063,14 @@ class stock_picking(osv.osv):
if move.state not in ('cancel',):
return False
return True
-
+
def allow_cancel(self, cr, uid, ids, context={}):
for pick in self.browse(cr, uid, ids, context=context):
if not pick.move_lines:
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 picking because stock move is in done state !'))
return True
def unlink(self, cr, uid, ids, context=None):
move_obj = self.pool.get('stock.move')
@@ -1165,7 +1165,7 @@ class stock_picking(osv.osv):
# Record the values that were chosen in the wizard, so they can be
# used for inventory valuation if real-time valuation is enabled.
- move_obj.write(cr, uid, [move.id],
+ move_obj.write(cr, uid, [move.id],
{'price_unit': product_price,
'price_currency_id': product_currency})
@@ -1251,7 +1251,6 @@ class stock_picking(osv.osv):
'out':'Picking List',
'in':'Reception',
'internal': 'Internal picking',
- 'delivery': 'Delivery order'
}
message = type_list.get(pick.type, _('Document')) + " '" + (pick.name or 'n/a') + "' "
if pick.min_date:
@@ -1337,7 +1336,7 @@ class stock_production_lot(osv.osv):
'prefix': fields.char('Prefix', size=64, help="Optional prefix to prepend when displaying this serial number: PREFIX/SERIAL [INT_REF]"),
'product_id': fields.many2one('product.product', 'Product', required=True),
'date': fields.datetime('Creation Date', required=True),
- 'stock_available': fields.function(_get_stock, fnct_search=_stock_search, method=True, type="float", string="Available", select=True,
+ 'stock_available': fields.function(_get_stock, fnct_search=_stock_search, method=True, type="float", string="Available", select=True,
help="Current quantity of products with this Production Lot Number available in company warehouses",
digits_compute=dp.get_precision('Product UoM')),
'revisions': fields.one2many('stock.production.lot.revision', 'lot_id', 'Revisions'),
@@ -1652,10 +1651,20 @@ class stock_move(osv.osv):
)
if dest:
if dest[1] == 'transparent':
+ newdate = (datetime.strptime(m.date, '%Y-%m-%d %H:%M:%S') + relativedelta(days=dest[2] or 0)).strftime('%Y-%m-%d')
self.write(cr, uid, [m.id], {
- 'date': (datetime.strptime(m.date, '%Y-%m-%d %H:%M:%S') + \
- relativedelta(days=dest[2] or 0)).strftime('%Y-%m-%d'),
+ 'date': newdate,
'location_dest_id': dest[0].id})
+ if m.picking_id and (dest[3] or dest[5]):
+ self.pool.get('stock.picking').write(cr, uid, [m.picking_id.id], {
+ 'stock_journal_id': dest[3] or m.picking_id.stock_journal_id.id,
+ 'type': dest[5] or m.picking_id.type
+ }, context=context)
+ m.location_dest_id = dest[0]
+ res2 = self._chain_compute(cr, uid, [m], context=context)
+ for pick_id in res2.keys():
+ result.setdefault(pick_id, [])
+ result[pick_id] += res2[pick_id]
else:
result.setdefault(m.picking_id, [])
result[m.picking_id].append( (m, dest) )
@@ -1695,16 +1704,10 @@ class stock_move(osv.osv):
for picking, todo in self._chain_compute(cr, uid, moves, context=context).items():
ptype = todo[0][1][5] and todo[0][1][5] or self.pool.get('stock.location').picking_type_get(cr, uid, todo[0][0].location_dest_id, todo[0][1][0])
pick_name = picking.name or ''
- if ptype == 'delivery':
- pick_name = self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.delivery')
- check_picking_ids = picking_obj.search(cr, uid, [('name','=',picking.name),('origin','=',str(picking.origin or '')),('type','=',ptype),('move_type','=',picking.move_type)])
- if check_picking_ids:
- pickid = check_picking_ids[0]
+ if picking:
+ pickid = self._create_chained_picking(cr, uid, pick_name,picking,ptype,todo,context)
else:
- if picking:
- pickid = self._create_chained_picking(cr, uid, pick_name,picking,ptype,todo,context)
- else:
- pickid = False
+ pickid = False
for move, (loc, auto, delay, journal, company_id, ptype) in todo:
new_id = move_obj.copy(cr, uid, move.id, {
'location_id': move.location_dest_id.id,
@@ -1851,7 +1854,7 @@ class stock_move(osv.osv):
"""
Return the accounts and journal to use to post Journal Entries for the real-time
valuation of the move.
-
+
:param context: context dictionary that can explicitly mention the company to consider via the 'force_company' key
:raise: osv.except_osv() is any mandatory account or journal is not defined.
"""
@@ -1893,13 +1896,13 @@ class stock_move(osv.osv):
default_uom = move.product_id.uom_id.id
qty = product_uom_obj._compute_qty(cr, uid, move.product_uom.id, move.product_qty, default_uom)
- # if product is set to average price and a specific value was entered in the picking wizard,
+ # if product is set to average price and a specific value was entered in the picking wizard,
# we use it
if move.product_id.cost_method == 'average' and move.price_unit:
reference_amount = qty * move.price_unit
reference_currency_id = move.price_currency_id.id or reference_currency_id
- # Otherwise we default to the company's valuation price type, considering that the values of the
+ # Otherwise we default to the company's valuation price type, considering that the values of the
# valuation field are expressed in the default currency of the move's company.
else:
if context is None:
@@ -1941,7 +1944,7 @@ class stock_move(osv.osv):
move_obj = self.pool.get('account.move')
for j_id, move_lines in account_moves:
- move_obj.create(cr, uid,
+ move_obj.create(cr, uid,
{'name': move.name,
'journal_id': j_id,
'line_id': move_lines,
@@ -2006,10 +2009,10 @@ class stock_move(osv.osv):
def _create_account_move_line(self, cr, uid, move, src_account_id, dest_account_id, reference_amount, reference_currency_id, context=None):
"""
- Generate the account.move.line values to post to track the stock valuation difference due to the
+ Generate the account.move.line values to post to track the stock valuation difference due to the
processing of the given stock move.
"""
- # prepare default values considering that the destination accounts have the reference_currency_id as their main currency
+ # prepare default values considering that the destination accounts have the reference_currency_id as their main currency
partner_id = (move.picking_id.address_id and move.picking_id.address_id.partner_id and move.picking_id.address_id.partner_id.id) or False
debit_line_vals = {
'name': move.name,
@@ -2033,7 +2036,7 @@ class stock_move(osv.osv):
}
# if we are posting to accounts in a different currency, provide correct values in both currencies correctly
- # when compatible with the optional secondary currency on the account.
+ # when compatible with the optional secondary currency on the account.
# Financial Accounts only accept amounts in secondary currencies if there's no secondary currency on the account
# or if it's the same as that of the secondary amount being posted.
account_obj = self.pool.get('account.account')
@@ -2310,7 +2313,7 @@ class stock_move(osv.osv):
# Record the values that were chosen in the wizard, so they can be
# used for inventory valuation if real-time valuation is enabled.
- self.write(cr, uid, [move.id],
+ self.write(cr, uid, [move.id],
{'price_unit': product_price,
'price_currency_id': product_currency,
})
diff --git a/addons/stock/stock_data.xml b/addons/stock/stock_data.xml
index b9aaff33e72..be1881634eb 100644
--- a/addons/stock/stock_data.xml
+++ b/addons/stock/stock_data.xml
@@ -74,11 +74,17 @@
view
+
+
+ Delivery Orders
+
Output
internal
customer
+ out
+
Stock
diff --git a/addons/stock/stock_demo.xml b/addons/stock/stock_demo.xml
index 1249317a2e4..33d130c2d77 100644
--- a/addons/stock/stock_demo.xml
+++ b/addons/stock/stock_demo.xml
@@ -3,8 +3,8 @@
+ Resource: stock.location
+ -->
IT Suppliers
@@ -30,30 +30,18 @@
customer
-
- Stock Level 1
-
-
Shelf 2
-
-
-
- Sub Products
-
-
-
- Workshop
Shelf 1
-
+
+ Resource: stock.inventory
+ -->
Starting Inventory
@@ -62,8 +50,8 @@
+ Resource: stock.inventory.line
+ -->
@@ -189,7 +177,7 @@
-
+
@@ -206,7 +194,7 @@
-
+
@@ -223,7 +211,7 @@
-
+
@@ -234,14 +222,14 @@
-
+
-
+
@@ -263,13 +251,13 @@
-
+
property_stock_variation
-
-
+
+
-
+
PACKO1
out
direct
diff --git a/addons/stock/stock_sequence.xml b/addons/stock/stock_sequence.xml
index 06d898c6637..cabf24dda5b 100644
--- a/addons/stock/stock_sequence.xml
+++ b/addons/stock/stock_sequence.xml
@@ -20,14 +20,9 @@
stock.picking.internal
-
- Picking Delivery
- stock.picking.delivery
-
-
-
+
Picking IN
@@ -50,13 +45,6 @@
5
-
- Picking DLV
- stock.picking.delivery
- DLV/
- 5
-
-
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index 431045fb4d8..d1263763f9b 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -114,7 +114,6 @@
string="Split inventory lines" groups="base.group_extended"
type="action" icon="terp-stock_effects-object-colorize"/>
-
@@ -652,7 +651,6 @@
-
@@ -686,7 +684,6 @@
states="draft,assigned,confirmed,done"/>
-
@@ -802,224 +799,6 @@
-
- stock.picking.delivery.tree
- stock.picking
- tree
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- stock.picking.delivery.form
- stock.picking
- form
-
-
-
-
-
-
- stock.view_stock_delivery_filter.list.select
- stock.picking
- search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Delivery Orders
- stock.picking
- ir.actions.act_window
- form
- tree,form,calendar
- [('type','=','delivery')]
- {'contact_display': 'partner_address',"search_default_available":1}
-
-
-
-
- tree
-
-
-
-
-
- form
-
-
-
-
-
- calendar
-
-
-
-