Merge branch 'master' of github.com:webnotes/erpnext
This commit is contained in:
commit
760955fc68
@ -3,42 +3,47 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2010-12-14 10:23:28',
|
||||
'docstatus': 0,
|
||||
'modified': '2010-12-29 12:57:23',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
u'creation': '2012-06-14 15:07:28',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 16:57:27',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'module': 'Accounts',
|
||||
'name': '__common__',
|
||||
'page_name': 'Accounts Browser',
|
||||
u'doctype': u'Page',
|
||||
'module': u'Accounts',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'Accounts Browser',
|
||||
'show_in_menu': 0,
|
||||
'standard': 'Yes'
|
||||
'standard': u'Yes'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'idx': 1,
|
||||
'name': '__common__',
|
||||
'parent': 'Accounts Browser',
|
||||
'parentfield': 'roles',
|
||||
'parenttype': 'Page',
|
||||
'role': 'Accounts User'
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'Accounts Browser',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, Accounts Browser
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': 'Accounts Browser'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'Accounts Browser'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
'doctype': 'Page Role'
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts User'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
}
|
||||
]
|
@ -12,23 +12,29 @@
|
||||
<p class="help">Bills raised by Suppliers</p>
|
||||
</div>
|
||||
<div style="width: 48%; float: right;">
|
||||
<h4><a href="#!Accounts Browser/Account">Chart of Accounts</a></h4>
|
||||
<h4><a href="#!Accounts Browser/Account"
|
||||
data-role="Accounts Manager, Accounts User">Chart of Accounts</a></h4>
|
||||
<p class="help">Structure of books of accounts</p>
|
||||
<br>
|
||||
<h4><a href="#!Accounts Browser/Cost Center">Chart of Cost Centers</a></h4>
|
||||
<p class="help">Structure cost centers</p>
|
||||
<br>
|
||||
<h4><a href="#general-ledger" data-role="Analytics">General Ledger</a>
|
||||
<h4><a href="#general-ledger"
|
||||
data-role="Analytics, Accounts Manager, Accounts User">
|
||||
General Ledger</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">General Ledger Report</p>
|
||||
<br>
|
||||
<h4><a href="#trial-balance" data-role="Analytics">Trial Balance</a>
|
||||
<h4><a href="#trial-balance"
|
||||
data-role="Analytics, Accounts Manager, Accounts User">Trial Balance</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Tree view of all Account balances</p>
|
||||
<br>
|
||||
<h4><a href="#financial-analytics" data-role="Analytics">Financial Analytics</a>
|
||||
<h4><a href="#financial-analytics"
|
||||
data-role="Analytics, Accounts Manager, Accounts User">
|
||||
Financial Analytics</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Visual representation of financial trends</p>
|
||||
@ -64,17 +70,18 @@
|
||||
href="#!Form/Sales and Purchase Return Tool/Sales and Purchase Return Tool">Sales or Purchase Returns</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link" data-role="Analytics"
|
||||
<a class="section-link"
|
||||
title = "Analyze Sales and Purchase trends and slice them based on item, customer, groups etc"
|
||||
href="#!Report/Profile/Trend Analyzer">Trend Analyzer</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link" data-role="Accounts Manager"
|
||||
<a class="section-link"
|
||||
data-role="Accounts Manager, Accounts User"
|
||||
title = "Check your Balance Sheet and Profit & Loss Statement"
|
||||
href="#!Financial Statements">Financial Statements</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
<a class="section-link" data-role="Accounts Manager"
|
||||
title = "Import Multiple Vouchers from CSV"
|
||||
href="#voucher-import-tool">Voucher Import Tool</a>
|
||||
</div>
|
||||
|
@ -22,11 +22,4 @@ pscript['onload_accounts-home'] = function(wrapper) {
|
||||
$('.india-specific').toggle(false);
|
||||
}
|
||||
|
||||
if(wn.boot.profile.roles.indexOf('Accounts Manager')==-1 && wn.boot.profile.roles.indexOf('Accounts User')==-1) {
|
||||
$('[href*="Accounts Browser"]').each(function() {
|
||||
var txt = $(this).text();
|
||||
$(this).parent().css('color', '#999').html(txt);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -3,26 +3,47 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2012-02-21 13:23:08',
|
||||
'docstatus': 0,
|
||||
'modified': '2012-02-21 13:23:08',
|
||||
'modified_by': u'Administrator',
|
||||
'owner': u'Administrator'
|
||||
u'creation': '2012-06-14 15:07:28',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 16:58:11',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
u'doctype': u'Page',
|
||||
'module': u'Accounts',
|
||||
'name': '__common__',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'accounts-home',
|
||||
'standard': u'Yes',
|
||||
'title': u'Accounts Home'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'accounts-home',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, accounts-home
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': u'accounts-home'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'accounts-home'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts User'
|
||||
}
|
||||
]
|
@ -14,6 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
wn.require("app/js/account_tree_grid.js");
|
||||
|
||||
wn.pages['financial-analytics'].onload = function(wrapper) {
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-17 13:46:47',
|
||||
u'creation': '2012-09-18 11:05:48',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-17 13:46:47',
|
||||
u'modified': '2012-10-04 17:02:43',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,36 @@
|
||||
'title': u'Financial Analytics'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'financial-analytics',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, financial-analytics
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'financial-analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts User'
|
||||
}
|
||||
]
|
@ -3,56 +3,47 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2010-10-12 15:19:32',
|
||||
'docstatus': 0,
|
||||
'modified': '2011-01-03 17:32:30',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
u'creation': '2012-06-14 15:07:28',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 17:04:05',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'module': 'Accounts',
|
||||
'name': '__common__',
|
||||
'page_name': 'Financial Statements',
|
||||
u'doctype': u'Page',
|
||||
'module': u'Accounts',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'Financial Statements',
|
||||
'show_in_menu': 0,
|
||||
'standard': 'Yes'
|
||||
'standard': u'Yes'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'name': '__common__',
|
||||
'parent': 'Financial Statements',
|
||||
'parentfield': 'roles',
|
||||
'parenttype': 'Page'
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'Financial Statements',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, Financial Statements
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': 'Financial Statements'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'Financial Statements'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'idx': 1,
|
||||
'role': 'Accounts User'
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts User'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'idx': 2,
|
||||
'role': 'Administrator'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'idx': 3,
|
||||
'role': 'Accounts Manager'
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
}
|
||||
]
|
@ -25,6 +25,8 @@ wn.pages['general-ledger'].onload = function(wrapper) {
|
||||
|
||||
}
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
|
||||
erpnext.GeneralLedger = wn.views.GridReport.extend({
|
||||
init: function(wrapper) {
|
||||
this._super({
|
||||
|
@ -3,26 +3,53 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2012-09-13 13:50:13',
|
||||
'docstatus': 0,
|
||||
'modified': '2012-09-13 13:50:13',
|
||||
'modified_by': u'Administrator',
|
||||
'owner': u'Administrator'
|
||||
u'creation': '2012-09-14 11:25:48',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 17:00:09',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
u'doctype': u'Page',
|
||||
'module': u'Accounts',
|
||||
'name': '__common__',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'general-ledger',
|
||||
'standard': u'Yes',
|
||||
'title': u'General Ledger'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'general-ledger',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, general-ledger
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': u'general-ledger'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'general-ledger'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts User'
|
||||
}
|
||||
]
|
@ -14,6 +14,7 @@
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
wn.require("app/js/account_tree_grid.js");
|
||||
|
||||
wn.pages['trial-balance'].onload = function(wrapper) {
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-17 13:47:16',
|
||||
u'creation': '2012-09-18 11:05:48',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-17 13:47:16',
|
||||
u'modified': '2012-10-04 17:01:47',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,36 @@
|
||||
'title': u'Trial Balance'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'trial-balance',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, trial-balance
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'trial-balance'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts User'
|
||||
}
|
||||
]
|
@ -35,12 +35,12 @@ def upload():
|
||||
rows = read_csv_content_from_uploaded_file()
|
||||
|
||||
common_values = get_common_values(rows)
|
||||
data = get_data(rows)
|
||||
data, start_idx = get_data(rows)
|
||||
|
||||
if rows[0][0]=="Voucher Import :Single":
|
||||
return import_single(common_values, data)
|
||||
return import_single(common_values, data, start_idx)
|
||||
else:
|
||||
return import_multiple(common_values, data)
|
||||
return import_multiple(common_values, data, start_idx)
|
||||
|
||||
def map_fields(field_list, source, target):
|
||||
for f in field_list:
|
||||
@ -49,12 +49,12 @@ def map_fields(field_list, source, target):
|
||||
else:
|
||||
target[f] = source.get(f)
|
||||
|
||||
def import_multiple(common_values, data):
|
||||
def import_multiple(common_values, data, start_idx):
|
||||
from webnotes.model.doc import Document
|
||||
from webnotes.model.doclist import DocList
|
||||
from webnotes.model.code import get_obj
|
||||
from accounts.utils import get_fiscal_year_from_date
|
||||
from webnotes.utils.dateutils import user_to_str
|
||||
from accounts.utils import get_fiscal_year
|
||||
from webnotes.utils.dateutils import parse_date
|
||||
|
||||
messages = []
|
||||
|
||||
@ -82,17 +82,17 @@ def import_multiple(common_values, data):
|
||||
jv = webnotes.DictObj()
|
||||
|
||||
try:
|
||||
d.posting_date = user_to_str(d.posting_date)
|
||||
d.due_date = user_to_str(d.due_date)
|
||||
d.ref_date = user_to_str(d.ref_date)
|
||||
d.posting_date = parse_date(d.posting_date)
|
||||
d.due_date = parse_date(d.due_date)
|
||||
d.ref_date = parse_date(d.ref_date)
|
||||
d.company = common_values.company
|
||||
|
||||
jv = Document("Journal Voucher")
|
||||
map_fields(["voucher_type", "posting_date", "naming_series", "remarks:remark",
|
||||
"ref_no:cheque_no", "ref_date:cheque_date", "is_opening",
|
||||
"ref_number:cheque_no", "ref_date:cheque_date", "is_opening",
|
||||
"amount:total_debit", "amount:total_credit", "due_date", "company"], d, jv.fields)
|
||||
|
||||
jv.fiscal_year = get_fiscal_year_from_date(jv.posting_date)
|
||||
jv.fiscal_year = get_fiscal_year(jv.posting_date)[0]
|
||||
|
||||
detail1 = Document("Journal Voucher Detail")
|
||||
detail1.parent = True
|
||||
@ -112,13 +112,15 @@ def import_multiple(common_values, data):
|
||||
doclist.submit()
|
||||
webnotes.conn.commit()
|
||||
|
||||
messages.append("<p style='color: green'>[row #%s] %s imported</p>" \
|
||||
% (i, jv.name))
|
||||
messages.append("""<p style='color: green'>[row #%s]
|
||||
<a href=\"#Form/Journal Voucher/%s\">%s</a> imported</p>""" \
|
||||
% ((start_idx + 1) + i, jv.name, jv.name))
|
||||
|
||||
except Exception, e:
|
||||
webnotes.conn.rollback()
|
||||
err_msg = webnotes.message_log and webnotes.message_log[0] or unicode(e)
|
||||
messages.append("<p style='color: red'>[row #%s] %s failed: %s</p>" \
|
||||
% (i, jv.name, webnotes.message_log and webnotes.message_log[0] or "No message"))
|
||||
% ((start_idx + 1) + i, jv.name, err_msg or "No message"))
|
||||
webnotes.errprint(webnotes.getTraceback())
|
||||
|
||||
webnotes.message_log = []
|
||||
@ -142,11 +144,13 @@ def get_common_values(rows):
|
||||
def get_data(rows):
|
||||
start_row = 0
|
||||
data = []
|
||||
start_row_idx = 0
|
||||
|
||||
for i in xrange(len(rows)):
|
||||
r = rows[i]
|
||||
if r[0]:
|
||||
if start_row and i >= start_row:
|
||||
if not start_row_idx: start_row_idx = i
|
||||
d = webnotes.DictObj()
|
||||
for cidx in xrange(len(columns)):
|
||||
d[columns[cidx]] = r[cidx]
|
||||
@ -155,7 +159,8 @@ def get_data(rows):
|
||||
if r[0]=="--------Data----------":
|
||||
start_row = i+2
|
||||
columns = [c.replace(" ", "_").lower() for c in rows[i+1]]
|
||||
return data
|
||||
|
||||
return data, start_row_idx
|
||||
|
||||
@webnotes.whitelist()
|
||||
def get_template_single():
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-26 15:21:57',
|
||||
u'creation': '2012-10-02 18:51:49',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-26 15:21:57',
|
||||
u'modified': '2012-10-04 17:04:18',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,24 @@
|
||||
'title': u'Voucher Import Tool'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'voucher-import-tool',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page',
|
||||
'role': u'Accounts Manager'
|
||||
},
|
||||
|
||||
# Page, voucher-import-tool
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'voucher-import-tool'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role'
|
||||
}
|
||||
]
|
@ -24,7 +24,8 @@
|
||||
<h4><a href="#!List/Address">Address</a></h4>
|
||||
<p class="help">Address Master</p>
|
||||
<br>
|
||||
<h4><a href="#purchase-analytics" data-role="Analytics">Purchase Analytics</a>
|
||||
<h4><a href="#purchase-analytics" data-role="Analytics, Purchase Manager">
|
||||
Purchase Analytics</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Purchase trends based on Purchase Invoice</p>
|
||||
@ -49,6 +50,13 @@
|
||||
title = "Supplier classification"
|
||||
href="#!List/Supplier Type">Supplier Type</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Tree of item classification"
|
||||
href="#!Sales Browser/Item Group"
|
||||
data-role="Purchase Manager, Purchase Master Manager
|
||||
Accounts Manager">Item Group</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Helper for managing return of goods (sales or purchase)"
|
||||
|
@ -23,6 +23,7 @@ wn.pages['purchase-analytics'].onload = function(wrapper) {
|
||||
|
||||
new erpnext.PurchaseAnalytics(wrapper);
|
||||
}
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
|
||||
erpnext.PurchaseAnalytics = wn.views.TreeGridReport.extend({
|
||||
init: function(wrapper) {
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-21 15:21:10',
|
||||
u'creation': '2012-09-21 20:15:16',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-21 15:21:10',
|
||||
u'modified': '2012-10-04 17:24:17',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,30 @@
|
||||
'title': u'Purchase Analytics'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'purchase-analytics',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, purchase-analytics
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'purchase-analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Purchase Manager'
|
||||
}
|
||||
]
|
@ -12,7 +12,7 @@
|
||||
<p class="help">Timesheet for tasks</p>
|
||||
</div>
|
||||
<div style="width: 48%; float: right;">
|
||||
<h4><a href="#!Projects">Gantt Chart</a></h4>
|
||||
<h4><a href="#!Projects" data-role="Projects User">Gantt Chart</a></h4>
|
||||
<p class="help">Gantt chart of all tasks</p>
|
||||
</div>
|
||||
<div style="clear: both"></div>
|
||||
|
@ -128,7 +128,10 @@ erpnext.module_page.hide_links = function(wrapper) {
|
||||
|
||||
// pages
|
||||
$(wrapper).find('[data-role]').each(function() {
|
||||
if(!has_common(user_roles, [$(this).attr("data-role"), "System Manager"])) {
|
||||
// can define multiple roles
|
||||
var data_roles = $(this).attr("data-role").split(",").map(function(role) {
|
||||
return role.trim(); });
|
||||
if(!has_common(user_roles, ["System Manager"].concat(data_roles))) {
|
||||
var html = $(this).html();
|
||||
$(this).parent().css('color', '#999');
|
||||
$(this).replaceWith('<span title="Only accessible by Roles: '+
|
||||
@ -167,7 +170,8 @@ erpnext.module_page.make_list = function(module, wrapper) {
|
||||
parent: $parent2,
|
||||
method: 'utilities.get_report_list',
|
||||
render_row: function(row, data) {
|
||||
$(row).html(repl('<a href="#!Report2/%(ref_doctype)s/%(name)s" \
|
||||
data.report_type = data.is_query_report ? "query-report" : "Report2"
|
||||
$(row).html(repl('<a href="#!%(report_type)s/%(ref_doctype)s/%(name)s" \
|
||||
data-doctype="%(ref_doctype)s">\
|
||||
%(name)s</a>', data))
|
||||
},
|
||||
|
@ -13,9 +13,9 @@
|
||||
}
|
||||
|
||||
.toggle.expand {
|
||||
background: url(images/expand.gif) no-repeat center center;
|
||||
background: url(app/images/expand.gif) no-repeat center center;
|
||||
}
|
||||
|
||||
.toggle.collapse {
|
||||
background: url(images/collapse.gif) no-repeat center center;
|
||||
background: url(app/images/collapse.gif) no-repeat center center;
|
||||
}
|
@ -67,7 +67,6 @@ class DocType:
|
||||
return ret
|
||||
|
||||
def validate(self):
|
||||
import string
|
||||
if self.doc.status == 'Lead Lost' and not self.doc.order_lost_reason:
|
||||
msgprint("Please Enter Lost Reason under More Info section")
|
||||
raise Exception
|
||||
@ -80,7 +79,6 @@ class DocType:
|
||||
if not validate_email_add(self.doc.email_id):
|
||||
msgprint('Please enter valid email id.')
|
||||
raise Exception
|
||||
|
||||
|
||||
def on_update(self):
|
||||
if self.doc.contact_date:
|
||||
|
@ -4,7 +4,8 @@ wn.doclistviews['Lead'] = wn.views.ListView.extend({
|
||||
this.fields = this.fields.concat([
|
||||
'tabLead.lead_name',
|
||||
'tabLead.status',
|
||||
'tabLead.source'
|
||||
'tabLead.source',
|
||||
'tabLead.modified_by'
|
||||
]);
|
||||
this.stats = this.stats.concat(['status', 'source', 'rating', 'company']);
|
||||
},
|
||||
@ -25,7 +26,7 @@ wn.doclistviews['Lead'] = wn.views.ListView.extend({
|
||||
|
||||
columns: [
|
||||
{width: '3%', content: 'check'},
|
||||
{width: '5%', content:'avatar'},
|
||||
{width: '5%', content:'avatar_modified'},
|
||||
{width: '30%', content:'lead_name'},
|
||||
{width: '12%', content:'status_html'},
|
||||
{width: '38%', content:'lead_status+tags', css: {color:'#222'}},
|
||||
|
@ -23,6 +23,8 @@ wn.pages['sales-analytics'].onload = function(wrapper) {
|
||||
new erpnext.SalesAnalytics(wrapper);
|
||||
}
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
|
||||
erpnext.SalesAnalytics = wn.views.TreeGridReport.extend({
|
||||
init: function(wrapper) {
|
||||
this._super({
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-21 12:06:14',
|
||||
u'creation': '2012-09-21 20:15:12',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-21 12:06:14',
|
||||
u'modified': '2012-10-04 17:17:39',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,36 @@
|
||||
'title': u'Sales Analytics'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'sales-analytics',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, sales-analytics
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'sales-analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Sales Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Maintenance Manager'
|
||||
}
|
||||
]
|
@ -3,49 +3,77 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2010-12-14 10:23:21',
|
||||
'docstatus': 0,
|
||||
'modified': '2010-12-24 11:56:34',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
u'creation': '2012-06-14 15:07:26',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 17:34:55',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'module': 'Selling',
|
||||
'name': '__common__',
|
||||
'page_name': 'Sales Browser',
|
||||
u'doctype': u'Page',
|
||||
'module': u'Selling',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'Sales Browser',
|
||||
'show_in_menu': 0,
|
||||
'standard': 'Yes'
|
||||
'standard': u'Yes'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'name': '__common__',
|
||||
'parent': 'Sales Browser',
|
||||
'parentfield': 'roles',
|
||||
'parenttype': 'Page'
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'Sales Browser',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, Sales Browser
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': 'Sales Browser'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'Sales Browser'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'idx': 1,
|
||||
'role': 'Sales Master Manager'
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Sales Master Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
'doctype': 'Page Role',
|
||||
'idx': 2,
|
||||
'role': 'Material Master Manager'
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Material Master Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Accounts Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Sales Master Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Purchase Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Purchase Master Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Material Manager'
|
||||
}
|
||||
]
|
@ -27,7 +27,8 @@
|
||||
<h4><a href="#!List/Address">Address</a></h4>
|
||||
<p class="help">Address Master</p>
|
||||
<br>
|
||||
<h4><a href="#sales-analytics" data-role="Analytics">Sales Analytics</a>
|
||||
<h4><a href="#sales-analytics" data-role="Analytics, Sales Manager,
|
||||
Maintenance Manager">Sales Analytics</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Sales trends based on Sales Invoice</p>
|
||||
@ -65,17 +66,23 @@
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Tree of customer groups"
|
||||
href="#!Sales Browser/Customer Group">Customer Group</a>
|
||||
href="#!Sales Browser/Customer Group"
|
||||
data-role="Sales Manager, Sales Master Manager,
|
||||
Accounts Manager">Customer Group</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Tree of sales territories"
|
||||
href="#!Sales Browser/Territory">Territory</a>
|
||||
href="#!Sales Browser/Territory"
|
||||
data-role="Sales Manager, Sales Master Manager
|
||||
Accounts Manager">Territory</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Sales persons and targets"
|
||||
href="#!Sales Browser/Sales Person">Sales Person</a>
|
||||
href="#!Sales Browser/Sales Person"
|
||||
data-role="Sales Manager, Sales Master Manager
|
||||
Accounts Manager">Sales Person</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
@ -85,7 +92,9 @@
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Tree of item classification"
|
||||
href="#!Sales Browser/Item Group">Item Group</a>
|
||||
href="#!Sales Browser/Item Group"
|
||||
data-role="Sales Manager, Sales Master Manager
|
||||
Accounts Manager">Item Group</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
@ -108,15 +117,10 @@
|
||||
href="#!Form/Sales and Purchase Return Tool/Sales and Purchase Return Tool">Sales Returns</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
<a class="section-link"
|
||||
title = "Analyze Sales and Purchase trends and slice them based on item, customer, groups etc"
|
||||
href="#!Report/Profile/Trend Analyzer">Trend Analyzer</a>
|
||||
</div>
|
||||
<!--<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "sales trends"
|
||||
href="#!Sales Dashboard">Sales Dashboard</a>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -3,26 +3,41 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2012-02-28 17:48:39',
|
||||
'docstatus': 0,
|
||||
'modified': '2012-02-28 17:48:39',
|
||||
'modified_by': u'Administrator',
|
||||
'owner': u'Administrator'
|
||||
u'creation': '2012-06-14 15:07:28',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 16:55:31',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
u'doctype': u'Page',
|
||||
'module': u'Setup',
|
||||
'name': '__common__',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'modules_setup',
|
||||
'standard': u'Yes',
|
||||
'title': u'Modules Setup'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'modules_setup',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page',
|
||||
'role': u'System Manager'
|
||||
},
|
||||
|
||||
# Page, modules_setup
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': u'modules_setup'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'modules_setup'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role'
|
||||
}
|
||||
]
|
@ -3,25 +3,40 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
'creation': '2010-12-16 23:46:03',
|
||||
'docstatus': 0,
|
||||
'modified': '2011-07-04 16:58:27',
|
||||
'modified_by': 'Administrator',
|
||||
'owner': 'Administrator'
|
||||
u'creation': '2012-06-14 15:07:28',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-10-04 16:52:41',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
|
||||
# These values are common for all Page
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'module': 'Setup',
|
||||
'name': '__common__',
|
||||
'page_name': 'Setup',
|
||||
'standard': 'Yes'
|
||||
u'doctype': u'Page',
|
||||
'module': u'Setup',
|
||||
u'name': u'__common__',
|
||||
'page_name': u'Setup',
|
||||
'standard': u'Yes'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'Setup',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page',
|
||||
'role': u'System Manager'
|
||||
},
|
||||
|
||||
# Page, Setup
|
||||
{
|
||||
'doctype': 'Page',
|
||||
'name': 'Setup'
|
||||
u'doctype': u'Page',
|
||||
u'name': u'Setup'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role'
|
||||
}
|
||||
]
|
@ -26,6 +26,7 @@ wn.pages['stock-ageing'].onload = function(wrapper) {
|
||||
|
||||
}
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
wn.require("app/js/stock_grid_report.js");
|
||||
|
||||
erpnext.StockAgeing = erpnext.StockGridReport.extend({
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-21 18:21:31',
|
||||
u'creation': '2012-09-21 20:15:14',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-21 18:21:31',
|
||||
u'modified': '2012-10-04 17:34:24',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,30 @@
|
||||
'title': u'Stock Ageing'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'stock-ageing',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, stock-ageing
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'stock-ageing'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Material Manager'
|
||||
}
|
||||
]
|
@ -24,6 +24,7 @@ wn.pages['stock-analytics'].onload = function(wrapper) {
|
||||
new erpnext.StockAnalytics(wrapper);
|
||||
}
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
wn.require("app/js/stock_grid_report.js");
|
||||
|
||||
erpnext.StockAnalytics = erpnext.StockGridReport.extend({
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-20 12:13:45',
|
||||
u'creation': '2012-09-21 20:15:14',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-20 12:13:45',
|
||||
u'modified': '2012-10-04 17:32:20',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,30 @@
|
||||
'title': u'Stock Analytics'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'stock-analytics',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, stock-analytics
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'stock-analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Material Manager'
|
||||
}
|
||||
]
|
@ -24,17 +24,20 @@
|
||||
<h4><a href="#!List/Warehouse">Warehouse</a></h4>
|
||||
<p class="help">Warehouse is where items are stored</p>
|
||||
<br>
|
||||
<h4><a href="#stock-ledger" data-role="Analytics">Stock Ledger</a>
|
||||
<h4><a href="#stock-ledger" data-role="Analytics, Material Manager,
|
||||
Material User">Stock Ledger</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Log of stock movements</p>
|
||||
<br>
|
||||
<h4><a href="#stock-analytics" data-role="Analytics">Stock Analytics</a>
|
||||
<h4><a href="#stock-analytics" data-role="Analytics, Material Manager">
|
||||
Stock Analytics</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Visual representation of stock trends</p>
|
||||
<br>
|
||||
<h4><a href="#stock-ageing" data-role="Analytics">Stock Ageing</a>
|
||||
<h4><a href="#stock-ageing" data-role="Analytics, Material Manager">
|
||||
Stock Ageing</a>
|
||||
<span style="background-color: #fed; font-weight: normal; font-size: 80%">beta</span>
|
||||
</h4>
|
||||
<p class="help">Analysis of slow moving stock</p>
|
||||
@ -102,7 +105,9 @@
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
title = "Tree of item classification"
|
||||
href="#!Sales Browser/Item Group">Item Group</a>
|
||||
href="#!Sales Browser/Item Group"
|
||||
data-role="Material Master Master, Material Manager,
|
||||
Accounts Manager">Item Group</a>
|
||||
</div>
|
||||
<div class="section-item">
|
||||
<a class="section-link"
|
||||
|
@ -24,6 +24,7 @@ wn.pages['stock-ledger'].onload = function(wrapper) {
|
||||
new erpnext.StockLedger(wrapper);
|
||||
}
|
||||
|
||||
wn.require("lib/js/wn/views/grid_report.js");
|
||||
wn.require("app/js/stock_grid_report.js");
|
||||
|
||||
erpnext.StockLedger = erpnext.StockGridReport.extend({
|
||||
|
@ -3,9 +3,9 @@
|
||||
|
||||
# These values are common in all dictionaries
|
||||
{
|
||||
u'creation': '2012-09-18 14:55:15',
|
||||
u'creation': '2012-09-21 20:15:14',
|
||||
u'docstatus': 0,
|
||||
u'modified': '2012-09-18 14:55:15',
|
||||
u'modified': '2012-10-04 17:25:35',
|
||||
u'modified_by': u'Administrator',
|
||||
u'owner': u'Administrator'
|
||||
},
|
||||
@ -20,9 +20,36 @@
|
||||
'title': u'Stock Ledger'
|
||||
},
|
||||
|
||||
# These values are common for all Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
u'name': u'__common__',
|
||||
'parent': u'stock-ledger',
|
||||
'parentfield': u'roles',
|
||||
'parenttype': u'Page'
|
||||
},
|
||||
|
||||
# Page, stock-ledger
|
||||
{
|
||||
u'doctype': u'Page',
|
||||
u'name': u'stock-ledger'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Analytics'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Material Manager'
|
||||
},
|
||||
|
||||
# Page Role
|
||||
{
|
||||
u'doctype': u'Page Role',
|
||||
'role': u'Material User'
|
||||
}
|
||||
]
|
@ -5,7 +5,9 @@ wn.doclistviews['Support Ticket'] = wn.views.ListView.extend({
|
||||
this.fields = this.fields.concat([
|
||||
"`tabSupport Ticket`.status",
|
||||
"`tabSupport Ticket`.subject",
|
||||
"`tabSupport Ticket`.description"
|
||||
"`tabSupport Ticket`.description",
|
||||
'`tabSupport Ticket`.modified_by'
|
||||
|
||||
]);
|
||||
this.stats = this.stats.concat(['status']);
|
||||
this.show_hide_check_column();
|
||||
@ -38,10 +40,11 @@ wn.doclistviews['Support Ticket'] = wn.views.ListView.extend({
|
||||
|
||||
columns: [
|
||||
{width: '3%', content: 'check'},
|
||||
{width: '5%', content:'avatar_modified'},
|
||||
{width: '20%', content:'name'},
|
||||
{width: '10%', content:'status_html'},
|
||||
{width: '50%', content:'description+tags', css: {color:'#222'}},
|
||||
{width: '14%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
|
||||
{width: '12%', content:'modified', css: {'text-align': 'right', 'color':'#777'}}
|
||||
]
|
||||
|
||||
});
|
||||
|
@ -16,27 +16,39 @@
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import webnotes
|
||||
from webnotes.utils import cint
|
||||
|
||||
@webnotes.whitelist()
|
||||
def get_sc_list(arg=None):
|
||||
"""return list of reports for the given module module"""
|
||||
webnotes.response['values'] = webnotes.conn.sql("""select
|
||||
distinct criteria_name, doc_type, parent_doc_type
|
||||
"""return list of reports for the given module module"""
|
||||
limit_start = webnotes.form_dict.get("limit_start")
|
||||
limit_page_length = webnotes.form_dict.get("limit_page_length")
|
||||
module = webnotes.form_dict.get("module")
|
||||
|
||||
webnotes.response['values'] = webnotes.conn.sql("""
|
||||
select distinct criteria_name, doc_type, parent_doc_type
|
||||
from `tabSearch Criteria`
|
||||
where module='%(module)s'
|
||||
and docstatus in (0, NULL)
|
||||
and ifnull(disabled, 0) = 0
|
||||
order by criteria_name
|
||||
limit %(limit_start)s, %(limit_page_length)s""" % webnotes.form_dict, as_dict=True)
|
||||
where module=%s
|
||||
and docstatus in (0, NULL)
|
||||
and ifnull(disabled, 0) = 0
|
||||
order by criteria_name
|
||||
limit %s, %s""" % \
|
||||
("%s", cint(limit_start), cint(limit_page_length)), (module,), as_dict=True)
|
||||
|
||||
@webnotes.whitelist()
|
||||
def get_report_list():
|
||||
"""return list on new style reports for modules"""
|
||||
webnotes.response['values'] = webnotes.conn.sql("""select
|
||||
distinct tabReport.name, tabReport.ref_doctype
|
||||
limit_start = webnotes.form_dict.get("limit_start")
|
||||
limit_page_length = webnotes.form_dict.get("limit_page_length")
|
||||
module = webnotes.form_dict.get("module")
|
||||
|
||||
webnotes.response['values'] = webnotes.conn.sql("""
|
||||
select distinct tabReport.name, tabReport.ref_doctype,
|
||||
if(ifnull(tabReport.query, '')!='', 1, 0) as is_query_report
|
||||
from `tabReport`, `tabDocType`
|
||||
where tabDocType.module='%(module)s'
|
||||
and tabDocType.name = tabReport.ref_doctype
|
||||
and tabReport.docstatus in (0, NULL)
|
||||
order by tabReport.name
|
||||
limit %(limit_start)s, %(limit_page_length)s""" % webnotes.form_dict, as_dict=True)
|
||||
where tabDocType.module=%s
|
||||
and tabDocType.name = tabReport.ref_doctype
|
||||
and tabReport.docstatus in (0, NULL)
|
||||
order by tabReport.name
|
||||
limit %s, %s""" % \
|
||||
("%s", cint(limit_start), cint(limit_page_length)), (module,), as_dict=True)
|
Loading…
Reference in New Issue
Block a user