[IMP]: Added context=None in function argument for rest modules.
bzr revid: uco@tinyerp.com-20101122103753-idv9fdaqc28rvugu
This commit is contained in:
parent
427cd9af23
commit
8035df3e11
|
@ -81,7 +81,7 @@ class job2phonecall(osv.osv_memory):
|
|||
if id3:
|
||||
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
|
||||
|
||||
for job in job_case_obj.browse(cr, uid, context.get('active_id', False), context=context):
|
||||
for job in job_case_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
#TODO: Take other info from job
|
||||
new_phonecall_id = phonecall_case_obj.create(cr, uid, {
|
||||
'name': job.name,
|
||||
|
|
|
@ -192,6 +192,8 @@ class mrp_repair(osv.osv):
|
|||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({
|
||||
'state':'draft',
|
||||
'repaired':False,
|
||||
|
|
|
@ -30,6 +30,8 @@ class outlook_installer(osv.osv_memory):
|
|||
_inherit = 'res.config.installer'
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(outlook_installer, self).default_get(cr, uid, fields, context=context)
|
||||
data['doc_file'] = 'http://doc.openerp.com/book/2/2_6_Comms/2_6_Comms_outlook.html'
|
||||
file = open(addons.get_module_resource('outlook','plugin','openerp-outlook-addin.exe'), 'r')
|
||||
|
|
|
@ -52,6 +52,8 @@ class account_cash_statement(osv.osv):
|
|||
return True
|
||||
|
||||
def _user_allow(self, cr, uid, statement_id, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
statement = self.browse(cr, uid, statement_id, context=context)
|
||||
if (not statement.journal_id.journal_users) and uid == 1: return True
|
||||
for user in statement.journal_id.journal_users:
|
||||
|
|
|
@ -60,6 +60,8 @@ class pos_order(osv.osv):
|
|||
_order = "date_order, create_date desc"
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for rec in self.browse(cr, uid, ids, context=context):
|
||||
for rec_statement in rec.statement_ids:
|
||||
if (rec_statement.statement_id and rec_statement.statement_id.state == 'confirm') or rec.state == 'done':
|
||||
|
@ -70,6 +72,8 @@ class pos_order(osv.osv):
|
|||
""" Changed price list on_change of partner_id"""
|
||||
if not part:
|
||||
return {'value': {}}
|
||||
if not context:
|
||||
context = {}
|
||||
pricelist = self.pool.get('res.partner').browse(cr, uid, part, context=context).property_product_pricelist.id
|
||||
return {'value': {'pricelist_id': pricelist}}
|
||||
|
||||
|
@ -77,6 +81,8 @@ class pos_order(osv.osv):
|
|||
""" Calculates amount_tax of order line
|
||||
@param field_names: Names of fields.
|
||||
@return: Dictionary of values """
|
||||
if not context:
|
||||
context = {}
|
||||
cr.execute("""
|
||||
SELECT
|
||||
p.id,
|
||||
|
@ -122,14 +128,12 @@ class pos_order(osv.osv):
|
|||
res[order.id] = val
|
||||
return res
|
||||
|
||||
def _get_date_payment(self, cr, uid, ids, context=None, *a):
|
||||
def _get_date_payment(self, cr, uid, ids, context, *a):
|
||||
""" Find Validation Date
|
||||
@return: Dictionary of values """
|
||||
res = {}
|
||||
val = None
|
||||
if not context:
|
||||
context = {}
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
for order in self.browse(cr, uid, ids):
|
||||
cr.execute("SELECT date_validation FROM pos_order WHERE id = %s", (order.id,))
|
||||
date_p = cr.fetchone()
|
||||
date_p = date_p and date_p[0] or None
|
||||
|
@ -199,6 +203,8 @@ class pos_order(osv.osv):
|
|||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({
|
||||
'state': 'draft',
|
||||
'partner_id': False,
|
||||
|
@ -293,6 +299,8 @@ class pos_order(osv.osv):
|
|||
@param name: Names of fields.
|
||||
@return: pricelist ID
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
pricelist = self.pool.get('product.pricelist').search(cr, uid, [('name', '=', 'Public Pricelist')], context=context)
|
||||
return pricelist and pricelist[0] or False
|
||||
|
||||
|
@ -341,6 +349,8 @@ class pos_order(osv.osv):
|
|||
""" Test all amount is paid for this order
|
||||
@return: True
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
if order.lines and not order.amount_total:
|
||||
return True
|
||||
|
@ -506,6 +516,8 @@ class pos_order(osv.osv):
|
|||
""" Changes order state to cancel
|
||||
@return: True
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'cancel'}, context=context)
|
||||
self.cancel_picking(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
@ -516,6 +528,8 @@ class pos_order(osv.osv):
|
|||
statement_line_obj = self.pool.get('account.bank.statement.line')
|
||||
prod_obj = self.pool.get('product.product')
|
||||
property_obj = self.pool.get('ir.property')
|
||||
if not context:
|
||||
context = {}
|
||||
curr_c = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
|
||||
curr_company = curr_c.id
|
||||
order = self.browse(cr, uid, order_id, context=context)
|
||||
|
@ -678,6 +692,8 @@ class pos_order(osv.osv):
|
|||
account_tax_obj = self.pool.get('account.tax')
|
||||
res_obj=self.pool.get('res.users')
|
||||
property_obj=self.pool.get('ir.property')
|
||||
if not context:
|
||||
context = {}
|
||||
period = account_period_obj.find(cr, uid, context=context)[0]
|
||||
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
|
@ -904,10 +920,14 @@ class pos_order(osv.osv):
|
|||
return True
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'cancel'}, context=context)
|
||||
return True
|
||||
|
||||
def action_done(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
if not order.journal_entry:
|
||||
self.create_account_move(cr, uid, ids, context=None)
|
||||
|
@ -936,11 +956,9 @@ account_bank_statement()
|
|||
|
||||
class account_bank_statement_line(osv.osv):
|
||||
_inherit = 'account.bank.statement.line'
|
||||
def _get_statement_journal(self, cr, uid, ids, context=None, *a):
|
||||
def _get_statement_journal(self, cr, uid, ids, context, *a):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
for line in self.browse(cr, uid, ids):
|
||||
res[line.id] = line.statement_id and line.statement_id.journal_id and line.statement_id.journal_id.name or None
|
||||
return res
|
||||
_columns= {
|
||||
|
@ -1137,6 +1155,8 @@ class pos_order_line(osv.osv):
|
|||
return {'value': {'notice': 'No Discount', 'price_ded': price * discount * 0.01 or 0.0}}
|
||||
|
||||
def onchange_qty(self, cr, uid, ids, discount, qty, price, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
subtotal = qty * price
|
||||
if discount:
|
||||
subtotal = subtotal - (subtotal * discount / 100)
|
||||
|
|
|
@ -34,6 +34,8 @@ class all_closed_cashbox_of_the_day(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : retrun report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
|
|
|
@ -61,6 +61,8 @@ class pos_box_entries(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return :Return of operation of product
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
product_obj = self.pool.get('product.product')
|
||||
ids = product_obj.search(cr, uid, [('income_pdt', '=', True)], context=context)
|
||||
res = product_obj.read(cr, uid, ids, ['id', 'name'], context=context)
|
||||
|
@ -95,6 +97,8 @@ class pos_box_entries(osv.osv_memory):
|
|||
res_obj = self.pool.get('res.users')
|
||||
product_obj = self.pool.get('product.product')
|
||||
bank_statement = self.pool.get('account.bank.statement.line')
|
||||
if not context:
|
||||
context = {}
|
||||
for data in self.read(cr, uid, ids, context=context):
|
||||
vals = {}
|
||||
curr_company = res_obj.browse(cr, uid, uid, context=context).company_id.id
|
||||
|
|
|
@ -41,6 +41,8 @@ class pos_box_out(osv.osv_memory):
|
|||
@return :Return of operation of product
|
||||
"""
|
||||
product_obj = self.pool.get('product.product')
|
||||
if not context:
|
||||
context = {}
|
||||
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
|
||||
ids = product_obj.search(cr, uid, ['&', ('expense_pdt', '=', True), '|', ('company_id', '=', company_id), ('company_id', '=', None)], context=context)
|
||||
res = product_obj.read(cr, uid, ids, ['id', 'name'], context=context)
|
||||
|
@ -75,6 +77,8 @@ class pos_box_out(osv.osv_memory):
|
|||
product_obj = self.pool.get('product.template')
|
||||
productp_obj = self.pool.get('product.product')
|
||||
res_obj = self.pool.get('res.users')
|
||||
if not context:
|
||||
context = {}
|
||||
for data in self.read(cr, uid, ids, context=context):
|
||||
curr_company = res_obj.browse(cr, uid, uid, context=context).company_id.id
|
||||
statement_id = statement_obj.search(cr, uid, [('journal_id', '=', data['journal_id']), ('company_id', '=', curr_company), ('user_id', '=', uid), ('state', '=', 'open')], context=context)
|
||||
|
|
|
@ -43,6 +43,8 @@ class pos_close_statement(osv.osv_memory):
|
|||
j_ids = map(lambda x1: x1[0], cr.fetchall())
|
||||
journal_ids = journal_obj.search(cr, uid, [('auto_cash', '=', True), ('type', '=', 'cash'), ('id', 'in', j_ids)], context=context)
|
||||
ids = statement_obj.search(cr, uid, [('state', '!=', 'confirm'), ('user_id', '=', uid), ('journal_id', 'in', journal_ids)], context=context)
|
||||
if not context:
|
||||
context = {}
|
||||
for journal in journal_obj.browse(cr, uid, journal_ids, context=context):
|
||||
if not ids:
|
||||
raise osv.except_osv(_('Message'), _('Cash registers are already closed.'))
|
||||
|
|
|
@ -43,6 +43,8 @@ class pos_discount(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: New arch of view with new columns.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
super(pos_discount, self).view_init(cr, uid, fields_list, context=context)
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
order = self.pool.get('pos.order').browse(cr, uid, record_id, context=context)
|
||||
|
|
|
@ -40,6 +40,8 @@ class pos_open_statement(osv.osv_memory):
|
|||
statement_obj = self.pool.get('account.bank.statement')
|
||||
sequence_obj = self.pool.get('ir.sequence')
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
if not context:
|
||||
context = {}
|
||||
company_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id
|
||||
cr.execute("SELECT DISTINCT journal_id FROM pos_journal_users "
|
||||
"WHERE user_id = %s ORDER BY journal_id"% (uid, ))
|
||||
|
|
|
@ -81,6 +81,8 @@ class pos_make_payment(osv.osv_memory):
|
|||
return res
|
||||
|
||||
def view_init(self, cr, uid, fields_list, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
super(pos_make_payment, self).view_init(cr, uid, fields_list, context=context)
|
||||
active_id = context and context.get('active_id', False) or False
|
||||
if active_id:
|
||||
|
@ -140,13 +142,15 @@ class pos_make_payment(osv.osv_memory):
|
|||
if the order is paid print invoice (if wanted) or ticket.
|
||||
"""
|
||||
order_obj = self.pool.get('pos.order')
|
||||
if not context:
|
||||
context = {}
|
||||
active_id = context and context.get('active_id', False)
|
||||
order = order_obj.browse(cr, uid, active_id, context=context)
|
||||
amount = order.amount_total - order.amount_paid
|
||||
data = self.read(cr, uid, ids, context=context)[0]
|
||||
# Todo need to check ...
|
||||
if data['is_acc']:
|
||||
line_id, price = order_obj.add_product(cr, uid, order.id, data['product_id'], -1.0, context)
|
||||
line_id, price = order_obj.add_product(cr, uid, order.id, data['product_id'], -1.0, context=context)
|
||||
amount = order.amount_total - order.amount_paid - price
|
||||
|
||||
if amount != 0.0:
|
||||
|
@ -155,28 +159,28 @@ class pos_make_payment(osv.osv_memory):
|
|||
|
||||
if order_obj.test_paid(cr, uid, [active_id]):
|
||||
if data['partner_id'] and data['invoice_wanted']:
|
||||
order_obj.action_invoice(cr, uid, [active_id], context)
|
||||
order_obj.create_picking(cr, uid, [active_id], context)
|
||||
order_obj.action_invoice(cr, uid, [active_id], context=context)
|
||||
order_obj.create_picking(cr, uid, [active_id], context=context)
|
||||
if context.get('return', False):
|
||||
order_obj.write(cr, uid, [active_id], {'state':'done'}, context=context)
|
||||
else:
|
||||
order_obj.write(cr, uid, [active_id],{'state':'paid'}, context=context)
|
||||
return self.create_invoice(cr, uid, ids, context)
|
||||
return self.create_invoice(cr, uid, ids, context=context)
|
||||
else:
|
||||
context.update({'flag': True})
|
||||
order_obj.action_paid(cr, uid, [active_id], context)
|
||||
order_obj.action_paid(cr, uid, [active_id], context=context)
|
||||
if context.get('return', False):
|
||||
order_obj.write(cr, uid, [active_id], {'state':'done'}, context=context)
|
||||
else:
|
||||
order_obj.write(cr, uid, [active_id], {'state':'paid'}, context=context)
|
||||
return self.print_report(cr, uid, ids, context)
|
||||
return self.print_report(cr, uid, ids, context=context)
|
||||
|
||||
if order.amount_paid > 0.0:
|
||||
context.update({'flag': True})
|
||||
# Todo need to check
|
||||
order_obj.action_paid(cr, uid, [active_id], context)
|
||||
order_obj.action_paid(cr, uid, [active_id], context=context)
|
||||
order_obj.write(cr, uid, [active_id], {'state': 'advance'}, context=context)
|
||||
return self.print_report(cr, uid, ids, context)
|
||||
return self.print_report(cr, uid, ids, context=context)
|
||||
return {}
|
||||
|
||||
|
||||
|
@ -184,6 +188,8 @@ class pos_make_payment(osv.osv_memory):
|
|||
"""
|
||||
Create a invoice
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
active_ids = [context and context.get('active_id', False)]
|
||||
datas = {'ids': active_ids}
|
||||
return {
|
||||
|
|
|
@ -35,6 +35,8 @@ class pos_receipt(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: New arch of view with new columns.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
order_lst = self. pool.get('pos.order').browse(cr, uid, context['active_id'], context=context)
|
||||
|
||||
def print_report(self, cr, uid, ids, context=None):
|
||||
|
@ -46,6 +48,8 @@ class pos_receipt(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : retrun report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
return {
|
||||
'type': 'ir.actions.report.xml',
|
||||
|
|
|
@ -47,7 +47,7 @@ class pos_return(osv.osv_memory):
|
|||
active_ids = context.get('active_ids')
|
||||
if not context:
|
||||
context={}
|
||||
for order in order_obj.browse(cr, uid, active_ids):
|
||||
for order in order_obj.browse(cr, uid, active_ids, context=context):
|
||||
for line in order.lines:
|
||||
if 'return%s'%(line.id) in fields:
|
||||
res['return%s'%(line.id)] = line.qty
|
||||
|
@ -68,7 +68,7 @@ class pos_return(osv.osv_memory):
|
|||
context={}
|
||||
|
||||
active_ids=context.get('active_ids')
|
||||
for order in order_obj.browse(cr, uid, active_ids):
|
||||
for order in order_obj.browse(cr, uid, active_ids, context=context):
|
||||
for line in order.lines:
|
||||
if 'return%s'%(line.id) not in self._columns:
|
||||
self._columns['return%s'%(line.id)] = fields.float("Quantity")
|
||||
|
@ -101,7 +101,7 @@ class pos_return(osv.osv_memory):
|
|||
<form string="Return lines">
|
||||
<label string="Quantities you enter, match to products that will return to the stock." colspan="4"/>"""
|
||||
_line_fields = result['fields']
|
||||
order=order_obj.browse(cr, uid, active_id)
|
||||
order=order_obj.browse(cr, uid, active_id, context=context)
|
||||
for line in order.lines:
|
||||
quantity=line.qty
|
||||
_line_fields.update({
|
||||
|
@ -133,7 +133,7 @@ class pos_return(osv.osv_memory):
|
|||
return result
|
||||
|
||||
|
||||
def create_returns(self, cr, uid, data, context):
|
||||
def create_returns(self, cr, uid, data, context=None):
|
||||
"""
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -143,10 +143,12 @@ class pos_return(osv.osv_memory):
|
|||
@return: Return the add product form again for adding more product
|
||||
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
current_rec = self.read(cr, uid, data[0], context=context)
|
||||
order_obj =self.pool.get('pos.order')
|
||||
line_obj = self.pool.get('pos.order.line')
|
||||
pos_current = order_obj.browse(cr, uid, context.get('active_id'))
|
||||
pos_current = order_obj.browse(cr, uid, context.get('active_id'), context=context)
|
||||
pos_line_ids = pos_current.lines
|
||||
if pos_line_ids:
|
||||
for pos_line in pos_line_ids:
|
||||
|
@ -171,7 +173,9 @@ class pos_return(osv.osv_memory):
|
|||
'context': context,
|
||||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
def create_returns2(self, cr, uid, ids, context):
|
||||
def create_returns2(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
active_id = context.get('active_id', False)
|
||||
order_obj =self.pool.get('pos.order')
|
||||
line_obj = self.pool.get('pos.order.line')
|
||||
|
@ -188,7 +192,7 @@ class pos_return(osv.osv_memory):
|
|||
|
||||
for order_id in order_obj.browse(cr, uid, [active_id], context=context):
|
||||
prop_ids = property_obj.search(cr, uid,[('name', '=', 'property_stock_customer')])
|
||||
val = property_obj.browse(cr, uid, prop_ids[0]).value_reference
|
||||
val = property_obj.browse(cr, uid, prop_ids[0], context=context).value_reference
|
||||
cr.execute("SELECT s.id FROM stock_location s, stock_warehouse w "
|
||||
"WHERE w.lot_stock_id=s.id AND w.id=%s ",
|
||||
(order_id.shop_id.warehouse_id.id,))
|
||||
|
@ -257,7 +261,7 @@ pos_return()
|
|||
|
||||
class add_product(osv.osv_memory):
|
||||
_inherit = 'pos.add.product'
|
||||
def select_product(self, cr, uid, ids, context):
|
||||
def select_product(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To get the product and quantity and add in order .
|
||||
@param self: The object pointer.
|
||||
|
@ -266,6 +270,8 @@ class add_product(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : Retrun the add product form again for adding more product
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
active_id=context.get('active_id', False)
|
||||
data = self.read(cr, uid, ids)
|
||||
|
@ -293,7 +299,7 @@ class add_product(osv.osv_memory):
|
|||
location_id=res and res[0] or None
|
||||
stock_dest_id = val.id
|
||||
|
||||
prod_id=prod_obj.browse(cr, uid, prod)
|
||||
prod_id=prod_obj.browse(cr, uid, prod, context=context)
|
||||
new_picking=picking_obj.create(cr, uid, {
|
||||
'name':'%s (Added)' %order_id.name,
|
||||
'move_lines':[],
|
||||
|
@ -329,7 +335,7 @@ class add_product(osv.osv_memory):
|
|||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
|
||||
def close_action(self, cr, uid, ids, context):
|
||||
def close_action(self, cr, uid, ids, context=None):
|
||||
active_ids=context.get('active_ids', False)
|
||||
order_obj = self.pool.get('pos.order')
|
||||
lines_obj = self.pool.get('pos.order.line')
|
||||
|
|
|
@ -42,6 +42,8 @@ class pos_sale_user(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : return report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
res = self.read(cr, uid, ids, ['date_start', 'date_end', 'user_id'], context=context)
|
||||
|
|
|
@ -39,6 +39,8 @@ class pos_sales_user_today_current_user(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : retrun report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
res = self.read(cr, uid, ids, [], context=context)
|
||||
|
|
|
@ -40,6 +40,8 @@ class pos_sales_user_today(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : retrun report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
res = self.read(cr, uid, ids, ['user_id'], context=context)
|
||||
|
|
|
@ -28,7 +28,7 @@ class pos_scan_product(osv.osv_memory):
|
|||
_columns = {
|
||||
'gencod': fields.char('Barcode',size=13,required= True)
|
||||
}
|
||||
def scan(self, cr, uid, ids, context):
|
||||
def scan(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To get the gencod and scan product
|
||||
@param self: The object pointer.
|
||||
|
@ -37,7 +37,8 @@ class pos_scan_product(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return : retrun gencod
|
||||
"""
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
data=self.read(cr, uid, ids)[0]
|
||||
record_id = context and context.get('active_id',False)
|
||||
result =self. pool.get('pos.order.line')._scan_product(cr, uid, data['gencod'], 1, record_id)
|
||||
|
|
|
@ -52,7 +52,9 @@ class process_process(osv.osv):
|
|||
'active' : lambda *a: True,
|
||||
}
|
||||
|
||||
def search_by_model(self, cr, uid, res_model, context):
|
||||
def search_by_model(self, cr, uid, res_model, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
model_ids = (res_model or None) and pool.get('ir.model').search(cr, uid, [('model', '=', res_model)])
|
||||
|
||||
|
@ -62,7 +64,7 @@ class process_process(osv.osv):
|
|||
# search all processes
|
||||
res = pool.get('process.process').search(cr, uid, domain)
|
||||
if res:
|
||||
res = pool.get('process.process').browse(cr, uid, res, context)
|
||||
res = pool.get('process.process').browse(cr, uid, res, context=context)
|
||||
for process in res:
|
||||
result.append((process.id, process.name))
|
||||
return result
|
||||
|
@ -70,18 +72,20 @@ class process_process(osv.osv):
|
|||
# else search process nodes
|
||||
res = pool.get('process.node').search(cr, uid, domain)
|
||||
if res:
|
||||
res = pool.get('process.node').browse(cr, uid, res, context)
|
||||
res = pool.get('process.node').browse(cr, uid, res, context=context)
|
||||
for node in res:
|
||||
if (node.process_id.id, node.process_id.name) not in result:
|
||||
result.append((node.process_id.id, node.process_id.name))
|
||||
|
||||
return result
|
||||
|
||||
def graph_get(self, cr, uid, id, res_model, res_id, scale, context):
|
||||
def graph_get(self, cr, uid, id, res_model, res_id, scale, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
|
||||
process = pool.get('process.process').browse(cr, uid, [id], context)[0]
|
||||
process = pool.get('process.process').browse(cr, uid, [id], context=context)[0]
|
||||
|
||||
name = process.name
|
||||
resource = None
|
||||
|
@ -95,13 +99,13 @@ class process_process(osv.osv):
|
|||
states = dict(pool.get(res_model).fields_get(cr, uid, context=context).get('state', {}).get('selection', {}))
|
||||
|
||||
if res_id:
|
||||
current_object = pool.get(res_model).browse(cr, uid, [res_id], context)[0]
|
||||
current_user = pool.get('res.users').browse(cr, uid, [uid], context)[0]
|
||||
current_object = pool.get(res_model).browse(cr, uid, [res_id], context=context)[0]
|
||||
current_user = pool.get('res.users').browse(cr, uid, [uid], context=context)[0]
|
||||
expr_context = Env(current_object, current_user)
|
||||
resource = current_object.name
|
||||
if 'state' in current_object:
|
||||
state = states.get(current_object.state, 'N/A')
|
||||
perm = pool.get(res_model).perm_read(cr, uid, [res_id], context)[0]
|
||||
perm = pool.get(res_model).perm_read(cr, uid, [res_id], context=context)[0]
|
||||
|
||||
notes = process.note or "N/A"
|
||||
nodes = {}
|
||||
|
@ -188,7 +192,7 @@ class process_process(osv.osv):
|
|||
|
||||
nodes[nid]['res'] = resource = {'id': ref_id, 'model': ref_model}
|
||||
|
||||
refobj = pool.get(ref_model).browse(cr, uid, [ref_id], context)[0]
|
||||
refobj = pool.get(ref_model).browse(cr, uid, [ref_id], context=context)[0]
|
||||
fields = pool.get(ref_model).fields_get(cr, uid, context=context)
|
||||
|
||||
# check for directory_id from inherited from document module
|
||||
|
@ -251,9 +255,12 @@ class process_process(osv.osv):
|
|||
|
||||
if not default:
|
||||
default = {}
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
process = pool.get('process.process').browse(cr, uid, [id], context)[0]
|
||||
process = pool.get('process.process').browse(cr, uid, [id], context=context)[0]
|
||||
|
||||
nodes = {}
|
||||
transitions = {}
|
||||
|
@ -312,11 +319,13 @@ class process_node(osv.osv):
|
|||
def copy_data(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({
|
||||
'transition_in': [],
|
||||
'transition_out': []
|
||||
})
|
||||
return super(process_node, self).copy_data(cr, uid, id, default, context)
|
||||
return super(process_node, self).copy_data(cr, uid, id, default, context=context)
|
||||
|
||||
process_node()
|
||||
|
||||
|
@ -369,6 +378,9 @@ class process_transition_action(osv.osv):
|
|||
def copy_data(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
state = self.pool.get('process.transition.action').browse(cr, uid, [id], context=context)[0].state
|
||||
if state:
|
||||
|
|
|
@ -69,8 +69,10 @@ class StockMove(osv.osv):
|
|||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
default = default or {}
|
||||
if not context:
|
||||
context = {}
|
||||
default['procurements'] = []
|
||||
return super(StockMove, self).copy(cr, uid, id, default, context)
|
||||
return super(StockMove, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
StockMove()
|
||||
|
||||
|
@ -130,6 +132,8 @@ class procurement_order(osv.osv):
|
|||
def unlink(self, cr, uid, ids, context=None):
|
||||
procurements = self.read(cr, uid, ids, ['state'])
|
||||
unlink_ids = []
|
||||
if not context:
|
||||
context = {}
|
||||
for s in procurements:
|
||||
if s['state'] in ['draft','cancel']:
|
||||
unlink_ids.append(s['id'])
|
||||
|
@ -144,6 +148,8 @@ class procurement_order(osv.osv):
|
|||
@param product_id: Changed id of product.
|
||||
@return: Dictionary of values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
if product_id:
|
||||
w = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
|
||||
v = {
|
||||
|
@ -163,12 +169,16 @@ class procurement_order(osv.osv):
|
|||
""" Checks if move is cancelled or not.
|
||||
@return: True or False.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
return all(procurement.move_id.state == 'cancel' for procurement in self.browse(cr, uid, ids, context=context))
|
||||
|
||||
def check_move_done(self, cr, uid, ids, context=None):
|
||||
""" Checks if move is done or not.
|
||||
@return: True or False.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
return all(procurement.move_id.state == 'done' for procurement in self.browse(cr, uid, ids, context=context))
|
||||
|
||||
#
|
||||
|
@ -203,6 +213,8 @@ class procurement_order(osv.osv):
|
|||
""" Finds quantity of product used in procurement.
|
||||
@return: Quantity of product.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
proc = self.browse(cr, uid, id, context=context)
|
||||
result = self._quantity_compute_get(cr, uid, proc, context=context)
|
||||
if not result:
|
||||
|
@ -213,8 +225,10 @@ class procurement_order(osv.osv):
|
|||
""" Finds UoM of product used in procurement.
|
||||
@return: UoM of product.
|
||||
"""
|
||||
proc = self.browse(cr, uid, id, context)
|
||||
result = self._uom_compute_get(cr, uid, proc, context)
|
||||
if not context:
|
||||
context = {}
|
||||
proc = self.browse(cr, uid, id, context=context)
|
||||
result = self._uom_compute_get(cr, uid, proc, context=context)
|
||||
if not result:
|
||||
result = proc.product_uom.id
|
||||
return result
|
||||
|
@ -228,14 +242,18 @@ class procurement_order(osv.osv):
|
|||
return True
|
||||
return False
|
||||
|
||||
def check_produce_service(self, cr, uid, procurement, context=[]):
|
||||
def check_produce_service(self, cr, uid, procurement, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return False
|
||||
|
||||
def check_produce_product(self, cr, uid, procurement, context=[]):
|
||||
def check_produce_product(self, cr, uid, procurement, context=None):
|
||||
""" Finds BoM of a product if not found writes exception message.
|
||||
@param procurement: Current procurement.
|
||||
@return: True or False.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
return True
|
||||
|
||||
def check_make_to_stock(self, cr, uid, ids, context=None):
|
||||
|
@ -243,6 +261,8 @@ class procurement_order(osv.osv):
|
|||
@return: True or False
|
||||
"""
|
||||
ok = True
|
||||
if not context:
|
||||
context = {}
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
if procurement.product_id.type == 'service':
|
||||
ok = ok and self._check_make_to_stock_service(cr, uid, procurement, context)
|
||||
|
@ -255,6 +275,8 @@ class procurement_order(osv.osv):
|
|||
@return: True or Product Id.
|
||||
"""
|
||||
res = True
|
||||
if not context:
|
||||
context = {}
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
if procurement.product_id.product_tmpl_id.supply_method <> 'produce':
|
||||
|
@ -312,6 +334,8 @@ class procurement_order(osv.osv):
|
|||
@return: True
|
||||
"""
|
||||
move_obj = self.pool.get('stock.move')
|
||||
if not context:
|
||||
context = {}
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
if procurement.product_qty <= 0.00:
|
||||
raise osv.except_osv(_('Data Insufficient !'),
|
||||
|
@ -359,6 +383,8 @@ class procurement_order(osv.osv):
|
|||
@return: True or move id.
|
||||
"""
|
||||
ok = True
|
||||
if not context:
|
||||
context = {}
|
||||
if procurement.move_id:
|
||||
id = procurement.move_id.id
|
||||
if not (procurement.move_id.state in ('done','assigned','cancel')):
|
||||
|
@ -526,8 +552,10 @@ class stock_warehouse_orderpoint(osv.osv):
|
|||
@param warehouse_id: Changed id of warehouse.
|
||||
@return: Dictionary of values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
if warehouse_id:
|
||||
w = self.pool.get('stock.warehouse').browse(cr, uid, warehouse_id, context)
|
||||
w = self.pool.get('stock.warehouse').browse(cr, uid, warehouse_id, context=context)
|
||||
v = {'location_id': w.lot_stock_id.id}
|
||||
return {'value': v}
|
||||
return {}
|
||||
|
@ -537,6 +565,8 @@ class stock_warehouse_orderpoint(osv.osv):
|
|||
@param product_id: Changed id of product.
|
||||
@return: Dictionary of values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
if product_id:
|
||||
prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
|
||||
v = {'product_uom': prod.uom_id.id}
|
||||
|
@ -546,10 +576,12 @@ class stock_warehouse_orderpoint(osv.osv):
|
|||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({
|
||||
'name': self.pool.get('ir.sequence').get(cr, uid, 'stock.orderpoint') or '',
|
||||
})
|
||||
return super(stock_warehouse_orderpoint, self).copy(cr, uid, id, default, context)
|
||||
return super(stock_warehouse_orderpoint, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
stock_warehouse_orderpoint()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -69,13 +69,13 @@ class procurement_order(osv.osv):
|
|||
while True:
|
||||
cr.execute("select id from procurement_order where state='confirmed' and procure_method='make_to_order' order by priority,date_planned limit 500 offset %s", (offset,))
|
||||
ids = map(lambda x: x[0], cr.fetchall())
|
||||
for proc in procurement_obj.browse(cr, uid, ids):
|
||||
for proc in procurement_obj.browse(cr, uid, ids, context=context):
|
||||
if maxdate >= proc.date_planned:
|
||||
wf_service.trg_validate(uid, 'procurement.order', proc.id, 'button_check', cr)
|
||||
else:
|
||||
offset += 1
|
||||
report_later += 1
|
||||
for proc in procurement_obj.browse(cr, uid, ids):
|
||||
for proc in procurement_obj.browse(cr, uid, ids, context=context):
|
||||
if proc.state == 'exception':
|
||||
report.append('PROC %d: on order - %3.2f %-5s - %s' % \
|
||||
(proc.id, proc.product_qty, proc.product_uom.name,
|
||||
|
@ -98,7 +98,7 @@ class procurement_order(osv.osv):
|
|||
else:
|
||||
report_later += 1
|
||||
report_total += 1
|
||||
for proc in procurement_obj.browse(cr, uid, report_ids):
|
||||
for proc in procurement_obj.browse(cr, uid, report_ids, context=context):
|
||||
if proc.state == 'exception':
|
||||
report.append('PROC %d: from stock - %3.2f %-5s - %s' % \
|
||||
(proc.id, proc.product_qty, proc.product_uom.name,
|
||||
|
|
|
@ -62,14 +62,16 @@ class make_procurement(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which loads Procurement form view.
|
||||
"""
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context).login
|
||||
if not context:
|
||||
context = {}
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context).login
|
||||
wh_obj = self.pool.get('stock.warehouse')
|
||||
procurement_obj = self.pool.get('procurement.order')
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
|
||||
for proc in self.browse(cr, uid, ids):
|
||||
wh = wh_obj.browse(cr, uid, proc.warehouse_id.id, context)
|
||||
for proc in self.browse(cr, uid, ids, context=context):
|
||||
wh = wh_obj.browse(cr, uid, proc.warehouse_id.id, context=context)
|
||||
procure_id = procurement_obj.create(cr, uid, {
|
||||
'name':'INT: '+str(user),
|
||||
'date_planned': proc.date_planned,
|
||||
|
@ -109,6 +111,8 @@ class make_procurement(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
|
||||
res = super(make_procurement, self).default_get(cr, uid, fields, context=context)
|
||||
|
|
|
@ -26,15 +26,17 @@ class procurement_compute(osv.osv_memory):
|
|||
_name = 'procurement.order.compute'
|
||||
_description = 'Compute Procurement'
|
||||
|
||||
def _procure_calculation_procure(self, cr, uid, ids, context):
|
||||
def _procure_calculation_procure(self, cr, uid, ids, context=None):
|
||||
try:
|
||||
if not context:
|
||||
context = {}
|
||||
proc_obj = self.pool.get('procurement.order')
|
||||
proc_obj._procure_confirm(cr, uid, use_new_cursor=cr.dbname, context=context)
|
||||
finally:
|
||||
pass
|
||||
return {}
|
||||
|
||||
def procure_calculation(self, cr, uid, ids, context):
|
||||
def procure_calculation(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -42,6 +44,8 @@ class procurement_compute(osv.osv_memory):
|
|||
@param ids: List of IDs selected
|
||||
@param context: A standard dictionary
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
threaded_calculation = threading.Thread(target=self._procure_calculation_procure, args=(cr, uid, ids, context))
|
||||
threaded_calculation.start()
|
||||
return {}
|
||||
|
|
|
@ -39,7 +39,7 @@ class procurement_compute(osv.osv_memory):
|
|||
'automatic': False,
|
||||
}
|
||||
|
||||
def _procure_calculation_orderpoint(self, cr, uid, ids, context):
|
||||
def _procure_calculation_orderpoint(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -47,13 +47,15 @@ class procurement_compute(osv.osv_memory):
|
|||
@param ids: List of IDs selected
|
||||
@param context: A standard dictionary
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
proc_obj = self.pool.get('procurement.order')
|
||||
for proc in self.browse(cr, uid, ids):
|
||||
for proc in self.browse(cr, uid, ids, context=context):
|
||||
proc_obj._procure_orderpoint_confirm(cr, uid, automatic=proc.automatic, use_new_cursor=cr.dbname, context=context)
|
||||
|
||||
return {}
|
||||
|
||||
def procure_calculation(self, cr, uid, ids, context):
|
||||
def procure_calculation(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -61,6 +63,8 @@ class procurement_compute(osv.osv_memory):
|
|||
@param ids: List of IDs selected
|
||||
@param context: A standard dictionary
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
threaded_calculation = threading.Thread(target=self._procure_calculation_orderpoint, args=(cr, uid, ids, context))
|
||||
threaded_calculation.start()
|
||||
return {}
|
||||
|
|
|
@ -35,7 +35,7 @@ class procurement_compute_all(osv.osv_memory):
|
|||
'automatic': lambda *a: False,
|
||||
}
|
||||
|
||||
def _procure_calculation_all(self, cr, uid, ids, context):
|
||||
def _procure_calculation_all(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -44,12 +44,14 @@ class procurement_compute_all(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
"""
|
||||
proc_obj = self.pool.get('procurement.order')
|
||||
for proc in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for proc in self.browse(cr, uid, ids, context=context):
|
||||
proc_obj.run_scheduler(cr, uid, automatic=proc.automatic, use_new_cursor=cr.dbname,\
|
||||
context=context)
|
||||
return {}
|
||||
|
||||
def procure_calculation(self, cr, uid, ids, context):
|
||||
def procure_calculation(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -57,6 +59,8 @@ class procurement_compute_all(osv.osv_memory):
|
|||
@param ids: List of IDs selected
|
||||
@param context: A standard dictionary
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
threaded_calculation = threading.Thread(target=self._procure_calculation_all, args=(cr, uid, ids, context))
|
||||
threaded_calculation.start()
|
||||
return {}
|
||||
|
|
|
@ -40,6 +40,8 @@ class price_type(osv.osv):
|
|||
mf = self.pool.get('ir.model.fields')
|
||||
ids = mf.search(cr, uid, [('model','in', (('product.product'),('product.template'))), ('ttype','=','float')], context=context)
|
||||
res = []
|
||||
if not context:
|
||||
context = {}
|
||||
for field in mf.browse(cr, uid, ids, context=context):
|
||||
res.append((field.name, field.field_description))
|
||||
return res
|
||||
|
@ -82,6 +84,8 @@ product_pricelist_type()
|
|||
|
||||
class product_pricelist(osv.osv):
|
||||
def _pricelist_type_get(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
pricelist_type_obj = self.pool.get('product.pricelist.type')
|
||||
pricelist_type_ids = pricelist_type_obj.search(cr, uid, [], order='name')
|
||||
pricelist_types = pricelist_type_obj.read(cr, uid, pricelist_type_ids, ['key','name'], context=context)
|
||||
|
@ -108,6 +112,8 @@ class product_pricelist(osv.osv):
|
|||
result= []
|
||||
if not all(ids):
|
||||
return result
|
||||
if not context:
|
||||
context = {}
|
||||
for pl in self.browse(cr, uid, ids, context=context):
|
||||
name = pl.name + ' ('+ pl.currency_id.name + ')'
|
||||
result.append((pl.id,name))
|
||||
|
@ -292,6 +298,8 @@ class product_pricelist(osv.osv):
|
|||
return results
|
||||
|
||||
def price_get(self, cr, uid, ids, prod_id, qty, partner=None, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res_multi = self.price_get_multi(cr, uid, pricelist_ids=ids, products_by_qty_by_partner=[(prod_id, qty, partner)], context=context)
|
||||
res = res_multi[prod_id]
|
||||
res.update({'item_id': {ids[-1]: ids[-1]}})
|
||||
|
@ -470,6 +478,8 @@ class product_pricelist_version(osv.osv):
|
|||
return super(product_pricelist_version, self).copy(cr, uid, id, default, context)
|
||||
|
||||
def _check_date(self, cursor, user, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for pricelist_version in self.browse(cursor, user, ids, context=context):
|
||||
if not pricelist_version.active:
|
||||
continue
|
||||
|
@ -500,6 +510,8 @@ product_pricelist_version()
|
|||
|
||||
class product_pricelist_item(osv.osv):
|
||||
def _price_field_get(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
pt = self.pool.get('product.price.type')
|
||||
ids = pt.search(cr, uid, [], context=context)
|
||||
result = []
|
||||
|
@ -521,6 +533,8 @@ class product_pricelist_item(osv.osv):
|
|||
}
|
||||
|
||||
def _check_recursion(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for obj_list in self.browse(cr, uid, ids, context=context):
|
||||
if obj_list.base == -1:
|
||||
main_pricelist = obj_list.price_version_id.pricelist_id.id
|
||||
|
@ -565,6 +579,8 @@ class product_pricelist_item(osv.osv):
|
|||
def product_id_change(self, cr, uid, ids, product_id, context=None):
|
||||
if not product_id:
|
||||
return {}
|
||||
if not context:
|
||||
context = {}
|
||||
prod = self.pool.get('product.product').read(cr, uid, [product_id], ['code','name'])
|
||||
if prod[0]['code']:
|
||||
return {'value': {'name': prod[0]['code']}}
|
||||
|
|
|
@ -49,16 +49,22 @@ class product_uom(osv.osv):
|
|||
def _compute_factor_inv(self, factor):
|
||||
return factor and round(1.0 / factor, 6) or 0.0
|
||||
|
||||
def _factor_inv(self, cursor, user, ids, name, arg, context):
|
||||
def _factor_inv(self, cursor, user, ids, name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for uom in self.browse(cursor, user, ids, context=context):
|
||||
res[uom.id] = self._compute_factor_inv(uom.factor)
|
||||
return res
|
||||
|
||||
def _factor_inv_write(self, cursor, user, id, name, value, arg, context):
|
||||
def _factor_inv_write(self, cursor, user, id, name, value, arg, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return self.write(cursor, user, id, {'factor': self._compute_factor_inv(value)}, context=context)
|
||||
|
||||
def create(self, cr, uid, data, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if 'factor_inv' in data:
|
||||
if data['factor_inv'] <> 1:
|
||||
data['factor'] = self._compute_factor_inv(data['factor_inv'])
|
||||
|
@ -155,7 +161,9 @@ class product_category(osv.osv):
|
|||
def name_get(self, cr, uid, ids, context=None):
|
||||
if not len(ids):
|
||||
return []
|
||||
reads = self.read(cr, uid, ids, ['name','parent_id'], context)
|
||||
if not context:
|
||||
context = {}
|
||||
reads = self.read(cr, uid, ids, ['name','parent_id'], context=context)
|
||||
res = []
|
||||
for record in reads:
|
||||
name = record['name']
|
||||
|
@ -164,8 +172,10 @@ class product_category(osv.osv):
|
|||
res.append((record['id'], name))
|
||||
return res
|
||||
|
||||
def _name_get_fnc(self, cr, uid, ids, prop, unknow_none, context):
|
||||
res = self.name_get(cr, uid, ids, context)
|
||||
def _name_get_fnc(self, cr, uid, ids, prop, unknow_none, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = self.name_get(cr, uid, ids, context=context)
|
||||
return dict(res)
|
||||
|
||||
_name = "product.category"
|
||||
|
@ -187,6 +197,8 @@ class product_category(osv.osv):
|
|||
_order = "sequence"
|
||||
def _check_recursion(self, cr, uid, ids, context=None):
|
||||
level = 100
|
||||
if not context:
|
||||
context = {}
|
||||
while len(ids):
|
||||
cr.execute('select distinct parent_id from product_category where id IN %s',(tuple(ids),))
|
||||
ids = filter(None, map(lambda x:x[0], cr.fetchall()))
|
||||
|
@ -212,6 +224,8 @@ class product_template(osv.osv):
|
|||
_description = "Product Template"
|
||||
def _calc_seller(self, cr, uid, ids, fields, arg, context=None):
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for product in self.browse(cr, uid, ids, context=context):
|
||||
for field in fields:
|
||||
result[product.id] = {field:False}
|
||||
|
@ -276,6 +290,8 @@ class product_template(osv.osv):
|
|||
return res and res[0] or False
|
||||
|
||||
def _default_category(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if 'categ_id' in context and context['categ_id']:
|
||||
return context['categ_id']
|
||||
md = self.pool.get('ir.model.data')
|
||||
|
@ -308,12 +324,16 @@ class product_template(osv.osv):
|
|||
}
|
||||
|
||||
def _check_uom(self, cursor, user, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for product in self.browse(cursor, user, ids, context=context):
|
||||
if product.uom_id.category_id.id <> product.uom_po_id.category_id.id:
|
||||
return False
|
||||
return True
|
||||
|
||||
def _check_uos(self, cursor, user, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for product in self.browse(cursor, user, ids, context=context):
|
||||
if product.uos_id \
|
||||
and product.uos_id.category_id.id \
|
||||
|
@ -327,6 +347,8 @@ class product_template(osv.osv):
|
|||
]
|
||||
|
||||
def name_get(self, cr, user, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if 'partner_id' in context:
|
||||
pass
|
||||
return super(product_template, self).name_get(cr, user, ids, context)
|
||||
|
@ -334,14 +356,18 @@ class product_template(osv.osv):
|
|||
product_template()
|
||||
|
||||
class product_product(osv.osv):
|
||||
def view_header_get(self, cr, uid, view_id, view_type, context):
|
||||
def view_header_get(self, cr, uid, view_id, view_type, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(product_product, self).view_header_get(cr, uid, view_id, view_type, context)
|
||||
if (context.get('categ_id', False)):
|
||||
return _('Products: ')+self.pool.get('product.category').browse(cr, uid, context['categ_id'], context).name
|
||||
return _('Products: ')+self.pool.get('product.category').browse(cr, uid, context['categ_id'], context=context).name
|
||||
return res
|
||||
|
||||
def _product_price(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
quantity = context.get('quantity', 1)
|
||||
pricelist = context.get('pricelist', False)
|
||||
if pricelist:
|
||||
|
@ -367,6 +393,8 @@ class product_product(osv.osv):
|
|||
|
||||
def _product_lst_price(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
product_uom_obj = self.pool.get('product.uom')
|
||||
for id in ids:
|
||||
res.setdefault(id, 0.0)
|
||||
|
@ -381,6 +409,8 @@ class product_product(osv.osv):
|
|||
return res
|
||||
|
||||
def _get_partner_code_name(self, cr, uid, ids, product, partner_id, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for supinfo in product.seller_ids:
|
||||
if supinfo.name.id == partner_id:
|
||||
return {'code': supinfo.product_code or product.default_code, 'name': supinfo.product_name or product.name, 'variants': ''}
|
||||
|
@ -389,14 +419,18 @@ class product_product(osv.osv):
|
|||
|
||||
def _product_code(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for p in self.browse(cr, uid, ids, context=context):
|
||||
res[p.id] = self._get_partner_code_name(cr, uid, [], p, context.get('partner_id', None), context)['code']
|
||||
res[p.id] = self._get_partner_code_name(cr, uid, [], p, context.get('partner_id', None), context=context)['code']
|
||||
return res
|
||||
|
||||
def _product_partner_ref(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for p in self.browse(cr, uid, ids, context=context):
|
||||
data = self._get_partner_code_name(cr, uid, [], p, context.get('partner_id', None), context)
|
||||
data = self._get_partner_code_name(cr, uid, [], p, context.get('partner_id', None), context=context)
|
||||
if not data['variants']:
|
||||
data['variants'] = p.variants
|
||||
if not data['code']:
|
||||
|
@ -447,6 +481,8 @@ class product_product(osv.osv):
|
|||
return False
|
||||
|
||||
def _check_ean_key(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for partner in self.browse(cr, uid, ids, context=context):
|
||||
if not partner.ean13:
|
||||
continue
|
||||
|
@ -475,6 +511,8 @@ class product_product(osv.osv):
|
|||
def name_get(self, cr, user, ids, context=None):
|
||||
if not len(ids):
|
||||
return []
|
||||
if not context:
|
||||
context = {}
|
||||
def _name_get(d):
|
||||
name = d.get('name','')
|
||||
code = d.get('default_code',False)
|
||||
|
@ -483,7 +521,7 @@ class product_product(osv.osv):
|
|||
if d['variants']:
|
||||
name = name + ' - %s' % (d['variants'],)
|
||||
return (d['id'], name)
|
||||
result = map(_name_get, self.read(cr, user, ids, ['variants','name','default_code'], context))
|
||||
result = map(_name_get, self.read(cr, user, ids, ['variants','name','default_code'], context=context))
|
||||
return result
|
||||
|
||||
def name_search(self, cr, user, name='', args=None, operator='ilike', context=None, limit=100):
|
||||
|
@ -505,7 +543,7 @@ class product_product(osv.osv):
|
|||
ids = self.search(cr, user, [('default_code','ilike',res.group(2))]+ args, limit=limit, context=context)
|
||||
else:
|
||||
ids = self.search(cr, user, args, limit=limit, context=context)
|
||||
result = self.name_get(cr, user, ids, context)
|
||||
result = self.name_get(cr, user, ids, context=context)
|
||||
return result
|
||||
|
||||
#
|
||||
|
@ -599,6 +637,8 @@ class product_packaging(osv.osv):
|
|||
if not len(ids):
|
||||
return []
|
||||
res = []
|
||||
if not context:
|
||||
context = {}
|
||||
for pckg in self.browse(cr, uid, ids,context=context):
|
||||
p_name = pckg.ean and '[' + pckg.ean + '] ' or ''
|
||||
p_name += pckg.ul.name
|
||||
|
@ -632,6 +672,8 @@ class product_supplierinfo(osv.osv):
|
|||
_description = "Information about a product supplier"
|
||||
def _calc_qty(self, cr, uid, ids, fields, arg, context=None):
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
product_uom_pool = self.pool.get('product.uom')
|
||||
for supplier_info in self.browse(cr, uid, ids, context=context):
|
||||
for field in fields:
|
||||
|
@ -668,6 +710,8 @@ class product_supplierinfo(osv.osv):
|
|||
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'product.supplierinfo', context=c)
|
||||
}
|
||||
def _check_uom(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for supplier_info in self.browse(cr, uid, ids, context=context):
|
||||
if supplier_info.product_uom and supplier_info.product_uom.category_id.id <> supplier_info.product_id.uom_id.category_id.id:
|
||||
return False
|
||||
|
@ -692,7 +736,7 @@ class product_supplierinfo(osv.osv):
|
|||
partner_pool = self.pool.get('res.partner')
|
||||
pricelist_pool = self.pool.get('product.pricelist')
|
||||
currency_pool = self.pool.get('res.currency')
|
||||
currency_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.currency_id.id
|
||||
currency_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id.id
|
||||
for supplier in partner_pool.browse(cr, uid, supplier_ids, context=context):
|
||||
# Compute price from standard price of product
|
||||
price = product_pool.price_get(cr, uid, [product_id], 'standard_price')[product_id]
|
||||
|
@ -734,8 +778,10 @@ pricelist_partnerinfo()
|
|||
|
||||
class res_users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
def _get_group(self, cr, uid, context):
|
||||
result = super(res_users, self)._get_group(cr, uid, context)
|
||||
def _get_group(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
result = super(res_users, self)._get_group(cr, uid, context=context)
|
||||
dataobj = self.pool.get('ir.model.data')
|
||||
try:
|
||||
dummy,group_id = dataobj.get_object_reference(cr, 1, 'product', 'group_product_manager')
|
||||
|
|
|
@ -48,8 +48,10 @@ class product_price_list(osv.osv_memory):
|
|||
To get the date and print the report
|
||||
@return : return report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
res = self.read(cr, uid, ids, ['price_list','qty1', 'qty2','qty3','qty4','qty5'], context)
|
||||
res = self.read(cr, uid, ids, ['price_list','qty1', 'qty2','qty3','qty4','qty5'], context=context)
|
||||
res = res and res[0] or {}
|
||||
datas['form'] = res
|
||||
return {
|
||||
|
|
|
@ -54,6 +54,8 @@ class stock_production_lot(osv.osv):
|
|||
}
|
||||
# Assign dates according to products data
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
newid = super(stock_production_lot, self).create(cr, uid, vals, context=context)
|
||||
obj = self.browse(cr, uid, newid, context=context)
|
||||
towrite = []
|
||||
|
|
|
@ -49,6 +49,8 @@ class product_margin(osv.osv_memory):
|
|||
|
||||
@return:
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
result = mod_obj._get_id(cr, uid, 'product', 'product_search_form_view')
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
|
@ -60,7 +62,7 @@ class product_margin(osv.osv_memory):
|
|||
view_res = cr.fetchone()[0]
|
||||
|
||||
#get the current product.margin object to obtain the values from it
|
||||
product_margin_obj = self.browse(cr,uid,ids)[0]
|
||||
product_margin_obj = self.browse(cr, uid, ids, context=context)[0]
|
||||
|
||||
return {
|
||||
'name': _('Product Margins'),
|
||||
|
|
|
@ -52,6 +52,8 @@ class project(osv.osv):
|
|||
_inherits = {'account.analytic.account': "analytic_account_id"}
|
||||
|
||||
def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
if not context:
|
||||
context = {}
|
||||
if user == 1:
|
||||
return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count)
|
||||
if context and context.has_key('user_prefence') and context['user_prefence']:
|
||||
|
@ -65,6 +67,8 @@ class project(osv.osv):
|
|||
|
||||
def _complete_name(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for m in self.browse(cr, uid, ids, context=context):
|
||||
res[m.id] = (m.parent_id and (m.parent_id.name + '/') or '') + m.name
|
||||
return res
|
||||
|
@ -73,6 +77,8 @@ class project(osv.osv):
|
|||
partner_obj = self.pool.get('res.partner')
|
||||
if not part:
|
||||
return {'value':{'contact_id': False, 'pricelist_id': False}}
|
||||
if not context:
|
||||
context = {}
|
||||
addr = partner_obj.address_get(cr, uid, [part], ['contact'])
|
||||
pricelist = partner_obj.read(cr, uid, part, ['property_product_pricelist'], context=context)
|
||||
pricelist_id = pricelist.get('property_product_pricelist', False) and pricelist.get('property_product_pricelist')[0] or False
|
||||
|
@ -83,6 +89,8 @@ class project(osv.osv):
|
|||
progress = {}
|
||||
if not ids:
|
||||
return res
|
||||
if not context:
|
||||
context = {}
|
||||
cr.execute('''SELECT
|
||||
project_id, sum(planned_hours), sum(total_hours), sum(effective_hours), SUM(remaining_hours)
|
||||
FROM
|
||||
|
@ -167,22 +175,28 @@ class project(osv.osv):
|
|||
}
|
||||
|
||||
# TODO: Why not using a SQL contraints ?
|
||||
def _check_dates(self, cr, uid, ids):
|
||||
for leave in self.read(cr, uid, ids, ['date_start', 'date']):
|
||||
def _check_dates(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for leave in self.read(cr, uid, ids, ['date_start', 'date'], context=context):
|
||||
if leave['date_start'] and leave['date']:
|
||||
if leave['date_start'] > leave['date']:
|
||||
return False
|
||||
return True
|
||||
return True
|
||||
|
||||
_constraints = [
|
||||
(_check_dates, 'Error! project start-date must be lower then project end-date.', ['date_start', 'date'])
|
||||
]
|
||||
|
||||
def set_template(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = self.setActive(cr, uid, ids, value=False, context=context)
|
||||
return res
|
||||
|
||||
def set_done(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
task_obj = self.pool.get('project.task')
|
||||
task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', 'not in', ('cancelled', 'done'))])
|
||||
task_obj.write(cr, uid, task_ids, {'state': 'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
|
||||
|
@ -193,6 +207,8 @@ class project(osv.osv):
|
|||
return True
|
||||
|
||||
def set_cancel(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
task_obj = self.pool.get('project.task')
|
||||
task_ids = task_obj.search(cr, uid, [('project_id', 'in', ids), ('state', '!=', 'done')])
|
||||
task_obj.write(cr, uid, task_ids, {'state': 'cancelled', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S'), 'remaining_hours': 0.0})
|
||||
|
@ -200,14 +216,20 @@ class project(osv.osv):
|
|||
return True
|
||||
|
||||
def set_pending(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'pending'}, context=context)
|
||||
return True
|
||||
|
||||
def set_open(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'open'}, context=context)
|
||||
return True
|
||||
|
||||
def reset_project(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = self.setActive(cr, uid, ids, value=True, context=context)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _("The project '%s' has been opened.") % name
|
||||
|
@ -307,6 +329,8 @@ class task(osv.osv):
|
|||
_date_name = "date_start"
|
||||
|
||||
def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
if not context:
|
||||
context = {}
|
||||
obj_project = self.pool.get('project.project')
|
||||
for domain in args:
|
||||
if domain[0] == 'project_id' and (not isinstance(domain[2], str)):
|
||||
|
@ -325,6 +349,8 @@ class task(osv.osv):
|
|||
def _hours_get(self, cr, uid, ids, field_names, args, context=None):
|
||||
project_obj = self.pool.get('project.project')
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
cr.execute("SELECT task_id, COALESCE(SUM(hours),0) FROM project_task_work WHERE task_id IN %s GROUP BY task_id",(tuple(ids),))
|
||||
hours = dict(cr.fetchall())
|
||||
for task in self.browse(cr, uid, ids, context=context):
|
||||
|
@ -355,6 +381,8 @@ class task(osv.osv):
|
|||
|
||||
def copy_data(self, cr, uid, id, default={}, context=None):
|
||||
default = default or {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({'work_ids':[], 'date_start': False, 'date_end': False, 'date_deadline': False})
|
||||
if not default.get('remaining_hours', False):
|
||||
default['remaining_hours'] = float(self.read(cr, uid, id, ['planned_hours'])['planned_hours'])
|
||||
|
@ -365,6 +393,8 @@ class task(osv.osv):
|
|||
return super(task, self).copy_data(cr, uid, id, default, context)
|
||||
|
||||
def _check_dates(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
task = self.read(cr, uid, ids[0], ['date_start', 'date_end'])
|
||||
if task['date_start'] and task['date_end']:
|
||||
if task['date_start'] > task['date_end']:
|
||||
|
@ -373,6 +403,8 @@ class task(osv.osv):
|
|||
|
||||
def _is_template(self, cr, uid, ids, field_name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for task in self.browse(cr, uid, ids, context=context):
|
||||
res[task.id] = True
|
||||
if task.project_id:
|
||||
|
@ -450,8 +482,10 @@ class task(osv.osv):
|
|||
|
||||
_order = "sequence, priority, date_start, id"
|
||||
|
||||
def _check_recursion(self, cr, uid, ids):
|
||||
obj_task = self.browse(cr, uid, ids[0])
|
||||
def _check_recursion(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
obj_task = self.browse(cr, uid, ids[0], context=context)
|
||||
parent_ids = [x.id for x in obj_task.parent_ids]
|
||||
children_ids = [x.id for x in obj_task.child_ids]
|
||||
|
||||
|
@ -483,10 +517,12 @@ class task(osv.osv):
|
|||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
users_obj = self.pool.get('res.users')
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
# read uom as admin to avoid access rights issues, e.g. for portal/share users,
|
||||
# this should be safe (no context passed to avoid side-effects)
|
||||
obj_tm = users_obj.browse(cr, 1, uid).company_id.project_time_mode_id
|
||||
obj_tm = users_obj.browse(cr, 1, uid, context=context).company_id.project_time_mode_id
|
||||
tm = obj_tm and obj_tm.name or 'Hours'
|
||||
|
||||
res = super(task, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu=submenu)
|
||||
|
@ -516,6 +552,8 @@ class task(osv.osv):
|
|||
# This action open wizard to send email to partner or project manager after close task.
|
||||
project_id = len(ids) and ids[0] or False
|
||||
if not project_id: return False
|
||||
if not context:
|
||||
context = {}
|
||||
task = self.browse(cr, uid, project_id, context=context)
|
||||
project = task.project_id
|
||||
res = self.do_close(cr, uid, [project_id], context=context)
|
||||
|
@ -641,17 +679,17 @@ class task(osv.osv):
|
|||
'description': delegate_data['new_task_description'] or '',
|
||||
'child_ids': [],
|
||||
'work_ids': []
|
||||
}, context)
|
||||
}, context=context)
|
||||
newname = delegate_data['prefix'] or ''
|
||||
self.write(cr, uid, [task.id], {
|
||||
'remaining_hours': delegate_data['planned_hours_me'],
|
||||
'planned_hours': delegate_data['planned_hours_me'] + (task.effective_hours or 0.0),
|
||||
'name': newname,
|
||||
}, context)
|
||||
}, context=context)
|
||||
if delegate_data['state'] == 'pending':
|
||||
self.do_pending(cr, uid, [task.id], context)
|
||||
else:
|
||||
self.do_close(cr, uid, [task.id], context)
|
||||
self.do_close(cr, uid, [task.id], context=context)
|
||||
user_pool = self.pool.get('res.users')
|
||||
delegate_user = user_pool.browse(cr, uid, delegate_data['user_id'], context=context)
|
||||
message = _("The task '%s' has been delegated to %s.") % (delegate_data['name'], delegate_user.name)
|
||||
|
@ -714,11 +752,13 @@ class project_work(osv.osv):
|
|||
cr.execute('update project_task set remaining_hours=remaining_hours - %s where id=%s', (vals.get('hours',0.0), vals['task_id']))
|
||||
return super(project_work,self).create(cr, uid, vals, *args, **kwargs)
|
||||
|
||||
def write(self, cr, uid, ids,vals,context={}):
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if 'hours' in vals and (not vals['hours']):
|
||||
vals['hours'] = 0.00
|
||||
if 'hours' in vals:
|
||||
for work in self.browse(cr, uid, ids, context):
|
||||
for work in self.browse(cr, uid, ids, context=context):
|
||||
cr.execute('update project_task set remaining_hours=remaining_hours - %s + (%s) where id=%s', (vals.get('hours',0.0), work.hours, work.task_id.id))
|
||||
return super(project_work,self).write(cr, uid, ids, vals, context)
|
||||
|
||||
|
|
|
@ -82,6 +82,8 @@ class project_task(osv.osv):
|
|||
|
||||
|
||||
def import_cal(self, cr, uid, data, data_id=None, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
todo_obj = self.pool.get('basic.calendar.todo')
|
||||
vals = todo_obj.import_cal(cr, uid, data, context=context)
|
||||
return self.check_import(cr, uid, vals, context=context)
|
||||
|
@ -91,7 +93,7 @@ class project_task(osv.osv):
|
|||
context = {}
|
||||
ids = []
|
||||
for val in vals:
|
||||
obj_tm = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.project_time_mode_id
|
||||
obj_tm = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.project_time_mode_id
|
||||
if not val.get('planned_hours', False):
|
||||
# 'Computes duration' in days
|
||||
plan = 0.0
|
||||
|
|
|
@ -230,7 +230,9 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
}),
|
||||
}
|
||||
|
||||
def _get_project(self, cr, uid, context):
|
||||
def _get_project(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
if user.context_project_id:
|
||||
return user.context_project_id.id
|
||||
|
@ -300,6 +302,8 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
|
||||
|
||||
def _convert(self, cr, uid, ids, xml_id, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
id2 = data_obj._get_id(cr, uid, 'project_issue', xml_id)
|
||||
categ_id = False
|
||||
|
@ -310,9 +314,13 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
return True
|
||||
|
||||
def convert_to_feature(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return self._convert(cr, uid, ids, 'feature_request_categ', context=context)
|
||||
|
||||
def convert_to_bug(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return self._convert(cr, uid, ids, 'bug_categ', context=context)
|
||||
|
||||
def next_type(self, cr, uid, ids, *args):
|
||||
|
@ -344,7 +352,7 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
result = {}
|
||||
if not task_id:
|
||||
return {'value':{}}
|
||||
task = self.pool.get('project.task').browse(cr, uid, task_id, context)
|
||||
task = self.pool.get('project.task').browse(cr, uid, task_id, context=context)
|
||||
return {'value':{'assigned_to': task.user_id.id,}}
|
||||
|
||||
def case_escalate(self, cr, uid, ids, *args):
|
||||
|
@ -370,7 +378,7 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
self._history(cr, uid, cases, _('Escalate'))
|
||||
return True
|
||||
|
||||
def message_new(self, cr, uid, msg, context):
|
||||
def message_new(self, cr, uid, msg, context=None):
|
||||
"""
|
||||
Automatically calls when new email message arrives
|
||||
|
||||
|
@ -378,7 +386,8 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks
|
||||
"""
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
mailgate_pool = self.pool.get('email.server.tools')
|
||||
|
||||
subject = msg.get('subject') or _('No Title')
|
||||
|
@ -400,7 +409,7 @@ class project_issue(crm.crm_case, osv.osv):
|
|||
if res:
|
||||
vals.update(res)
|
||||
context.update({'state_to' : 'draft'})
|
||||
res = self.create(cr, uid, vals, context)
|
||||
res = self.create(cr, uid, vals, context=context)
|
||||
self.convert_to_bug(cr, uid, [res], context=context)
|
||||
|
||||
attachents = msg.get('attachments', [])
|
||||
|
@ -487,6 +496,8 @@ class project(osv.osv):
|
|||
}
|
||||
|
||||
def _check_escalation(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
project_obj = self.browse(cr, uid, ids[0], context=context)
|
||||
if project_obj.project_escalation_id:
|
||||
if project_obj.project_escalation_id.id == project_obj.id:
|
||||
|
|
|
@ -70,18 +70,24 @@ class project_phase(osv.osv):
|
|||
return True
|
||||
|
||||
def _check_dates(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for phase in self.read(cr, uid, ids, ['date_start', 'date_end'], context=context):
|
||||
if phase['date_start'] and phase['date_end'] and phase['date_start'] > phase['date_end']:
|
||||
return False
|
||||
return True
|
||||
|
||||
def _check_constraint_start(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
phase = self.read(cr, uid, ids[0], ['date_start', 'constraint_date_start'], context=context)
|
||||
if phase['date_start'] and phase['constraint_date_start'] and phase['date_start'] < phase['constraint_date_start']:
|
||||
return False
|
||||
return True
|
||||
|
||||
def _check_constraint_end(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
phase = self.read(cr, uid, ids[0], ['date_end', 'constraint_date_end'], context=context)
|
||||
if phase['date_end'] and phase['constraint_date_end'] and phase['date_end'] > phase['constraint_date_end']:
|
||||
return False
|
||||
|
@ -96,6 +102,8 @@ class project_phase(osv.osv):
|
|||
res = {}
|
||||
if not ids:
|
||||
return res
|
||||
if not context:
|
||||
context = {}
|
||||
for phase in self.browse(cr, uid, ids, context=context):
|
||||
tot = 0.0
|
||||
for task in phase.task_ids:
|
||||
|
@ -137,6 +145,8 @@ class project_phase(osv.osv):
|
|||
|
||||
def onchange_project(self, cr, uid, ids, project, context=None):
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
result['date_start'] = False
|
||||
project_obj = self.pool.get('project.project')
|
||||
if project:
|
||||
|
@ -146,6 +156,8 @@ class project_phase(osv.osv):
|
|||
|
||||
def onchange_days(self, cr, uid, ids, project, context=None):
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for id in ids:
|
||||
project_id = self.browse(cr, uid, id, context=context)
|
||||
newdate = datetime.strptime(project_id.date_start, '%Y-%m-%d') + relativedelta(days=project_id.duration or 0.0)
|
||||
|
@ -398,6 +410,8 @@ class project_resource_allocation(osv.osv):
|
|||
|
||||
def get_name(self, cr, uid, ids, field_name, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for allocation in self.browse(cr, uid, ids, context=context):
|
||||
name = allocation.phase_id.name
|
||||
name += ' (%s%%)' %(allocation.useability)
|
||||
|
@ -507,7 +521,7 @@ class resource_resource(osv.osv):
|
|||
context = {}
|
||||
if context.get('project_id',False):
|
||||
project_pool = self.pool.get('project.project')
|
||||
project_rec = project_pool.browse(cr, uid, context['project_id'])
|
||||
project_rec = project_pool.browse(cr, uid, context['project_id'], context=context)
|
||||
user_ids = [user_id.id for user_id in project_rec.members]
|
||||
args.append(('user_id','in',user_ids))
|
||||
return super(resource_resource, self).search(cr, uid, args, offset, limit, order, context, count)
|
||||
|
|
|
@ -37,6 +37,8 @@ class project_compute_phases(osv.osv_memory):
|
|||
}
|
||||
|
||||
def check_selection(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return self.compute_date(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ class project_tasks(osv.osv):
|
|||
# @param cr: the current row, from the database cursor,
|
||||
# @param uid: the current user’s ID for security checks
|
||||
# """
|
||||
if not context:
|
||||
context = {}
|
||||
mailgate_obj = self.pool.get('email.server.tools')
|
||||
subject = msg.get('subject')
|
||||
body = msg.get('body')
|
||||
|
@ -95,11 +97,13 @@ class project_tasks(osv.osv):
|
|||
|
||||
def message_followers(self, cr, uid, ids, context=None):
|
||||
res = []
|
||||
if not context:
|
||||
context = {}
|
||||
if isinstance(ids, (str, int, long)):
|
||||
select = [ids]
|
||||
else:
|
||||
select = ids
|
||||
for task in self.browse(cr, uid, select):
|
||||
for task in self.browse(cr, uid, select, context=context):
|
||||
user_email = (task.user_id and task.user_id.address_id and task.user_id.address_id.email) or False
|
||||
res += [(user_email, False, False, task.priority)]
|
||||
if isinstance(ids, (str, int, long)):
|
||||
|
|
|
@ -41,6 +41,8 @@ class messages(osv.osv):
|
|||
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
|
||||
# return messages by current user, for current user or for all users
|
||||
# return all messages if current user is administrator
|
||||
if not context:
|
||||
context = {}
|
||||
if uid != 1:
|
||||
args.extend(['|',('from_id', 'in', [uid,]),('to_id', 'in', [uid, False])])
|
||||
return super(messages, self).search(cr, uid, args, offset, limit,
|
||||
|
|
|
@ -29,13 +29,15 @@ class procurement_order(osv.osv):
|
|||
_columns = {
|
||||
'task_id': fields.many2one('project.task', 'Task')
|
||||
}
|
||||
def check_produce_service(self, cr, uid, procurement, context=[]):
|
||||
def check_produce_service(self, cr, uid, procurement, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return True
|
||||
|
||||
def action_produce_assign_service(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
self.write(cr, uid, [procurement.id], {'state': 'running'})
|
||||
planned_hours = procurement.product_qty
|
||||
task_id = self.pool.get('project.task').create(cr, uid, {
|
||||
|
|
|
@ -82,7 +82,9 @@ class report_account_analytic_planning(osv.osv):
|
|||
|
||||
def _get_total_planned(self, cr, uid, ids, name, args, context=None):
|
||||
result = {}
|
||||
for plan in self.browse(cr, uid, ids, context):
|
||||
if not context:
|
||||
context = {}
|
||||
for plan in self.browse(cr, uid, ids, context=context):
|
||||
plan_hrs=0.0
|
||||
for p in plan.planning_user_ids:
|
||||
if not p.plan_open : p.plan_open = 0.0
|
||||
|
@ -93,7 +95,9 @@ class report_account_analytic_planning(osv.osv):
|
|||
|
||||
def _get_total_free(self, cr, uid, ids, name, args, context=None):
|
||||
result = {}
|
||||
for plan in self.browse(cr, uid, ids, context):
|
||||
if not context:
|
||||
context = {}
|
||||
for plan in self.browse(cr, uid, ids, context=context):
|
||||
total_free = 0.0
|
||||
for p in plan.planning_user_ids:
|
||||
if p.free:
|
||||
|
@ -186,7 +190,7 @@ class report_account_analytic_planning_line(osv.osv):
|
|||
context = {}
|
||||
if not len(ids):
|
||||
return []
|
||||
reads = self.read(cr, uid, ids, ['user_id', 'planning_id', 'note'], context)
|
||||
reads = self.read(cr, uid, ids, ['user_id', 'planning_id', 'note'], context=context)
|
||||
res = []
|
||||
for record in reads:
|
||||
name = '['+record['planning_id'][1]
|
||||
|
|
|
@ -352,7 +352,7 @@ class project_scrum_meeting(osv.osv):
|
|||
if context is None:
|
||||
context = {}
|
||||
email_from = tools.config.get('email_from', False)
|
||||
meeting_id = self.browse(cr,uid,ids)[0]
|
||||
meeting_id = self.browse(cr, uid, ids, context=context)[0]
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
user_email = email_from or user.address_id.email or email_from
|
||||
body = _('Hello ') + meeting_id.sprint_id.scrum_master_id.name + ",\n" + " \n" +_('I am sending you Daily Meeting Details of date')+ ' %s ' % (meeting_id.date)+ _('for the Sprint')+ ' %s\n' % (meeting_id.sprint_id.name)
|
||||
|
|
|
@ -38,6 +38,8 @@ class project_scrum_email(osv.osv_memory):
|
|||
|
||||
@return : default values of fields.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
meeting_pool = self.pool.get('project.scrum.meeting')
|
||||
record_ids = context and context.get('active_ids', []) or []
|
||||
res = super(project_scrum_email, self).default_get(cr, uid, fields, context=context)
|
||||
|
@ -65,7 +67,7 @@ class project_scrum_email(osv.osv_memory):
|
|||
|
||||
def button_send_scrum_email(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context={}
|
||||
context = {}
|
||||
|
||||
active_id = context.get('active_id', False)
|
||||
scrum_meeting_pool = self.pool.get('project.scrum.meeting')
|
||||
|
|
|
@ -201,9 +201,9 @@ class task(osv.osv):
|
|||
if vals.get('project_id',False) or vals.get('name',False):
|
||||
vals_line = {}
|
||||
hr_anlytic_timesheet = self.pool.get('hr.analytic.timesheet')
|
||||
task_obj_l = self.browse(cr, uid, ids, context)
|
||||
task_obj_l = self.browse(cr, uid, ids, context=context)
|
||||
if vals.get('project_id',False):
|
||||
project_obj = self.pool.get('project.project').browse(cr, uid, vals['project_id'])
|
||||
project_obj = self.pool.get('project.project').browse(cr, uid, vals['project_id'], context=context)
|
||||
acc_id = project_obj.analytic_account_id.id
|
||||
|
||||
for task_obj in task_obj_l:
|
||||
|
|
|
@ -237,6 +237,8 @@ class purchase_order(osv.osv):
|
|||
_order = "name desc"
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
purchase_orders = self.read(cr, uid, ids, ['state'])
|
||||
unlink_ids = []
|
||||
for s in purchase_orders:
|
||||
|
@ -604,8 +606,10 @@ class purchase_order(osv.osv):
|
|||
purchase_order()
|
||||
|
||||
class purchase_order_line(osv.osv):
|
||||
def _amount_line(self, cr, uid, ids, prop, arg,context):
|
||||
def _amount_line(self, cr, uid, ids, prop, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
cur_obj=self.pool.get('res.currency')
|
||||
tax_obj = self.pool.get('account.tax')
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
|
@ -649,9 +653,11 @@ class purchase_order_line(osv.osv):
|
|||
_name = 'purchase.order.line'
|
||||
_description = 'Purchase Order Line'
|
||||
|
||||
def copy_data(self, cr, uid, id, default=None,context=None):
|
||||
def copy_data(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({'state':'draft', 'move_ids':[],'invoiced':0,'invoice_lines':[]})
|
||||
return super(purchase_order_line, self).copy_data(cr, uid, id, default, context)
|
||||
|
||||
|
@ -729,6 +735,8 @@ class purchase_order_line(osv.osv):
|
|||
return res
|
||||
|
||||
def action_confirm(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'confirmed'}, context=context)
|
||||
return True
|
||||
|
||||
|
@ -744,6 +752,8 @@ class procurement_order(osv.osv):
|
|||
""" This is action which call from workflow to assign purchase order to procurements
|
||||
@return: True
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = self.make_po(cr, uid, ids, context=context)
|
||||
res = res.values()
|
||||
return len(res) and res[0] or 0 #TO CHECK: why workflow is generated error if return not integer value
|
||||
|
@ -753,6 +763,8 @@ class procurement_order(osv.osv):
|
|||
@return: New created Purchase Orders procurement wise
|
||||
"""
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
|
@ -760,7 +772,7 @@ class procurement_order(osv.osv):
|
|||
prod_obj = self.pool.get('product.product')
|
||||
acc_pos_obj = self.pool.get('account.fiscal.position')
|
||||
po_obj = self.pool.get('purchase.order')
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
res_id = procurement.move_id.id
|
||||
partner = procurement.product_id.seller_id # Taken Main Supplier of Product of Procurement.
|
||||
seller_qty = procurement.product_id.seller_qty
|
||||
|
|
|
@ -35,6 +35,8 @@ class stock_move(osv.osv):
|
|||
on the purchase order in case the valuation data was not directly specified during picking
|
||||
confirmation.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
reference_amount, reference_currency_id = super(stock_move, self)._get_reference_accounting_values_for_valuation(cr, uid, move, context=context)
|
||||
if move.product_id.cost_method != 'average' or not move.price_unit:
|
||||
# no average price costing or cost not specified during picking validation, we will
|
||||
|
@ -118,9 +120,11 @@ class stock_partial_picking(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
res = super(stock_partial_picking, self).default_get(cr, uid, fields, context=context)
|
||||
for pick in pick_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for pick in pick_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
has_product_cost = (pick.type == 'in' and pick.purchase_id)
|
||||
for m in pick.move_lines:
|
||||
if has_product_cost and m.product_id.cost_method == 'average' and m.purchase_line_id:
|
||||
|
@ -142,9 +146,11 @@ class stock_partial_move(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_partial_move, self).default_get(cr, uid, fields, context=context)
|
||||
move_obj = self.pool.get('stock.move')
|
||||
for m in move_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for m in move_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
if m.picking_id.type == 'in' and m.product_id.cost_method == 'average' \
|
||||
and m.purchase_line_id and m.picking_id.purchase_id:
|
||||
# We use the original PO unit purchase price as the basis for the cost, expressed
|
||||
|
|
|
@ -47,7 +47,7 @@ class purchase_order_group(osv.osv_memory):
|
|||
raise osv.except_osv(_('Warning'),
|
||||
_('Please select multiple order to merge in the list view.'))
|
||||
return res
|
||||
def merge_orders(self, cr, uid, ids, context):
|
||||
def merge_orders(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To merge similar type of purchase orders.
|
||||
|
||||
|
@ -62,6 +62,8 @@ class purchase_order_group(osv.osv_memory):
|
|||
"""
|
||||
order_obj = self.pool.get('purchase.order')
|
||||
mod_obj =self.pool.get('ir.model.data')
|
||||
if not context:
|
||||
context = {}
|
||||
result = mod_obj._get_id(cr, uid, 'purchase', 'view_purchase_order_filter')
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
|
||||
|
|
|
@ -52,9 +52,11 @@ class purchase_requisition(osv.osv):
|
|||
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'purchase.order.requisition'),
|
||||
}
|
||||
|
||||
def copy(self, cr, uid, id, default=None,context={}):
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
default.update({
|
||||
'state':'draft',
|
||||
'purchase_ids':[],
|
||||
|
@ -63,7 +65,9 @@ class purchase_requisition(osv.osv):
|
|||
return super(purchase_requisition, self).copy(cr, uid, id, default, context)
|
||||
def tender_cancel(self, cr, uid, ids, context=None):
|
||||
purchase_order_obj = self.pool.get('purchase.order')
|
||||
for purchase in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for purchase in self.browse(cr, uid, ids, context=context):
|
||||
for purchase_id in purchase.purchase_ids:
|
||||
if str(purchase_id.state) in('draft','wait'):
|
||||
purchase_order_obj.action_cancel(cr,uid,[purchase_id.id])
|
||||
|
@ -71,14 +75,20 @@ class purchase_requisition(osv.osv):
|
|||
return True
|
||||
|
||||
def tender_in_progress(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'in_progress'} ,context=context)
|
||||
return True
|
||||
|
||||
def tender_reset(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'draft'})
|
||||
return True
|
||||
|
||||
def tender_done(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'done', 'date_end':time.strftime('%Y-%m-%d %H:%M:%S')}, context=context)
|
||||
return True
|
||||
|
||||
|
@ -106,8 +116,10 @@ class purchase_requisition_line(osv.osv):
|
|||
@return: Dictionary of changed values
|
||||
"""
|
||||
value = {'product_uom_id': ''}
|
||||
if not context:
|
||||
context = {}
|
||||
if product_id:
|
||||
prod = self.pool.get('product.product').browse(cr, uid, [product_id])[0]
|
||||
prod = self.pool.get('product.product').browse(cr, uid, [product_id], context=context)[0]
|
||||
value = {'product_uom_id': prod.uom_id.id,'product_qty':1.0}
|
||||
return {'value': value}
|
||||
|
||||
|
@ -121,10 +133,12 @@ class purchase_order(osv.osv):
|
|||
_columns = {
|
||||
'requisition_id' : fields.many2one('purchase.requisition','Purchase Requisition')
|
||||
}
|
||||
def wkf_confirm_order(self, cr, uid, ids, context={}):
|
||||
res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context)
|
||||
def wkf_confirm_order(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(purchase_order, self).wkf_confirm_order(cr, uid, ids, context=context)
|
||||
proc_obj=self.pool.get('procurement.order')
|
||||
for po in self.browse(cr, uid, ids, context):
|
||||
for po in self.browse(cr, uid, ids, context=context):
|
||||
if po.requisition_id and (po.requisition_id.exclusive=='exclusive'):
|
||||
for order in po.requisition_id.purchase_ids:
|
||||
if order.id<>po.id:
|
||||
|
@ -158,9 +172,11 @@ class procurement_order(osv.osv):
|
|||
}
|
||||
def make_po(self, cr, uid, ids, context=None):
|
||||
sequence_obj = self.pool.get('ir.sequence')
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(procurement_order, self).make_po(cr, uid, ids, context=context)
|
||||
for proc_id, po_id in res.items():
|
||||
procurement = self.browse(cr, uid, proc_id)
|
||||
procurement = self.browse(cr, uid, proc_id, context=context)
|
||||
requisition_id=False
|
||||
if procurement.product_id.purchase_requisition:
|
||||
requisition_id=self.pool.get('purchase.requisition').create(cr, uid, {
|
||||
|
|
|
@ -34,9 +34,11 @@ class purchase_requisition_partner(osv.osv_memory):
|
|||
}
|
||||
|
||||
def view_init(self, cr, uid, fields_list, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(purchase_requisition_partner, self).view_init(cr, uid, fields_list, context=context)
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id)
|
||||
tender = self.pool.get('purchase.requisition').browse(cr, uid, record_id, context=context)
|
||||
if not tender.line_ids:
|
||||
raise osv.except_osv('Error!','No Product in Tender')
|
||||
True
|
||||
|
@ -48,7 +50,7 @@ class purchase_requisition_partner(osv.osv_memory):
|
|||
part = self.pool.get('res.partner').browse(cr, uid, partner_id)
|
||||
return {'value':{'partner_address_id': addr['default']}}
|
||||
|
||||
def create_order(self, cr, uid, ids, context):
|
||||
def create_order(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To Create a purchase orders .
|
||||
|
||||
|
@ -60,6 +62,8 @@ class purchase_requisition_partner(osv.osv_memory):
|
|||
@return: {}
|
||||
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
record_ids = context and context.get('active_ids', False)
|
||||
if record_ids:
|
||||
data = self.read(cr, uid, ids)
|
||||
|
@ -74,12 +78,12 @@ class purchase_requisition_partner(osv.osv_memory):
|
|||
acc_pos_obj = self.pool.get('account.fiscal.position')
|
||||
partner_id = data[0]['partner_id']
|
||||
|
||||
supplier_data = partner_obj.browse(cr, uid,[ partner_id])[0]
|
||||
supplier_data = partner_obj.browse(cr, uid,[ partner_id], context=context)[0]
|
||||
|
||||
address_id = partner_obj.address_get(cr, uid, [partner_id], ['delivery'])['delivery']
|
||||
list_line=[]
|
||||
purchase_order_line={}
|
||||
for tender in tender_obj.browse(cr, uid, record_ids):
|
||||
for tender in tender_obj.browse(cr, uid, record_ids, context=context):
|
||||
for line in tender.line_ids:
|
||||
partner_list = sorted([(partner.sequence, partner) for partner in line.product_id.seller_ids if partner])
|
||||
partner_rec = partner_list and partner_list[0] and partner_list[0][1] or False
|
||||
|
|
|
@ -59,6 +59,8 @@ class ReportXML(osv.osv):
|
|||
|
||||
def unlink(self, cursor, user, ids, context=None):
|
||||
"""Delete report and unregister it"""
|
||||
if not context:
|
||||
context = {}
|
||||
trans_obj = self.pool.get('ir.translation')
|
||||
trans_ids = trans_obj.search(
|
||||
cursor,
|
||||
|
@ -81,6 +83,8 @@ class ReportXML(osv.osv):
|
|||
|
||||
def create(self, cursor, user, vals, context=None):
|
||||
"Create report and register it"
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(ReportXML, self).create(cursor, user, vals, context)
|
||||
if vals.get('report_type','') == 'webkit':
|
||||
# I really look forward to virtual functions :S
|
||||
|
@ -95,6 +99,8 @@ class ReportXML(osv.osv):
|
|||
"Edit report and manage it registration"
|
||||
if isinstance(ids, (int, long)):
|
||||
ids = [ids,]
|
||||
if not context:
|
||||
context = {}
|
||||
for rep in self.browse(cr, uid, ids, context=context):
|
||||
if rep.report_type != 'webkit':
|
||||
continue
|
||||
|
|
|
@ -320,6 +320,8 @@ class WebKitParser(report_sxw):
|
|||
def create(self, cursor, uid, ids, data, context=None):
|
||||
"""We override the create function in order to handle generator
|
||||
Code taken from report openoffice. Thanks guys :) """
|
||||
if not context:
|
||||
context = {}
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
ir_obj = pool.get('ir.actions.report.xml')
|
||||
report_xml_ids = ir_obj.search(cursor, uid,
|
||||
|
|
|
@ -242,6 +242,8 @@ class resource_resource(osv.osv):
|
|||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
if not context:
|
||||
context = {}
|
||||
if not default.get('name', False):
|
||||
default['name'] = self.browse(cr, uid, id, context=context).name + _(' (copy)')
|
||||
return super(resource_resource, self).copy(cr, uid, id, default, context)
|
||||
|
@ -364,7 +366,9 @@ class resource_calendar_leaves(osv.osv):
|
|||
'resource_id' : fields.many2one("resource.resource", "Resource", help="If empty, this is a generic holiday for the company. If a resource is set, the holiday/leave is only for this resource"),
|
||||
}
|
||||
|
||||
def check_dates(self, cr, uid, ids, context={}):
|
||||
def check_dates(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
leave = self.read(cr, uid, ids[0], ['date_from', 'date_to'])
|
||||
if leave['date_from'] and leave['date_to']:
|
||||
if leave['date_from'] > leave['date_to']:
|
||||
|
@ -377,9 +381,11 @@ class resource_calendar_leaves(osv.osv):
|
|||
|
||||
def onchange_resource(self,cr, uid, ids, resource, context=None):
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
if resource:
|
||||
resource_pool = self.pool.get('resource.resource')
|
||||
result['calendar_id'] = resource_pool.browse(cr, uid, resource).calendar_id.id
|
||||
result['calendar_id'] = resource_pool.browse(cr, uid, resource, context=context).calendar_id.id
|
||||
return {'value': result}
|
||||
return {'value': {'calendar_id': []}}
|
||||
|
||||
|
|
|
@ -33,8 +33,8 @@ class product_product(osv.osv):
|
|||
pricelist_ids = pricelist_obj.search(cr, uid, [('type', '=', 'purchase')])
|
||||
else:
|
||||
pricelist_ids = pricelist_obj.search(cr, uid, [('type', '=', 'sale')])
|
||||
pricelist_browse = pricelist_obj.browse(cr, uid, pricelist_ids)
|
||||
for product in self.browse(cr, uid, ids, context):
|
||||
pricelist_browse = pricelist_obj.browse(cr, uid, pricelist_ids, context=context)
|
||||
for product in self.browse(cr, uid, ids, context=context):
|
||||
result[product.id] = ""
|
||||
for pricelist in pricelist_browse:
|
||||
for version in pricelist.version_id:
|
||||
|
|
|
@ -28,6 +28,8 @@ class stock_move(osv.osv):
|
|||
}
|
||||
|
||||
def _create_chained_picking(self, cr, uid, pick_name, picking, ptype, move, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_move, self)._create_chained_picking(cr, uid, pick_name, picking, ptype, move, context=context)
|
||||
if picking.sale_id:
|
||||
self.pool.get('stock.picking').write(cr, uid, [res], {'sale_id': picking.sale_id.id})
|
||||
|
@ -181,9 +183,11 @@ class stock_picking(osv.osv):
|
|||
})
|
||||
return result
|
||||
|
||||
def action_cancel(self, cr, uid, ids, context={}):
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_picking, self).action_cancel(cr, uid, ids, context=context)
|
||||
for pick in self.browse(cr, uid, ids, context):
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
call_ship_end = True
|
||||
if pick.sale_id:
|
||||
for picks in pick.sale_id.picking_ids:
|
||||
|
@ -191,7 +195,7 @@ class stock_picking(osv.osv):
|
|||
call_ship_end = False
|
||||
break
|
||||
if call_ship_end:
|
||||
self.pool.get('sale.order').action_ship_end(cr, uid, [pick.sale_id.id], context)
|
||||
self.pool.get('sale.order').action_ship_end(cr, uid, [pick.sale_id.id], context=context)
|
||||
return res
|
||||
|
||||
stock_picking()
|
||||
|
|
|
@ -26,7 +26,7 @@ import netsvc
|
|||
class sale_order_line_make_invoice(osv.osv_memory):
|
||||
_name = "sale.order.line.make.invoice"
|
||||
_description = "Sale OrderLine Make_invoice"
|
||||
def make_invoices(self, cr, uid, ids, context):
|
||||
def make_invoices(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To make invoices.
|
||||
|
||||
|
@ -80,7 +80,7 @@ class sale_order_line_make_invoice(osv.osv_memory):
|
|||
sales_order_line_obj = self.pool.get('sale.order.line')
|
||||
sales_order_obj = self.pool.get('sale.order')
|
||||
wf_service = netsvc.LocalService('workflow')
|
||||
for line in sales_order_line_obj.browse(cr, uid, context['active_ids']):
|
||||
for line in sales_order_line_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
if (not line.invoiced) and (line.state not in ('draft', 'cancel')):
|
||||
if not line.order_id.id in invoices:
|
||||
invoices[line.order_id.id] = []
|
||||
|
@ -98,7 +98,7 @@ class sale_order_line_make_invoice(osv.osv_memory):
|
|||
(order_id,invoice_id) values (%s,%s)', (order.id, res))
|
||||
|
||||
flag = True
|
||||
data_sale = sales_order_obj.browse(cr, uid, line.order_id.id)
|
||||
data_sale = sales_order_obj.browse(cr, uid, line.order_id.id, context=context)
|
||||
for line in data_sale.order_line:
|
||||
if not line.invoiced:
|
||||
flag = False
|
||||
|
|
|
@ -37,22 +37,24 @@ class sale_make_invoice(osv.osv_memory):
|
|||
if context is None:
|
||||
context = {}
|
||||
record_id = context and context.get('active_id', False)
|
||||
order = self.pool.get('sale.order').browse(cr, uid, record_id)
|
||||
order = self.pool.get('sale.order').browse(cr, uid, record_id, context=context)
|
||||
if order.state == 'draft':
|
||||
raise osv.except_osv(_('Warning !'),'You can not create invoice when sale order is not confirmed.')
|
||||
return False
|
||||
|
||||
def make_invoices(self, cr, uid, ids, context={}):
|
||||
def make_invoices(self, cr, uid, ids, context=None):
|
||||
order_obj = self.pool.get('sale.order')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
newinv = []
|
||||
if not context:
|
||||
context = {}
|
||||
data = self.read(cr, uid, ids)[0]
|
||||
order_obj.action_invoice_create(cr, uid, context.get(('active_ids'), []), data['grouped'], date_inv = data['invoice_date'])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
for id in context.get(('active_ids'), []):
|
||||
wf_service.trg_validate(uid, 'sale.order', id, 'manual_invoice', cr)
|
||||
|
||||
for o in order_obj.browse(cr, uid, context.get(('active_ids'), []), context):
|
||||
for o in order_obj.browse(cr, uid, context.get(('active_ids'), []), context=context):
|
||||
for i in o.invoice_ids:
|
||||
newinv.append(i.id)
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class sale_advance_payment_inv(osv.osv_memory):
|
|||
'qtty': 1.0
|
||||
}
|
||||
|
||||
def create_invoices(self, cr, uid, ids, context={}):
|
||||
def create_invoices(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
To create invoices.
|
||||
|
||||
|
@ -51,9 +51,11 @@ class sale_advance_payment_inv(osv.osv_memory):
|
|||
obj_sale = self.pool.get('sale.order')
|
||||
obj_lines = self.pool.get('account.invoice.line')
|
||||
inv_obj = self.pool.get('account.invoice')
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
for sale_adv_obj in self.browse(cr, uid, ids):
|
||||
for sale in obj_sale.browse(cr, uid, context['active_ids']):
|
||||
for sale_adv_obj in self.browse(cr, uid, ids, context=context):
|
||||
for sale in obj_sale.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
create_ids = []
|
||||
ids_inv = []
|
||||
if sale.order_policy == 'postpaid':
|
||||
|
@ -151,7 +153,7 @@ class sale_open_invoice(osv.osv_memory):
|
|||
if context is None:
|
||||
context = {}
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
for advance_pay in self.browse(cr, uid, ids):
|
||||
for advance_pay in self.browse(cr, uid, ids, context=context):
|
||||
form_res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_form')
|
||||
form_id = form_res and form_res[1] or False
|
||||
tree_res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_tree')
|
||||
|
|
|
@ -33,10 +33,12 @@ class sale_order_line(osv.osv):
|
|||
return super(sale_order_line, self)._amount_line(cr, uid, ids, field_name, arg, context)
|
||||
return res
|
||||
|
||||
def invoice_line_create(self, cr, uid, ids, context={}):
|
||||
def invoice_line_create(self, cr, uid, ids, context=None):
|
||||
new_ids = []
|
||||
list_seq = []
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
if not context:
|
||||
context = {}
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
if line.layout_type == 'article':
|
||||
new_ids.append(line.id)
|
||||
list_seq.append(line.sequence)
|
||||
|
@ -78,6 +80,8 @@ class sale_order_line(osv.osv):
|
|||
return {}
|
||||
|
||||
def create(self, cr, user, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if vals.has_key('layout_type'):
|
||||
if vals['layout_type'] == 'line':
|
||||
vals['name'] = ' '
|
||||
|
@ -88,6 +92,8 @@ class sale_order_line(osv.osv):
|
|||
return super(sale_order_line, self).create(cr, user, vals, context)
|
||||
|
||||
def write(self, cr, user, ids, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if vals.has_key('layout_type'):
|
||||
if vals['layout_type'] == 'line':
|
||||
vals['name'] = ' '
|
||||
|
@ -96,9 +102,11 @@ class sale_order_line(osv.osv):
|
|||
return super(sale_order_line, self).write(cr, user, ids, vals, context)
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if default is None:
|
||||
default = {}
|
||||
default['layout_type'] = self.browse(cr, uid, id).layout_type
|
||||
default['layout_type'] = self.browse(cr, uid, id, context=context).layout_type
|
||||
return super(sale_order_line, self).copy(cr, uid, id, default, context)
|
||||
|
||||
_order = "order_id, sequence asc"
|
||||
|
|
|
@ -36,7 +36,9 @@ class sale_order_line(osv.osv):
|
|||
|
||||
def _product_margin(self, cr, uid, ids, field_name, arg, context=None):
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
res[line.id] = 0
|
||||
if line.product_id:
|
||||
if line.purchase_price:
|
||||
|
@ -57,6 +59,8 @@ class sale_order(osv.osv):
|
|||
|
||||
def _product_margin(self, cr, uid, ids, field_name, arg, context=None):
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for sale in self.browse(cr, uid, ids, context=context):
|
||||
result[sale.id] = 0.0
|
||||
for line in sale.order_line:
|
||||
|
@ -94,13 +98,17 @@ class account_invoice_line(osv.osv):
|
|||
_columns = {
|
||||
'cost_price': fields.float('Cost Price', digits=(16, 2)),
|
||||
}
|
||||
def write(self, cr, uid, ids, vals, context={}):
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if vals.get('product_id', False):
|
||||
res = self.pool.get('product.product').read(cr, uid, [vals['product_id']], ['standard_price'])
|
||||
vals['cost_price'] = res[0]['standard_price']
|
||||
return super(account_invoice_line, self).write(cr, uid, ids, vals, context)
|
||||
|
||||
def create(self, cr, uid, vals, context={}):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if vals.get('product_id',False):
|
||||
res = self.pool.get('product.product').read(cr, uid, [vals['product_id']], ['standard_price'])
|
||||
vals['cost_price'] = res[0]['standard_price']
|
||||
|
|
|
@ -30,7 +30,9 @@ class sale_order_dates(osv.osv):
|
|||
def _get_effective_date(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
dates_list = []
|
||||
for order in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
dates_list = []
|
||||
for pick in order.picking_ids:
|
||||
dates_list.append(pick.date)
|
||||
|
@ -43,7 +45,9 @@ class sale_order_dates(osv.osv):
|
|||
def _get_commitment_date(self, cr, uid, ids, name, arg, context=None):
|
||||
res = {}
|
||||
dates_list = []
|
||||
for order in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
dates_list = []
|
||||
for line in order.order_line:
|
||||
dt = datetime.strptime(order.date_order, '%Y-%m-%d') + relativedelta(days=line.delay or 0.0)
|
||||
|
|
|
@ -53,7 +53,7 @@ class product_product(osv.osv):
|
|||
'property_stock_variation': account_variation
|
||||
}
|
||||
|
||||
def do_change_standard_price(self, cr, uid, ids, datas, context={}):
|
||||
def do_change_standard_price(self, cr, uid, ids, datas, context=None):
|
||||
""" Changes the Standard Price of Product and creates an account move accordingly.
|
||||
@param datas : dict. contain default datas like new_price, stock_output_account, stock_input_account, stock_journal
|
||||
@param context: A standard dictionary
|
||||
|
@ -63,19 +63,21 @@ class product_product(osv.osv):
|
|||
location_obj = self.pool.get('stock.location')
|
||||
move_obj = self.pool.get('account.move')
|
||||
move_line_obj = self.pool.get('account.move.line')
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
new_price = datas.get('new_price', 0.0)
|
||||
stock_output_acc = datas.get('stock_output_account', False)
|
||||
stock_input_acc = datas.get('stock_input_account', False)
|
||||
journal_id = datas.get('stock_journal', False)
|
||||
product_obj=self.browse(cr,uid,ids)[0]
|
||||
product_obj=self.browse(cr, uid, ids, context=context)[0]
|
||||
account_variation = product_obj.categ_id.property_stock_variation
|
||||
account_variation_id = account_variation and account_variation.id or False
|
||||
if not account_variation_id: raise osv.except_osv(_('Error!'), _('Variation Account is not specified for Product Category: %s' % (product_obj.categ_id.name)))
|
||||
move_ids = []
|
||||
loc_ids = location_obj.search(cr, uid,[('usage','=','internal')])
|
||||
for rec_id in ids:
|
||||
for location in location_obj.browse(cr, uid, loc_ids):
|
||||
for location in location_obj.browse(cr, uid, loc_ids, context=context):
|
||||
c = context.copy()
|
||||
c.update({
|
||||
'location': location.id,
|
||||
|
|
|
@ -534,7 +534,9 @@ class stock_picking(osv.osv):
|
|||
return False
|
||||
if isinstance(ids, (int, long)):
|
||||
ids = [ids]
|
||||
for pick in self.browse(cr, uid, ids, context):
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
sql_str = """update stock_move set
|
||||
date='%s'
|
||||
where
|
||||
|
@ -556,6 +558,8 @@ class stock_picking(osv.osv):
|
|||
return False
|
||||
if isinstance(ids, (int, long)):
|
||||
ids = [ids]
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
sql_str = """update stock_move set
|
||||
date='%s'
|
||||
|
@ -591,6 +595,8 @@ class stock_picking(osv.osv):
|
|||
return res
|
||||
|
||||
def create(self, cr, user, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if ('name' not in vals) or (vals.get('name')=='/'):
|
||||
seq_obj_name = 'stock.picking.' + vals['type']
|
||||
vals['name'] = self.pool.get('ir.sequence').get(cr, user, seq_obj_name)
|
||||
|
@ -649,7 +655,9 @@ class stock_picking(osv.osv):
|
|||
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.picking', context=c)
|
||||
}
|
||||
def action_process(self, cr, uid, ids, context={}):
|
||||
def action_process(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return {
|
||||
'name':_("Products to Process"),
|
||||
'view_mode': 'form',
|
||||
|
@ -670,7 +678,9 @@ class stock_picking(osv.osv):
|
|||
if default is None:
|
||||
default = {}
|
||||
default = default.copy()
|
||||
picking_obj = self.browse(cr, uid, [id], context)[0]
|
||||
if not context:
|
||||
context = {}
|
||||
picking_obj = self.browse(cr, uid, [id], context=context)[0]
|
||||
move_obj=self.pool.get('stock.move')
|
||||
if ('name' not in default) or (picking_obj.name=='/'):
|
||||
seq_obj_name = 'stock.picking.' + picking_obj.type
|
||||
|
@ -696,6 +706,8 @@ class stock_picking(osv.osv):
|
|||
"""
|
||||
self.write(cr, uid, ids, {'state': 'confirmed'})
|
||||
todo = []
|
||||
if not context:
|
||||
context = {}
|
||||
for picking in self.browse(cr, uid, ids, context=context):
|
||||
for r in picking.move_lines:
|
||||
if r.state == 'draft':
|
||||
|
@ -754,7 +766,7 @@ class stock_picking(osv.osv):
|
|||
context = {}
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
self.draft_force_assign(cr, uid, ids)
|
||||
for pick in self.browse(cr, uid, ids):
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
move_ids = [x.id for x in pick.move_lines]
|
||||
self.pool.get('stock.move').force_assign(cr, uid, move_ids)
|
||||
wf_service.trg_write(uid, 'stock.picking', pick.id, cr)
|
||||
|
@ -784,6 +796,8 @@ class stock_picking(osv.osv):
|
|||
""" Changes picking state to assigned.
|
||||
@return: True
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'assigned'})
|
||||
self.log_picking(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
@ -820,7 +834,9 @@ class stock_picking(osv.osv):
|
|||
""" Changes picking state to cancel.
|
||||
@return: True
|
||||
"""
|
||||
for pick in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
ids2 = [move.id for move in pick.move_lines]
|
||||
self.pool.get('stock.move').action_cancel(cr, uid, ids2, context)
|
||||
self.write(cr, uid, ids, {'state': 'cancel', 'invoice_state': 'none'})
|
||||
|
@ -1068,6 +1084,8 @@ class stock_picking(osv.osv):
|
|||
@return: True or False
|
||||
"""
|
||||
ok = False
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
if not pick.move_lines:
|
||||
return True
|
||||
|
@ -1082,13 +1100,17 @@ class stock_picking(osv.osv):
|
|||
""" Test whether the move lines are canceled or not.
|
||||
@return: True or False
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
for move in pick.move_lines:
|
||||
if move.state not in ('cancel',):
|
||||
return False
|
||||
return True
|
||||
|
||||
def allow_cancel(self, cr, uid, ids, context={}):
|
||||
def allow_cancel(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
if not pick.move_lines:
|
||||
return True
|
||||
|
@ -1262,6 +1284,8 @@ class stock_picking(osv.osv):
|
|||
@param ids: List of Picking Ids
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for pick in self.browse(cr, uid, ids, context=context):
|
||||
msg=''
|
||||
if pick.auto_picking:
|
||||
|
@ -1311,6 +1335,8 @@ class stock_production_lot(osv.osv):
|
|||
""" Gets stock of products for locations
|
||||
@return: Dictionary of values
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
if 'location_id' not in context:
|
||||
locations = self.pool.get('stock.location').search(cr, uid, [('usage', '=', 'internal')], context=context)
|
||||
else:
|
||||
|
@ -1336,6 +1362,8 @@ class stock_production_lot(osv.osv):
|
|||
""" Searches Ids of products
|
||||
@return: Ids of locations
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
locations = self.pool.get('stock.location').search(cr, uid, [('usage', '=', 'internal')])
|
||||
cr.execute('''select
|
||||
prodlot_id,
|
||||
|
@ -1370,7 +1398,7 @@ class stock_production_lot(osv.osv):
|
|||
_sql_constraints = [
|
||||
('name_ref_uniq', 'unique (name, ref)', _('The combination of serial number and internal reference must be unique !')),
|
||||
]
|
||||
def action_traceability(self, cr, uid, ids, context={}):
|
||||
def action_traceability(self, cr, uid, ids, context=None):
|
||||
""" It traces the information of a product
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -1379,6 +1407,8 @@ class stock_production_lot(osv.osv):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary of values
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
value=self.pool.get('action.traceability').action_traceability(cr,uid,ids,context)
|
||||
return value
|
||||
stock_production_lot()
|
||||
|
@ -1425,7 +1455,9 @@ class stock_move(osv.osv):
|
|||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
res = []
|
||||
for line in self.browse(cr, uid, ids, context):
|
||||
if not context:
|
||||
context = {}
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
res.append((line.id, (line.product_id.code or '/')+': '+line.location_id.name+' > '+line.location_dest_id.name))
|
||||
return res
|
||||
|
||||
|
@ -1507,6 +1539,8 @@ class stock_move(osv.osv):
|
|||
""" Gets default address of partner for destination location
|
||||
@return: Address id or False
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
if context.get('move_line', []):
|
||||
if context['move_line'][0]:
|
||||
if isinstance(context['move_line'][0], (tuple, list)):
|
||||
|
@ -1523,6 +1557,8 @@ class stock_move(osv.osv):
|
|||
""" Gets default address of partner for source location
|
||||
@return: Address id or False
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
if context.get('move_line', []):
|
||||
try:
|
||||
return context['move_line'][0][2]['location_id']
|
||||
|
@ -1545,9 +1581,11 @@ class stock_move(osv.osv):
|
|||
}
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if uid != 1:
|
||||
frozen_fields = set(['product_qty', 'product_uom', 'product_uos_qty', 'product_uos', 'location_id', 'location_dest_id', 'product_id'])
|
||||
for move in self.browse(cr, uid, ids):
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
if move.state == 'done':
|
||||
if frozen_fields.intersection(vals):
|
||||
raise osv.except_osv(_('Operation forbidden'),
|
||||
|
@ -1558,9 +1596,13 @@ class stock_move(osv.osv):
|
|||
if default is None:
|
||||
default = {}
|
||||
default = default.copy()
|
||||
if not context:
|
||||
context = {}
|
||||
return super(stock_move, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def _auto_init(self, cursor, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_move, self)._auto_init(cursor, context=context)
|
||||
cursor.execute('SELECT indexname \
|
||||
FROM pg_indexes \
|
||||
|
@ -1659,6 +1701,8 @@ class stock_move(osv.osv):
|
|||
@return: Dictionary containing destination location with chained location type.
|
||||
"""
|
||||
result = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for m in moves:
|
||||
dest = self.pool.get('stock.location').chained_location_get(
|
||||
cr,
|
||||
|
@ -1691,6 +1735,8 @@ class stock_move(osv.osv):
|
|||
def _create_chained_picking(self, cr, uid, pick_name,picking,ptype,move, context=None):
|
||||
res_obj = self.pool.get('res.company')
|
||||
picking_obj = self.pool.get('stock.picking')
|
||||
if not context:
|
||||
context = {}
|
||||
pick_id= picking_obj.create(cr, uid, {
|
||||
'name': pick_name,
|
||||
'origin': str(picking.origin or ''),
|
||||
|
@ -1709,7 +1755,9 @@ class stock_move(osv.osv):
|
|||
""" Confirms stock move.
|
||||
@return: List of ids.
|
||||
"""
|
||||
moves = self.browse(cr, uid, ids)
|
||||
if not context:
|
||||
context = {}
|
||||
moves = self.browse(cr, uid, ids, context=context)
|
||||
self.write(cr, uid, ids, {'state': 'confirmed'})
|
||||
res_obj = self.pool.get('res.company')
|
||||
location_obj = self.pool.get('stock.location')
|
||||
|
@ -1762,17 +1810,21 @@ class stock_move(osv.osv):
|
|||
res = self.check_assign(cr, uid, todo)
|
||||
return res
|
||||
|
||||
def force_assign(self, cr, uid, ids, context={}):
|
||||
def force_assign(self, cr, uid, ids, context=None):
|
||||
""" Changes the state to assigned.
|
||||
@return: True
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'assigned'})
|
||||
return True
|
||||
|
||||
def cancel_assign(self, cr, uid, ids, context={}):
|
||||
def cancel_assign(self, cr, uid, ids, context=None):
|
||||
""" Changes the state to confirmed.
|
||||
@return: True
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'confirmed'})
|
||||
return True
|
||||
|
||||
|
@ -1875,6 +1927,8 @@ class stock_move(osv.osv):
|
|||
: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.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
product_obj=self.pool.get('product.product')
|
||||
accounts = product_obj.get_product_accounts(cr, uid, move.product_id.id, context)
|
||||
acc_src = accounts['stock_account_input']
|
||||
|
@ -1980,13 +2034,13 @@ class stock_move(osv.osv):
|
|||
context = {}
|
||||
|
||||
todo = []
|
||||
for move in self.browse(cr, uid, ids):
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
if move.state=="draft":
|
||||
todo.append(move.id)
|
||||
if todo:
|
||||
self.action_confirm(cr, uid, todo, context=context)
|
||||
|
||||
for move in self.browse(cr, uid, ids):
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
if move.picking_id:
|
||||
picking_ids.append(move.picking_id.id)
|
||||
if move.move_dest_id.id and (move.state != 'done'):
|
||||
|
@ -2096,6 +2150,8 @@ class stock_move(osv.osv):
|
|||
if quantity <= 0:
|
||||
raise osv.except_osv(_('Warning!'), _('Please provide a positive quantity to scrap!'))
|
||||
res = []
|
||||
if not context:
|
||||
context = {}
|
||||
for move in self.browse(cr, uid, ids, context=context):
|
||||
move_qty = move.product_qty
|
||||
uos_qty = quantity / move_qty * move.product_uos_qty
|
||||
|
@ -2405,7 +2461,7 @@ class stock_inventory(osv.osv):
|
|||
product_context = dict(context, compute_child=False)
|
||||
|
||||
location_obj = self.pool.get('stock.location')
|
||||
for inv in self.browse(cr, uid, ids):
|
||||
for inv in self.browse(cr, uid, ids, context=context):
|
||||
move_ids = []
|
||||
for line in inv.inventory_line_id:
|
||||
pid = line.product_id.id
|
||||
|
@ -2451,7 +2507,9 @@ class stock_inventory(osv.osv):
|
|||
""" Cancels the stock move and change inventory state to draft.
|
||||
@return: True
|
||||
"""
|
||||
for inv in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for inv in self.browse(cr, uid, ids, context=context):
|
||||
self.pool.get('stock.move').action_cancel(cr, uid, [x.id for x in inv.move_ids], context)
|
||||
self.write(cr, uid, [inv.id], {'state': 'draft'})
|
||||
return True
|
||||
|
@ -2460,7 +2518,9 @@ class stock_inventory(osv.osv):
|
|||
""" Cancels both stock move and inventory
|
||||
@return: True
|
||||
"""
|
||||
for inv in self.browse(cr,uid,ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for inv in self.browse(cr, uid, ids, context=context):
|
||||
self.pool.get('stock.move').action_cancel(cr, uid, [x.id for x in inv.move_ids], context)
|
||||
self.write(cr, uid, [inv.id], {'state':'cancel'})
|
||||
return True
|
||||
|
|
|
@ -37,7 +37,7 @@ class change_standard_price(osv.osv_memory):
|
|||
'enable_stock_in_out_acc':fields.boolean('Enable Related Account',),
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
""" To get default values for the object.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -46,6 +46,8 @@ class change_standard_price(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
product_pool = self.pool.get('product.product')
|
||||
product_obj = product_pool.browse(cr, uid, context.get('active_id', False))
|
||||
res = super(change_standard_price, self).default_get(cr, uid, fields, context=context)
|
||||
|
@ -67,7 +69,7 @@ class change_standard_price(osv.osv_memory):
|
|||
|
||||
return res
|
||||
|
||||
def onchange_price(self, cr, uid, ids, new_price, context = {}):
|
||||
def onchange_price(self, cr, uid, ids, new_price, context=None):
|
||||
""" Sets stock input and output account according to the difference
|
||||
of old price and new price.
|
||||
@param self: The object pointer.
|
||||
|
@ -78,7 +80,9 @@ class change_standard_price(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: Dictionary of values
|
||||
"""
|
||||
product_obj = self.pool.get('product.product').browse(cr, uid, context.get('active_id', False))
|
||||
if not context:
|
||||
context = {}
|
||||
product_obj = self.pool.get('product.product').browse(cr, uid, context.get('active_id', False), context=context)
|
||||
price = product_obj.standard_price
|
||||
diff = price - new_price
|
||||
if diff > 0 :
|
||||
|
@ -86,7 +90,7 @@ class change_standard_price(osv.osv_memory):
|
|||
else :
|
||||
return {'value' : {'enable_stock_in_out_acc':False}}
|
||||
|
||||
def change_price(self, cr, uid, ids, context):
|
||||
def change_price(self, cr, uid, ids, context=None):
|
||||
""" Changes the Standard Price of Product.
|
||||
And creates an account move accordingly.
|
||||
@param self: The object pointer.
|
||||
|
@ -96,10 +100,12 @@ class change_standard_price(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return:
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
rec_id = context and context.get('active_id', False)
|
||||
assert rec_id, _('Active ID is not set in Context')
|
||||
prod_obj = self.pool.get('product.product')
|
||||
res = self.browse(cr, uid, ids)
|
||||
res = self.browse(cr, uid, ids, context=context)
|
||||
datas = {
|
||||
'new_price' : res[0].new_price,
|
||||
'stock_output_account' : res[0].stock_account_output.id,
|
||||
|
|
|
@ -67,7 +67,7 @@ class stock_fill_inventory(osv.osv_memory):
|
|||
ids = ids[0]
|
||||
else:
|
||||
return {}
|
||||
fill_inventory = self.browse(cr, uid, ids)
|
||||
fill_inventory = self.browse(cr, uid, ids, context=context)
|
||||
res = {}
|
||||
res_location = {}
|
||||
if fill_inventory.recursive :
|
||||
|
@ -86,7 +86,7 @@ class stock_fill_inventory(osv.osv_memory):
|
|||
for location in res_location.keys():
|
||||
res = res_location[location]
|
||||
for product_id in res.keys():
|
||||
prod = product_obj.browse(cr, uid, [product_id])[0]
|
||||
prod = product_obj.browse(cr, uid, [product_id], context=context)[0]
|
||||
uom = prod.uom_id.id
|
||||
context.update(uom=uom, compute_child=False)
|
||||
amount = stock_location_obj._product_get(cr, uid,
|
||||
|
|
|
@ -30,7 +30,7 @@ class stock_inventory_line_split(osv.osv_memory):
|
|||
_description = "Split inventory lines"
|
||||
|
||||
|
||||
def default_get(self, cr, uid, fields, context):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
""" To check the availability of production lot.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -39,9 +39,11 @@ class stock_inventory_line_split(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
record_id = context and context.get('active_id',False)
|
||||
res = {}
|
||||
line = self.pool.get('stock.inventory.line').browse(cr, uid, record_id)
|
||||
line = self.pool.get('stock.inventory.line').browse(cr, uid, record_id, context=context)
|
||||
if 'product_id' in fields:
|
||||
res.update({'product_id':line.product_id.id})
|
||||
if 'product_uom' in fields:
|
||||
|
@ -64,8 +66,10 @@ class stock_inventory_line_split(osv.osv_memory):
|
|||
ir_sequence_obj = self.pool.get('ir.sequence')
|
||||
line_obj = self.pool.get('stock.inventory.line')
|
||||
new_line = []
|
||||
for data in self.browse(cr, uid, ids):
|
||||
for inv_line in line_obj.browse(cr, uid, line_ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
for inv_line in line_obj.browse(cr, uid, line_ids, context=context):
|
||||
line_qty = inv_line.product_qty
|
||||
quantity_rest = inv_line.product_qty
|
||||
new_line = []
|
||||
|
|
|
@ -44,7 +44,7 @@ class stock_inventory_merge(osv.osv_memory):
|
|||
_('Please select multiple physical inventories to merge in the list view.'))
|
||||
return res
|
||||
|
||||
def do_merge(self, cr, uid, ids, context):
|
||||
def do_merge(self, cr, uid, ids, context=None):
|
||||
""" To merge selected Inventories.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -56,6 +56,8 @@ class stock_inventory_merge(osv.osv_memory):
|
|||
invent_obj = self.pool.get('stock.inventory')
|
||||
invent_line_obj = self.pool.get('stock.inventory.line')
|
||||
invent_lines = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for inventory in invent_obj.browse(cr, uid, context['active_ids'], context=context):
|
||||
if inventory.state == "done":
|
||||
raise osv.except_osv(_('Warning'),
|
||||
|
|
|
@ -39,7 +39,7 @@ class stock_invoice_onshipping(osv.osv_memory):
|
|||
pick_obj = self.pool.get('stock.picking')
|
||||
count = 0
|
||||
active_ids = context.get('active_ids',[])
|
||||
for pick in pick_obj.browse(cr, uid, active_ids):
|
||||
for pick in pick_obj.browse(cr, uid, active_ids, context=context):
|
||||
if pick.invoice_state != '2binvoiced':
|
||||
count += 1
|
||||
if len(active_ids) == 1 and count:
|
||||
|
|
|
@ -29,7 +29,7 @@ class stock_location_product(osv.osv_memory):
|
|||
'to_date': fields.datetime('To'),
|
||||
}
|
||||
|
||||
def action_open_window(self, cr, uid, ids, context):
|
||||
def action_open_window(self, cr, uid, ids, context=None):
|
||||
""" To open location wise product information specific to given duration
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
|
|
@ -34,7 +34,7 @@ class stock_move_track(osv.osv_memory):
|
|||
'quantity': lambda *x: 1
|
||||
}
|
||||
|
||||
def track_lines(self, cr, uid, ids, context={}):
|
||||
def track_lines(self, cr, uid, ids, context=None):
|
||||
""" To track stock moves lines
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -70,6 +70,8 @@ class stock_move_consume(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: default values of fields
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_move_consume, self).default_get(cr, uid, fields, context=context)
|
||||
move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
|
||||
if 'product_id' in fields:
|
||||
|
@ -83,7 +85,7 @@ class stock_move_consume(osv.osv_memory):
|
|||
|
||||
return res
|
||||
|
||||
def do_move_consume(self, cr, uid, ids, context={}):
|
||||
def do_move_consume(self, cr, uid, ids, context=None):
|
||||
""" To move consumed products
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -92,6 +94,8 @@ class stock_move_consume(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return:
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_ids = context['active_ids']
|
||||
for data in self.read(cr, uid, ids):
|
||||
|
@ -121,6 +125,8 @@ class stock_move_scrap(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: default values of fields
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_move_consume, self).default_get(cr, uid, fields, context=context)
|
||||
move = self.pool.get('stock.move').browse(cr, uid, context['active_id'], context=context)
|
||||
location_obj = self.pool.get('stock.location')
|
||||
|
@ -140,7 +146,7 @@ class stock_move_scrap(osv.osv_memory):
|
|||
|
||||
return res
|
||||
|
||||
def move_scrap(self, cr, uid, ids, context={}):
|
||||
def move_scrap(self, cr, uid, ids, context=None):
|
||||
""" To move scrapped products
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -149,6 +155,8 @@ class stock_move_scrap(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return:
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
move_obj = self.pool.get('stock.move')
|
||||
move_ids = context['active_ids']
|
||||
for data in self.read(cr, uid, ids):
|
||||
|
@ -173,6 +181,8 @@ class split_in_production_lot(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: Default values of fields
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
res = super(split_in_production_lot, self).default_get(cr, uid, fields, context=context)
|
||||
if context.get('active_id'):
|
||||
|
@ -205,6 +215,8 @@ class split_in_production_lot(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return:
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
self.split(cr, uid, ids, context.get('active_ids'), context=context)
|
||||
return {}
|
||||
|
||||
|
@ -221,8 +233,10 @@ class split_in_production_lot(osv.osv_memory):
|
|||
prodlot_obj = self.pool.get('stock.production.lot')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
new_move = []
|
||||
for data in self.browse(cr, uid, ids):
|
||||
for move in move_obj.browse(cr, uid, move_ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
for move in move_obj.browse(cr, uid, move_ids, context=context):
|
||||
move_qty = move.product_qty
|
||||
quantity_rest = move.product_qty
|
||||
uos_qty_rest = move.product_uos_qty
|
||||
|
|
|
@ -53,7 +53,7 @@ class stock_partial_move(osv.osv_memory):
|
|||
|
||||
if not context:
|
||||
context = {}
|
||||
for move in move_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for move in move_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
if move.state in ('done', 'cancel'):
|
||||
raise osv.except_osv(_('Invalid action !'), _('Cannot deliver products which are already delivered !'))
|
||||
|
||||
|
@ -81,7 +81,7 @@ class stock_partial_move(osv.osv_memory):
|
|||
context = {}
|
||||
|
||||
res = []
|
||||
for move in move_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for move in move_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
if move.state in ('done', 'cancel'):
|
||||
continue
|
||||
res.append(self.__create_partial_move_memory(move))
|
||||
|
@ -141,7 +141,7 @@ class stock_partial_move(osv.osv_memory):
|
|||
result['fields'] = _moves_fields
|
||||
return result
|
||||
|
||||
def do_partial(self, cr, uid, ids, context):
|
||||
def do_partial(self, cr, uid, ids, context=None):
|
||||
""" Makes partial moves and pickings done.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -151,11 +151,12 @@ class stock_partial_move(osv.osv_memory):
|
|||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
move_obj = self.pool.get('stock.move')
|
||||
|
||||
move_ids = context.get('active_ids', False)
|
||||
partial = self.browse(cr, uid, ids[0], context)
|
||||
partial = self.browse(cr, uid, ids[0], context=context)
|
||||
partial_datas = {
|
||||
'delivery_date' : partial.date
|
||||
}
|
||||
|
@ -165,7 +166,7 @@ class stock_partial_move(osv.osv_memory):
|
|||
p_moves[product_move.move_id.id] = product_move
|
||||
|
||||
moves_ids_final = []
|
||||
for move in move_obj.browse(cr, uid, move_ids):
|
||||
for move in move_obj.browse(cr, uid, move_ids, context=context):
|
||||
if move.state in ('done', 'cancel'):
|
||||
continue
|
||||
if not p_moves.get(move.id, False):
|
||||
|
|
|
@ -35,7 +35,7 @@ class stock_partial_picking(osv.osv_memory):
|
|||
pick_obj = self.pool.get('stock.picking')
|
||||
if not context:
|
||||
context={}
|
||||
for pick in pick_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for pick in pick_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
need_product_cost = (pick.type == 'in')
|
||||
for m in pick.move_lines:
|
||||
if m.state in ('done', 'cancel'):
|
||||
|
@ -157,14 +157,15 @@ class stock_partial_picking(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_partial_picking, self).default_get(cr, uid, fields, context=context)
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
if not context:
|
||||
context={}
|
||||
if 'date' in fields:
|
||||
res.update({'date': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
for pick in pick_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for pick in pick_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
need_product_cost = (pick.type == 'in')
|
||||
for m in pick.move_lines:
|
||||
if m.state in ('done', 'cancel'):
|
||||
|
@ -188,7 +189,7 @@ class stock_partial_picking(osv.osv_memory):
|
|||
res['move%s_product_currency'%(m.id)] = currency
|
||||
return res
|
||||
|
||||
def do_partial(self, cr, uid, ids, context):
|
||||
def do_partial(self, cr, uid, ids, context=None):
|
||||
""" Makes partial moves and pickings done.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -199,11 +200,11 @@ class stock_partial_picking(osv.osv_memory):
|
|||
"""
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
picking_ids = context.get('active_ids', False)
|
||||
partial = self.browse(cr, uid, ids[0], context)
|
||||
partial = self.browse(cr, uid, ids[0], context=context)
|
||||
partial_datas = {
|
||||
'delivery_date' : partial.date
|
||||
}
|
||||
for pick in pick_obj.browse(cr, uid, picking_ids):
|
||||
for pick in pick_obj.browse(cr, uid, picking_ids, context=context):
|
||||
need_product_cost = (pick.type == 'in')
|
||||
for m in pick.move_lines:
|
||||
if m.state in ('done', 'cancel'):
|
||||
|
|
|
@ -30,10 +30,10 @@ class stock_replacement(osv.osv_memory):
|
|||
_name = "stock.replacement"
|
||||
_description = "Stock Replacement"
|
||||
|
||||
def get_composant(self, cr, uid, ids, context = {}):
|
||||
def get_composant(self, cr, uid, ids, context=None):
|
||||
return {}
|
||||
|
||||
def replace_composant(self, cr, uid, ids, context = {}):
|
||||
def replace_composant(self, cr, uid, ids, context=None):
|
||||
""" To open a new wizard that acknowledge, a replacement task
|
||||
@return: It returns the replacement acknowledgement form
|
||||
"""
|
||||
|
|
|
@ -29,7 +29,7 @@ class stock_return_picking(osv.osv_memory):
|
|||
_name = 'stock.return.picking'
|
||||
_description = 'Return Picking'
|
||||
|
||||
def default_get(self, cr, uid, fields, context):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
To get default values for the object.
|
||||
@param self: The object pointer.
|
||||
|
@ -39,10 +39,12 @@ class stock_return_picking(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary with default values for all field in ``fields``
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_return_picking, self).default_get(cr, uid, fields, context=context)
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
pick = pick_obj.browse(cr, uid, record_id)
|
||||
pick = pick_obj.browse(cr, uid, record_id, context=context)
|
||||
if pick:
|
||||
if 'invoice_state' in fields:
|
||||
if pick.invoice_state=='invoiced':
|
||||
|
@ -64,11 +66,13 @@ class stock_return_picking(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: New arch of view with new columns.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_return_picking, self).view_init(cr, uid, fields_list, context=context)
|
||||
record_id = context and context.get('active_id', False)
|
||||
if record_id:
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
pick = pick_obj.browse(cr, uid, record_id)
|
||||
pick = pick_obj.browse(cr, uid, record_id, context=context)
|
||||
if pick.state not in ['done','confirmed','assigned']:
|
||||
raise osv.except_osv(_('Warning !'), _("You may only return pickings that are Confirmed, Available or Done!"))
|
||||
return_history = {}
|
||||
|
@ -128,7 +132,7 @@ class stock_return_picking(osv.osv_memory):
|
|||
res['arch'] = '\n'.join(arch_lst)
|
||||
return res
|
||||
|
||||
def create_returns(self, cr, uid, ids, context):
|
||||
def create_returns(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Creates return picking.
|
||||
@param self: The object pointer.
|
||||
|
@ -137,14 +141,16 @@ class stock_return_picking(osv.osv_memory):
|
|||
@param ids: List of ids selected
|
||||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
move_obj = self.pool.get('stock.move')
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
||||
pick = pick_obj.browse(cr, uid, record_id)
|
||||
pick = pick_obj.browse(cr, uid, record_id, context=context)
|
||||
data = self.read(cr, uid, ids[0])
|
||||
new_picking = None
|
||||
date_cur = time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
|
|
@ -25,7 +25,7 @@ class stock_split_move_line(osv.osv_memory):
|
|||
_name = 'stock.move.line.split'
|
||||
_description = "Split Moves"
|
||||
|
||||
def default_get(self, cr, uid, fields, context):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
""" To get default values for the object.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -34,6 +34,8 @@ class stock_split_move_line(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
res = super(stock_split_move_line, self).default_get(cr, uid, fields, context=context)
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
|
@ -90,7 +92,7 @@ class stock_split_move_line(osv.osv_memory):
|
|||
res['arch'] = '\n'.join(arch_lst)
|
||||
return res
|
||||
|
||||
def split_lines(self, cr, uid, ids, context):
|
||||
def split_lines(self, cr, uid, ids, context=None):
|
||||
""" Splits moves in quantity given in the wizard.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -99,6 +101,8 @@ class stock_split_move_line(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary which of fields with values.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
move_obj = self.pool.get('stock.move')
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
|
|
|
@ -34,12 +34,14 @@ class stock_split_into(osv.osv_memory):
|
|||
}
|
||||
|
||||
def split(self, cr, uid, data, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
rec_id = context and context.get('active_ids', False)
|
||||
move_obj = self.pool.get('stock.move')
|
||||
track_obj = self.pool.get('stock.tracking')
|
||||
|
||||
quantity = self.browse(cr, uid, data[0], context).quantity or 0.0
|
||||
for move in move_obj.browse(cr, uid, rec_id):
|
||||
quantity = self.browse(cr, uid, data[0], context=context).quantity or 0.0
|
||||
for move in move_obj.browse(cr, uid, rec_id, context=context):
|
||||
quantity_rest = move.product_qty - quantity
|
||||
#if move.tracking_id :
|
||||
# raise osv.except_osv(_('Error!'), _('The current move line is already assigned to a pack, please remove it first if you really want to change it ' \
|
||||
|
|
|
@ -29,7 +29,7 @@ class action_traceability(osv.osv_memory):
|
|||
_name = "action.traceability"
|
||||
_description = "Action traceability "
|
||||
|
||||
def action_traceability(self, cr, uid, ids, context={}):
|
||||
def action_traceability(self, cr, uid, ids, context=None):
|
||||
""" It traces the information of a product
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
|
@ -38,7 +38,8 @@ class action_traceability(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return: A dictionary of values
|
||||
"""
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
type1 = context['type'] or 'move_history_ids2'
|
||||
field = context['field'] or 'tracking_id'
|
||||
obj = self.pool.get('stock.move')
|
||||
|
|
|
@ -27,7 +27,7 @@ class stock_ups(osv.osv_memory):
|
|||
_name = "stock.ups"
|
||||
_description = "Stock ups"
|
||||
|
||||
def ups_save(self, cr, uid, ids, context = {}):
|
||||
def ups_save(self, cr, uid, ids, context=None):
|
||||
return {
|
||||
'name': False,
|
||||
'view_type': 'form',
|
||||
|
@ -37,7 +37,7 @@ class stock_ups(osv.osv_memory):
|
|||
'target':'new',
|
||||
}
|
||||
|
||||
def ups_upload(self, cr, uid, ids, context = {}):
|
||||
def ups_upload(self, cr, uid, ids, context=None):
|
||||
return {
|
||||
'name': False,
|
||||
'view_type': 'form',
|
||||
|
@ -60,7 +60,7 @@ class stock_ups_final(osv.osv_memory):
|
|||
_name = "stock.ups.final"
|
||||
_description = "Stock ups final"
|
||||
|
||||
def create_xmlfile(self, cr, uid, ids, context = {}):
|
||||
def create_xmlfile(self, cr, uid, ids, context=None):
|
||||
""" Creates xml report file.
|
||||
@return: xml file
|
||||
"""
|
||||
|
@ -79,7 +79,7 @@ class stock_ups_upload(osv.osv_memory):
|
|||
_name = "stock.ups.upload"
|
||||
_description = "Stock ups upload"
|
||||
|
||||
def upload_xmlfile(self, cr, uid, ids, context = {}):
|
||||
def upload_xmlfile(self, cr, uid, ids, context=None):
|
||||
""" Uploads xml report file.
|
||||
@return:
|
||||
"""
|
||||
|
|
|
@ -24,7 +24,7 @@ from osv import fields, osv
|
|||
class invoice_directly(osv.osv_memory):
|
||||
_inherit = 'stock.partial.picking'
|
||||
|
||||
def do_partial(self, cr, uid, ids, context):
|
||||
def do_partial(self, cr, uid, ids, context=None):
|
||||
""" Makes partial moves and pickings done and
|
||||
launches Create invoice wizard if invoice state is To be Invoiced.
|
||||
@param self: The object pointer.
|
||||
|
@ -33,10 +33,12 @@ class invoice_directly(osv.osv_memory):
|
|||
@param context: A standard dictionary
|
||||
@return:
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
result = super(invoice_directly, self).do_partial(cr, uid, ids, context)
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
picking_ids = context.get('active_ids', False)
|
||||
pick = pick_obj.browse(cr, uid, picking_ids, context)[0]
|
||||
pick = pick_obj.browse(cr, uid, picking_ids, context=context)[0]
|
||||
if pick.invoice_state == '2binvoiced':
|
||||
return {
|
||||
'name': 'Create Invoice',
|
||||
|
|
|
@ -25,21 +25,27 @@ from tools.translate import _
|
|||
class procurement_order(osv.osv):
|
||||
_inherit = 'procurement.order'
|
||||
def check_buy(self, cr, uid, ids, context=None):
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
for line in procurement.product_id.flow_pull_ids:
|
||||
if line.location_id==procurement.location_id:
|
||||
return line.type_proc=='buy'
|
||||
return super(procurement_order, self).check_buy(cr, uid, ids)
|
||||
|
||||
def check_produce(self, cr, uid, ids, context=None):
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
for line in procurement.product_id.flow_pull_ids:
|
||||
if line.location_id==procurement.location_id:
|
||||
return line.type_proc=='produce'
|
||||
return super(procurement_order, self).check_produce(cr, uid, ids)
|
||||
|
||||
def check_move(self, cr, uid, ids, context=None):
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for procurement in self.browse(cr, uid, ids, context=context):
|
||||
for line in procurement.product_id.flow_pull_ids:
|
||||
if line.location_id==procurement.location_id:
|
||||
return (line.type_proc=='move') and (line.location_src_id)
|
||||
|
@ -50,6 +56,8 @@ class procurement_order(osv.osv):
|
|||
move_obj = self.pool.get('stock.move')
|
||||
picking_obj=self.pool.get('stock.picking')
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
if not context:
|
||||
context = {}
|
||||
for proc in proc_obj.browse(cr, uid, ids, context=context):
|
||||
line = None
|
||||
for line in proc.product_id.flow_pull_ids:
|
||||
|
|
|
@ -106,7 +106,9 @@ class stock_move(osv.osv):
|
|||
_columns = {
|
||||
'cancel_cascade': fields.boolean('Cancel Cascade', help='If checked, when this move is cancelled, cancel the linked move too')
|
||||
}
|
||||
def action_cancel(self,cr,uid,ids,context={ }):
|
||||
def action_cancel(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for m in self.browse(cr, uid, ids, context=context):
|
||||
if m.cancel_cascade and m.move_dest_id:
|
||||
self.action_cancel(cr, uid, [m.move_dest_id.id], context=context)
|
||||
|
@ -116,7 +118,9 @@ stock_move()
|
|||
|
||||
class stock_location(osv.osv):
|
||||
_inherit = 'stock.location'
|
||||
def chained_location_get(self, cr, uid, location, partner=None, product=None, context={}):
|
||||
def chained_location_get(self, cr, uid, location, partner=None, product=None, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if product:
|
||||
for path in product.path_ids:
|
||||
if path.location_from_id.id == location.id:
|
||||
|
|
|
@ -47,11 +47,15 @@ class stock_period(osv.osv):
|
|||
'state': 'draft'
|
||||
}
|
||||
|
||||
def button_open(self, cr, uid, ids, context):
|
||||
def button_open(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'open'})
|
||||
return True
|
||||
|
||||
def button_close(self, cr, uid, ids, context):
|
||||
def button_close(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state': 'close'})
|
||||
return True
|
||||
|
||||
|
@ -192,17 +196,21 @@ class stock_sale_forecast(osv.osv):
|
|||
def _to_default_uom_factor(self, cr, uid, product_id, uom_id, context=None):
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
product_obj = self.pool.get('product.product')
|
||||
product = product_obj.browse(cr, uid, product_id)
|
||||
if not context:
|
||||
context = {}
|
||||
product = product_obj.browse(cr, uid, product_id, context=context)
|
||||
uom = uom_obj.browse(cr, uid, uom_id, context=context)
|
||||
coef = uom.factor
|
||||
if uom.category_id.id <> product.uom_id.category_id.id:
|
||||
coef = coef / product.uos_coeff
|
||||
return product.uom_id.factor / coef
|
||||
|
||||
def _from_default_uom_factor(self, cr, uid, product_id, uom_id, context):
|
||||
def _from_default_uom_factor(self, cr, uid, product_id, uom_id, context=None):
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
product_obj = self.pool.get('product.product')
|
||||
product = product_obj.browse(cr, uid, product_id)
|
||||
if not context:
|
||||
context = {}
|
||||
product = product_obj.browse(cr, uid, product_id, context=context)
|
||||
uom = uom_obj.browse(cr, uid, uom_id, context=context)
|
||||
res = uom.factor
|
||||
if uom.category_id.id <> product.uom_id.category_id.id:
|
||||
|
@ -346,8 +354,10 @@ class stock_planning(osv.osv):
|
|||
res = self._to_planning_uom(cr, uid, val, planning_qtys, context)
|
||||
return res
|
||||
|
||||
def _to_planning_uom(self, cr, uid, val, qtys, context):
|
||||
def _to_planning_uom(self, cr, uid, val, qtys, context=None):
|
||||
res_qty = 0
|
||||
if not context:
|
||||
context = {}
|
||||
if qtys:
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
for qty, prod_uom in qtys:
|
||||
|
@ -360,7 +370,9 @@ class stock_planning(osv.osv):
|
|||
|
||||
def _get_forecast(self, cr, uid, ids, field_names, arg, context=None):
|
||||
res = {}
|
||||
for val in self.browse(cr, uid, ids):
|
||||
if not context:
|
||||
context = {}
|
||||
for val in self.browse(cr, uid, ids, context=context):
|
||||
res[val.id] = {}
|
||||
valid_part = val.confirmed_forecasts_only and " AND state = 'validated'" or ""
|
||||
cr.execute('SELECT sum(product_qty), product_uom \
|
||||
|
@ -382,6 +394,8 @@ class stock_planning(osv.osv):
|
|||
return res
|
||||
|
||||
def _get_stock_start(self, cr, uid, val, date, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
context['from_date'] = None
|
||||
context['to_date'] = date
|
||||
locations = [val.warehouse_id.lot_stock_id.id,]
|
||||
|
@ -393,8 +407,10 @@ class stock_planning(osv.osv):
|
|||
res = product_obj['qty_available'] # value for stock_start
|
||||
return res
|
||||
|
||||
def _get_past_future(self, cr, uid, ids, field_names, arg, context):
|
||||
def _get_past_future(self, cr, uid, ids, field_names, arg, context=None):
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for val in self.browse(cr, uid, ids, context=context):
|
||||
if val.period_id.date_stop < time.strftime('%Y-%m-%d'):
|
||||
res[val.id] = 'Past'
|
||||
|
@ -404,6 +420,8 @@ class stock_planning(osv.osv):
|
|||
|
||||
def _get_op(self, cr, uid, ids, field_names, arg, context=None): # op = OrderPoint
|
||||
res = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for val in self.browse(cr, uid, ids, context=context):
|
||||
res[val.id]={}
|
||||
cr.execute("SELECT product_min_qty, product_max_qty, product_uom \
|
||||
|
@ -519,7 +537,9 @@ class stock_planning(osv.osv):
|
|||
def _to_default_uom_factor(self, cr, uid, product_id, uom_id, context=None):
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
product_obj = self.pool.get('product.product')
|
||||
product = product_obj.browse(cr, uid, product_id)
|
||||
if not context:
|
||||
context = {}
|
||||
product = product_obj.browse(cr, uid, product_id, context=context)
|
||||
uom = uom_obj.browse(cr, uid, uom_id, context=context)
|
||||
coef = uom.factor
|
||||
if uom.category_id.id != product.uom_id.category_id.id:
|
||||
|
@ -530,7 +550,7 @@ class stock_planning(osv.osv):
|
|||
def _from_default_uom_factor(self, cr, uid, product_id, uom_id, context=None):
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
product_obj = self.pool.get('product.product')
|
||||
product = product_obj.browse(cr, uid, product_id)
|
||||
product = product_obj.browse(cr, uid, product_id, context=context)
|
||||
uom = uom_obj.browse(cr, uid, uom_id, context=context)
|
||||
res = uom.factor
|
||||
if uom.category_id.id != product.uom_id.category_id.id:
|
||||
|
@ -592,9 +612,11 @@ class stock_planning(osv.osv):
|
|||
# so if UoM is from UoM category it is used as UoM in standard and if product has UoS the UoS will be calcualated.
|
||||
# If UoM is from UoS category it is recalculated to basic UoS from product (in planning you can use any UoS from UoS category)
|
||||
# and basic UoM is calculated.
|
||||
def _qty_to_standard(self, cr, uid, val, context):
|
||||
def _qty_to_standard(self, cr, uid, val, context=None):
|
||||
uos = False
|
||||
uos_qty = 0.0
|
||||
if not context:
|
||||
context = {}
|
||||
if val.product_uom.category_id.id == val.product_id.uom_id.category_id.id:
|
||||
uom_qty = val.incoming_left
|
||||
uom = val.product_uom.id
|
||||
|
|
|
@ -31,6 +31,8 @@ class stock_period_createlines(osv.osv_memory):
|
|||
_name = "stock.period.createlines"
|
||||
|
||||
def _get_new_period_start(self, cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
cr.execute("select max(date_stop) from stock_period")
|
||||
result = cr.fetchone()
|
||||
last_date = result and result[0] or False
|
||||
|
@ -53,6 +55,8 @@ class stock_period_createlines(osv.osv_memory):
|
|||
}
|
||||
|
||||
def create_stock_periods(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
interval = context.get('interval',0)
|
||||
name = context.get('name','Daily')
|
||||
period_obj = self.pool.get('stock.period')
|
||||
|
|
|
@ -50,6 +50,8 @@ class stock_sale_forecast_createlines(osv.osv_memory):
|
|||
prod_categ_obj = self.pool.get('product.category')
|
||||
template_obj = self.pool.get('product.template')
|
||||
forecast_lines = []
|
||||
if not context:
|
||||
context = {}
|
||||
for f in self.browse(cr, uid, ids, context=context):
|
||||
categ_ids = f.product_categ_id.id and [f.product_categ_id.id] or []
|
||||
prod_categ_ids = prod_categ_obj.search(cr, uid, [('parent_id','child_of', categ_ids)])
|
||||
|
|
|
@ -40,6 +40,8 @@ class subscription_document(osv.osv):
|
|||
}
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if 'model' in vals:
|
||||
raise osv.except_osv(_('Error !'),_('You cannot modify the Object linked to the Document Type!\nCreate another Document instead !'))
|
||||
return super(subscription_document, self).write(cr, uid, ids, vals, context=context)
|
||||
|
@ -91,7 +93,9 @@ class subscription_subscription(osv.osv):
|
|||
'state': lambda *a: 'draft'
|
||||
}
|
||||
|
||||
def set_process(self, cr, uid, ids, context={}):
|
||||
def set_process(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for row in self.read(cr, uid, ids):
|
||||
mapping = {'name':'name','interval_number':'interval_number','interval_type':'interval_type','exec_init':'numbercall','date_init':'nextcall'}
|
||||
res = {'model':'subscription.subscription', 'args': repr([[row['id']]]), 'function':'model_copy', 'priority':6, 'user_id':row['user_id'] and row['user_id'][0]}
|
||||
|
@ -101,7 +105,9 @@ class subscription_subscription(osv.osv):
|
|||
self.write(cr, uid, [row['id']], {'cron_id':id, 'state':'running'})
|
||||
return True
|
||||
|
||||
def model_copy(self, cr, uid, ids, context={}):
|
||||
def model_copy(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
for row in self.read(cr, uid, ids):
|
||||
if not row.get('cron_id',False):
|
||||
continue
|
||||
|
@ -136,14 +142,18 @@ class subscription_subscription(osv.osv):
|
|||
self.write(cr, uid, [row['id']], {'state':state})
|
||||
return True
|
||||
|
||||
def set_done(self, cr, uid, ids, context={}):
|
||||
def set_done(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
res = self.read(cr,uid, ids, ['cron_id'])
|
||||
ids2 = [x['cron_id'][0] for x in res if x['id']]
|
||||
self.pool.get('ir.cron').write(cr, uid, ids2, {'active':False})
|
||||
self.write(cr, uid, ids, {'state':'done'})
|
||||
return True
|
||||
|
||||
def set_draft(self, cr, uid, ids, context={}):
|
||||
def set_draft(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'draft'})
|
||||
return True
|
||||
subscription_subscription()
|
||||
|
|
|
@ -46,7 +46,9 @@ class survey(osv.osv):
|
|||
_description = 'Survey'
|
||||
_rec_name = 'title'
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(survey, self).default_get(cr, uid, fields, context)
|
||||
return data
|
||||
|
||||
|
@ -94,7 +96,9 @@ class survey(osv.osv):
|
|||
self.write(cr, uid, ids, {'state': 'cancel' })
|
||||
return True
|
||||
|
||||
def copy(self, cr, uid, id, default=None,context={}):
|
||||
def copy(self, cr, uid, id, default=None,context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
raise osv.except_osv(_('Warning !'),_('You cannot duplicate the resource!'))
|
||||
|
||||
def action_print_survey(self, cr, uid, ids, context=None):
|
||||
|
@ -173,7 +177,9 @@ class survey_page(osv.osv):
|
|||
'sequence': lambda * a: 1
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(survey_page, self).default_get(cr, uid, fields, context)
|
||||
if context.get('line_order',False):
|
||||
if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'):
|
||||
|
@ -182,7 +188,9 @@ class survey_page(osv.osv):
|
|||
data['survey_id'] = context['survey_id']
|
||||
return data
|
||||
|
||||
def survey_save(self, cr, uid, ids, context):
|
||||
def survey_save(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
search_obj = self.pool.get('ir.ui.view')
|
||||
search_id = search_obj.search(cr,uid,[('model','=','survey.question.wiz'),('name','=','Survey Search')])
|
||||
surv_name_wiz = self.pool.get('survey.name.wiz')
|
||||
|
@ -197,7 +205,9 @@ class survey_page(osv.osv):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context={}):
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
raise osv.except_osv(_('Warning !'),_('You cannot duplicate the resource!'))
|
||||
|
||||
survey_page()
|
||||
|
@ -208,10 +218,12 @@ class survey_question(osv.osv):
|
|||
_rec_name = 'question'
|
||||
_order = 'sequence'
|
||||
|
||||
def _calc_response(self, cr, uid, ids, field_name, arg, context):
|
||||
def _calc_response(self, cr, uid, ids, field_name, arg, context=None):
|
||||
if len(ids) == 0:
|
||||
return {}
|
||||
val = {}
|
||||
if not context:
|
||||
context = {}
|
||||
cr.execute("select question_id, count(id) as Total_response from \
|
||||
survey_response_line where state='done' and question_id IN %s\
|
||||
group by question_id" ,(tuple(ids),))
|
||||
|
@ -439,9 +451,11 @@ class survey_question(osv.osv):
|
|||
|
||||
return super(survey_question, self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
def create(self, cr, uid, vals, context):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
minimum_ans = 0
|
||||
maximum_ans = 0
|
||||
if not context:
|
||||
context = {}
|
||||
if vals.has_key('answer_choice_ids') and not len(vals['answer_choice_ids']):
|
||||
if vals.has_key('type') and vals['type'] not in ['descriptive_text', 'single_textbox', 'comment','table']:
|
||||
raise osv.except_osv(_('Warning !'),_("You must enter one or more answer."))
|
||||
|
@ -475,7 +489,9 @@ class survey_question(osv.osv):
|
|||
res = super(survey_question, self).create(cr, uid, vals, context)
|
||||
return res
|
||||
|
||||
def survey_save(self, cr, uid, ids, context):
|
||||
def survey_save(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
search_obj = self.pool.get('ir.ui.view')
|
||||
search_id = search_obj.search(cr,uid,[('model','=','survey.question.wiz'),('name','=','Survey Search')])
|
||||
surv_name_wiz = self.pool.get('survey.name.wiz')
|
||||
|
@ -490,7 +506,9 @@ class survey_question(osv.osv):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(survey_question, self).default_get(cr, uid, fields, context)
|
||||
if context.get('line_order',False):
|
||||
if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'):
|
||||
|
@ -508,11 +526,15 @@ class survey_question_column_heading(osv.osv):
|
|||
_description = 'Survey Question Column Heading'
|
||||
_rec_name = 'title'
|
||||
|
||||
def _get_in_visible_rating_weight(self,cr, uid, context={}):
|
||||
def _get_in_visible_rating_weight(self,cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if context.get('in_visible_rating_weight', False):
|
||||
return context['in_visible_rating_weight']
|
||||
return False
|
||||
def _get_in_visible_menu_choice(self,cr, uid, context={}):
|
||||
def _get_in_visible_menu_choice(self,cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if context.get('in_visible_menu_choice', False):
|
||||
return context['in_visible_menu_choice']
|
||||
return False
|
||||
|
@ -537,9 +559,11 @@ class survey_answer(osv.osv):
|
|||
_rec_name = 'answer'
|
||||
_order = 'sequence'
|
||||
|
||||
def _calc_response_avg(self, cr, uid, ids, field_name, arg, context):
|
||||
def _calc_response_avg(self, cr, uid, ids, field_name, arg, context=None):
|
||||
val = {}
|
||||
for rec in self.browse(cr, uid, ids, context):
|
||||
if not context:
|
||||
context = {}
|
||||
for rec in self.browse(cr, uid, ids, context=context):
|
||||
cr.execute("select count(question_id) ,(select count(answer_id) \
|
||||
from survey_response_answer sra, survey_response_line sa \
|
||||
where sra.response_id = sa.id and sra.answer_id = %d \
|
||||
|
@ -557,7 +581,9 @@ class survey_answer(osv.osv):
|
|||
}
|
||||
return val
|
||||
|
||||
def _get_in_visible_answer_type(self,cr, uid, context={}):
|
||||
def _get_in_visible_answer_type(self,cr, uid, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
return context.get('in_visible_answer_type', False)
|
||||
|
||||
_columns = {
|
||||
|
@ -578,7 +604,9 @@ class survey_answer(osv.osv):
|
|||
'in_visible_answer_type':_get_in_visible_answer_type,
|
||||
}
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(survey_answer, self).default_get(cr, uid, fields, context)
|
||||
if context.get('line_order', False):
|
||||
if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'):
|
||||
|
@ -615,7 +643,9 @@ class survey_response(osv.osv):
|
|||
res.append((record['id'], name))
|
||||
return res
|
||||
|
||||
def copy(self, cr, uid, id, default=None,context={}):
|
||||
def copy(self, cr, uid, id, default=None,context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
raise osv.except_osv(_('Warning !'),_('You cannot duplicate the resource!'))
|
||||
|
||||
survey_response()
|
||||
|
@ -714,9 +744,11 @@ class survey_request(osv.osv):
|
|||
return True
|
||||
|
||||
def on_change_user(self, cr, uid, ids, user_id, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
if user_id:
|
||||
user_obj = self.pool.get('res.users')
|
||||
user = user_obj.browse(cr, uid, user_id)
|
||||
user = user_obj.browse(cr, uid, user_id, context=context)
|
||||
return {'value': {'email': user.address_id.email}}
|
||||
return {}
|
||||
|
||||
|
|
|
@ -74,10 +74,10 @@ class survey_question_wiz(osv.osv_memory):
|
|||
'response': 0
|
||||
}
|
||||
wiz_id = surv_name_wiz.create(cr, uid, res_data)
|
||||
sur_name_rec = surv_name_wiz.browse(cr, uid, wiz_id)
|
||||
sur_name_rec = surv_name_wiz.browse(cr, uid, wiz_id, context=context)
|
||||
context.update({'sur_name_id' :wiz_id})
|
||||
else:
|
||||
sur_name_rec = surv_name_wiz.browse(cr, uid, context['sur_name_id'])
|
||||
sur_name_rec = surv_name_wiz.browse(cr, uid, context['sur_name_id'], context=context)
|
||||
|
||||
if context.has_key('active_id'):
|
||||
context.pop('active_id')
|
||||
|
@ -96,7 +96,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
return super(survey_question_wiz, self).\
|
||||
fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context,
|
||||
toolbar=toolbar, submenu=submenu)
|
||||
sur_rec = survey_obj.browse(cr, uid, survey_id)
|
||||
sur_rec = survey_obj.browse(cr, uid, survey_id, context=context)
|
||||
p_id = map(lambda x:x.id, sur_rec.page_ids)
|
||||
total_pages = len(p_id)
|
||||
pre_button = False
|
||||
|
@ -109,7 +109,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
if not sur_name_rec.page_no + 1 :
|
||||
surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'store_ans':{}})
|
||||
|
||||
sur_name_read = surv_name_wiz.browse(cr, uid, context['sur_name_id'])
|
||||
sur_name_read = surv_name_wiz.browse(cr, uid, context['sur_name_id'], context=context)
|
||||
page_number = int(sur_name_rec.page_no)
|
||||
if sur_name_read.transfer or not sur_name_rec.page_no + 1:
|
||||
surv_name_wiz.write(cr, uid, [context['sur_name_id']], {'transfer':False})
|
||||
|
@ -149,7 +149,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
if sur_name_rec.page_no > 1:
|
||||
pre_button = True
|
||||
if flag:
|
||||
pag_rec = page_obj.browse(cr, uid, p_id)
|
||||
pag_rec = page_obj.browse(cr, uid, p_id, context=context)
|
||||
xml_form = etree.Element('form', {'string': tools.ustr(pag_rec.title)})
|
||||
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '4'})
|
||||
if context.has_key('response_id') and context.get('response_id', False) \
|
||||
|
@ -177,7 +177,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
|
||||
for que in que_ids:
|
||||
qu_no += 1
|
||||
que_rec = que_obj.browse(cr, uid, que.id)
|
||||
que_rec = que_obj.browse(cr, uid, que.id, context=context)
|
||||
descriptive_text = ""
|
||||
separator_string = tools.ustr(qu_no) + "." + tools.ustr(que_rec.question)
|
||||
if ((context.has_key('active') and not context.get('active',False)) or not context.has_key('active')) and que_rec.is_require_answer:
|
||||
|
@ -424,7 +424,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
cr.execute("select email from res_partner_address where id =%s", (resp_id.id,))
|
||||
resp_email = cr.fetchone()[0]
|
||||
if user_email and resp_email:
|
||||
user_name = user_obj.browse(cr, uid, uid).name
|
||||
user_name = user_obj.browse(cr, uid, uid, context=context).name
|
||||
mail = "Hello " + survey_data.responsible_id.name + ",\n\n " + str(user_name) + " Give Response Of " + survey_data.title + " Survey.\n\n Thanks,"
|
||||
tools.email_send(user_email, [resp_email], "Survey Answer Of " + str(user_name) , mail, attach = attachments)
|
||||
|
||||
|
@ -479,6 +479,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@return : Dictionary value for fields list with value.
|
||||
"""
|
||||
value = {}
|
||||
if not context:
|
||||
context = {}
|
||||
for field in fields_list:
|
||||
if field.split('_')[0] == 'progress':
|
||||
tot_page_id = self.pool.get('survey').browse(cr, uid, context.get('survey_id',False))
|
||||
|
@ -1006,7 +1008,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
|
||||
return True
|
||||
|
||||
def action_new_question(self,cr, uid, ids, context):
|
||||
def action_new_question(self,cr, uid, ids, context=None):
|
||||
"""
|
||||
New survey.Question form.
|
||||
|
||||
|
@ -1017,6 +1019,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open new survey.Qestion form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for key,val in context.items():
|
||||
if type(key) == type(True):
|
||||
context.pop(key)
|
||||
|
@ -1032,7 +1036,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def action_new_page(self, cr, uid, ids, context):
|
||||
def action_new_page(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
New survey.Page form.
|
||||
|
||||
|
@ -1043,6 +1047,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open new survey.page form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for key,val in context.items():
|
||||
if type(key) == type(True):
|
||||
context.pop(key)
|
||||
|
@ -1058,7 +1064,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def action_edit_page(self,cr, uid, ids, context):
|
||||
def action_edit_page(self,cr, uid, ids, context=None):
|
||||
"""
|
||||
Edit survey.page.
|
||||
|
||||
|
@ -1069,6 +1075,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open Edit survey.page form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for key,val in context.items():
|
||||
if type(key) == type(True):
|
||||
context.pop(key)
|
||||
|
@ -1085,7 +1093,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def action_delete_page(self,cr, uid, ids, context):
|
||||
def action_delete_page(self,cr, uid, ids, context=None):
|
||||
"""
|
||||
Delete survey.page.
|
||||
|
||||
|
@ -1096,6 +1104,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open next survey.page form, but delete the selected page.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for key,val in context.items():
|
||||
if type(key) == type(True):
|
||||
context.pop(key)
|
||||
|
@ -1116,7 +1126,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def action_edit_question(self,cr, uid, ids, context):
|
||||
def action_edit_question(self,cr, uid, ids, context=None):
|
||||
"""
|
||||
Edit survey.question.
|
||||
|
||||
|
@ -1127,6 +1137,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open Edit survey.question form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for key,val in context.items():
|
||||
if type(key) == type(True):
|
||||
context.pop(key)
|
||||
|
@ -1143,7 +1155,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
'context': context
|
||||
}
|
||||
|
||||
def action_delete_question(self,cr, uid, ids, context):
|
||||
def action_delete_question(self,cr, uid, ids, context=None):
|
||||
"""
|
||||
Delete survey.question.
|
||||
|
||||
|
@ -1154,6 +1166,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open same survey.page form, but delete the selected survey.question in current survey.page.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
for key,val in context.items():
|
||||
if type(key) == type(True):
|
||||
context.pop(key)
|
||||
|
@ -1186,6 +1200,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open Previous Answer form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
search_obj = self.pool.get('ir.ui.view')
|
||||
surv_name_wiz = self.pool.get('survey.name.wiz')
|
||||
search_id = search_obj.search(cr,uid,[('model','=','survey.question.wiz'),\
|
||||
|
@ -1216,6 +1232,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open Next Answer form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
search_obj = self.pool.get('ir.ui.view')
|
||||
surv_name_wiz = self.pool.get('survey.name.wiz')
|
||||
search_id = search_obj.search(cr,uid,[('model','=','survey.question.wiz'),\
|
||||
|
@ -1246,6 +1264,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open Next survey.page form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
surv_name_wiz = self.pool.get('survey.name.wiz')
|
||||
search_obj = self.pool.get('ir.ui.view')
|
||||
search_id = search_obj.search(cr,uid,[('model','=','survey.question.wiz'),('name','=','Survey Search')])
|
||||
|
@ -1271,6 +1291,8 @@ class survey_question_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for Open Previous survey.page form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
surv_name_wiz = self.pool.get('survey.name.wiz')
|
||||
search_obj = self.pool.get('ir.ui.view')
|
||||
search_id = search_obj.search(cr,uid,[('model','=','survey.question.wiz'),\
|
||||
|
|
|
@ -56,6 +56,8 @@ class survey_print(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for print survey form.
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
datas = {'ids' : self.read(cr, uid, ids, [], context)[0]['survey_ids']}
|
||||
res = self.read(cr, uid, ids, ['survey_title', 'orientation', 'paper_size',\
|
||||
|
|
|
@ -56,6 +56,8 @@ class survey_print_answer(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for created survey answer report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
res = self.read(cr, uid, ids, ['response_ids', 'orientation', 'paper_size',\
|
||||
'page_number', 'without_pagebreak'], context)
|
||||
|
|
|
@ -42,6 +42,8 @@ class survey_print_statistics(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return: Dictionary value for created survey statistics report
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
datas = {'ids': context.get('active_ids', [])}
|
||||
res = self.read(cr, uid, ids, ['survey_ids'], context)
|
||||
res = res and res[0] or {}
|
||||
|
|
|
@ -60,11 +60,13 @@ class survey_send_invitation(osv.osv_memory):
|
|||
return ''.join([choice(chars) for i in range(6)])
|
||||
|
||||
def default_get(self, cr, uid, fields_list, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(survey_send_invitation, self).default_get(cr, uid, fields_list, context)
|
||||
survey_obj = self.pool.get('survey')
|
||||
msg = ""
|
||||
name = ""
|
||||
for sur in survey_obj.browse(cr, uid, context.get('active_ids', [])):
|
||||
for sur in survey_obj.browse(cr, uid, context.get('active_ids', []), context=context):
|
||||
name += "\t --> " + sur.title + "\n"
|
||||
if sur.state != 'open':
|
||||
msg += sur.title + "\n"
|
||||
|
@ -92,6 +94,8 @@ class survey_send_invitation(osv.osv_memory):
|
|||
|
||||
|
||||
def action_send(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
record = self.read(cr, uid, ids, [])
|
||||
survey_ids = context.get('active_ids', [])
|
||||
record = record and record[0]
|
||||
|
@ -220,6 +224,8 @@ class survey_send_invitation_log(osv.osv_memory):
|
|||
}
|
||||
|
||||
def default_get(self, cr, uid, fields_list, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(survey_send_invitation_log, self).default_get(cr, uid, fields_list, context)
|
||||
data['note'] = context.get('note', '')
|
||||
return data
|
||||
|
|
|
@ -31,7 +31,9 @@ class thunderbird_installer(osv.osv_memory):
|
|||
_name = 'thunderbird.installer'
|
||||
_inherit = 'res.config.installer'
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
data = super(thunderbird_installer, self).default_get(cr, uid, fields, context)
|
||||
data['pdf_file'] = 'http://doc.openerp.com/book/2/2_6_Comms/2_6_Comms_thunderbird.html'
|
||||
file = open(addons.get_module_resource('thunderbird','plugin', 'openerp_plugin.xpi'),'rb')
|
||||
|
|
|
@ -54,7 +54,7 @@ class wiki_group(osv.osv):
|
|||
'method': lambda *a: 'page',
|
||||
}
|
||||
|
||||
def open_wiki_page(self, cr, uid, ids, context):
|
||||
def open_wiki_page(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Opens Wiki Page of Group
|
||||
@param cr: the current row, from the database cursor,
|
||||
|
@ -131,7 +131,7 @@ class wiki_wiki2(osv.osv):
|
|||
'minor_edit': lambda *a: True,
|
||||
}
|
||||
|
||||
def onchange_group_id(self, cr, uid, ids, group_id, content, context={}):
|
||||
def onchange_group_id(self, cr, uid, ids, group_id, content, context=None):
|
||||
|
||||
""" @param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
|
@ -140,7 +140,9 @@ class wiki_wiki2(osv.osv):
|
|||
|
||||
if (not group_id) or content:
|
||||
return {}
|
||||
grp = self.pool.get('wiki.groups').browse(cr, uid, group_id)
|
||||
if not context:
|
||||
context = {}
|
||||
grp = self.pool.get('wiki.groups').browse(cr, uid, group_id, context=context)
|
||||
section = '0'
|
||||
for page in grp.page_ids:
|
||||
if page.section: section = page.section
|
||||
|
@ -164,6 +166,8 @@ class wiki_wiki2(osv.osv):
|
|||
@param uid: the current user’s ID for security checks,
|
||||
@param id: Give wiki page's ID """
|
||||
|
||||
if not context:
|
||||
context = {}
|
||||
return super(wiki_wiki2, self).copy_data(cr, uid, id, {'wiki_id': False}, context)
|
||||
|
||||
def create_history(self, cr, uid, ids, vals, context=None):
|
||||
|
|
|
@ -31,7 +31,7 @@ class wiki_create_menu(osv.osv_memory):
|
|||
'menu_parent_id': fields.many2one('ir.ui.menu', 'Parent Menu', required=True),
|
||||
}
|
||||
|
||||
def wiki_menu_create(self, cr, uid, ids, context):
|
||||
def wiki_menu_create(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Create Menu On the base of Group id and Action id
|
||||
@param cr: the current row, from the database cursor,
|
||||
|
@ -39,6 +39,8 @@ class wiki_create_menu(osv.osv_memory):
|
|||
@param ids: List of create menu’s IDs
|
||||
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
obj_wiki_group = self.pool.get('wiki.groups')
|
||||
obj_view = self.pool.get('ir.ui.view')
|
||||
obj_menu = self.pool.get('ir.ui.menu')
|
||||
|
|
|
@ -27,7 +27,7 @@ class wiki_make_index(osv.osv_memory):
|
|||
_name = "wiki.make.index"
|
||||
_description = "Create Index"
|
||||
|
||||
def wiki_do_index(self, cr, uid, ids, context):
|
||||
def wiki_do_index(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Makes Index according to page hierarchy
|
||||
@param cr: the current row, from the database cursor,
|
||||
|
@ -35,9 +35,11 @@ class wiki_make_index(osv.osv_memory):
|
|||
@param ids: list of wiki index’s IDs
|
||||
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
data = context and context.get('active_ids', []) or []
|
||||
|
||||
for index_obj in self.browse(cr, uid, ids):
|
||||
for index_obj in self.browse(cr, uid, ids, context=context):
|
||||
wiki_pool = self.pool.get('wiki.wiki')
|
||||
cr.execute("Select id, section from wiki_wiki where id IN %s \
|
||||
order by section ", (tuple(data),))
|
||||
|
|
|
@ -33,6 +33,8 @@ class showdiff(osv.osv_memory):
|
|||
""" @param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
history = self.pool.get('wiki.wiki.history')
|
||||
ids = context.get('active_ids', [])
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ class wiki_wiki_page_open(osv.osv_memory):
|
|||
_name = "wiki.wiki.page.open"
|
||||
_description = "wiz open page"
|
||||
|
||||
def open_wiki_page(self, cr, uid, ids, context):
|
||||
def open_wiki_page(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Opens Wiki Page of Group
|
||||
@param cr: the current row, from the database cursor,
|
||||
|
@ -35,8 +35,10 @@ class wiki_wiki_page_open(osv.osv_memory):
|
|||
@param ids: List of open wiki page’s IDs
|
||||
@return: dictionay of open wiki window on give group id
|
||||
"""
|
||||
if not context:
|
||||
context = {}
|
||||
group_ids = context.get('active_ids', [])
|
||||
for group in self.pool.get('wiki.groups').browse(cr, uid, group_ids):
|
||||
for group in self.pool.get('wiki.groups').browse(cr, uid, group_ids, context=context):
|
||||
value = {
|
||||
'domain': "[('group_id','=',%d)]" % (group.id),
|
||||
'name': 'Wiki Page',
|
||||
|
|
Loading…
Reference in New Issue