Skip to content

Commit

Permalink
fix: Supplier users not able to see RFQ on the Portal (backport #40161)…
Browse files Browse the repository at this point in the history
… (#40165)

* fix: Supplier users not able to see RFQ on the Portal (#40161)

(cherry picked from commit f8ba560)

* chore: fix travis

---------

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
  • Loading branch information
mergify[bot] and rohitwaghchaure authored Feb 27, 2024
1 parent 84a359c commit 6a63a6c
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -205,10 +205,30 @@ def link_supplier_contact(self, rfq_supplier, user):

contact.save(ignore_permissions=True)

if rfq_supplier.supplier:
self.update_user_in_supplier(rfq_supplier.supplier, user.name)

if not rfq_supplier.contact:
# return contact to later update, RFQ supplier row's contact
return contact.name

def update_user_in_supplier(self, supplier, user):
"""Update user in Supplier."""
if not frappe.db.exists("Portal User", {"parent": supplier, "user": user}):
supplier_doc = frappe.get_doc("Supplier", supplier)
supplier_doc.append(
"portal_users",
{
"user": user,
},
)

supplier_doc.flags.ignore_validate = True
supplier_doc.flags.ignore_mandatory = True
supplier_doc.flags.ignore_permissions = True

supplier_doc.save()

def create_user(self, rfq_supplier, link):
user = frappe.get_doc(
{
Expand Down Expand Up @@ -245,6 +265,10 @@ def supplier_rfq_mail(self, data, update_password_link, rfq_link, preview=False)
"user_fullname": full_name,
}
)

if not self.email_template:
return

email_template = frappe.get_doc("Email Template", self.email_template)
message = frappe.render_template(email_template.response_, doc_args)
subject = frappe.render_template(email_template.subject, doc_args)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,33 @@ def test_get_pdf(self):
get_pdf(rfq.name, rfq.get("suppliers")[0].supplier)
self.assertEqual(frappe.local.response.type, "pdf")

def test_portal_user_with_new_supplier(self):
supplier_doc = frappe.get_doc(
{
"doctype": "Supplier",
"supplier_name": "Test Supplier for RFQ",
"supplier_group": "_Test Supplier Group",
}
).insert()

self.assertFalse(supplier_doc.portal_users)

rfq = make_request_for_quotation(
supplier_data=[
{
"supplier": supplier_doc.name,
"supplier_name": supplier_doc.supplier_name,
"email_id": "123_testrfquser@example.com",
}
],
do_not_submit=True,
)
for rfq_supplier in rfq.suppliers:
rfq.update_supplier_contact(rfq_supplier, rfq.get_link())

supplier_doc.reload()
self.assertTrue(supplier_doc.portal_users[0].user)


def make_request_for_quotation(**args) -> "RequestforQuotation":
"""
Expand Down

0 comments on commit 6a63a6c

Please sign in to comment.