[Fixes] RFQ minor fixes

This commit is contained in:
Rohit Waghchaure 2016-05-06 16:16:42 +05:30
parent d42167e0e5
commit 29c7876e87
13 changed files with 57 additions and 43 deletions

View File

@ -18,6 +18,7 @@ class RequestforQuotation(BuyingController):
def validate(self):
self.validate_duplicate_supplier()
self.validate_common()
self.update_email_id()
def validate_duplicate_supplier(self):
supplier_list = [d.supplier for d in self.suppliers]
@ -28,6 +29,11 @@ class RequestforQuotation(BuyingController):
pc = frappe.get_doc('Purchase Common')
pc.validate_for_items(self)
def update_email_id(self):
for rfq_supplier in self.suppliers:
if not rfq_supplier.email_id:
rfq_supplier.email_id = frappe.db.get_value("Contact", rfq_supplier.contact, "email_id")
def on_submit(self):
frappe.db.set(self, 'status', 'Submitted')
@ -37,12 +43,14 @@ class RequestforQuotation(BuyingController):
def send_to_supplier(self):
link = get_url("/rfq/" + self.name)
for rfq_supplier in self.suppliers:
if rfq_supplier.email_id and rfq_supplier.send_email_to_supplier:
if rfq_supplier.email_id:
# make new user if required
update_password_link = self.create_supplier_user(rfq_supplier, link)
self.supplier_rfq_mail(rfq_supplier, update_password_link, link)
else:
frappe.throw(_("For supplier {0} email id is required to send email").format(rfq_supplier.supplier))
def create_supplier_user(self, rfq_supplier, link):
'''Create a new user for the supplier if not set in contact'''

View File

@ -2,6 +2,7 @@
"allow_copy": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2016-03-29 05:59:11.896885",
"custom": 0,
"docstatus": 0,
@ -60,33 +61,6 @@
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"default": "1",
"description": "",
"fieldname": "send_email_to_supplier",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "Send Email to Supplier",
"length": 0,
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_on_submit": 0,
"bold": 0,
@ -142,7 +116,7 @@
"bold": 0,
"collapsible": 0,
"fieldname": "email_id",
"fieldtype": "Read Only",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
@ -173,13 +147,14 @@
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2016-04-06 05:39:47.516470",
"modified": "2016-05-10 11:36:04.171180",
"modified_by": "Administrator",
"module": "Buying",
"name": "Request for Quotation Supplier",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"sort_field": "modified",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -2,13 +2,51 @@ A Request for Quotation is a document that an organization submits to one or mor
In ERPNext, You can create request for quotation directly by going to:
`Buying > Documents > Request for Quotation > New Request for Quotation`
Create Request for Quotation:
> Buying > Documents > Request for Quotation > New Request for Quotation
![Request For Quotation]({{docs_base_url}}/assets/img/buying/request-for-quotation.png)
Create Supplier Quotation from Request for Quotation form:
After creation of request for quotation, there are two ways to generate supplier quotation from request for quotation.
#### For User
__Step 1:__ Open request for quotation and click on make supplier quotation.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/make-supplier-quotation-from-rfq.png)
__Step 2:__ Select supplier and click on make supplier quotation.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-selection-from-rfq.png)
__Step 3:__ System will open the supplier quotation, user has to enter the rate and submit it.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-quotation-from-rfq.png)
#### For Supplier
__Step 1:__ User has to create contact or enter email id against the supplier on request for quotation.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/set-email-id.png)
__Step 2:__ User has to click on send supplier emails button.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/send-supplier-emails.png)
* If supplier's user not available: system will create supplier's user and send details to the supplier, supplier will need to click on the link(Password Update) present in the email. After password update supplier can access his portal with the request for quotation form.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-password-update-link.png)
* If supplier's user available: system will send request for quotation link to supplier, supplier has to login using his credentials to view request for quotation form on portal.
![Request For Quotation]({{docs_base_url}}/assets/img/buying/send-rfq-link.png)
__Step 3:__ Supplier has to enter amount and notes(payment terms) on the form and click on submit
![Request For Quotation]({{docs_base_url}}/assets/img/buying/supplier-portal-rfq.png)
__Step 4:__ On submission, system will create supplier quotation(draft mode) against the supplier. User has to review the supplier quotation
and submit it.
More details:-
![Request For Quotation]({{docs_base_url}}/assets/img/buying/request-for-quotation.gif)

View File

@ -12,12 +12,6 @@
{% include "templates/includes/breadcrumbs.html" %}
{% endblock %}
{% block style %}
<style>
{% include "templates/includes/order/order.css" %}
</style>
{% endblock %}
{% block header_actions %}
{% if doc.items %}
<button class="btn btn-primary btn-sm"
@ -35,8 +29,7 @@
{{ doc.get_formatted("transaction_date") }}
</div>
</div>
<div class="rfq-content">
<div class="rfq-content" style="margin-top:15px">
<div id="order-container">
<div id="rfq-items">
<div class="row cart-item-header">