Merge pull request #1382 from akhileshdarjee/4.0-hotfix
Newsletter can also be sent to employees
This commit is contained in:
commit
a03f654446
@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"creation": "2013-03-07 09:04:18",
|
"creation": "2013-03-07 09:04:18",
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"modified": "2014-01-20 17:48:40",
|
"modified": "2014-02-03 18:06:03",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"owner": "Administrator"
|
"owner": "Administrator"
|
||||||
},
|
},
|
||||||
@ -457,6 +457,12 @@
|
|||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"label": "Personal Email"
|
"label": "Personal Email"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"doctype": "DocField",
|
||||||
|
"fieldname": "unsubscribed",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Unsubscribed"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"doctype": "DocField",
|
"doctype": "DocField",
|
||||||
"fieldname": "emergency_contact_details",
|
"fieldname": "emergency_contact_details",
|
||||||
|
@ -17,3 +17,5 @@ execute:webnotes.reload_doc('accounts', 'doctype', 'pos_setting') # 2014-01-29
|
|||||||
execute:webnotes.reload_doc('selling', 'doctype', 'customer') # 2014-01-29
|
execute:webnotes.reload_doc('selling', 'doctype', 'customer') # 2014-01-29
|
||||||
execute:webnotes.reload_doc('buying', 'doctype', 'supplier') # 2014-01-29
|
execute:webnotes.reload_doc('buying', 'doctype', 'supplier') # 2014-01-29
|
||||||
erpnext.patches.4_0.map_charge_to_taxes_and_charges
|
erpnext.patches.4_0.map_charge_to_taxes_and_charges
|
||||||
|
execute:webnotes.reload_doc('support', 'doctype', 'newsletter') # 2014-01-31
|
||||||
|
execute:webnotes.reload_doc('hr', 'doctype', 'employee') # 2014-02-03
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
{% include 'setup/doctype/contact_control/contact_control.js' %};
|
{% include 'setup/doctype/contact_control/contact_control.js' %};
|
||||||
|
|
||||||
cur_frm.cscript.onload = function(doc,dt,dn){
|
cur_frm.cscript.onload = function(doc, dt, dn) {
|
||||||
cur_frm.cscript.load_defaults(doc, dt, dn);
|
cur_frm.cscript.load_defaults(doc, dt, dn);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,8 +27,8 @@ cur_frm.cscript.refresh = function(doc, dt, dn) {
|
|||||||
}else{
|
}else{
|
||||||
unhide_field(['address_html','contact_html']);
|
unhide_field(['address_html','contact_html']);
|
||||||
// make lists
|
// make lists
|
||||||
cur_frm.cscript.make_address(doc,dt,dn);
|
cur_frm.cscript.make_address(doc, dt, dn);
|
||||||
cur_frm.cscript.make_contact(doc,dt,dn);
|
cur_frm.cscript.make_contact(doc, dt, dn);
|
||||||
|
|
||||||
cur_frm.communication_view = new wn.views.CommunicationList({
|
cur_frm.communication_view = new wn.views.CommunicationList({
|
||||||
parent: cur_frm.fields_dict.communication_html.wrapper,
|
parent: cur_frm.fields_dict.communication_html.wrapper,
|
||||||
@ -67,7 +67,7 @@ cur_frm.cscript.setup_dashboard = function(doc) {
|
|||||||
}
|
}
|
||||||
cur_frm.dashboard.set_badge_count(r.message);
|
cur_frm.dashboard.set_badge_count(r.message);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.make_address = function() {
|
cur_frm.cscript.make_address = function() {
|
||||||
@ -104,7 +104,6 @@ cur_frm.cscript.make_contact = function() {
|
|||||||
// note: render_contact_row is defined in contact_control.js
|
// note: render_contact_row is defined in contact_control.js
|
||||||
}
|
}
|
||||||
cur_frm.contact_list.run();
|
cur_frm.contact_list.run();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.fields_dict['customer_group'].get_query = function(doc, dt, dn) {
|
cur_frm.fields_dict['customer_group'].get_query = function(doc, dt, dn) {
|
||||||
@ -113,7 +112,6 @@ cur_frm.fields_dict['customer_group'].get_query = function(doc, dt, dn) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cur_frm.fields_dict.lead_name.get_query = function(doc, cdt, cdn) {
|
cur_frm.fields_dict.lead_name.get_query = function(doc, cdt, cdn) {
|
||||||
return{
|
return{
|
||||||
query: "erpnext.controllers.queries.lead_query"
|
query: "erpnext.controllers.queries.lead_query"
|
||||||
|
@ -71,7 +71,7 @@ erpnext.SalesFunnel = Class.extend({
|
|||||||
get_data: function(btn) {
|
get_data: function(btn) {
|
||||||
var me = this;
|
var me = this;
|
||||||
wn.call({
|
wn.call({
|
||||||
method: "erpnext.selling.sales_funnel.get_funnel_data",
|
method: "erpnext.selling.page.sales_funnel.sales_funnel.get_funnel_data",
|
||||||
args: {
|
args: {
|
||||||
from_date: this.options.from_date,
|
from_date: this.options.from_date,
|
||||||
to_date: this.options.to_date
|
to_date: this.options.to_date
|
||||||
|
@ -1,32 +1,21 @@
|
|||||||
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||||
// License: GNU General Public License v3. See license.txt
|
// License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
// common partner functions
|
cur_frm.cscript.get_states=function(doc, dt, dn) {
|
||||||
// =========================
|
return $c('runserverobj', args={'method': 'check_state', 'docs':wn.model.compress(make_doclist(doc.doctype, doc.name))},
|
||||||
|
function(r, rt) {
|
||||||
|
if(r.message)
|
||||||
// get sates on country trigger
|
set_field_options('state', r.message);
|
||||||
// -----------------------------
|
}
|
||||||
cur_frm.cscript.get_states=function(doc,dt,dn){
|
);
|
||||||
return $c('runserverobj', args={'method':'check_state', 'docs':wn.model.compress(make_doclist(doc.doctype, doc.name))},
|
|
||||||
function(r,rt){
|
|
||||||
if(r.message) {
|
|
||||||
set_field_options('state', r.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.country = function(doc, dt, dn) {
|
cur_frm.cscript.country = function(doc, dt, dn) {
|
||||||
cur_frm.cscript.get_states(doc, dt, dn);
|
cur_frm.cscript.get_states(doc, dt, dn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(cur_frm.fields_dict['territory']) {
|
||||||
// get query select Territory
|
cur_frm.fields_dict['territory'].get_query = function(doc, dt, dn) {
|
||||||
// ---------------------------
|
|
||||||
if(cur_frm.fields_dict['territory']){
|
|
||||||
cur_frm.fields_dict['territory'].get_query = function(doc,dt,dn) {
|
|
||||||
return {
|
return {
|
||||||
filters: {
|
filters: {
|
||||||
'is_group': "No"
|
'is_group': "No"
|
||||||
@ -132,14 +121,12 @@ cur_frm.cscript.render_row_in_wrapper = function(wrapper, data, doctype) {
|
|||||||
|
|
||||||
// show delete
|
// show delete
|
||||||
var $delete_doc = $wrapper.find('a.delete');
|
var $delete_doc = $wrapper.find('a.delete');
|
||||||
if (wn.model.can_delete(doctype)) {
|
if (wn.model.can_delete(doctype))
|
||||||
$delete_doc.toggle(true);
|
$delete_doc.toggle(true);
|
||||||
} else {
|
else
|
||||||
$delete_doc.toggle(false);
|
$delete_doc.toggle(false);
|
||||||
}
|
|
||||||
$delete_doc.css({
|
$delete_doc.css({ 'padding-left': '0px' });
|
||||||
'padding-left': '0px'
|
|
||||||
});
|
|
||||||
|
|
||||||
$delete_doc.click(function() {
|
$delete_doc.click(function() {
|
||||||
cur_frm.cscript.delete_doc(doctype, data.name);
|
cur_frm.cscript.delete_doc(doctype, data.name);
|
||||||
@ -197,4 +184,3 @@ cur_frm.cscript.render_list = function(doc, doctype, wrapper, ListView, make_new
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
// Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||||
// License: GNU General Public License v3. See license.txt
|
// License: GNU General Public License v3. See license.txt
|
||||||
|
|
||||||
// Settings
|
cur_frm.cscript.onload_post_render = function(doc, cdt, cdn) {
|
||||||
cur_frm.cscript.onload_post_render = function(doc, cdt, cdn){
|
|
||||||
return cur_frm.call({
|
return cur_frm.call({
|
||||||
doc: cur_frm.doc,
|
doc: cur_frm.doc,
|
||||||
method: 'get_transactions',
|
method: 'get_transactions',
|
||||||
@ -10,7 +9,7 @@ cur_frm.cscript.onload_post_render = function(doc, cdt, cdn){
|
|||||||
cur_frm.cscript.update_selects(r);
|
cur_frm.cscript.update_selects(r);
|
||||||
cur_frm.cscript.select_doc_for_series(doc, cdt, cdn);
|
cur_frm.cscript.select_doc_for_series(doc, cdt, cdn);
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.update_selects = function(r) {
|
cur_frm.cscript.update_selects = function(r) {
|
||||||
@ -18,29 +17,27 @@ cur_frm.cscript.update_selects = function(r) {
|
|||||||
set_field_options('prefix', r.message.prefixes);
|
set_field_options('prefix', r.message.prefixes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
cur_frm.cscript.select_doc_for_series = function(doc, cdt, cdn) {
|
cur_frm.cscript.select_doc_for_series = function(doc, cdt, cdn) {
|
||||||
cur_frm.toggle_display(['help_html','set_options', 'user_must_always_select', 'update'],
|
cur_frm.toggle_display(['help_html','set_options', 'user_must_always_select', 'update'],
|
||||||
doc.select_doc_for_series)
|
doc.select_doc_for_series);
|
||||||
|
|
||||||
var callback = function(r, rt){
|
var callback = function(r, rt){
|
||||||
locals[cdt][cdn].set_options = r.message;
|
locals[cdt][cdn].set_options = r.message;
|
||||||
refresh_field('set_options');
|
refresh_field('set_options');
|
||||||
if(r.message && r.message.split('\n')[0]=='') {
|
if(r.message && r.message.split('\n')[0]=='')
|
||||||
cur_frm.set_value('user_must_always_select', 1)
|
cur_frm.set_value('user_must_always_select', 1);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(doc.select_doc_for_series)
|
if(doc.select_doc_for_series)
|
||||||
return $c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback)
|
return $c_obj(make_doclist(doc.doctype, doc.name),'get_options','',callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.update = function() {
|
cur_frm.cscript.update = function() {
|
||||||
return cur_frm.call_server('update_series', '', cur_frm.cscript.update_selects)
|
return cur_frm.call_server('update_series', '', cur_frm.cscript.update_selects);
|
||||||
}
|
}
|
||||||
|
|
||||||
cur_frm.cscript.prefix = function(doc, dt, dn) {
|
cur_frm.cscript.prefix = function(doc, dt, dn) {
|
||||||
return cur_frm.call_server('get_current', '', function(r) {
|
return cur_frm.call_server('get_current', '', function(r) {
|
||||||
refresh_field('current_value');
|
refresh_field('current_value');
|
||||||
})
|
});
|
||||||
}
|
}
|
@ -5,10 +5,9 @@ from __future__ import unicode_literals
|
|||||||
import webnotes
|
import webnotes
|
||||||
|
|
||||||
from webnotes.utils import cstr
|
from webnotes.utils import cstr
|
||||||
from webnotes import msgprint
|
from webnotes import msgprint, throw, _
|
||||||
import webnotes.model.doctype
|
import webnotes.model.doctype
|
||||||
|
|
||||||
|
|
||||||
class DocType:
|
class DocType:
|
||||||
def __init__(self, d, dl):
|
def __init__(self, d, dl):
|
||||||
self.doc, self.doclist = d, dl
|
self.doc, self.doclist = d, dl
|
||||||
@ -40,7 +39,7 @@ class DocType:
|
|||||||
# create series
|
# create series
|
||||||
map(self.insert_series, [d.split('.')[0] for d in series_list])
|
map(self.insert_series, [d.split('.')[0] for d in series_list])
|
||||||
|
|
||||||
msgprint('Series Updated')
|
msgprint(_("Series Updated"))
|
||||||
|
|
||||||
return self.get_transactions()
|
return self.get_transactions()
|
||||||
|
|
||||||
@ -105,14 +104,19 @@ class DocType:
|
|||||||
if i[0]:
|
if i[0]:
|
||||||
existing_series = [d.split('.')[0] for d in i[0].split("\n")]
|
existing_series = [d.split('.')[0] for d in i[0].split("\n")]
|
||||||
if series.split(".")[0] in existing_series:
|
if series.split(".")[0] in existing_series:
|
||||||
msgprint("Oops! Series name %s is already in use in %s. \
|
throw("{oops}! {sr} {series} {msg} {existing_series}. {select}".format(**{
|
||||||
Please select a new one" % (series, i[1]), raise_exception=1)
|
"oops": _("Oops"),
|
||||||
|
"sr": _("Series Name"),
|
||||||
|
"series": series,
|
||||||
|
"msg": _("is already in use in"),
|
||||||
|
"existing_series": i[1],
|
||||||
|
"select": _("Please select a new one")
|
||||||
|
}))
|
||||||
|
|
||||||
def validate_series_name(self, n):
|
def validate_series_name(self, n):
|
||||||
import re
|
import re
|
||||||
if not re.match("^[a-zA-Z0-9-/.#]*$", n):
|
if not re.match("^[a-zA-Z0-9-/.#]*$", n):
|
||||||
msgprint('Special Characters except "-" and "/" not allowed in naming series',
|
throw('Special Characters except "-" and "/" not allowed in naming series')
|
||||||
raise_exception=True)
|
|
||||||
|
|
||||||
def get_options(self, arg=''):
|
def get_options(self, arg=''):
|
||||||
sr = webnotes.model.doctype.get_property(self.doc.select_doc_for_series,
|
sr = webnotes.model.doctype.get_property(self.doc.select_doc_for_series,
|
||||||
@ -121,14 +125,14 @@ class DocType:
|
|||||||
|
|
||||||
def get_current(self, arg=None):
|
def get_current(self, arg=None):
|
||||||
"""get series current"""
|
"""get series current"""
|
||||||
self.doc.current_value = webnotes.conn.get_value("Series",
|
if self.doc.prefix:
|
||||||
self.doc.prefix.split('.')[0], "current")
|
self.doc.current_value = webnotes.conn.get_value("Series",
|
||||||
|
self.doc.prefix.split('.')[0], "current")
|
||||||
|
|
||||||
def insert_series(self, series):
|
def insert_series(self, series):
|
||||||
"""insert series if missing"""
|
"""insert series if missing"""
|
||||||
if not webnotes.conn.exists('Series', series):
|
if not webnotes.conn.exists('Series', series):
|
||||||
webnotes.conn.sql("insert into tabSeries (name, current) values (%s, 0)",
|
webnotes.conn.sql("insert into tabSeries (name, current) values (%s, 0)", (series))
|
||||||
(series))
|
|
||||||
|
|
||||||
def update_series_start(self):
|
def update_series_start(self):
|
||||||
if self.doc.prefix:
|
if self.doc.prefix:
|
||||||
@ -136,9 +140,9 @@ class DocType:
|
|||||||
self.insert_series(prefix)
|
self.insert_series(prefix)
|
||||||
webnotes.conn.sql("update `tabSeries` set current = %s where name = %s",
|
webnotes.conn.sql("update `tabSeries` set current = %s where name = %s",
|
||||||
(self.doc.current_value, prefix))
|
(self.doc.current_value, prefix))
|
||||||
msgprint("Series Updated Successfully")
|
msgprint(_("Series Updated Successfully"))
|
||||||
else:
|
else:
|
||||||
msgprint("Please select prefix first")
|
msgprint(_("Please select prefix first"))
|
||||||
|
|
||||||
def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True):
|
def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True):
|
||||||
from webnotes.core.doctype.property_setter.property_setter import make_property_setter
|
from webnotes.core.doctype.property_setter.property_setter import make_property_setter
|
||||||
@ -148,7 +152,8 @@ def set_by_naming_series(doctype, fieldname, naming_series, hide_name_field=True
|
|||||||
|
|
||||||
# set values for mandatory
|
# set values for mandatory
|
||||||
webnotes.conn.sql("""update `tab{doctype}` set naming_series={s} where
|
webnotes.conn.sql("""update `tab{doctype}` set naming_series={s} where
|
||||||
ifnull(naming_series, '')=''""".format(doctype=doctype, s="%s"), get_default_naming_series(doctype))
|
ifnull(naming_series, '')=''""".format(doctype=doctype, s="%s"),
|
||||||
|
get_default_naming_series(doctype))
|
||||||
|
|
||||||
if hide_name_field:
|
if hide_name_field:
|
||||||
make_property_setter(doctype, fieldname, "reqd", 0, "Check")
|
make_property_setter(doctype, fieldname, "reqd", 0, "Check")
|
||||||
|
@ -6,7 +6,7 @@ from __future__ import unicode_literals
|
|||||||
import webnotes
|
import webnotes
|
||||||
import webnotes.utils
|
import webnotes.utils
|
||||||
from webnotes.utils import cstr
|
from webnotes.utils import cstr
|
||||||
from webnotes import _
|
from webnotes import msgprint, throw, _
|
||||||
|
|
||||||
class DocType():
|
class DocType():
|
||||||
def __init__(self, d, dl):
|
def __init__(self, d, dl):
|
||||||
@ -22,18 +22,24 @@ class DocType():
|
|||||||
self.recipients = self.doc.test_email_id.split(",")
|
self.recipients = self.doc.test_email_id.split(",")
|
||||||
self.send_to_doctype = "Lead"
|
self.send_to_doctype = "Lead"
|
||||||
self.send_bulk()
|
self.send_bulk()
|
||||||
webnotes.msgprint("""Scheduled to send to %s""" % self.doc.test_email_id)
|
msgprint("{send} {email}".format**{
|
||||||
|
"send": _("Scheduled to send to"),
|
||||||
|
"email": self.doc.test_email_id
|
||||||
|
})
|
||||||
|
|
||||||
def send_emails(self):
|
def send_emails(self):
|
||||||
"""send emails to leads and customers"""
|
"""send emails to leads and customers"""
|
||||||
if self.doc.email_sent:
|
if self.doc.email_sent:
|
||||||
webnotes.msgprint("""Newsletter has already been sent""", raise_exception=1)
|
throw(_("Newsletter has already been sent"))
|
||||||
|
|
||||||
self.recipients = self.get_recipients()
|
self.recipients = self.get_recipients()
|
||||||
self.send_bulk()
|
self.send_bulk()
|
||||||
|
|
||||||
webnotes.msgprint("""Scheduled to send to %d %s(s)""" % (len(self.recipients),
|
msgprint("{send} {recipients} {doctype}(s)".format(**{
|
||||||
self.send_to_doctype))
|
"send": _("Scheduled to send to"),
|
||||||
|
"recipients": len(self.recipients),
|
||||||
|
"doctype": self.send_to_doctype
|
||||||
|
}))
|
||||||
|
|
||||||
webnotes.conn.set(self.doc, "email_sent", 1)
|
webnotes.conn.set(self.doc, "email_sent", 1)
|
||||||
|
|
||||||
@ -62,6 +68,14 @@ class DocType():
|
|||||||
return webnotes.conn.sql_list("""select email_id from tabLead
|
return webnotes.conn.sql_list("""select email_id from tabLead
|
||||||
where ifnull(email_id, '') != '' %s""" % (conditions or ""))
|
where ifnull(email_id, '') != '' %s""" % (conditions or ""))
|
||||||
|
|
||||||
|
elif self.doc.send_to_type=="Employee":
|
||||||
|
self.send_to_doctype = "Employee"
|
||||||
|
self.email_field = "company_email"
|
||||||
|
|
||||||
|
return webnotes.conn.sql_list("""select
|
||||||
|
if(ifnull(company_email, '')!='', company_email, personal_email) as email_id
|
||||||
|
from `tabEmployee` where status='Active'""")
|
||||||
|
|
||||||
elif self.doc.email_list:
|
elif self.doc.email_list:
|
||||||
email_list = [cstr(email).strip() for email in self.doc.email_list.split(",")]
|
email_list = [cstr(email).strip() for email in self.doc.email_list.split(",")]
|
||||||
for email in email_list:
|
for email in email_list:
|
||||||
@ -82,7 +96,7 @@ class DocType():
|
|||||||
|
|
||||||
send(recipients = self.recipients, sender = sender,
|
send(recipients = self.recipients, sender = sender,
|
||||||
subject = self.doc.subject, message = self.doc.message,
|
subject = self.doc.subject, message = self.doc.message,
|
||||||
doctype = self.send_to_doctype, email_field = "email_id",
|
doctype = self.send_to_doctype, email_field = self.email_field or "email_id",
|
||||||
ref_doctype = self.doc.doctype, ref_docname = self.doc.name)
|
ref_doctype = self.doc.doctype, ref_docname = self.doc.name)
|
||||||
|
|
||||||
if not webnotes.flags.in_test:
|
if not webnotes.flags.in_test:
|
||||||
@ -90,13 +104,12 @@ class DocType():
|
|||||||
|
|
||||||
def validate_send(self):
|
def validate_send(self):
|
||||||
if self.doc.fields.get("__islocal"):
|
if self.doc.fields.get("__islocal"):
|
||||||
webnotes.msgprint(_("""Please save the Newsletter before sending."""),
|
throw(_("Please save the Newsletter before sending."))
|
||||||
raise_exception=1)
|
|
||||||
|
|
||||||
from webnotes import conf
|
from webnotes import conf
|
||||||
if (conf.get("status") or None) == "Trial":
|
if (conf.get("status") or None) == "Trial":
|
||||||
webnotes.msgprint(_("""Sending newsletters is not allowed for Trial users, \
|
throw(_("Sending newsletters is not allowed for Trial users, \
|
||||||
to prevent abuse of this feature."""), raise_exception=1)
|
to prevent abuse of this feature."))
|
||||||
|
|
||||||
@webnotes.whitelist()
|
@webnotes.whitelist()
|
||||||
def get_lead_options():
|
def get_lead_options():
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"creation": "2013-01-10 16:34:31",
|
"creation": "2013-01-10 16:34:31",
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"modified": "2014-01-31 17:32:47",
|
"modified": "2014-02-03 11:32:22",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"owner": "Administrator"
|
"owner": "Administrator"
|
||||||
},
|
},
|
||||||
@ -27,7 +27,7 @@
|
|||||||
{
|
{
|
||||||
"cancel": 0,
|
"cancel": 0,
|
||||||
"create": 1,
|
"create": 1,
|
||||||
"delete": 0,
|
"delete": 1,
|
||||||
"doctype": "DocPerm",
|
"doctype": "DocPerm",
|
||||||
"email": 0,
|
"email": 0,
|
||||||
"name": "__common__",
|
"name": "__common__",
|
||||||
@ -66,7 +66,7 @@
|
|||||||
"fieldname": "send_to_type",
|
"fieldname": "send_to_type",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Select",
|
||||||
"label": "Send To Type",
|
"label": "Send To Type",
|
||||||
"options": "Lead\nContact\nCustom"
|
"options": "Lead\nContact\nEmployee\nCustom"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"doctype": "DocField",
|
"doctype": "DocField",
|
||||||
@ -93,7 +93,7 @@
|
|||||||
"fieldname": "contact_type",
|
"fieldname": "contact_type",
|
||||||
"fieldtype": "Select",
|
"fieldtype": "Select",
|
||||||
"label": "Contact Type",
|
"label": "Contact Type",
|
||||||
"options": "Customer\nSupplier\nCustom"
|
"options": "Customer\nSupplier"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"depends_on": "eval:doc.send_to_type==\"Custom\"",
|
"depends_on": "eval:doc.send_to_type==\"Custom\"",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user