[cleanup] request for quotation cleanup

This commit is contained in:
Rushabh Mehta 2016-03-29 16:04:25 +05:30
parent 22fe3a8b7e
commit 7a1b5da830
13 changed files with 144 additions and 96 deletions

View File

@ -8,7 +8,7 @@ frappe.require("assets/erpnext/js/utils.js");
frappe.ui.form.on("Request for Quotation",{ frappe.ui.form.on("Request for Quotation",{
setup: function(frm){ setup: function(frm){
frm.fields_dict["suppliers"].grid.get_field("contact_person").get_query = function(doc, cdt, cdn){ frm.fields_dict["suppliers"].grid.get_field("contact").get_query = function(doc, cdt, cdn){
var d =locals[cdt][cdn]; var d =locals[cdt][cdn];
return { return {
filters: {'supplier': d.supplier} filters: {'supplier': d.supplier}
@ -18,11 +18,25 @@ frappe.ui.form.on("Request for Quotation",{
onload: function(frm){ onload: function(frm){
frm.add_fetch('standard_reply', 'response', 'response'); frm.add_fetch('standard_reply', 'response', 'response');
if(!frm.doc.message_for_supplier) {
frm.set_value("message_for_supplier", __("Please supply the specified items at the best possible rates"))
}
}, },
refresh: function(frm, cdt, cdn){ refresh: function(frm, cdt, cdn){
if (frm.doc.docstatus === 1) { if (frm.doc.docstatus === 1) {
frm.add_custom_button(__("Make Supplier Quotation"), function(){ frm.trigger("make_suppplier_quotation") }); frm.add_custom_button(__("Make Supplier Quotation"),
function(){ frm.trigger("make_suppplier_quotation") });
frm.add_custom_button(__("Send Supplier Emails"), function() {
frappe.call({
method: 'erpnext.buying.doctype.request_for_quotation.request_for_quotation.send_supplier_emails',
args: {
rfq_name: frm.doc.name
}
});
});
} }
}, },
@ -31,9 +45,12 @@ frappe.ui.form.on("Request for Quotation",{
var dialog = new frappe.ui.Dialog({ var dialog = new frappe.ui.Dialog({
title: __("For Supplier"), title: __("For Supplier"),
fields: [ fields: [
{"fieldtype": "Select", "label": __("Supplier"), "fieldname": "supplier", "options":"Supplier", {"fieldtype": "Select", "label": __("Supplier"),
"options": $.map(doc.suppliers, function(d){ return d.supplier }), "reqd": 1 }, "fieldname": "supplier", "options":"Supplier",
{"fieldtype": "Button", "label": __("Make Supplier Quotation"), "fieldname": "make_supplier_quotation", "cssClass": "btn-primary"}, "options": $.map(doc.suppliers,
function(d) { return d.supplier }), "reqd": 1 },
{"fieldtype": "Button", "label": __("Make Supplier Quotation"),
"fieldname": "make_supplier_quotation", "cssClass": "btn-primary"},
] ]
}); });

View File

@ -159,7 +159,7 @@
"label": "Supplier Detail", "label": "Supplier Detail",
"length": 0, "length": 0,
"no_copy": 0, "no_copy": 0,
"options": "RFQ Supplier", "options": "Request for Quotation Supplier",
"permlevel": 0, "permlevel": 0,
"precision": "", "precision": "",
"print_hide": 1, "print_hide": 1,
@ -281,7 +281,7 @@
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 0,
"collapsible": 0, "collapsible": 0,
"fieldname": "response", "fieldname": "message_for_supplier",
"fieldtype": "Text Editor", "fieldtype": "Text Editor",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
@ -609,7 +609,7 @@
"issingle": 0, "issingle": 0,
"istable": 0, "istable": 0,
"max_attachments": 0, "max_attachments": 0,
"modified": "2016-03-25 01:14:01.194848", "modified": "2016-03-29 06:18:26.398938",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "Request for Quotation", "name": "Request for Quotation",
@ -763,5 +763,6 @@
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC", "sort_order": "DESC",
"timeline_field": "", "timeline_field": "",
"title_field": "" "title_field": "",
"track_seen": 0
} }

View File

@ -5,7 +5,7 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import frappe, json import frappe, json
from frappe import _ from frappe import _
from frappe.utils import get_url, cint from frappe.utils import get_url, random_string
from frappe.utils.user import get_user_fullname from frappe.utils.user import get_user_fullname
from frappe.model.mapper import get_mapped_doc from frappe.model.mapper import get_mapped_doc
from erpnext.stock.doctype.material_request.material_request import set_missing_values from erpnext.stock.doctype.material_request.material_request import set_missing_values
@ -29,44 +29,55 @@ class RequestforQuotation(BuyingController):
def on_submit(self): def on_submit(self):
frappe.db.set(self, 'status', 'Submitted') frappe.db.set(self, 'status', 'Submitted')
self.send_to_supplier()
def on_cancel(self): def on_cancel(self):
frappe.db.set(self, 'status', 'Cancelled') frappe.db.set(self, 'status', 'Cancelled')
def send_to_supplier(self): def send_to_supplier(self):
link = get_url("/rfq/" + self.name) link = get_url("/rfq/" + self.name)
for supplier_data in self.suppliers: for rfq_supplier in self.suppliers:
if supplier_data.email_id and cint(supplier_data.sent_email_to_supplier)==1: if rfq_supplier.email_id and rfq_supplier.send_email_to_supplier:
update_password_link = self.create_supplier_user(supplier_data, link)
self.supplier_rfq_mail(supplier_data, update_password_link, link)
def create_supplier_user(self, supplier_data, link): # make new user if required
from frappe.utils import random_string, get_url update_password_link = self.create_supplier_user(rfq_supplier, link)
self.supplier_rfq_mail(rfq_supplier, update_password_link, link)
def create_supplier_user(self, rfq_supplier, link):
'''Create a new user for the supplier if not set in contact'''
update_password_link = '' update_password_link = ''
if not supplier_data.user_id:
user = self.create_user(supplier_data) contact = frappe.get_doc("Contact", rfq_supplier.contact)
if not contact.user:
if frappe.db.exists("User", rfq_supplier.email_id):
user = frappe.get_doc("User", rfq_supplier.email_id)
else:
user, update_password_link = self.create_user(rfq_supplier, link)
# set user_id in contact
contact = frappe.get_doc('Contact', rfq_supplier.contact)
contact.user = user.name
contact.save()
return update_password_link
def create_user(self, rfq_supplier, link):
user = frappe.get_doc({
'doctype': 'User',
'send_welcome_email': 0,
'email': rfq_supplier.email_id,
'first_name': rfq_supplier.supplier_name,
'user_type': 'Website User'
})
# reset password
key = random_string(32) key = random_string(32)
update_password_link = get_url("/update-password?key=" + key)
user.reset_password_key = key user.reset_password_key = key
user.redirect_url = link user.redirect_url = link
user.save(ignore_permissions=True) user.save(ignore_permissions=True)
update_password_link = get_url("/update-password?key=" + key) return user, update_password_link
frappe.get_doc('Contact', supplier_data.contact_person).save()
return update_password_link
def create_user(self, supplier_data):
user = frappe.get_doc({
'doctype': 'User',
'send_welcome_email': 0,
'email': supplier_data.email_id,
'first_name': supplier_data.supplier_name,
'user_type': 'Website User'
})
return user
def supplier_rfq_mail(self, data, update_password_link, rfq_link): def supplier_rfq_mail(self, data, update_password_link, rfq_link):
full_name = get_user_fullname(frappe.session['user']) full_name = get_user_fullname(frappe.session['user'])
@ -75,7 +86,7 @@ class RequestforQuotation(BuyingController):
args = { args = {
'update_password_link': update_password_link, 'update_password_link': update_password_link,
'message': frappe.render_template(self.response, data.as_dict()), 'message': frappe.render_template(self.message_for_supplier, data.as_dict()),
'rfq_link': rfq_link, 'rfq_link': rfq_link,
'user_fullname': full_name 'user_fullname': full_name
} }
@ -90,18 +101,18 @@ class RequestforQuotation(BuyingController):
frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier)) frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier))
@frappe.whitelist()
def send_supplier_emails(rfq_name):
rfq = frappe.get_doc("Request for Quotation", rfq_name)
if rfq.docstatus==1:
rfq.send_to_supplier()
def get_list_context(context=None): def get_list_context(context=None):
from erpnext.controllers.website_list_for_contact import get_list_context from erpnext.controllers.website_list_for_contact import get_list_context
list_context = get_list_context(context) list_context = get_list_context(context)
return list_context return list_context
@frappe.whitelist()
def get_supplier(doctype, txt, searchfield, start, page_len, filters):
query = """Select supplier from `tabRFQ Supplier` where parent = %(parent)s and supplier like %(txt)s
limit %(start)s, %(page_len)s """
return frappe.db.sql(query, {'parent': filters.get('parent'),
'start': start, 'page_len': page_len, 'txt': "%%%s%%" % frappe.db.escape(txt)})
# This method is used to make supplier quotation from material request form. # This method is used to make supplier quotation from material request form.
@frappe.whitelist() @frappe.whitelist()

View File

@ -299,6 +299,7 @@
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 0,
"collapsible": 0, "collapsible": 0,
"default": "Today",
"fieldname": "schedule_date", "fieldname": "schedule_date",
"fieldtype": "Date", "fieldtype": "Date",
"hidden": 0, "hidden": 0,
@ -598,7 +599,7 @@
"issingle": 0, "issingle": 0,
"istable": 1, "istable": 1,
"max_attachments": 0, "max_attachments": 0,
"modified": "2016-03-25 01:14:38.490488", "modified": "2016-03-29 05:28:39.203232",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "Request for Quotation Item", "name": "Request for Quotation Item",
@ -608,5 +609,6 @@
"read_only": 0, "read_only": 0,
"read_only_onload": 0, "read_only_onload": 0,
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC" "sort_order": "DESC",
"track_seen": 0
} }

View File

@ -2,7 +2,7 @@
"allow_copy": 0, "allow_copy": 0,
"allow_import": 0, "allow_import": 0,
"allow_rename": 0, "allow_rename": 0,
"creation": "2016-02-29 17:31:02.993221", "creation": "2016-03-29 05:59:11.896885",
"custom": 0, "custom": 0,
"docstatus": 0, "docstatus": 0,
"doctype": "DocType", "doctype": "DocType",
@ -38,14 +38,14 @@
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 0,
"collapsible": 0, "collapsible": 0,
"fieldname": "contact_person", "fieldname": "contact",
"fieldtype": "Link", "fieldtype": "Link",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0, "ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 1, "in_list_view": 1,
"label": "Contact Person", "label": "Contact",
"length": 0, "length": 0,
"no_copy": 1, "no_copy": 1,
"options": "Contact", "options": "Contact",
@ -65,15 +65,15 @@
"bold": 0, "bold": 0,
"collapsible": 0, "collapsible": 0,
"default": "1", "default": "1",
"description": "Send Request for Quotation to Supplier", "description": "",
"fieldname": "sent_email_to_supplier", "fieldname": "send_email_to_supplier",
"fieldtype": "Check", "fieldtype": "Check",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0, "ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Sent Email to Supplier", "label": "Send Email to Supplier",
"length": 0, "length": 0,
"no_copy": 1, "no_copy": 1,
"permlevel": 0, "permlevel": 0,
@ -151,7 +151,7 @@
"label": "Email Id", "label": "Email Id",
"length": 0, "length": 0,
"no_copy": 1, "no_copy": 1,
"options": "contact_person.email_id", "options": "contact.email_id",
"permlevel": 0, "permlevel": 0,
"precision": "", "precision": "",
"print_hide": 0, "print_hide": 0,
@ -162,32 +162,6 @@
"search_index": 0, "search_index": 0,
"set_only_once": 0, "set_only_once": 0,
"unique": 0 "unique": 0
},
{
"allow_on_submit": 1,
"bold": 0,
"collapsible": 0,
"fieldname": "user_id",
"fieldtype": "Read Only",
"hidden": 1,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_list_view": 0,
"label": "User Id",
"length": 0,
"no_copy": 1,
"options": "contact_person.user",
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_hide_if_no_value": 0,
"read_only": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
} }
], ],
"hide_heading": 0, "hide_heading": 0,
@ -199,15 +173,16 @@
"issingle": 0, "issingle": 0,
"istable": 1, "istable": 1,
"max_attachments": 0, "max_attachments": 0,
"modified": "2016-03-25 13:18:11.017660", "modified": "2016-03-29 06:03:50.811469",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Buying", "module": "Buying",
"name": "RFQ Supplier", "name": "Request for Quotation Supplier",
"name_case": "", "name_case": "",
"owner": "Administrator", "owner": "Administrator",
"permissions": [], "permissions": [],
"read_only": 0, "read_only": 0,
"read_only_onload": 0, "read_only_onload": 0,
"sort_field": "modified", "sort_field": "modified",
"sort_order": "DESC" "sort_order": "DESC",
"track_seen": 0
} }

View File

@ -6,5 +6,5 @@ from __future__ import unicode_literals
import frappe import frappe
from frappe.model.document import Document from frappe.model.document import Document
class RFQSupplier(Document): class RequestforQuotationSupplier(Document):
pass pass

View File

@ -28,7 +28,7 @@ def get_transaction_list(doctype, txt=None, filters=None, limit_start=0, limit_p
filters.append((doctype, "docstatus", "=", 1)) filters.append((doctype, "docstatus", "=", 1))
if user != "Guest" and is_website_user(): if user != "Guest" and is_website_user():
parties_doctype = 'RFQ Supplier' if doctype == 'Request for Quotation' else doctype parties_doctype = 'Request for Quotation Supplier' if doctype == 'Request for Quotation' else doctype
# find party for this contact # find party for this contact
customers, suppliers = get_customers_suppliers(parties_doctype, user) customers, suppliers = get_customers_suppliers(parties_doctype, user)
key, parties = get_party_details(customers, suppliers) key, parties = get_party_details(customers, suppliers)

View File

@ -1,12 +1,11 @@
<h3>{{_("Request for Quotation")}}</h3> <h3>{{_("Request for Quotation")}}</h3>
<br>
<p>{{ message }}</p> <p>{{ message }}</p>
{% if update_password_link %} {% if update_password_link %}
<p>{{_("Please click on the following link to set your new password")}}:</p> <p>{{_("Please click on the following link to set your new password")}}:</p>
<p><a href="{{ update_password_link }}">{{ update_password_link }}</a></p> <p><a href="{{ update_password_link }}">{{ update_password_link }}</a></p>
{% else %} {% else %}
<p>{{_("Request for quotation can be access by clicking following link")}}:</p> <p>{{_("Request for quotation can be access by clicking following link")}}:</p>
<p><a href="{{ rfq_link }}">{{ rfq_link }}</a></p> <p><a href="{{ rfq_link }}">Submit your Quotation</a></p>
{% endif %} {% endif %}
<p>{{_("Thank you")}},<br> <p>{{_("Thank you")}},<br>
{{ user_fullname }}</p> {{ user_fullname }}</p>

View File

@ -22,7 +22,7 @@
style="margin-top: 5px; max-width: 70px;display: inline-block" value="0.00" style="margin-top: 5px; max-width: 70px;display: inline-block" value="0.00"
data-idx="{{ d.idx }}"> data-idx="{{ d.idx }}">
</div> </div>
<div class="col-sm-2 col-xs-2 text-right"> <div class="col-sm-2 col-xs-2 text-right" style="padding-top: 9px;">
<span class="rfq-amount" data-idx="{{ d.idx }}">0.00</span> <span class="rfq-amount" data-idx="{{ d.idx }}">0.00</span>
</div> </div>
</div> </div>

View File

@ -69,11 +69,10 @@
</div> </div>
{% endif %} {% endif %}
<div class="row terms"> <div class="row terms">
<div class="col-xs-5 text-left text-muted">{{ _("Terms and Conditions: ") }}</div> <div class="col-xs-6">
</div> <br><br>
<div class="row terms"> <p class="text-muted small">{{ _("Notes: ") }}</p>
<div class="col-xs-5 text-left text-muted"> <textarea class="form-control terms-feedback" style="height: 100px;"></textarea>
<textarea class="form-control terms-feedback" style="border:1px solid #cccccc; padding:4px"></textarea>
</div> </div>
</div> </div>
</div> </div>

View File

@ -25,7 +25,7 @@ def get_supplier():
def check_supplier_has_docname_access(supplier): def check_supplier_has_docname_access(supplier):
status = True status = True
if frappe.form_dict.name not in frappe.db.sql_list("""select parent from `tabRFQ Supplier` if frappe.form_dict.name not in frappe.db.sql_list("""select parent from `tabRequest for Quotation Supplier`
where supplier = '{supplier}'""".format(supplier=supplier)): where supplier = '{supplier}'""".format(supplier=supplier)):
status = False status = False
return status return status

View File

@ -16,6 +16,7 @@
"fieldtype": "Section Break", "fieldtype": "Section Break",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "", "label": "",
@ -24,6 +25,7 @@
"options": "icon-user", "options": "icon-user",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -39,6 +41,7 @@
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "First Name", "label": "First Name",
@ -48,6 +51,7 @@
"oldfieldtype": "Data", "oldfieldtype": "Data",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 1, "reqd": 1,
@ -57,12 +61,13 @@
}, },
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 1,
"collapsible": 0, "collapsible": 0,
"fieldname": "last_name", "fieldname": "last_name",
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Last Name", "label": "Last Name",
@ -72,6 +77,7 @@
"oldfieldtype": "Data", "oldfieldtype": "Data",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -81,12 +87,13 @@
}, },
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 1,
"collapsible": 0, "collapsible": 0,
"fieldname": "email_id", "fieldname": "email_id",
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Email Id", "label": "Email Id",
@ -97,6 +104,7 @@
"options": "Email", "options": "Email",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -112,12 +120,14 @@
"fieldtype": "Column Break", "fieldtype": "Column Break",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"length": 0, "length": 0,
"no_copy": 0, "no_copy": 0,
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -134,6 +144,7 @@
"fieldtype": "Select", "fieldtype": "Select",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 1, "in_list_view": 1,
"label": "Status", "label": "Status",
@ -142,6 +153,7 @@
"options": "Passive\nOpen\nReplied", "options": "Passive\nOpen\nReplied",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -151,12 +163,13 @@
}, },
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 1,
"collapsible": 0, "collapsible": 0,
"fieldname": "phone", "fieldname": "phone",
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Phone", "label": "Phone",
@ -166,6 +179,7 @@
"oldfieldtype": "Data", "oldfieldtype": "Data",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -181,6 +195,7 @@
"fieldtype": "Section Break", "fieldtype": "Section Break",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Reference", "label": "Reference",
@ -189,6 +204,7 @@
"options": "icon-pushpin", "options": "icon-pushpin",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -204,6 +220,7 @@
"fieldtype": "Link", "fieldtype": "Link",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "User Id", "label": "User Id",
@ -213,6 +230,7 @@
"permlevel": 0, "permlevel": 0,
"precision": "", "precision": "",
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -222,13 +240,14 @@
}, },
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 1,
"collapsible": 0, "collapsible": 0,
"depends_on": "", "depends_on": "",
"fieldname": "customer", "fieldname": "customer",
"fieldtype": "Link", "fieldtype": "Link",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Customer", "label": "Customer",
@ -239,6 +258,7 @@
"options": "Customer", "options": "Customer",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -255,6 +275,7 @@
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Customer Name", "label": "Customer Name",
@ -262,6 +283,7 @@
"no_copy": 0, "no_copy": 0,
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1, "read_only": 1,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -277,6 +299,7 @@
"fieldtype": "Column Break", "fieldtype": "Column Break",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"length": 0, "length": 0,
@ -284,6 +307,7 @@
"oldfieldtype": "Column Break", "oldfieldtype": "Column Break",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -294,13 +318,14 @@
}, },
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 1,
"collapsible": 0, "collapsible": 0,
"depends_on": "", "depends_on": "",
"fieldname": "supplier", "fieldname": "supplier",
"fieldtype": "Link", "fieldtype": "Link",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Supplier", "label": "Supplier",
@ -309,6 +334,7 @@
"options": "Supplier", "options": "Supplier",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -325,6 +351,7 @@
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Supplier Name", "label": "Supplier Name",
@ -332,6 +359,7 @@
"no_copy": 0, "no_copy": 0,
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 1, "read_only": 1,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -348,6 +376,7 @@
"fieldtype": "Link", "fieldtype": "Link",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Sales Partner", "label": "Sales Partner",
@ -356,6 +385,7 @@
"options": "Sales Partner", "options": "Sales Partner",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -373,6 +403,7 @@
"fieldtype": "Check", "fieldtype": "Check",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Is Primary Contact", "label": "Is Primary Contact",
@ -382,6 +413,7 @@
"oldfieldtype": "Select", "oldfieldtype": "Select",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -397,6 +429,7 @@
"fieldtype": "Section Break", "fieldtype": "Section Break",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "More Information", "label": "More Information",
@ -405,6 +438,7 @@
"options": "icon-file-text", "options": "icon-file-text",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -420,6 +454,7 @@
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Mobile No", "label": "Mobile No",
@ -429,6 +464,7 @@
"oldfieldtype": "Data", "oldfieldtype": "Data",
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -445,6 +481,7 @@
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Department", "label": "Department",
@ -452,6 +489,7 @@
"no_copy": 0, "no_copy": 0,
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -468,6 +506,7 @@
"fieldtype": "Data", "fieldtype": "Data",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Designation", "label": "Designation",
@ -475,6 +514,7 @@
"no_copy": 0, "no_copy": 0,
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -490,6 +530,7 @@
"fieldtype": "Check", "fieldtype": "Check",
"hidden": 0, "hidden": 0,
"ignore_user_permissions": 0, "ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0, "in_filter": 0,
"in_list_view": 0, "in_list_view": 0,
"label": "Unsubscribed", "label": "Unsubscribed",
@ -497,6 +538,7 @@
"no_copy": 0, "no_copy": 0,
"permlevel": 0, "permlevel": 0,
"print_hide": 0, "print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0, "read_only": 0,
"report_hide": 0, "report_hide": 0,
"reqd": 0, "reqd": 0,
@ -515,7 +557,7 @@
"issingle": 0, "issingle": 0,
"istable": 0, "istable": 0,
"max_attachments": 0, "max_attachments": 0,
"modified": "2015-11-16 06:29:43.760924", "modified": "2016-03-29 06:13:33.493737",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Utilities", "module": "Utilities",
"name": "Contact", "name": "Contact",
@ -764,5 +806,7 @@
} }
], ],
"read_only": 0, "read_only": 0,
"read_only_onload": 0 "read_only_onload": 0,
"sort_order": "ASC",
"track_seen": 0
} }