diff --git a/vendor_portal_odoo/__manifest__.py b/vendor_portal_odoo/__manifest__.py index 72b0ad05c..9035a4888 100755 --- a/vendor_portal_odoo/__manifest__.py +++ b/vendor_portal_odoo/__manifest__.py @@ -21,7 +21,7 @@ ############################################################################# { 'name': 'Odoo Vendor Portal', - 'version': '17.0.1.0.0', + 'version': '17.0.1.0.1', 'category': 'Purchases', 'summary': """Vendor Portal Management in Odoo""", 'description': """This module helps to sent quotations for a product diff --git a/vendor_portal_odoo/controllers/vendor_portal_odoo.py b/vendor_portal_odoo/controllers/vendor_portal_odoo.py index b0f62b709..61680aaf3 100755 --- a/vendor_portal_odoo/controllers/vendor_portal_odoo.py +++ b/vendor_portal_odoo/controllers/vendor_portal_odoo.py @@ -77,7 +77,6 @@ class RFQCustomerPortal(CustomerPortal): 'In Progress': {'label': _('In Progress'), 'domain': [('state', '=', 'in_progress')]}, } - # default filter by value if not filterby: filterby = 'all' domain += searchbar_filters[filterby]['domain'] @@ -129,11 +128,20 @@ class RFQCustomerPortal(CustomerPortal): @http.route(['/quote/details'], type='http', auth="public", website=True) def quote_details(self, **post): """Quote details""" - 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'), - }) + vendor_quote_history_id = request.env['vendor.quote.history'].sudo().search( + [('quote_id', '=', int(post.get('rfq_id'))), + ('vendor_id', '=', request.env.user.partner_id.id)]) + if vendor_quote_history_id: + vendor_quote_history_id.write({ + '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'))) diff --git a/vendor_portal_odoo/doc/RELEASE_NOTES.md b/vendor_portal_odoo/doc/RELEASE_NOTES.md index 19e8076d8..e49c7ea16 100644 --- a/vendor_portal_odoo/doc/RELEASE_NOTES.md +++ b/vendor_portal_odoo/doc/RELEASE_NOTES.md @@ -4,3 +4,8 @@ #### Version 17.0.1.0.0 ##### ADD -Initial Commit for Odoo Vendor Portal + +#### 01.02.2024 +#### Version 17.0.1.0.1 +##### ADD +-Bug Fix diff --git a/vendor_portal_odoo/models/vendor_rfq.py b/vendor_portal_odoo/models/vendor_rfq.py index 2693c6783..c940dd121 100755 --- a/vendor_portal_odoo/models/vendor_rfq.py +++ b/vendor_portal_odoo/models/vendor_rfq.py @@ -19,7 +19,9 @@ # If not, see . # ############################################################################# + from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError class VendorRFQ(models.Model): @@ -50,7 +52,8 @@ class VendorRFQ(models.Model): help="Quotation closing date") vendor_ids = fields.Many2many('res.partner', 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', 'quote_id', string="Vendor Quote History", @@ -71,6 +74,18 @@ class VendorRFQ(models.Model): 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 def create(self, vals): """Create function""" diff --git a/vendor_portal_odoo/views/vendor_rfq_views.xml b/vendor_portal_odoo/views/vendor_rfq_views.xml index 626fa2ea1..8c3140ab0 100755 --- a/vendor_portal_odoo/views/vendor_rfq_views.xml +++ b/vendor_portal_odoo/views/vendor_rfq_views.xml @@ -62,7 +62,7 @@ - +