diff --git a/addons/event_sale/event_sale.py b/addons/event_sale/event_sale.py
index 911d316cca8..ee48956324f 100644
--- a/addons/event_sale/event_sale.py
+++ b/addons/event_sale/event_sale.py
@@ -105,48 +105,59 @@ class event_event(osv.osv):
register_pool = self.pool.get('event.registration')
sale_order_line_pool = self.pool.get('sale.order.line')
sale_order = self.pool.get('sale.order')
- user = self.pool.get("res.users").browse(cr, uid, uid, context=context)
partner_pool = self.pool.get("res.partner")
- new_partner_id = False
+ prod_pricelist_obj = self.pool.get('product.pricelist')
+ user = self.pool.get("res.users").browse(cr, uid, uid, context=context)
partner_ids = partner_pool.search(cr, uid, [('name', '=', user.name), ('email', '=', user.user_email)])
if not partner_ids:
new_partner_id = partner_pool.create(cr, uid, {'name': user.name, 'email': user.user_email})
- partner_invoice_id = self.pool.get('res.partner').address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
- partner_shipping_id = self.pool.get('res.partner').address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
+ partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
+ partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
+ else:
+ new_partner_id = partner_ids[0]
+ partner_invoice_id = partner_pool.address_get(cr, uid, [new_partner_id], ['invoice'])['invoice']
+ partner_shipping_id = partner_pool.address_get(cr, uid, [new_partner_id], ['delivery'])['delivery']
for event_id in self.browse(cr, uid, ids, context=context):
- prod_pricelist_obj = self.pool.get('product.pricelist')
sale_order_lines = []
price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0]
- new_sale_id = sale_order.create(cr, uid, {
- 'date_order': event_id.date_begin,
- 'pricelist_id': price_list,
- 'partner_id': new_partner_id,
- 'partner_invoice_id': partner_invoice_id,
- 'partner_shipping_id': partner_shipping_id
- })
- if event_id.event_item_ids:
- for items in event_id.event_item_ids:
- product = items.product_id.id
- sale_order_line = sale_order_line_pool.create(cr, uid, {
- 'order_id': new_sale_id,
- 'name': items.product_id.name,
- 'product_uom_qty': items.qty,
- 'product_id': items.product_id.id,
- 'product_uom': items.uom_id.id,
- 'price_unit': items.price,
- 'date_planned': items.sales_end_date,
- }, context=context)
- res = {
- 'name': _('Quotation'),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'sale.order',
- 'res_id': new_sale_id,
- 'type': 'ir.actions.act_window',
- 'nodestroy': True,
- 'target': 'new',
- }
- # self.write(cr, uid, ids, {'state': 'confirm'}, context=context)
+ sale_ids = sale_order.search(cr, uid, [('date_order', '=', event_id.date_begin), ('partner_id', '=', new_partner_id)])
+ if not sale_ids:
+# raise osv.except_osv(_('Error !'),
+# _('sale order is already Exists for this event:'))
+# else:
+ new_sale_id = sale_order.create(cr, uid, {
+ 'date_order': event_id.date_begin,
+ 'pricelist_id': price_list,
+ 'partner_id': new_partner_id,
+ 'partner_invoice_id': partner_invoice_id,
+ 'partner_shipping_id': partner_shipping_id
+ })
+ if event_id.event_item_ids:
+ for items in event_id.event_item_ids:
+ product = items.product_id.id
+ sale_order_line = sale_order_line_pool.create(cr, uid, {
+ 'order_id': new_sale_id,
+ 'name': items.product_id.name,
+ 'product_uom_qty': items.qty,
+ 'product_id': items.product_id.id,
+ 'product_uom': items.uom_id.id,
+ 'price_unit': items.price,
+ 'date_planned': items.sales_end_date,
+ }, context=context)
+ view_id = data_obj._get_id(cr, uid, 'sale', 'view_order_form')
+ if view_id:
+ res_id = data_obj.browse(cr, uid, view_id, context=context).res_id
+ res = {
+ 'name': _('Quotation'),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'sale.order',
+ 'res_id': new_sale_id,
+ 'views':[(res_id,'form'), (False, 'tree')],
+ 'type': 'ir.actions.act_window',
+ 'nodestroy': True,
+ 'target': 'current',
+ }
return res
class event_items(osv.osv):
diff --git a/addons/portal_event/portal_event.py b/addons/portal_event/portal_event.py
index 41a7d81bcc5..570bd3131b6 100644
--- a/addons/portal_event/portal_event.py
+++ b/addons/portal_event/portal_event.py
@@ -26,44 +26,22 @@ from tools.translate import _
class event_event(osv.osv):
_inherit = 'event.event'
- def make_quotation(self, cr, uid, ids, partner_id, context=None):
+ def make_quotation(self, cr, uid, ids, context=None):
event_pool = self.pool.get('event.event')
register_pool = self.pool.get('event.registration')
sale_order_line_pool = self.pool.get('sale.order.line')
sale_order = self.pool.get('sale.order')
- res_partner_obj = self.pool.get('res.partner')
+ partner_pool = self.pool.get('res.partner')
prod_pricelist_obj = self.pool.get('product.pricelist')
res_users_obj = self.pool.get('res.users')
- customer = res_partner_obj.browse(cr, uid, partner_id, context=context)
-
- partner_id = res_users_obj.browse(cr, uid, uid, context=context).partner_id.id
- if not partner_id:
+ user = res_users_obj.browse(cr, uid, uid, context=context)
+ partner_ids = partner_pool.search(cr, uid, [('name', '=', user.name), ('email', '=', user.user_email)])
+ if partner_ids:
+ res_users_obj.write(cr, uid, user.id, {'partner_id': partner_ids[0]})
+ if not partner_ids:
raise osv.except_osv(_('Error !'),
_('There is no Partner defined ' \
'for this event:'))
-
- user_name = res_users_obj.browse(cr, uid, uid, context=context).name
- price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0]
- for event_id in self.browse(cr, uid, ids, context=context):
- sale_order_lines = []
- price_list = prod_pricelist_obj.search(cr,uid,[],context=context)[0]
- new_sale_id = sale_order.create(cr, uid, {
- 'partner_id': partner_id,
- 'pricelist_id': price_list,
- 'partner_invoice_id': partner_id,
- 'partner_shipping_id': partner_id,
- 'date_order': event_id.date_begin
- })
- if event_id.event_item_ids:
- for items in event_id.event_item_ids:
- product = items.product_id.id
- sale_order_line = sale_order_line_pool.create(cr, uid, {
- 'order_id': new_sale_id,
- 'name': items.product_id.name,
- 'product_uom_qty': items.qty,
- 'product_id': items.product_id.id,
- 'product_uom': items.uom_id.id,
- 'price_unit': items.price,
- 'date_planned': items.sales_end_date,
- }, context=context)
- return True
+ res = super(event_event,self).make_quotation(cr, uid, ids, context)
+
+ return res
diff --git a/addons/portal_event/security/ir.model.access.csv b/addons/portal_event/security/ir.model.access.csv
index 2ca1e3def91..0b3dfe5f3b2 100644
--- a/addons/portal_event/security/ir.model.access.csv
+++ b/addons/portal_event/security/ir.model.access.csv
@@ -1,4 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_event,event,event.model_event_event,portal_event.group_event_portal,1,0,0,0
access_registration,registration,event.model_event_registration,portal_event.group_event_portal,1,0,0,0
-access_event_items,event.items,event.model_event_event,portal_event.group_event_portal,1,1,1,0
\ No newline at end of file
+access_event_items,event.items,event.model_event_event,portal_event.group_event_portal,1,1,1,0
+access_product_product,product.product,product.model_product_product,portal_event.group_event_portal,1,0,0,0
+access_product_uom,product.uom,product.model_product_uom,portal_event.group_event_portal,1,0,0,0
\ No newline at end of file
diff --git a/addons/portal_event/security/portal_event_security.xml b/addons/portal_event/security/portal_event_security.xml
index 64c077c7bb9..1202fcce3f5 100644
--- a/addons/portal_event/security/portal_event_security.xml
+++ b/addons/portal_event/security/portal_event_security.xml
@@ -5,12 +5,12 @@
- Portal User
+ Event Portal Groups
- Events Portal
+ Portal User