diff --git a/addons/account/account_report.xml b/addons/account/account_report.xml
index e4f9ca21b02..7cc26443506 100644
--- a/addons/account/account_report.xml
+++ b/addons/account/account_report.xml
@@ -5,9 +5,9 @@
-
-
-
+
+
+
@@ -17,23 +17,23 @@
-
+
+ id="wizard_vat_declaration"
+ menu="False"
+ model="account.tax.code"
+ name="account.vat.declaration"
+ string="Print Taxes Report"/>
+ action="wizard_vat_declaration"
+ id="menu_wizard_vat_declaration"
+ parent="menu_tax_report"
+ type="wizard"/>
@@ -43,20 +43,20 @@
tree
-
+
+
+ -->
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index a9fbb81131d..404d1371d0b 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1372,7 +1372,7 @@
-
+
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml
index b2f08ce037e..71ba2d7bb9e 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_menu.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_menu.xml
@@ -1,31 +1,39 @@
-
-
-
- My managed accounts
+ My Accounts
account.analytic.account
form
tree,form,graph
[('user_id','=',uid)]
+
+
+
-
+
+
+
+ All Uninvoiced Entries
+ account.analytic.line
+ form
+ tree,form,graph
+ [('invoice_id','=',False),('to_invoice','!=',False)]
+
+
- Uninvoiced entries of my accounts
+ My Uninvoiced Entries
account.analytic.line
form
tree,form,graph
[('invoice_id','=',False),('to_invoice','!=',False),('account_id.user_id','=',uid)]
-
-
+
- My Open Managed Accounts
+ My Current Accounts
account.analytic.account
form
tree,form,graph
@@ -35,7 +43,7 @@
- My Pending Managed Accounts
+ My Pending Accounts
account.analytic.account
form
tree,form,graph
@@ -44,15 +52,6 @@
-
- Overpassed Accounts
- account.analytic.account
- form
- tree,form,graph
- [('date','<=',time.strftime('%Y-%m-%d')),('state','=','open')]
-
-
-
New Analytic Account
account.analytic.account
@@ -62,7 +61,8 @@
+ sequence="50"
+ parent="account_analytic_analysis.menu_account"/>
All Analytic Accounts
@@ -73,28 +73,30 @@
[]
-
+
-
- Draft Analytic Accounts
+
+ Overpassed Accounts
account.analytic.account
form
tree,form,graph
-
- [('state','=','draft')]
+ [('date','<=',time.strftime('%Y-%m-%d')),('state','=','open')]
+
-
- Open Analytic Accounts
+ Current Analytic Accounts
account.analytic.account
form
tree,form,graph
[('state','=','open')]
-
@@ -107,15 +109,5 @@
-
- Simplified View Analytic Accounts
- account.analytic.account
- form
- tree,form,graph
-
- []
-
-
-
diff --git a/addons/base_contact/base_contact.py b/addons/base_contact/base_contact.py
index c56aeaa2312..5700e97d2d3 100644
--- a/addons/base_contact/base_contact.py
+++ b/addons/base_contact/base_contact.py
@@ -52,6 +52,8 @@ class res_partner_contact(osv.osv):
'country_id':fields.many2one('res.country','Nationality'),
'birthdate':fields.date('Birth Date'),
'active' : fields.boolean('Active'),
+ 'partner_id':fields.related('job_ids','address_id','partner_id',type='many2one', relation='res.partner', string='Main Employer'),
+ 'function_id':fields.related('job_ids','function_id',type='many2one', relation='res.partner.function', string='Main Job'),
}
_defaults = {
'active' : lambda *a: True,
@@ -91,19 +93,13 @@ class res_partner_address(osv.osv):
_inherit='res.partner.address'
_description ='Partner Address'
_columns = {
- 'job_ids':fields.one2many('res.partner.job', 'address_id', 'Functions and Addresses'),
+ 'job_ids':fields.one2many('res.partner.job', 'address_id', 'Contacts'),
'email': fields.related('job_ids', 'email', type='char', string='Default Email'),
}
res_partner_address()
class res_partner_job(osv.osv):
- def _get_partner_id(self, cr, uid, ids, *a):
- res={}
- for id in self.browse(cr, uid, ids):
- res[id.id] = id.address_id.partner_id and id.address_id.partner_id.id or False
- return res
-
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
@@ -122,15 +118,15 @@ class res_partner_job(osv.osv):
return super(res_partner_job,self).search(cr, user, args, offset, limit, order, context, count)
_name = 'res.partner.job'
- _description ='Contact Function'
+ _description ='Contact Job Title'
_order = 'sequence_contact'
_columns = {
- 'name': fields.function(_get_partner_id, method=True, type='many2one', relation='res.partner', string='Partner'),
+ 'name': fields.related('address_id','partner_id', type='many2one', relation='res.partner', string='Partner'),
'address_id':fields.many2one('res.partner.address','Address', required=True),
'contact_id':fields.many2one('res.partner.contact','Contact', required=True),
- 'function_id': fields.many2one('res.partner.function','Function', required=True),
+ 'function_id': fields.many2one('res.partner.function','Job Title', required=True),
'sequence_contact':fields.integer('Sequence (Contact)',help='order of importance of this address in the list of addresses of the linked contact'),
- 'sequence_partner':fields.integer('Sequence (Partner)',help='order of importance of this function in the list of functions of the linked partner'),
+ 'sequence_partner':fields.integer('Sequence (Partner)',help='order of importance of this job title in the list of job title of the linked partner'),
'email': fields.char('E-Mail', size=240),
'phone': fields.char('Phone', size=64),
'date_start' : fields.date('Date Start'),
diff --git a/addons/base_contact/base_contact_demo.xml b/addons/base_contact/base_contact_demo.xml
index 09cca7acdb6..373e45b806c 100644
--- a/addons/base_contact/base_contact_demo.xml
+++ b/addons/base_contact/base_contact_demo.xml
@@ -232,74 +232,74 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-1
-
+
diff --git a/addons/base_contact/base_contact_view.xml b/addons/base_contact/base_contact_view.xml
index 6fa5301c1bd..6bf2b2ef61a 100644
--- a/addons/base_contact/base_contact_view.xml
+++ b/addons/base_contact/base_contact_view.xml
@@ -13,6 +13,8 @@
+
+
@@ -34,6 +36,8 @@
+
+
-
-
- Working Hours
- ir.actions.act_window
- hr.analytic.timesheet
- form
-
-
-
+
My Working Hours
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index 3ce0ae29976..e456a9db2eb 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -190,18 +190,31 @@
-
+
-
+
-
+
+
-
-
-
diff --git a/addons/mrp/mrp.py b/addons/mrp/mrp.py
index 73a9f20ddf9..cd615f84006 100644
--- a/addons/mrp/mrp.py
+++ b/addons/mrp/mrp.py
@@ -1136,6 +1136,11 @@ class StockMove(osv.osv):
_columns = {
'procurements': fields.one2many('mrp.procurement', 'move_id', 'Procurements'),
}
+ def copy(self, cr, uid, id, default=None, context=None):
+ default = default or {}
+ default['procurements'] = []
+ return super(StockMove, self).copy(cr, uid, id, default, context)
+
def _action_explode(self, cr, uid, move, context={}):
if move.product_id.supply_method=='produce' and move.product_id.procure_method=='make_to_order':
bis = self.pool.get('mrp.bom').search(cr, uid, [
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index 7276743e801..c1a5dd334e5 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -3,6 +3,7 @@
+
@@ -33,7 +34,7 @@
-
+
@@ -89,36 +90,10 @@
-
- All Projects
- project.project
- tree
- [('parent_id','=',False)]
-
-
-
-
-
- Unclosed projects
- project.project
- tree
- [('parent_id','=',False),('state','<>','cancelled'),('state','<>','done')]
-
-
-
-
-
-
- Open projects
- project.project
- tree
- [('parent_id','=',False),('state','=','open')]
-
-
-
+
- Open projects
+ Running projects
project.project
form
[('state','=','open')]
@@ -142,7 +117,7 @@
form,tree,calendar
-
+
project.task.work.form
@@ -189,33 +164,37 @@
- My projects
+ My Projects
project.project
- tree
- [('parent_id','=',False),('manager', '=', uid)]
+ form
+ [('manager', '=', uid)]
-
+
-
-
- My unclosed projects
+
+ My Running Projects
project.project
- tree
- [('parent_id','=',False),('manager', '=', uid),('state','<>','cancelled'),('state','<>','done')]
+ form
+ [('manager', '=', uid),('state','=','open')]
-
-
+
- My open projects
+ Projects Structure
project.project
tree
- [('parent_id','=',False),('manager', '=', uid),('state','=','open')]
-
+ [('parent_id','=',False)]
-
+
@@ -249,8 +228,8 @@
-
-
+
+
@@ -359,7 +338,7 @@
tree,form,calendar,gantt,graph
-
+
My Tasks
@@ -368,7 +347,7 @@
tree,form,calendar,gantt,graph
[('user_id', '=', uid)]
-
+
My Pending Tasks
@@ -379,23 +358,34 @@
-
- My Open Tasks
+
+ My Current Tasks
project.task
form
tree,form,calendar,graph
- [('user_id', '=', uid),('state','=','open')]
+ [('user_id', '=', uid),('state','in',('open','draft'))]
-
+
-
+
My Tasks in Progress
project.task
form
tree,form,calendar,graph
- [('user_id', '=', uid),('state','=','open')]
+ [('user_id', '=', uid),('state','=','open'))]
-
+
+
+
+ My Draft Tasks
+ project.task
+ form
+ tree,form,calendar,graph
+ [('user_id', '=', uid),('state','=','draft'))]
+
+
+
New Task
@@ -403,16 +393,7 @@
form
form,tree,calendar,graph
-
-
-
- Open Tasks
- project.task
- form
- tree,form,calendar,graph
- [('state', '=', 'open')]
-
-
+
Tasks in Progress
@@ -502,7 +483,7 @@
tree,graph
[]
-
+
+
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index ca2f2b96abe..0da93f13b59 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -456,19 +456,22 @@ class sale_order(osv.osv):
write_cancel_ids = []
for order in self.browse(cr, uid, ids, context={}):
for line in order.order_line:
- if line.procurement_id and (line.procurement_id.state != 'done') and (line.state!='done'):
+ if (not line.procurement_id) or (line.procurement_id.state=='done') or (line.procurement_id.move_id and line.procurement_id.move_id.state=='done'):
+ finished = True
+ else:
finished = False
- if line.procurement_id and line.procurement_id.state == 'cancel':
- canceled = True
- if line.procurement_id and line.procurement_id.state <> 'cancel':
- notcanceled = True
+ if line.procurement_id:
+ if (line.procurement_id.state == 'cancel') or (line.procurement_id.move_id and line.procurement_id.move_id.state=='cancel'):
+ canceled = True
+ if line.state != 'cancel':
+ write_cancel_ids.append(line.id)
+ else:
+ notcanceled = True
# if a line is finished (ie its procuremnt is done or it has not procuremernt and it
# is not already marked as done, mark it as being so...
if ((not line.procurement_id) or line.procurement_id.state == 'done') and line.state != 'done':
write_done_ids.append(line.id)
- # ... same for canceled lines
- if line.procurement_id and line.procurement_id.state == 'cancel' and line.state != 'cancel':
- write_cancel_ids.append(line.id)
+
if write_done_ids:
self.pool.get('sale.order.line').write(cr, uid, write_done_ids, {'state': 'done'})
if write_cancel_ids:
@@ -477,6 +480,7 @@ class sale_order(osv.osv):
if mode=='finished':
return finished
elif mode=='canceled':
+ return canceled
if notcanceled:
return False
return canceled
@@ -932,25 +936,45 @@ class sale_config_picking_policy(osv.osv_memory):
'name':fields.char('Name', size=64),
'picking_policy': fields.selection([
('direct','Direct Delivery'),
- ('one','All at once')
- ], 'Packing Policy', required=True ),
+ ('one','All at Once')
+ ], 'Packing Default Policy', required=True ),
'order_policy': fields.selection([
- ('manual','Invoice based on Sales Orders'),
- ('picking','Invoice based on Deliveries'),
- ], 'Shipping Policy', required=True, readonly=True, states={'draft':[('readonly',False)]}),
+ ('manual','Invoice Based on Sales Orders'),
+ ('picking','Invoice Based on Deliveries'),
+ ], 'Shipping Default Policy', required=True),
+ 'step': fields.selection([
+ ('one','Delivery Order Only'),
+ ('two','Packing List & Delivery Order')
+ ], 'Steps To Deliver a Sale Order', required=True,
+ help="By default, Open ERP is able to manage complex routing and paths "\
+ "of products in your warehouse and partner locations. This will configure "\
+ "the most common and simple methods to deliver products to the customer "\
+ "in one or two operations by the worker.")
}
_defaults={
'picking_policy': lambda *a: 'direct',
- 'order_policy': lambda *a: 'picking'
+ 'order_policy': lambda *a: 'picking',
+ 'step': lambda *a: 'one'
}
def set_default(self, cr, uid, ids, context=None):
- print context
for o in self.browse(cr, uid, ids, context=context):
- print o.picking_policy, o.order_policy
ir_values_obj = self.pool.get('ir.values')
ir_values_obj.set(cr,uid,'default',False,'picking_policy',['sale.order'],o.picking_policy)
ir_values_obj = self.pool.get('ir.values')
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).res_id
+ menu_id = md._get_id(cr, uid, 'stock', 'menu_action_picking_tree_delivery')
+ menu_id = md.browse(cr, uid, menu_id, 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).res_id
+ self.pool.get('stock.location').write(cr, uid, [location_id], {'chained_auto_packing':'transparent'})
+
return {
'view_type': 'form',
"view_mode": 'form',
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 3b1feda3837..5c2f0d0f256 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -424,7 +424,8 @@
form
-
+
Uninvoiced Lines
@@ -463,6 +464,8 @@
+
+
diff --git a/addons/sale/sale_wizard.xml b/addons/sale/sale_wizard.xml
index b829aafa472..57bcd200071 100644
--- a/addons/sale/sale_wizard.xml
+++ b/addons/sale/sale_wizard.xml
@@ -3,26 +3,26 @@
+ id="wizard_sale_order_make_invoice"
+ keyword="client_action_multi"
+ model="sale.order"
+ name="sale.order.make_invoice"
+ multi="True"
+ string="Make invoices"/>
+ id="wizard_sale_order_line_invoice"
+ keyword="client_action_multi"
+ model="sale.order.line"
+ name="sale.order.line.make_invoice"
+ multi="True"
+ string="Make invoices"/>
-
+
diff --git a/addons/stock/stock_report.xml b/addons/stock/stock_report.xml
index a7bf9eaf91e..23be9757055 100644
--- a/addons/stock/stock_report.xml
+++ b/addons/stock/stock_report.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/addons/stock/stock_view.xml b/addons/stock/stock_view.xml
index db0c09fbb56..d4fbbfbe9d6 100644
--- a/addons/stock/stock_view.xml
+++ b/addons/stock/stock_view.xml
@@ -857,7 +857,7 @@
- Sending Products
+ Outgoing Products
stock.picking
ir.actions.act_window
form
@@ -1038,7 +1038,7 @@
- Getting Products
+ Incoming Products
stock.picking
ir.actions.act_window
form
@@ -1122,7 +1122,7 @@
- Internal Packings
+ Internal Moves
stock.picking
ir.actions.act_window
form