Browse Source

Sep 13: [FIX] Bug Fixed 'vendor_portal_odoo'

pull/331/head
Cybrosys Technologies 8 months ago
parent
commit
429cc5a3d6
  1. 2
      vendor_portal_odoo/__manifest__.py
  2. 24
      vendor_portal_odoo/controllers/vendor_portal_odoo.py
  3. 5
      vendor_portal_odoo/doc/RELEASE_NOTES.md
  4. 17
      vendor_portal_odoo/models/vendor_rfq.py
  5. 2
      vendor_portal_odoo/views/vendor_rfq_views.xml

2
vendor_portal_odoo/__manifest__.py

@ -21,7 +21,7 @@
############################################################################# #############################################################################
{ {
'name': 'Odoo Vendor Portal', 'name': 'Odoo Vendor Portal',
'version': '17.0.1.0.0', 'version': '17.0.1.0.1',
'category': 'Purchases', 'category': 'Purchases',
'summary': """Vendor Portal Management in Odoo""", 'summary': """Vendor Portal Management in Odoo""",
'description': """This module helps to sent quotations for a product 'description': """This module helps to sent quotations for a product

24
vendor_portal_odoo/controllers/vendor_portal_odoo.py

@ -77,7 +77,6 @@ class RFQCustomerPortal(CustomerPortal):
'In Progress': {'label': _('In Progress'), 'In Progress': {'label': _('In Progress'),
'domain': [('state', '=', 'in_progress')]}, 'domain': [('state', '=', 'in_progress')]},
} }
# default filter by value
if not filterby: if not filterby:
filterby = 'all' filterby = 'all'
domain += searchbar_filters[filterby]['domain'] domain += searchbar_filters[filterby]['domain']
@ -129,11 +128,20 @@ class RFQCustomerPortal(CustomerPortal):
@http.route(['/quote/details'], type='http', auth="public", website=True) @http.route(['/quote/details'], type='http', auth="public", website=True)
def quote_details(self, **post): def quote_details(self, **post):
"""Quote details""" """Quote details"""
request.env['vendor.quote.history'].sudo().create({ vendor_quote_history_id = request.env['vendor.quote.history'].sudo().search(
'vendor_id': request.env.user.partner_id.id, [('quote_id', '=', int(post.get('rfq_id'))),
'quoted_price': float(post.get('price')), ('vendor_id', '=', request.env.user.partner_id.id)])
'estimate_date': post.get('delivery_date'), if vendor_quote_history_id:
'note': post.get('additional_note'), vendor_quote_history_id.write({
'quote_id': post.get('rfq_id'), 'quoted_price': post.get('price'),
}) 'estimate_date': post.get('delivery_date')
})
else:
request.env['vendor.quote.history'].sudo().create({
'vendor_id': request.env.user.partner_id.id,
'quoted_price': float(post.get('price')),
'estimate_date': post.get('delivery_date'),
'note': post.get('additional_note'),
'quote_id': post.get('rfq_id'),
})
return request.redirect('/my/vendor_rfq/%s' % (post.get('rfq_id'))) return request.redirect('/my/vendor_rfq/%s' % (post.get('rfq_id')))

5
vendor_portal_odoo/doc/RELEASE_NOTES.md

@ -4,3 +4,8 @@
#### Version 17.0.1.0.0 #### Version 17.0.1.0.0
##### ADD ##### ADD
-Initial Commit for Odoo Vendor Portal -Initial Commit for Odoo Vendor Portal
#### 01.02.2024
#### Version 17.0.1.0.1
##### ADD
-Bug Fix

17
vendor_portal_odoo/models/vendor_rfq.py

@ -19,7 +19,9 @@
# If not, see <http://www.gnu.org/licenses/>. # If not, see <http://www.gnu.org/licenses/>.
# #
############################################################################# #############################################################################
from odoo import api, fields, models, _ from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
class VendorRFQ(models.Model): class VendorRFQ(models.Model):
@ -50,7 +52,8 @@ class VendorRFQ(models.Model):
help="Quotation closing date") help="Quotation closing date")
vendor_ids = fields.Many2many('res.partner', vendor_ids = fields.Many2many('res.partner',
domain="[('is_registered', '=', True)]", domain="[('is_registered', '=', True)]",
help="Vendors you want to send quotations") help="Vendors you want to send quotations",
required=True)
vendor_quote_history_ids = fields.One2many('vendor.quote.history', vendor_quote_history_ids = fields.One2many('vendor.quote.history',
'quote_id', 'quote_id',
string="Vendor Quote History", string="Vendor Quote History",
@ -71,6 +74,18 @@ class VendorRFQ(models.Model):
default=lambda self: self.env.company, help="Select Company" default=lambda self: self.env.company, help="Select Company"
) )
@api.constrains('vendor_quote_history_ids')
def _check_vendor_id(self):
vendor_count = {}
for rec in self.vendor_quote_history_ids:
vendor_id = rec.vendor_id.id
vendor_name = rec.vendor_id.name
if vendor_id in vendor_count:
raise ValidationError(
_("Vendor '%s' has already submitted a quotation.") % vendor_name)
else:
vendor_count[vendor_id] = vendor_name
@api.model @api.model
def create(self, vals): def create(self, vals):
"""Create function""" """Create function"""

2
vendor_portal_odoo/views/vendor_rfq_views.xml

@ -62,7 +62,7 @@
<field name="vendor_quote_history_ids"> <field name="vendor_quote_history_ids">
<tree editable="bottom"> <tree editable="bottom">
<field name="vendor_id"/> <field name="vendor_id"/>
<field name="quoted_price"/> <field name="quoted_price" required="vendor_id"/>
<field name="currency_id" invisible="1"/> <field name="currency_id" invisible="1"/>
<field name="estimate_date"/> <field name="estimate_date"/>
<field name="note"/> <field name="note"/>

Loading…
Cancel
Save