Divyesh Makwana(OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-bug-800100-mdi into
lp:openobject-addons.
Requested reviews:
Raphael Collet (OpenERP) (rco-openerp)
Related bugs:
Bug #800100 in OpenERP Addons: "Sale: Constraint Error-Order Reference must
be unique per company"
https://bugs.launchpad.net/openobject-addons/+bug/800100
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-800100-mdi/+merge/81671
Hello Sir,
I have fix the issue: https://bugs.launchpad.net/openobject-addons/+bug/800100
"Sale: Constraint Error-Order Reference must be unique per company".
I changes the constraint for sale order and purchase order.
Thanks and Regards,
Divyesh Makwana(MDI)
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-800100-mdi/+merge/81671
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-bug-800100-mdi.
=== modified file 'account/account_invoice.py'
--- account/account_invoice.py 2011-10-19 08:14:03 +0000
+++ account/account_invoice.py 2011-11-09 06:49:26 +0000
@@ -286,6 +286,9 @@
'internal_number': False,
'user_id': lambda s, cr, u, c: u,
}
+ _sql_constraints = [
+ ('number_uniq', 'unique(number,company_id)', 'Invoice Number must be unique per Company!'),
+ ]
def fields_view_get(self, cr, uid, view_id=None, view_type=False, context=None, toolbar=False, submenu=False):
journal_obj = self.pool.get('account.journal')
=== modified file 'mrp/mrp.py'
--- mrp/mrp.py 2011-11-08 20:33:03 +0000
+++ mrp/mrp.py 2011-11-09 06:49:26 +0000
@@ -271,7 +271,7 @@
if context is None:
context = {}
context['lang'] = self.pool.get('res.users').browse(cr,uid,uid).context_lang
-
+
if product_id:
prod = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
v = {'name': prod.name, 'product_uom': prod.uom_id.id}
@@ -490,6 +490,9 @@
'name': lambda x, y, z, c: x.pool.get('ir.sequence').get(y, z, 'mrp.production') or '/',
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.production', context=c),
}
+ _sql_constraints = [
+ ('name_uniq', 'unique(name,company_id)', 'Order Reference must be unique per Company!'),
+ ]
_order = 'priority desc, date_planned asc';
def _check_qty(self, cr, uid, ids, context=None):
=== modified file 'purchase/purchase.py'
--- purchase/purchase.py 2011-11-01 06:06:29 +0000
+++ purchase/purchase.py 2011-11-09 06:49:26 +0000
@@ -228,7 +228,7 @@
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'purchase.order', context=c),
}
_sql_constraints = [
- ('name_uniq', 'unique(name)', 'Order Reference must be unique !'),
+ ('name_uniq', 'unique(name,company_id)', 'Order Reference must be unique per Company!'),
]
_name = "purchase.order"
_description = "Purchase Order"
=== modified file 'sale/sale.py'
--- sale/sale.py 2011-11-08 15:21:42 +0000
+++ sale/sale.py 2011-11-09 06:49:26 +0000
@@ -110,7 +110,7 @@
for item in cr.dictfetchall():
if item['move_state'] == 'cancel':
continue
-
+
if item['picking_type'] == 'in':#this is a returned picking
tmp[item['sale_order_id']]['total'] -= item['nbr'] or 0.0 # Deducting the return picking qty
if item['procurement_state'] == 'done' or item['move_state'] == 'done':
@@ -125,7 +125,7 @@
res[order.id] = 100.0
else:
res[order.id] = tmp[order.id]['total'] and (100.0 * tmp[order.id]['picked'] / tmp[order.id]['total']) or 0.0
- return res
+ return res
def _invoiced_rate(self, cursor, user, ids, name, arg, context=None):
res = {}
@@ -280,7 +280,7 @@
'partner_shipping_id': lambda self, cr, uid, context: context.get('partner_id', False) and self.pool.get('res.partner').address_get(cr, uid, [context['partner_id']], ['delivery'])['delivery'],
}
_sql_constraints = [
- ('name_uniq', 'unique(name)', 'Order Reference must be unique !'),
+ ('name_uniq', 'unique(name,company_id)', 'Order Reference must be unique per Company!'),
]
_order = 'name desc'
@@ -898,7 +898,7 @@
return result[1]
except Exception, ex:
return False
-
+
_name = 'sale.order.line'
_description = 'Sales Order Line'
_columns = {
@@ -1266,7 +1266,7 @@
class sale_config_picking_policy(osv.osv_memory):
_name = 'sale.config.picking_policy'
_inherit = 'res.config'
-
+
_columns = {
'name': fields.char('Name', size=64),
'sale_orders': fields.boolean('Based on Sales Orders',),
@@ -1307,7 +1307,7 @@
if wizard.sale_orders:
menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_invoicing_sales_order_lines').id
- menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]})
+ menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]})
if wizard.deli_orders:
menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_action_picking_list_to_invoice').id
@@ -1345,7 +1345,7 @@
product_obj = self.pool.get('product.product')
product_obj.write(cr, uid, prod_id, {'uom_id':wizard.time_unit.id, 'uom_po_id': wizard.time_unit.id})
- ir_values_obj.set(cr, uid, 'default', False, 'order_policy', ['sale.order'], wizard.order_policy)
+ ir_values_obj.set(cr, uid, 'default', False, 'order_policy', ['sale.order'], wizard.order_policy)
if wizard.task_work and wizard.time_unit:
company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
self.pool.get('res.company').write(cr, uid, [company_id], {
=== modified file 'stock/stock.py'
--- stock/stock.py 2011-10-11 14:03:35 +0000
+++ stock/stock.py 2011-11-09 06:49:26 +0000
@@ -661,6 +661,9 @@
'date': lambda *a: 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)
}
+ _sql_constraints = [
+ ('name_uniq', 'unique(name,company_id)', 'Order Reference must be unique per Company!'),
+ ]
def action_process(self, cr, uid, ids, context=None):
if context is None: context = {}
@@ -1774,7 +1777,7 @@
def onchange_date(self, cr, uid, ids, date, date_expected, context=None):
""" On change of Scheduled Date gives a Move date.
- @param date_expected: Scheduled Date
+ @param date_expected: Scheduled Date
@param date: Move Date
@return: Move Date
"""
@@ -2237,7 +2240,7 @@
return super(stock_move, self).unlink(
cr, uid, ids, context=ctx)
- # _create_lot function is not used anywhere
+ # _create_lot function is not used anywhere
def _create_lot(self, cr, uid, ids, product_id, prefix=False):
""" Creates production lot
@return: Production lot id
@@ -2283,7 +2286,7 @@
self.action_done(cr, uid, res)
return res
- # action_split function is not used anywhere
+ # action_split function is not used anywhere
def action_split(self, cr, uid, ids, quantity, split_by_qty=1, prefix=False, with_lot=True, context=None):
""" Split Stock Move lines into production lot which specified split by quantity.
@param cr: the database cursor
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp