Release v4.0.1

This commit is contained in:
Pratik Vyas 2014-05-20 16:32:21 +05:30
commit 444d496c8b
244 changed files with 10747 additions and 7992 deletions

View File

@ -1 +1 @@
__version__ = '4.0.0'
__version__ = '4.0.1'

View File

@ -1,13 +0,0 @@
{
"creation": "2013-03-21 15:24:28.000000",
"doc_type": "Sales Invoice",
"docstatus": 0,
"doctype": "Print Format",
"idx": 1,
"modified": "2013-03-21 15:26:21.000000",
"modified_by": "Administrator",
"module": "Accounts",
"name": "SalesInvoice",
"owner": "Administrator",
"standard": "Yes"
}

View File

@ -19,7 +19,7 @@ cur_frm.cscript.refresh = function(doc, cdt, cdn) {
cur_frm.toggle_enable(['account_name', 'group_or_ledger', 'company'], false);
if(doc.group_or_ledger=='Ledger') {
cur_frm.toggle_display('freeze_account', doc.can_freeze_account);
cur_frm.toggle_display('freeze_account', doc.__onload && doc.__onload.can_freeze_account);
}
// read-only for root accounts

View File

@ -1,5 +1,6 @@
{
"allow_copy": 1,
"allow_import": 1,
"allow_rename": 1,
"creation": "2013-01-30 12:49:46",
"description": "Heads (or groups) against which Accounting Entries are made and balances are maintained.",
@ -199,7 +200,7 @@
"icon": "icon-money",
"idx": 1,
"in_create": 1,
"modified": "2014-04-30 11:28:52.916199",
"modified": "2014-05-12 17:03:19.733139",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
@ -211,6 +212,8 @@
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"import": 1,
"permlevel": 0,
"print": 1,
"read": 1,
@ -279,8 +282,8 @@
"create": 1,
"delete": 1,
"email": 1,
"export": 0,
"import": 0,
"export": 1,
"import": 1,
"permlevel": 0,
"print": 1,
"read": 1,

View File

@ -12,16 +12,9 @@ class Account(Document):
def onload(self):
frozen_accounts_modifier = frappe.db.get_value("Accounts Settings", "Accounts Settings", "frozen_accounts_modifier")
print frozen_accounts_modifier
if frozen_accounts_modifier in frappe.user.get_roles():
self.can_freeze_account = True
self.get("__onload").can_freeze_account = True
def as_dict(self, no_nulls=False):
doc = super(Account, self).as_dict(no_nulls)
if self.get("can_freeze_account"):
doc["can_freeze_account"] = self.can_freeze_account
return doc
def autoname(self):
self.name = self.account_name.strip() + ' - ' + \

View File

@ -2,7 +2,7 @@
"allow_copy": 1,
"allow_email": 1,
"allow_print": 1,
"creation": "2013-01-10 16:34:05.000000",
"creation": "2013-01-10 16:34:05",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -10,6 +10,7 @@
"description": "Select account head of the bank where cheque was deposited.",
"fieldname": "bank_account",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Bank Account",
"options": "Account",
"permlevel": 0,
@ -19,6 +20,7 @@
"fieldname": "company",
"fieldtype": "Link",
"hidden": 1,
"in_list_view": 1,
"label": "Company",
"options": "Company",
"permlevel": 0,
@ -28,6 +30,7 @@
{
"fieldname": "from_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "From Date",
"permlevel": 0,
"reqd": 1
@ -35,14 +38,22 @@
{
"fieldname": "to_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "To Date",
"permlevel": 0,
"reqd": 1
},
{
"fieldname": "get_non_reconciled_entries",
"fieldname": "include_reconciled_entries",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Include Reconciled Entries",
"permlevel": 0
},
{
"fieldname": "get_relevant_entries",
"fieldtype": "Button",
"label": "Get Non Reconciled Entries",
"label": "Get Relevant Entries",
"options": "get_details",
"permlevel": 0
},
@ -74,7 +85,7 @@
"icon": "icon-check",
"idx": 1,
"issingle": 1,
"modified": "2013-07-05 14:26:22.000000",
"modified": "2014-05-06 16:26:08.984595",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation",

View File

@ -3,7 +3,7 @@
from __future__ import unicode_literals
import frappe
from frappe.utils import cstr, flt, getdate, nowdate
from frappe.utils import flt, getdate, nowdate
from frappe import msgprint, _
from frappe.model.document import Document
@ -13,29 +13,34 @@ class BankReconciliation(Document):
msgprint("Bank Account, From Date and To Date are Mandatory")
return
condition = ""
if not self.include_reconciled_entries:
condition = "and ifnull(clearance_date, '') in ('', '0000-00-00')"
dl = frappe.db.sql("""select t1.name, t1.cheque_no, t1.cheque_date, t2.debit,
t2.credit, t1.posting_date, t2.against_account
t2.credit, t1.posting_date, t2.against_account, t1.clearance_date
from
`tabJournal Voucher` t1, `tabJournal Voucher Detail` t2
where
t2.parent = t1.name and t2.account = %s
and (clearance_date is null or clearance_date = '0000-00-00' or clearance_date = '')
and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1""",
(self.bank_account, self.from_date, self.to_date))
and t1.posting_date >= %s and t1.posting_date <= %s and t1.docstatus=1 %s""" %
('%s', '%s', '%s', condition), (self.bank_account, self.from_date, self.to_date), as_dict=1)
self.set('entries', [])
self.total_amount = 0.0
for d in dl:
nl = self.append('entries', {})
nl.posting_date = cstr(d[5])
nl.voucher_id = cstr(d[0])
nl.cheque_number = cstr(d[1])
nl.cheque_date = cstr(d[2])
nl.debit = flt(d[3])
nl.credit = flt(d[4])
nl.against_account = cstr(d[6])
self.total_amount += flt(flt(d[4]) - flt(d[3]))
nl.posting_date = d.posting_date
nl.voucher_id = d.name
nl.cheque_number = d.cheque_no
nl.cheque_date = d.cheque_date
nl.debit = d.debit
nl.credit = d.credit
nl.against_account = d.against_account
nl.clearance_date = d.clearance_date
self.total_amount += flt(d.debit) - flt(d.credit)
def update_details(self):
vouchers = []

View File

@ -1,6 +1,6 @@
{
"autoname": "CBD/.######",
"creation": "2013-03-07 11:55:04.000000",
"creation": "2013-03-07 11:55:04",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -30,13 +30,13 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1,
"search_index": 1
@ -44,9 +44,12 @@
],
"idx": 1,
"istable": 1,
"modified": "2013-12-20 19:22:59.000000",
"modified": "2014-05-09 02:12:39.595788",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Budget Detail",
"owner": "Administrator"
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,6 +1,6 @@
{
"autoname": "field:distribution_id",
"creation": "2013-01-10 16:34:05.000000",
"creation": "2013-01-10 16:34:05",
"description": "**Budget Distribution** helps you distribute your budget across months if you have seasonality in your business.\n\nTo distribute a budget using this distribution, set this **Budget Distribution** in the **Cost Center**",
"docstatus": 0,
"doctype": "DocType",
@ -9,6 +9,7 @@
"description": "Name of the Budget Distribution",
"fieldname": "distribution_id",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Distribution Name",
"oldfieldname": "distribution_id",
"oldfieldtype": "Data",
@ -17,12 +18,13 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"search_index": 1
},
@ -34,20 +36,11 @@
"oldfieldtype": "Table",
"options": "Budget Distribution Detail",
"permlevel": 0
},
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
}
],
"icon": "icon-bar-chart",
"idx": 1,
"modified": "2014-01-20 17:48:27.000000",
"modified": "2014-05-09 02:16:47.567367",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Budget Distribution",
@ -77,5 +70,7 @@
"role": "Accounts Manager",
"submit": 0
}
]
],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,7 +1,7 @@
{
"allow_attach": 1,
"autoname": "naming_series:",
"creation": "2013-03-07 11:55:06.000000",
"creation": "2013-03-07 11:55:06",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -17,7 +17,7 @@
"fieldname": "naming_series",
"fieldtype": "Select",
"label": "Series",
"options": "\nC-FORM/",
"options": "C-FORM-",
"permlevel": 0,
"read_only": 0,
"reqd": 1
@ -25,6 +25,7 @@
{
"fieldname": "c_form_no",
"fieldtype": "Data",
"in_list_view": 1,
"label": "C-Form No",
"permlevel": 0,
"read_only": 0,
@ -33,6 +34,7 @@
{
"fieldname": "received_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Received Date",
"permlevel": 0,
"read_only": 0,
@ -41,6 +43,7 @@
{
"fieldname": "customer",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Customer",
"options": "Customer",
"permlevel": 0,
@ -57,17 +60,17 @@
},
{
"fieldname": "company",
"fieldtype": "Select",
"fieldtype": "Link",
"label": "Company",
"options": "link:Company",
"options": "Company",
"permlevel": 0,
"read_only": 0
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"label": "Fiscal Year",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"read_only": 0,
"reqd": 1
@ -136,7 +139,7 @@
"idx": 1,
"is_submittable": 1,
"max_attachments": 3,
"modified": "2013-12-20 19:23:58.000000",
"modified": "2014-05-09 02:18:00.162685",
"modified_by": "Administrator",
"module": "Accounts",
"name": "C-Form",

View File

@ -3,7 +3,7 @@
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:cost_center_name",
"creation": "2013-01-23 19:57:17.000000",
"creation": "2013-01-23 19:57:17",
"description": "Track separate Income and Expense for product verticals or divisions.",
"docstatus": 0,
"doctype": "DocType",
@ -15,19 +15,11 @@
"label": "Cost Center Details",
"permlevel": 0
},
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "cost_center_name",
"fieldtype": "Data",
"in_filter": 0,
"in_list_view": 1,
"label": "Cost Center Name",
"no_copy": 1,
"oldfieldname": "cost_center_name",
@ -40,6 +32,7 @@
"fieldname": "parent_cost_center",
"fieldtype": "Link",
"ignore_restrictions": 1,
"in_list_view": 1,
"label": "Parent Cost Center",
"oldfieldname": "parent_cost_center",
"oldfieldtype": "Link",
@ -50,6 +43,7 @@
{
"fieldname": "company",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Company",
"oldfieldname": "company_name",
"oldfieldtype": "Link",
@ -151,7 +145,7 @@
"icon": "icon-money",
"idx": 1,
"in_create": 1,
"modified": "2014-01-20 17:48:30.000000",
"modified": "2014-05-07 06:37:48.038993",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cost Center",
@ -184,6 +178,21 @@
"role": "Accounts User",
"submit": 0,
"write": 0
},
{
"permlevel": 0,
"read": 1,
"role": "Sales User"
},
{
"permlevel": 0,
"read": 1,
"role": "Purchase User"
},
{
"permlevel": 0,
"read": 1,
"role": "Material User"
}
],
"search_fields": "name,parent_cost_center"

View File

@ -1,6 +1,6 @@
{
"autoname": "GL.#######",
"creation": "2013-01-10 16:34:06.000000",
"creation": "2013-01-10 16:34:06",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -8,6 +8,7 @@
"fieldname": "posting_date",
"fieldtype": "Date",
"in_filter": 1,
"in_list_view": 1,
"label": "Posting Date",
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
@ -17,6 +18,7 @@
{
"fieldname": "transaction_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Transaction Date",
"oldfieldname": "transaction_date",
"oldfieldtype": "Date",
@ -26,6 +28,7 @@
"fieldname": "aging_date",
"fieldtype": "Date",
"in_filter": 1,
"in_list_view": 1,
"label": "Aging Date",
"oldfieldname": "aging_date",
"oldfieldtype": "Date",
@ -36,6 +39,7 @@
"fieldname": "account",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Account",
"oldfieldname": "account",
"oldfieldtype": "Link",
@ -47,6 +51,7 @@
"fieldname": "cost_center",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Cost Center",
"oldfieldname": "cost_center",
"oldfieldtype": "Link",
@ -157,12 +162,12 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"search_index": 0
},
@ -181,7 +186,7 @@
"icon": "icon-list",
"idx": 1,
"in_create": 1,
"modified": "2013-12-20 19:24:08.000000",
"modified": "2014-05-09 02:16:29.981405",
"modified_by": "Administrator",
"module": "Accounts",
"name": "GL Entry",
@ -225,5 +230,7 @@
"write": 0
}
],
"search_fields": "voucher_no,account,posting_date,against_voucher"
"search_fields": "voucher_no,account,posting_date,against_voucher",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -140,13 +140,13 @@ cur_frm.cscript.update_totals = function(doc) {
var td=0.0; var tc =0.0;
var el = doc.entries || [];
for(var i in el) {
td += flt(el[i].debit, 2);
tc += flt(el[i].credit, 2);
td += flt(el[i].debit, precision("debit", el[i]));
tc += flt(el[i].credit, precision("credit", el[i]));
}
var doc = locals[doc.doctype][doc.name];
doc.total_debit = td;
doc.total_credit = tc;
doc.difference = flt((td - tc), 2);
doc.difference = flt((td - tc), precision("difference"));
refresh_many(['total_debit','total_credit','difference']);
}

View File

@ -27,7 +27,7 @@
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
"options": "JV",
"options": "JV-",
"permlevel": 0,
"print_hide": 1,
"read_only": 0,
@ -383,12 +383,12 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 1,
"read_only": 0,
@ -440,7 +440,7 @@
"icon": "icon-file-text",
"idx": 1,
"is_submittable": 1,
"modified": "2014-05-01 17:07:31.129188",
"modified": "2014-05-09 02:16:47.686703",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Journal Voucher",
@ -490,5 +490,7 @@
}
],
"read_only_onload": 1,
"search_fields": "voucher_type,posting_date, due_date, cheque_no"
"search_fields": "voucher_type,posting_date, due_date, cheque_no",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -120,18 +120,21 @@ class JournalVoucher(AccountsController):
if flt(d.credit > 0): d.against_account = ", ".join(list(set(accounts_debited)))
def validate_debit_and_credit(self):
self.total_debit, self.total_credit = 0, 0
self.total_debit, self.total_credit, self.difference = 0, 0, 0
for d in self.get("entries"):
if d.debit and d.credit:
frappe.throw(_("You cannot credit and debit same account at the same time"))
self.total_debit = flt(self.total_debit) + flt(d.debit)
self.total_credit = flt(self.total_credit) + flt(d.credit)
self.total_debit = flt(self.total_debit) + flt(d.debit, self.precision("debit", "entries"))
self.total_credit = flt(self.total_credit) + flt(d.credit, self.precision("credit", "entries"))
if abs(self.total_debit-self.total_credit) > 0.001:
self.difference = flt(self.total_debit, self.precision("total_debit")) - \
flt(self.total_credit, self.precision("total_credit"))
if self.difference:
frappe.throw(_("Total Debit must be equal to Total Credit. The difference is {0}")
.format(self.total_debit - self.total_credit))
.format(self.difference))
def create_remarks(self):
r = []
@ -254,8 +257,8 @@ class JournalVoucher(AccountsController):
self.get_gl_dict({
"account": d.account,
"against": d.against_account,
"debit": d.debit,
"credit": d.credit,
"debit": flt(d.debit, self.precision("debit", "entries")),
"credit": flt(d.credit, self.precision("credit", "entries")),
"against_voucher_type": ((d.against_voucher and "Purchase Invoice")
or (d.against_invoice and "Sales Invoice")
or (d.against_jv and "Journal Voucher")),
@ -279,7 +282,7 @@ class JournalVoucher(AccountsController):
msgprint(_("'Entries' cannot be empty"), raise_exception=True)
else:
flag, self.total_debit, self.total_credit = 0, 0, 0
diff = flt(self.difference, 2)
diff = flt(self.difference, self.precision("difference"))
# If any row without amount, set the diff on that row
for d in self.get('entries'):
@ -298,45 +301,44 @@ class JournalVoucher(AccountsController):
elif diff<0:
jd.debit = abs(diff)
# Set the total debit, total credit and difference
for d in self.get('entries'):
self.total_debit += flt(d.debit, 2)
self.total_credit += flt(d.credit, 2)
self.difference = flt(self.total_debit, 2) - flt(self.total_credit, 2)
self.validate_debit_and_credit()
def get_outstanding_invoices(self):
self.set('entries', [])
total = 0
for d in self.get_values():
total += flt(d[2])
jd = self.append('entries', {})
jd.account = cstr(d[1])
total += flt(d.outstanding_amount, self.precision("credit", "entries"))
jd1 = self.append('entries', {})
jd1.account = d.account
if self.write_off_based_on == 'Accounts Receivable':
jd.credit = flt(d[2])
jd.against_invoice = cstr(d[0])
jd1.credit = flt(d.outstanding_amount, self.precision("credit", "entries"))
jd1.against_invoice = cstr(d.name)
elif self.write_off_based_on == 'Accounts Payable':
jd.debit = flt(d[2])
jd.against_voucher = cstr(d[0])
jd.save(1)
jd = self.append('entries', {})
jd1.debit = flt(d.outstanding_amount, self.precision("debit", "entries"))
jd1.against_voucher = cstr(d.name)
jd2 = self.append('entries', {})
if self.write_off_based_on == 'Accounts Receivable':
jd.debit = total
jd2.debit = total
elif self.write_off_based_on == 'Accounts Payable':
jd.credit = total
jd.save(1)
jd2.credit = total
self.validate_debit_and_credit()
def get_values(self):
cond = (flt(self.write_off_amount) > 0) and \
' and outstanding_amount <= '+ self.write_off_amount or ''
cond = " and outstanding_amount <= {0}".format(self.write_off_amount) \
if flt(self.write_off_amount) > 0 else ""
if self.write_off_based_on == 'Accounts Receivable':
return frappe.db.sql("""select name, debit_to, outstanding_amount
return frappe.db.sql("""select name, debit_to as account, outstanding_amount
from `tabSales Invoice` where docstatus = 1 and company = %s
and outstanding_amount > 0 %s""" % ('%s', cond), self.company)
and outstanding_amount > 0 %s""" % ('%s', cond), self.company, as_dict=True)
elif self.write_off_based_on == 'Accounts Payable':
return frappe.db.sql("""select name, credit_to, outstanding_amount
return frappe.db.sql("""select name, credit_to as account, outstanding_amount
from `tabPurchase Invoice` where docstatus = 1 and company = %s
and outstanding_amount > 0 %s""" % ('%s', cond), self.company)
and outstanding_amount > 0 %s""" % ('%s', cond), self.company, as_dict=True)
@frappe.whitelist()
def get_default_bank_cash_account(company, voucher_type):

View File

@ -2,7 +2,7 @@
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:mode_of_payment",
"creation": "2012-12-04 17:49:20.000000",
"creation": "2012-12-04 17:49:20",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
@ -10,6 +10,7 @@
{
"fieldname": "mode_of_payment",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Mode of Payment",
"oldfieldname": "mode_of_payment",
"oldfieldtype": "Data",
@ -20,6 +21,7 @@
{
"fieldname": "company",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Company",
"options": "Company",
"permlevel": 0,
@ -29,6 +31,8 @@
"description": "Default Bank / Cash account will be automatically updated in POS Invoice when this mode is selected.",
"fieldname": "default_account",
"fieldtype": "Link",
"ignore_restrictions": 1,
"in_list_view": 1,
"label": "Default Account",
"options": "Account",
"permlevel": 0,
@ -37,7 +41,7 @@
],
"icon": "icon-credit-card",
"idx": 1,
"modified": "2013-12-20 19:24:14.000000",
"modified": "2014-05-07 05:06:13.702313",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Mode of Payment",
@ -53,6 +57,12 @@
"role": "Accounts Manager",
"submit": 0,
"write": 1
},
{
"permlevel": 0,
"read": 1,
"report": 1,
"role": "Accounts User"
}
]
}

View File

@ -1,6 +1,6 @@
{
"autoname": "PCE/.###",
"creation": "2013-01-10 16:34:07.000000",
"creation": "2013-01-10 16:34:07",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -14,6 +14,7 @@
{
"fieldname": "transaction_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Transaction Date",
"oldfieldname": "transaction_date",
"oldfieldtype": "Date",
@ -22,6 +23,7 @@
{
"fieldname": "posting_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Posting Date",
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
@ -30,11 +32,12 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Closing Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
@ -42,6 +45,7 @@
"fieldname": "amended_from",
"fieldtype": "Data",
"ignore_restrictions": 1,
"in_list_view": 1,
"label": "Amended From",
"no_copy": 1,
"oldfieldname": "amended_from",
@ -51,11 +55,11 @@
},
{
"fieldname": "company",
"fieldtype": "Select",
"fieldtype": "Link",
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Select",
"options": "link:Company",
"options": "Company",
"permlevel": 0,
"reqd": 1
},
@ -97,7 +101,7 @@
"icon": "icon-file-text",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-20 17:48:59.000000",
"modified": "2014-05-09 02:16:36.920034",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Period Closing Voucher",
@ -132,5 +136,7 @@
"write": 1
}
],
"search_fields": "posting_date, fiscal_year"
"search_fields": "posting_date, fiscal_year",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -172,11 +172,11 @@
},
{
"fieldname": "letter_head",
"fieldtype": "Select",
"fieldtype": "Link",
"label": "Letter Head",
"oldfieldname": "letter_head",
"oldfieldtype": "Select",
"options": "link:Letter Head",
"options": "Letter Head",
"permlevel": 0,
"print_hide": 1,
"read_only": 0
@ -193,19 +193,19 @@
},
{
"fieldname": "select_print_heading",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 0,
"label": "Print Heading",
"oldfieldname": "select_print_heading",
"oldfieldtype": "Select",
"options": "link:Print Heading",
"options": "Print Heading",
"permlevel": 0,
"read_only": 0
}
],
"icon": "icon-cog",
"idx": 1,
"modified": "2014-05-04 08:47:33.250720",
"modified": "2014-05-09 02:17:34.814856",
"modified_by": "Administrator",
"module": "Accounts",
"name": "POS Setting",
@ -235,5 +235,7 @@
"role": "Accounts User",
"submit": 0
}
]
],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,6 +0,0 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
import frappe
test_records = frappe.get_test_records('Pos Setting')

View File

@ -1,16 +0,0 @@
[
{
"cash_bank_account": "_Test Account Bank Account - _TC",
"company": "_Test Company",
"cost_center": "_Test Cost Center - _TC",
"currency": "INR",
"doctype": "POS Setting",
"expense_account": "_Test Account Cost for Goods Sold - _TC",
"income_account": "Sales - _TC",
"name": "_Test POS Setting",
"naming_series": "_T-POS Setting-",
"selling_price_list": "_Test Price List",
"territory": "_Test Territory",
"warehouse": "_Test Warehouse - _TC"
}
]

View File

@ -1,4 +1,5 @@
{
"allow_import": 1,
"autoname": "PRULE.#####",
"creation": "2014-02-21 15:02:51",
"docstatus": 0,
@ -202,7 +203,7 @@
"icon": "icon-gift",
"idx": 1,
"istable": 0,
"modified": "2014-05-05 11:09:38.244111",
"modified": "2014-05-12 16:24:52.005162",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Pricing Rule",
@ -211,16 +212,23 @@
{
"create": 1,
"delete": 1,
"export": 0,
"import": 0,
"permlevel": 0,
"read": 1,
"report": 1,
"role": "Accounts Manager",
"write": 1
},
{
"create": 1,
"delete": 1,
"export": 0,
"import": 0,
"permlevel": 0,
"print": 0,
"read": 1,
"report": 1,
"role": "Sales Manager",
"write": 1
},
@ -229,6 +237,7 @@
"delete": 1,
"permlevel": 0,
"read": 1,
"report": 1,
"role": "Purchase Manager",
"write": 1
},
@ -237,16 +246,23 @@
"delete": 1,
"permlevel": 0,
"read": 1,
"report": 1,
"role": "Website Manager",
"write": 1
},
{
"create": 1,
"delete": 1,
"export": 1,
"import": 1,
"permlevel": 0,
"read": 1,
"report": 1,
"restrict": 1,
"role": "System Manager",
"write": 1
}
]
],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -110,6 +110,12 @@ erpnext.accounts.PurchaseInvoice = erpnext.buying.BuyingController.extend({
entries_add: function(doc, cdt, cdn) {
var row = frappe.get_doc(cdt, cdn);
this.frm.script_manager.copy_from_first_row("entries", row, ["expense_account", "cost_center"]);
},
on_submit: function() {
$.each(this.frm.doc["entries"], function(i, row) {
if(row.purchase_receipt) frappe.model.clear_doc("Purchase Receipt", row.purchase_receipt)
})
}
});

File diff suppressed because it is too large Load Diff

View File

@ -270,7 +270,7 @@ cur_frm.cscript.is_opening = function(doc, dt, dn) {
cur_frm.cscript['Make Delivery Note'] = function() {
frappe.model.open_mapped_doc({
method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.make_delivery_note",
source_name: cur_frm.doc.name
frm: cur_frm
})
}
@ -387,6 +387,10 @@ cur_frm.cscript.on_submit = function(doc, cdt, cdn) {
if(cint(frappe.boot.notification_settings.sales_invoice)) {
cur_frm.email_doc(frappe.boot.notification_settings.sales_invoice_message);
}
$.each(doc["entries"], function(i, row) {
if(row.delivery_note) frappe.model.clear_doc("Delivery Note", row.delivery_note)
})
}
cur_frm.cscript.convert_into_recurring_invoice = function(doc, dt, dn) {

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,8 @@ import unittest, json, copy
from frappe.utils import flt
from erpnext.accounts.utils import get_stock_and_account_difference
from erpnext.stock.doctype.purchase_receipt.test_purchase_receipt import set_perpetual_inventory
from erpnext.projects.doctype.time_log_batch.test_time_log_batch import *
class TestSalesInvoice(unittest.TestCase):
def make(self):
@ -365,27 +367,30 @@ class TestSalesInvoice(unittest.TestCase):
561.8)
def test_time_log_batch(self):
tlb = frappe.get_doc("Time Log Batch", "_T-Time Log Batch-00001")
delete_time_log_and_batch()
time_log = create_time_log()
tlb = create_time_log_batch(time_log)
tlb = frappe.get_doc("Time Log Batch", tlb.name)
tlb.submit()
si = frappe.get_doc(frappe.copy_doc(test_records[0]))
si.get("entries")[0].time_log_batch = "_T-Time Log Batch-00001"
si.get("entries")[0].time_log_batch = tlb.name
si.insert()
si.submit()
self.assertEquals(frappe.db.get_value("Time Log Batch", "_T-Time Log Batch-00001",
"status"), "Billed")
self.assertEquals(frappe.db.get_value("Time Log Batch", tlb.name, "status"), "Billed")
self.assertEquals(frappe.db.get_value("Time Log", "_T-Time Log-00001", "status"),
"Billed")
self.assertEquals(frappe.db.get_value("Time Log", time_log, "status"), "Billed")
si.cancel()
self.assertEquals(frappe.db.get_value("Time Log Batch", "_T-Time Log Batch-00001",
"status"), "Submitted")
self.assertEquals(frappe.db.get_value("Time Log Batch", tlb.name, "status"), "Submitted")
self.assertEquals(frappe.db.get_value("Time Log", "_T-Time Log-00001", "status"),
"Batched for Billing")
self.assertEquals(frappe.db.get_value("Time Log", time_log, "status"), "Batched for Billing")
frappe.delete_doc("Sales Invoice", si.name)
delete_time_log_and_batch()
def test_sales_invoice_gl_entry_without_aii(self):
self.clear_stock_account_balance()
@ -423,9 +428,9 @@ class TestSalesInvoice(unittest.TestCase):
def test_pos_gl_entry_with_aii(self):
self.clear_stock_account_balance()
set_perpetual_inventory()
self.make_pos_setting()
self._insert_purchase_receipt()
self._insert_pos_settings()
pos = copy.deepcopy(test_records[1])
pos["is_pos"] = 1
@ -479,6 +484,26 @@ class TestSalesInvoice(unittest.TestCase):
set_perpetual_inventory(0)
frappe.db.sql("delete from `tabPOS Setting`")
def make_pos_setting(self):
pos_setting = frappe.get_doc({
"cash_bank_account": "_Test Account Bank Account - _TC",
"company": "_Test Company",
"cost_center": "_Test Cost Center - _TC",
"currency": "INR",
"doctype": "POS Setting",
"expense_account": "_Test Account Cost for Goods Sold - _TC",
"income_account": "Sales - _TC",
"name": "_Test POS Setting",
"naming_series": "_T-POS Setting-",
"selling_price_list": "_Test Price List",
"territory": "_Test Territory",
"warehouse": "_Test Warehouse - _TC"
})
pos_setting.insert()
def test_si_gl_entry_with_aii_and_update_stock_with_warehouse_but_no_account(self):
self.clear_stock_account_balance()
set_perpetual_inventory()
@ -604,14 +629,6 @@ class TestSalesInvoice(unittest.TestCase):
dn.submit()
return dn
def _insert_pos_settings(self):
from erpnext.accounts.doctype.pos_setting.test_pos_setting \
import test_records as pos_setting_test_records
frappe.db.sql("""delete from `tabPOS Setting`""")
ps = frappe.copy_doc(pos_setting_test_records[0])
ps.insert()
def test_sales_invoice_with_advance(self):
from erpnext.accounts.doctype.journal_voucher.test_journal_voucher \
import test_records as jv_test_records
@ -843,5 +860,5 @@ class TestSalesInvoice(unittest.TestCase):
self.assertRaises(SerialNoStatusError, si.submit)
test_dependencies = ["Journal Voucher", "POS Setting", "Contact", "Address"]
test_dependencies = ["Journal Voucher", "Contact", "Address"]
test_records = frappe.get_test_records('Sales Invoice')

View File

@ -10,11 +10,13 @@ test_records = frappe.get_test_records('Shipping Rule')
class TestShippingRule(unittest.TestCase):
def test_from_greater_than_to(self):
shipping_rule = frappe.copy_doc(test_records[0])
shipping_rule.name = test_records[0].get('name')
shipping_rule.get("shipping_rule_conditions")[0].from_value = 101
self.assertRaises(FromGreaterThanToError, shipping_rule.insert)
def test_many_zero_to_values(self):
shipping_rule = frappe.copy_doc(test_records[0])
shipping_rule.name = test_records[0].get('name')
shipping_rule.get("shipping_rule_conditions")[0].to_value = 0
self.assertRaises(ManyBlankToValuesError, shipping_rule.insert)
@ -27,8 +29,9 @@ class TestShippingRule(unittest.TestCase):
((50, 150), (50, 150)),
]:
shipping_rule = frappe.copy_doc(test_records[0])
shipping_rule.name = test_records[0].get('name')
shipping_rule.get("shipping_rule_conditions")[0].from_value = range_a[0]
shipping_rule.get("shipping_rule_conditions")[0].to_value = range_a[1]
shipping_rule.get("shipping_rule_conditions")[1].from_value = range_b[0]
shipping_rule.get("shipping_rule_conditions")[1].to_value = range_b[1]
self.assertRaises(OverlappingConditionError, shipping_rule.insert)
self.assertRaises(OverlappingConditionError, shipping_rule.insert)

View File

@ -94,7 +94,8 @@ def validate_account_for_auto_accounting_for_stock(gl_map):
for entry in gl_map:
if entry.account in aii_accounts:
frappe.throw(_("Account {0} can only be updated via Stock Transactions"), StockAccountInvalidTransaction)
frappe.throw(_("Account: {0} can only be updated via \
Stock Transactions").format(entry.account), StockAccountInvalidTransaction)
def delete_gl_entries(gl_entries=None, voucher_type=None, voucher_no=None,

View File

@ -1,11 +1,11 @@
{
"creation": "2012-04-11 13:16:56.000000",
"creation": "2012-04-11 13:16:56",
"doc_type": "Journal Voucher",
"docstatus": 0,
"doctype": "Print Format",
"html": "<!-- p.big {line-height: 200%} .noborder td { border: 0px solid #fff; } -->\n<div style=\"position: relative;\">\n<h3><script>doc.company</script><br /> <br /> \n<hr />\nPAYMENT ADVICE</h3>\n<table class=\"noborder\" style=\"width: 100%;\">\n<tbody>\n<tr>\n<td style=\"vertical-align: top;\" width=\"50%\">To :<br />\n<script type=\"text/javascript\">// <![CDATA[\ndoc.pay_to_recd_from\n// ]]></script>\n</td>\n<td width=\"50%\">\n<table class=\"noborder\" width=\"100%\">\n<tbody>\n<tr>\n<td width=\"30%\">Voucher No :</td>\n<td width=\"70%\">\n<script type=\"text/javascript\">// <![CDATA[\ndoc.name\n// ]]></script>\n</td>\n</tr>\n<tr>\n<td width=\"30%\">Voucher Date :</td>\n<td width=\"70%\">\n<script type=\"text/javascript\">// <![CDATA[\ndate.str_to_user(doc.voucher_date)\n// ]]></script>\n</td>\n</tr>\n<tr>\n<td width=\"30%\">Cheque No :</td>\n<td width=\"70%\">\n<script type=\"text/javascript\">// <![CDATA[\ndate.str_to_user(doc.cheque_no)\n// ]]></script>\n</td>\n</tr>\n<tr>\n<td width=\"30%\">Cheque Date :</td>\n<td width=\"70%\">\n<script type=\"text/javascript\">// <![CDATA[\ndate.str_to_user(doc.cheque_date)\n// ]]></script>\n</td>\n</tr>\n</tbody>\n</table>\n</td>\n</tr>\n</tbody>\n</table>\n<br /> <strong>We are pleased to enclose our cheque in full/part Settlement of your under noted bills</strong> <br /> \n<hr />\n<table class=\"noborder\" width=\"100%\">\n<tbody>\n<tr>\n<td width=\"70%\">&nbsp;</td>\n<td width=\"15%\">Total :</td>\n<td class=\"pos_left\" width=\"15%\">\n<script type=\"text/javascript\">// <![CDATA[\ndoc.total_amount\n// ]]></script>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">Narration :\n<script type=\"text/javascript\">// <![CDATA[\nreplace_newlines(doc.remark)\n// ]]></script>\n<br /><br /><br /></td>\n</tr>\n</tbody>\n</table>\n<div style=\"position: absolute; top: 14cm; left: 0cm;\">Prepared By</div>\n<div style=\"position: absolute; top: 14cm; left: 5.5cm;\">Authorised Signatory</div>\n<div style=\"position: absolute; top: 14cm; left: 11cm;\">Received Payment as Above</div>\n<div style=\"position: absolute; top: 16.4cm; left: 5.9cm;\"><strong>_____________</strong></div>\n<div style=\"position: absolute; top: 16.7cm; left: 6cm;\"><strong>A/c Payee</strong></div>\n<div style=\"position: absolute; top: 16.7cm; left: 5.9cm;\"><strong>_____________</strong></div>\n<div style=\"position: absolute; top: 16.9cm; left: 12cm;\">\n<script type=\"text/javascript\">// <![CDATA[\ndate.str_to_user(doc.cheque_date)\n// ]]></script>\n</div>\n<div style=\"position: absolute; top: 17.9cm; left: 1cm;\">\n<script type=\"text/javascript\">// <![CDATA[\ndoc.pay_to_recd_from\n// ]]></script>\n</div>\n<div style=\"position: absolute; top: 18.6cm; left: 1cm; width: 7cm;\">\n<script type=\"text/javascript\">// <![CDATA[\ndoc.total_amount_in_words\n// ]]></script>\n</div>\n<div style=\"position: absolute; top: 19.7cm; left: 12cm;\">\n<script type=\"text/javascript\">// <![CDATA[\ndoc.total_amount\n// ]]></script>\n</div>\n</div>",
"idx": 1,
"modified": "2012-04-13 12:24:20.000000",
"modified": "2014-05-13 16:07:18.792349",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cheque Printing Format",

View File

@ -1,11 +1,11 @@
{
"creation": "2012-05-01 12:46:31.000000",
"creation": "2012-05-01 12:46:31",
"doc_type": "Journal Voucher",
"docstatus": 0,
"doctype": "Print Format",
"html": "<h3 align=\"center\"><script>doc.select_print_heading || \"Payment Receipt Note\"</script></h3>\n\n<table class='simpletable'>\n<tr>\n<td><b> Receipt No.: </b></td>\n<td><script>doc.name</script></td>\n</tr>\n<tr>\n<td><b> Date : </b></td>\n<td><script>date.str_to_user(doc.voucher_date)</script></td>\n</tr> \n<tr>\n<td><b> Remark: </b></td>\n<td><script> doc.remark </script></td>\n</tr>\n<tr>\n<td><b> Received From: </b></td>\n<td><b><script> doc.pay_to_recd_from </script></b></td>\n</tr>\n</table>\n<br>\n\n<div><b><script>doc.total_amount</script></b> </td></div><br>\n<div style=\"text-align:left\"><b><script>doc.total_amount_in_words</script></b></div><br>\n<br>\n<table class=\"noborder\">\n<tr>\n<td style = \"text-align = right;\"><h3>For <script>doc.company</script>,</h3><br><div>(Authorised Signatory)</div></td>\n</tr>\n</table>",
"idx": 1,
"modified": "2013-01-21 18:40:20.000000",
"modified": "2014-05-13 16:07:19.144006",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Payment Receipt Voucher",

View File

@ -0,0 +1,14 @@
{
"creation": "2013-03-21 15:24:28",
"doc_type": "Sales Invoice",
"docstatus": 0,
"doctype": "Print Format",
"idx": 1,
"modified": "2014-05-13 17:51:43.245831",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice",
"owner": "Administrator",
"print_format_type": "Server",
"standard": "Yes"
}

View File

@ -1,11 +1,11 @@
{
"add_total_row": 1,
"creation": "2013-04-22 16:16:03.000000",
"creation": "2013-04-22 16:16:03",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:55.961149",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounts Payable",

View File

@ -1,10 +1,10 @@
{
"creation": "2013-07-30 17:28:49.000000",
"creation": "2013-07-30 17:28:49",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.009640",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Delivered Items To Be Billed",

View File

@ -10,81 +10,81 @@ def execute(filters=None):
account_details = {}
for acc in frappe.db.sql("""select name, group_or_ledger from tabAccount""", as_dict=1):
account_details.setdefault(acc.name, acc)
validate_filters(filters, account_details)
columns = get_columns()
res = get_result(filters, account_details)
return columns, res
def validate_filters(filters, account_details):
if filters.get("account") and filters.get("group_by_account") \
and account_details[filters.account].group_or_ledger == "Ledger":
frappe.throw(_("Can not filter based on Account, if grouped by Account"))
if filters.get("voucher_no") and filters.get("group_by_voucher"):
frappe.throw(_("Can not filter based on Voucher No, if grouped by Voucher"))
if filters.from_date > filters.to_date:
frappe.throw(_("From Date must be before To Date"))
def get_columns():
return ["Posting Date:Date:100", "Account:Link/Account:200", "Debit:Float:100",
"Credit:Float:100", "Voucher Type::120", "Voucher No::160", "Link::20",
return ["Posting Date:Date:100", "Account:Link/Account:200", "Debit:Float:100",
"Credit:Float:100", "Voucher Type::120", "Voucher No::160", "Link::20",
"Against Account::120", "Cost Center:Link/Cost Center:100", "Remarks::400"]
def get_result(filters, account_details):
def get_result(filters, account_details):
gl_entries = get_gl_entries(filters)
data = get_data_with_opening_closing(filters, account_details, gl_entries)
result = get_result_as_list(data)
return result
def get_gl_entries(filters):
group_by_condition = "group by voucher_type, voucher_no, account" \
if filters.get("group_by_voucher") else "group by name"
gl_entries = frappe.db.sql("""select posting_date, account,
sum(ifnull(debit, 0)) as debit, sum(ifnull(credit, 0)) as credit,
voucher_type, voucher_no, cost_center, remarks, is_opening, against
gl_entries = frappe.db.sql("""select posting_date, account,
sum(ifnull(debit, 0)) as debit, sum(ifnull(credit, 0)) as credit,
voucher_type, voucher_no, cost_center, remarks, is_opening, against
from `tabGL Entry`
where company=%(company)s {conditions}
{group_by_condition}
order by posting_date, account"""\
.format(conditions=get_conditions(filters), group_by_condition=group_by_condition),
.format(conditions=get_conditions(filters), group_by_condition=group_by_condition),
filters, as_dict=1)
return gl_entries
def get_conditions(filters):
conditions = []
if filters.get("account"):
lft, rgt = frappe.db.get_value("Account", filters["account"], ["lft", "rgt"])
conditions.append("""account in (select name from tabAccount
conditions.append("""account in (select name from tabAccount
where lft>=%s and rgt<=%s and docstatus<2)""" % (lft, rgt))
else:
conditions.append("posting_date between %(from_date)s and %(to_date)s")
if filters.get("voucher_no"):
conditions.append("voucher_no=%(voucher_no)s")
from frappe.widgets.reportview import build_match_conditions
match_conditions = build_match_conditions("GL Entry")
if match_conditions: conditions.append(match_conditions)
return "and {}".format(" and ".join(conditions)) if conditions else ""
def get_data_with_opening_closing(filters, account_details, gl_entries):
data = []
gle_map = initialize_gle_map(gl_entries)
opening, total_debit, total_credit, gle_map = get_accountwise_gle(filters, gl_entries, gle_map)
# Opening for filtered account
if filters.get("account"):
data += [get_balance_row("Opening", opening), {}]
@ -96,23 +96,23 @@ def get_data_with_opening_closing(filters, account_details, gl_entries):
data.append(get_balance_row("Opening", acc_dict.opening))
data += acc_dict.entries
# Totals and closing for individual ledger, if grouped by account
if filters.get("group_by_account"):
data += [{"account": "Totals", "debit": acc_dict.total_debit,
"credit": acc_dict.total_credit},
get_balance_row("Closing (Opening + Totals)",
data += [{"account": "Totals", "debit": acc_dict.total_debit,
"credit": acc_dict.total_credit},
get_balance_row("Closing (Opening + Totals)",
(acc_dict.opening + acc_dict.total_debit - acc_dict.total_credit)), {}]
# Total debit and credit between from and to date
# Total debit and credit between from and to date
if total_debit or total_credit:
data.append({"account": "Totals", "debit": total_debit, "credit": total_credit})
# Closing for filtered account
if filters.get("account"):
data.append(get_balance_row("Closing (Opening + Totals)",
data.append(get_balance_row("Closing (Opening + Totals)",
(opening + total_debit - total_credit)))
return data
def initialize_gle_map(gl_entries):
@ -129,21 +129,20 @@ def initialize_gle_map(gl_entries):
def get_accountwise_gle(filters, gl_entries, gle_map):
opening, total_debit, total_credit = 0, 0, 0
for gle in gl_entries:
amount = flt(gle.debit) - flt(gle.credit)
if filters.get("account") and (gle.posting_date < filters.from_date
or cstr(gle.is_opening) == "Yes"):
if filters.get("account") and (gle.posting_date<filters.from_date or cstr(gle.is_opening)=="Yes"):
gle_map[gle.account].opening += amount
opening += amount
elif gle.posting_date <= filters.to_date:
gle_map[gle.account].entries.append(gle)
gle_map[gle.account].total_debit += flt(gle.debit)
gle_map[gle.account].total_credit += flt(gle.credit)
total_debit += flt(gle.debit)
total_credit += flt(gle.credit)
return opening, total_debit, total_credit, gle_map
def get_balance_row(label, balance):
@ -152,21 +151,21 @@ def get_balance_row(label, balance):
"debit": balance if balance > 0 else 0,
"credit": -1*balance if balance < 0 else 0,
}
def get_result_as_list(data):
result = []
for d in data:
result.append([d.get("posting_date"), d.get("account"), d.get("debit"),
d.get("credit"), d.get("voucher_type"), d.get("voucher_no"),
get_voucher_link(d.get("voucher_type"), d.get("voucher_no")),
result.append([d.get("posting_date"), d.get("account"), d.get("debit"),
d.get("credit"), d.get("voucher_type"), d.get("voucher_no"),
get_voucher_link(d.get("voucher_type"), d.get("voucher_no")),
d.get("against"), d.get("cost_center"), d.get("remarks")])
return result
def get_voucher_link(voucher_type, voucher_no):
icon = ""
if voucher_type and voucher_no:
icon = """<a href="%s"><i class="icon icon-share" style="cursor: pointer;">
</i></a>""" % ("/".join(["#Form", voucher_type, voucher_no]))
return icon

View File

@ -1,10 +1,10 @@
{
"creation": "2013-02-21 14:26:44.000000",
"creation": "2013-02-21 14:26:44",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.120371",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Ordered Items To Be Billed",

View File

@ -1,11 +1,11 @@
{
"add_total_row": 1,
"creation": "2013-05-28 15:54:16.000000",
"creation": "2013-05-28 15:54:16",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.166593",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Purchase Order Items To Be Billed",

View File

@ -1,10 +1,10 @@
{
"creation": "2013-07-30 18:35:10.000000",
"creation": "2013-07-30 18:35:10",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.176404",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Received Items To Be Billed",

View File

@ -1,10 +1,10 @@
{
"creation": "2013-05-06 12:28:23.000000",
"creation": "2013-05-06 12:28:23",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.188121",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Partners Commission",

View File

@ -43,14 +43,14 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
make_purchase_receipt: function() {
frappe.model.open_mapped_doc({
method: "erpnext.buying.doctype.purchase_order.purchase_order.make_purchase_receipt",
source_name: cur_frm.doc.name
frm: cur_frm
})
},
make_purchase_invoice: function() {
frappe.model.open_mapped_doc({
method: "erpnext.buying.doctype.purchase_order.purchase_order.make_purchase_invoice",
source_name: cur_frm.doc.name
frm: cur_frm
})
},

View File

@ -2,7 +2,7 @@
"allow_attach": 1,
"allow_import": 1,
"autoname": "naming_series:",
"creation": "2013-05-21 16:16:39.000000",
"creation": "2013-05-21 16:16:39",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Transaction",
@ -21,7 +21,7 @@
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
"options": "\nPO",
"options": "PO-",
"permlevel": 0,
"print_hide": 1,
"reqd": 1
@ -537,23 +537,23 @@
{
"allow_on_submit": 1,
"fieldname": "letter_head",
"fieldtype": "Select",
"fieldtype": "Link",
"label": "Letter Head",
"oldfieldname": "letter_head",
"oldfieldtype": "Select",
"options": "link:Letter Head",
"options": "Letter Head",
"permlevel": 0,
"print_hide": 1
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 1,
"reqd": 1,
@ -636,7 +636,7 @@
"icon": "icon-file-text",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-29 15:26:21.000000",
"modified": "2014-05-09 02:17:04.992233",
"modified_by": "Administrator",
"module": "Buying",
"name": "Purchase Order",
@ -647,9 +647,9 @@
"cancel": 0,
"create": 0,
"delete": 0,
"email": 1,
"email": 0,
"permlevel": 0,
"print": 1,
"print": 0,
"read": 1,
"report": 1,
"role": "Material User",
@ -696,5 +696,7 @@
}
],
"read_only_onload": 1,
"search_fields": "status, transaction_date, supplier,grand_total"
"search_fields": "status, transaction_date, supplier,grand_total",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -45,7 +45,7 @@ class PurchaseOrder(BuyingController):
self.validate_with_previous_doc()
self.validate_for_subcontracting()
self.update_raw_materials_supplied("po_raw_material_details")
self.create_raw_materials_supplied("po_raw_material_details")
def validate_with_previous_doc(self):
super(PurchaseOrder, self).validate_with_previous_doc(self.tname, {

View File

@ -1,5 +1,5 @@
{
"creation": "2013-02-22 01:27:42.000000",
"creation": "2013-02-22 01:27:42",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -35,6 +35,21 @@
"read_only": 1,
"width": "300px"
},
{
"fieldname": "batch_no",
"fieldtype": "Link",
"label": "Batch No",
"no_copy": 1,
"options": "Batch",
"permlevel": 0
},
{
"fieldname": "serial_no",
"fieldtype": "Text",
"label": "Serial No",
"no_copy": 1,
"permlevel": 0
},
{
"fieldname": "col_break1",
"fieldtype": "Column Break",
@ -57,6 +72,7 @@
"oldfieldname": "consumed_qty",
"oldfieldtype": "Currency",
"permlevel": 0,
"read_only": 1,
"reqd": 1
},
{
@ -137,9 +153,12 @@
"hide_toolbar": 0,
"idx": 1,
"istable": 1,
"modified": "2014-02-13 11:29:35.000000",
"modified": "2014-05-08 18:37:42.966473",
"modified_by": "Administrator",
"module": "Buying",
"name": "Purchase Receipt Item Supplied",
"owner": "wasim@webnotestech.com"
"owner": "wasim@webnotestech.com",
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,228 +1,231 @@
{
"autoname": "naming_series:",
"creation": "2013-04-30 13:13:03.000000",
"docstatus": 0,
"doctype": "DocType",
"autoname": "naming_series:",
"creation": "2013-04-30 13:13:03",
"docstatus": 0,
"doctype": "DocType",
"fields": [
{
"fieldname": "qa_inspection",
"fieldtype": "Section Break",
"label": "QA Inspection",
"no_copy": 0,
"oldfieldtype": "Section Break",
"fieldname": "qa_inspection",
"fieldtype": "Section Break",
"label": "QA Inspection",
"no_copy": 0,
"oldfieldtype": "Section Break",
"permlevel": 0
},
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "naming_series",
"fieldtype": "Select",
"label": "Series",
"no_copy": 1,
"options": "\nQAI/11-12/",
"permlevel": 0,
"fieldname": "naming_series",
"fieldtype": "Select",
"label": "Series",
"no_copy": 1,
"options": "QI-",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "inspection_type",
"fieldtype": "Select",
"in_filter": 1,
"label": "Inspection Type",
"oldfieldname": "inspection_type",
"oldfieldtype": "Select",
"options": "\nIncoming\nOutgoing\nIn Process",
"permlevel": 0,
"fieldname": "inspection_type",
"fieldtype": "Select",
"in_filter": 1,
"in_list_view": 1,
"label": "Inspection Type",
"oldfieldname": "inspection_type",
"oldfieldtype": "Select",
"options": "\nIncoming\nOutgoing\nIn Process",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "report_date",
"fieldtype": "Date",
"in_filter": 1,
"label": "Report Date",
"oldfieldname": "report_date",
"oldfieldtype": "Date",
"permlevel": 0,
"reqd": 1,
"fieldname": "report_date",
"fieldtype": "Date",
"in_filter": 1,
"in_list_view": 1,
"label": "Report Date",
"oldfieldname": "report_date",
"oldfieldtype": "Date",
"permlevel": 0,
"reqd": 1,
"search_index": 1
},
},
{
"fieldname": "item_code",
"fieldtype": "Link",
"hidden": 0,
"in_filter": 1,
"label": "Item Code",
"oldfieldname": "item_code",
"oldfieldtype": "Link",
"options": "Item",
"permlevel": 0,
"reqd": 1,
"fieldname": "item_code",
"fieldtype": "Link",
"hidden": 0,
"in_list_view": 1,
"in_filter": 1,
"label": "Item Code",
"oldfieldname": "item_code",
"oldfieldtype": "Link",
"options": "Item",
"permlevel": 0,
"reqd": 1,
"search_index": 1
},
},
{
"fieldname": "sample_size",
"fieldtype": "Float",
"in_filter": 0,
"label": "Sample Size",
"oldfieldname": "sample_size",
"oldfieldtype": "Currency",
"permlevel": 0,
"reqd": 1,
"fieldname": "sample_size",
"fieldtype": "Float",
"in_filter": 0,
"label": "Sample Size",
"oldfieldname": "sample_size",
"oldfieldtype": "Currency",
"permlevel": 0,
"reqd": 1,
"search_index": 0
},
},
{
"fieldname": "description",
"fieldtype": "Small Text",
"in_filter": 1,
"label": "Description",
"oldfieldname": "description",
"oldfieldtype": "Small Text",
"permlevel": 0,
"search_index": 0,
"fieldname": "description",
"fieldtype": "Small Text",
"in_filter": 1,
"label": "Description",
"oldfieldname": "description",
"oldfieldtype": "Small Text",
"permlevel": 0,
"search_index": 0,
"width": "300px"
},
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break1",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "item_serial_no",
"fieldtype": "Link",
"hidden": 0,
"label": "Item Serial No",
"oldfieldname": "item_serial_no",
"oldfieldtype": "Link",
"options": "Serial No",
"permlevel": 0,
"fieldname": "item_serial_no",
"fieldtype": "Link",
"hidden": 0,
"label": "Item Serial No",
"oldfieldname": "item_serial_no",
"oldfieldtype": "Link",
"options": "Serial No",
"permlevel": 0,
"print_hide": 0
},
},
{
"fieldname": "batch_no",
"fieldtype": "Link",
"label": "Batch No",
"oldfieldname": "batch_no",
"oldfieldtype": "Link",
"options": "Batch",
"fieldname": "batch_no",
"fieldtype": "Link",
"label": "Batch No",
"oldfieldname": "batch_no",
"oldfieldtype": "Link",
"options": "Batch",
"permlevel": 0
},
},
{
"fieldname": "purchase_receipt_no",
"fieldtype": "Link",
"hidden": 0,
"in_filter": 1,
"label": "Purchase Receipt No",
"oldfieldname": "purchase_receipt_no",
"oldfieldtype": "Link",
"options": "Purchase Receipt",
"permlevel": 0,
"fieldname": "purchase_receipt_no",
"fieldtype": "Link",
"hidden": 0,
"in_filter": 1,
"label": "Purchase Receipt No",
"oldfieldname": "purchase_receipt_no",
"oldfieldtype": "Link",
"options": "Purchase Receipt",
"permlevel": 0,
"search_index": 1
},
},
{
"fieldname": "delivery_note_no",
"fieldtype": "Link",
"hidden": 0,
"in_filter": 1,
"label": "Delivery Note No",
"oldfieldname": "delivery_note_no",
"oldfieldtype": "Link",
"options": "Delivery Note",
"permlevel": 0,
"print_hide": 0,
"fieldname": "delivery_note_no",
"fieldtype": "Link",
"hidden": 0,
"in_filter": 1,
"label": "Delivery Note No",
"oldfieldname": "delivery_note_no",
"oldfieldtype": "Link",
"options": "Delivery Note",
"permlevel": 0,
"print_hide": 0,
"search_index": 1
},
},
{
"fieldname": "inspected_by",
"fieldtype": "Data",
"label": "Inspected By",
"oldfieldname": "inspected_by",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "inspected_by",
"fieldtype": "Data",
"label": "Inspected By",
"oldfieldname": "inspected_by",
"oldfieldtype": "Data",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "remarks",
"fieldtype": "Text",
"label": "Remarks",
"no_copy": 1,
"oldfieldname": "remarks",
"oldfieldtype": "Text",
"fieldname": "remarks",
"fieldtype": "Text",
"label": "Remarks",
"no_copy": 1,
"oldfieldname": "remarks",
"oldfieldtype": "Text",
"permlevel": 0
},
},
{
"fieldname": "verified_by",
"fieldtype": "Data",
"label": "Verified By",
"oldfieldname": "verified_by",
"oldfieldtype": "Data",
"fieldname": "verified_by",
"fieldtype": "Data",
"label": "Verified By",
"oldfieldname": "verified_by",
"oldfieldtype": "Data",
"permlevel": 0
},
},
{
"fieldname": "amended_from",
"fieldtype": "Data",
"ignore_restrictions": 1,
"label": "Amended From",
"no_copy": 1,
"oldfieldname": "amended_from",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"fieldname": "amended_from",
"fieldtype": "Data",
"ignore_restrictions": 1,
"label": "Amended From",
"no_copy": 1,
"oldfieldname": "amended_from",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"read_only": 1
},
},
{
"fieldname": "specification_details",
"fieldtype": "Section Break",
"label": "Specification Details",
"oldfieldtype": "Section Break",
"options": "Simple",
"fieldname": "specification_details",
"fieldtype": "Section Break",
"label": "Specification Details",
"oldfieldtype": "Section Break",
"options": "Simple",
"permlevel": 0
},
},
{
"fieldname": "get_specification_details",
"fieldtype": "Button",
"label": "Get Specification Details",
"options": "get_item_specification_details",
"fieldname": "get_specification_details",
"fieldtype": "Button",
"label": "Get Specification Details",
"options": "get_item_specification_details",
"permlevel": 0
},
},
{
"fieldname": "qa_specification_details",
"fieldtype": "Table",
"label": "Quality Inspection Readings",
"oldfieldname": "qa_specification_details",
"oldfieldtype": "Table",
"options": "Quality Inspection Reading",
"fieldname": "qa_specification_details",
"fieldtype": "Table",
"label": "Quality Inspection Readings",
"oldfieldname": "qa_specification_details",
"oldfieldtype": "Table",
"options": "Quality Inspection Reading",
"permlevel": 0
}
],
"icon": "icon-search",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-20 17:49:14.000000",
"modified_by": "Administrator",
"module": "Buying",
"name": "Quality Inspection",
"owner": "Administrator",
],
"icon": "icon-search",
"idx": 1,
"is_submittable": 1,
"modified": "2014-05-06 08:20:33.015328",
"modified_by": "Administrator",
"module": "Buying",
"name": "Quality Inspection",
"owner": "Administrator",
"permissions": [
{
"amend": 1,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Quality Manager",
"submit": 1,
"amend": 1,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Quality Manager",
"submit": 1,
"write": 1
}
],
],
"search_fields": "item_code, report_date, purchase_receipt_no, delivery_note_no"
}
}

View File

@ -2,7 +2,7 @@
"allow_import": 1,
"allow_rename": 1,
"autoname": "naming_series:",
"creation": "2013-01-10 16:34:11.000000",
"creation": "2013-01-10 16:34:11",
"description": "Supplier of Goods or Services.",
"docstatus": 0,
"doctype": "DocType",
@ -23,7 +23,7 @@
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
"options": "\nSUPP\nSUPP/10-11/",
"options": "SUPP-",
"permlevel": 0
},
{
@ -123,6 +123,7 @@
{
"fieldname": "default_currency",
"fieldtype": "Link",
"ignore_restrictions": 1,
"label": "Default Currency",
"no_copy": 1,
"options": "Currency",
@ -131,6 +132,7 @@
{
"fieldname": "default_price_list",
"fieldtype": "Link",
"ignore_restrictions": 1,
"label": "Price List",
"options": "Price List",
"permlevel": 0
@ -138,6 +140,7 @@
{
"fieldname": "default_taxes_and_charges",
"fieldtype": "Link",
"ignore_restrictions": 1,
"label": "Taxes and Charges",
"options": "Purchase Taxes and Charges Master",
"permlevel": 0
@ -183,7 +186,7 @@
],
"icon": "icon-user",
"idx": 1,
"modified": "2014-01-28 19:05:55.000000",
"modified": "2014-05-07 06:08:33.836379",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier",
@ -216,6 +219,16 @@
"role": "Purchase Master Manager",
"submit": 0,
"write": 1
},
{
"permlevel": 0,
"read": 1,
"role": "Material User"
},
{
"permlevel": 0,
"read": 1,
"role": "Accounts User"
}
],
"search_fields": "supplier_name,supplier_type"

View File

@ -39,7 +39,7 @@ erpnext.buying.SupplierQuotationController = erpnext.buying.BuyingController.ext
make_purchase_order: function() {
frappe.model.open_mapped_doc({
method: "erpnext.buying.doctype.supplier_quotation.supplier_quotation.make_purchase_order",
source_name: cur_frm.doc.name
frm: cur_frm
})
}
});

View File

@ -2,7 +2,7 @@
"allow_attach": 1,
"allow_import": 1,
"autoname": "naming_series:",
"creation": "2013-05-21 16:16:45.000000",
"creation": "2013-05-21 16:16:45",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Transaction",
@ -21,7 +21,7 @@
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
"options": "SQTN",
"options": "SQTN-",
"permlevel": 0,
"print_hide": 1,
"reqd": 1
@ -435,11 +435,11 @@
{
"allow_on_submit": 1,
"fieldname": "letter_head",
"fieldtype": "Select",
"fieldtype": "Link",
"label": "Letter Head",
"oldfieldname": "letter_head",
"oldfieldtype": "Select",
"options": "link:Letter Head",
"options": "Letter Head",
"permlevel": 0,
"print_hide": 1
},
@ -533,13 +533,13 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"no_copy": 0,
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"print_hide": 1,
"reqd": 1,
@ -562,7 +562,7 @@
"icon": "icon-shopping-cart",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-29 15:25:52.000000",
"modified": "2014-05-09 02:17:10.664189",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier Quotation",
@ -640,5 +640,7 @@
}
],
"read_only_onload": 1,
"search_fields": "status, transaction_date, supplier,grand_total"
"search_fields": "status, transaction_date, supplier,grand_total",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,11 +1,11 @@
{
"add_total_row": 1,
"creation": "2013-05-03 14:55:53.000000",
"creation": "2013-05-03 14:55:53",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.060149",
"modified_by": "Administrator",
"module": "Buying",
"name": "Item-wise Purchase History",

View File

@ -1,11 +1,11 @@
{
"add_total_row": 1,
"creation": "2013-05-13 16:10:02.000000",
"creation": "2013-05-13 16:10:02",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.180305",
"modified_by": "Administrator",
"module": "Buying",
"name": "Requested Items To Be Ordered",

View File

@ -1,10 +1,10 @@
{
"creation": "2013-10-09 10:38:40.000000",
"creation": "2013-10-09 10:38:40",
"docstatus": 0,
"doctype": "Report",
"idx": 1,
"is_standard": "Yes",
"modified": "2014-03-07 15:30:27.000000",
"modified": "2014-05-13 16:08:56.218629",
"modified_by": "Administrator",
"module": "Buying",
"name": "Supplier Addresses and Contacts",

View File

@ -1,307 +1,308 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Journal Voucher",
"description": _("Accounting journal entries.")
},
{
"type": "doctype",
"name": "Sales Invoice",
"description": _("Bills raised to Customers.")
},
{
"type": "doctype",
"name": "Purchase Invoice",
"description": _("Bills raised by Suppliers.")
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database.")
},
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier database.")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of finanial accounts."),
"doctype": "Account",
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Bank Reconciliation",
"description": _("Update bank payment dates with journals.")
},
# {
# "type": "doctype",
# "name": "Payment to Invoice Matching Tool",
# "description": _("Match non-linked Invoices and Payments.")
# },
{
"type": "doctype",
"name": "Period Closing Voucher",
"description": _("Close Balance Sheet and book Profit or Loss.")
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Fiscal Year",
"description": _("Financial / accounting year.")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of finanial accounts."),
"doctype": "Account",
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Cost Centers"),
"route": "Accounts Browser/Cost Center",
"description": _("Tree of finanial Cost Centers."),
"doctype": "Cost Center",
},
{
"type": "doctype",
"name": "Accounts Settings",
"description": _("Default settings for accounting transactions.")
},
{
"type": "doctype",
"name": "Sales Taxes and Charges Master",
"description": _("Tax template for selling transactions.")
},
{
"type": "doctype",
"name": "Purchase Taxes and Charges Master",
"description": _("Tax template for buying transactions.")
},
{
"type": "doctype",
"name": "POS Setting",
"label": _("Point-of-Sale Setting"),
"description": _("Rules to calculate shipping amount for a sale")
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
{
"type": "doctype",
"name": "Currency",
"description": _("Enable / disable currencies.")
},
{
"type": "doctype",
"name": "Currency Exchange",
"description": _("Currency exchange rate master.")
},
{
"type":"doctype",
"name": "Budget Distribution",
"description": _("Seasonality for setting budgets.")
},
{
"type": "doctype",
"name":"Terms and Conditions",
"label": _("Terms and Conditions Template"),
"description": _("Template of terms or contract.")
},
{
"type": "doctype",
"name":"Mode of Payment",
"description": _("e.g. Bank, Cash, Credit Card")
},
{
"type": "doctype",
"name":"C-Form",
"description": _("C-Form records"),
"country": "India"
}
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "report",
"name":"General Ledger",
"doctype": "GL Entry",
"is_query_report": True,
},
{
"type": "page",
"name": "trial-balance",
"label": _("Trial Balance"),
"icon": "icon-table"
},
{
"type": "report",
"name": "Accounts Receivable",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Accounts Payable",
"doctype": "Purchase Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Sales Register",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Purchase Register",
"doctype": "Purchase Invoice",
"is_query_report": True
},
{
"type": "page",
"name": "financial-analytics",
"label": _("Financial Analytics"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"name": "Gross Profit",
"doctype": "Sales Invoice",
"is_query_report": True
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"name": "Bank Reconciliation Statement",
"is_query_report": True,
"doctype": "Journal Voucher"
},
{
"type": "report",
"name": "Ordered Items To Be Billed",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Delivered Items To Be Billed",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Purchase Order Items To Be Billed",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Received Items To Be Billed",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Bank Clearance Summary",
"is_query_report": True,
"doctype": "Journal Voucher"
},
{
"type": "report",
"name": "Payment Period Based On Invoice Date",
"is_query_report": True,
"doctype": "Journal Voucher"
},
{
"type": "report",
"name": "Sales Partners Commission",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Customer Account Head",
"is_query_report": True,
"doctype": "Account"
},
{
"type": "report",
"name": "Supplier Account Head",
"is_query_report": True,
"doctype": "Account"
},
{
"type": "report",
"name": "Item-wise Sales Register",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Item-wise Purchase Register",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Budget Variance Report",
"is_query_report": True,
"doctype": "Cost Center"
},
{
"type": "report",
"name": "Purchase Invoice Trends",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Sales Invoice Trends",
"is_query_report": True,
"doctype": "Sales Invoice"
},
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Journal Voucher",
"description": _("Accounting journal entries.")
},
{
"type": "doctype",
"name": "Sales Invoice",
"description": _("Bills raised to Customers.")
},
{
"type": "doctype",
"name": "Purchase Invoice",
"description": _("Bills raised by Suppliers.")
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database.")
},
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier database.")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of finanial accounts."),
"doctype": "Account",
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Bank Reconciliation",
"description": _("Update bank payment dates with journals.")
},
# {
# "type": "doctype",
# "name": "Payment to Invoice Matching Tool",
# "description": _("Match non-linked Invoices and Payments.")
# },
{
"type": "doctype",
"name": "Period Closing Voucher",
"description": _("Close Balance Sheet and book Profit or Loss.")
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Fiscal Year",
"description": _("Financial / accounting year.")
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Accounts"),
"route": "Accounts Browser/Account",
"description": _("Tree of finanial accounts."),
"doctype": "Account",
},
{
"type": "page",
"name": "Accounts Browser",
"icon": "icon-sitemap",
"label": _("Chart of Cost Centers"),
"route": "Accounts Browser/Cost Center",
"description": _("Tree of finanial Cost Centers."),
"doctype": "Cost Center",
},
{
"type": "doctype",
"name": "Accounts Settings",
"description": _("Default settings for accounting transactions.")
},
{
"type": "doctype",
"name": "Sales Taxes and Charges Master",
"description": _("Tax template for selling transactions.")
},
{
"type": "doctype",
"name": "Purchase Taxes and Charges Master",
"description": _("Tax template for buying transactions.")
},
{
"type": "doctype",
"name": "POS Setting",
"label": _("Point-of-Sale Setting"),
"description": _("Rules to calculate shipping amount for a sale")
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
{
"type": "doctype",
"name": "Currency",
"description": _("Enable / disable currencies.")
},
{
"type": "doctype",
"name": "Currency Exchange",
"description": _("Currency exchange rate master.")
},
{
"type":"doctype",
"name": "Budget Distribution",
"description": _("Seasonality for setting budgets.")
},
{
"type": "doctype",
"name":"Terms and Conditions",
"label": _("Terms and Conditions Template"),
"description": _("Template of terms or contract.")
},
{
"type": "doctype",
"name":"Mode of Payment",
"description": _("e.g. Bank, Cash, Credit Card")
},
{
"type": "doctype",
"name":"C-Form",
"description": _("C-Form records"),
"country": "India"
}
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "report",
"name":"General Ledger",
"doctype": "GL Entry",
"is_query_report": True,
},
{
"type": "page",
"name": "trial-balance",
"label": _("Trial Balance"),
"icon": "icon-table"
},
{
"type": "report",
"name": "Accounts Receivable",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Accounts Payable",
"doctype": "Purchase Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Sales Register",
"doctype": "Sales Invoice",
"is_query_report": True
},
{
"type": "report",
"name": "Purchase Register",
"doctype": "Purchase Invoice",
"is_query_report": True
},
{
"type": "page",
"name": "financial-analytics",
"label": _("Financial Analytics"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"name": "Gross Profit",
"doctype": "Sales Invoice",
"is_query_report": True
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"name": "Bank Reconciliation Statement",
"is_query_report": True,
"doctype": "Journal Voucher"
},
{
"type": "report",
"name": "Ordered Items To Be Billed",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Delivered Items To Be Billed",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Purchase Order Items To Be Billed",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Received Items To Be Billed",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Bank Clearance Summary",
"is_query_report": True,
"doctype": "Journal Voucher"
},
{
"type": "report",
"name": "Payment Period Based On Invoice Date",
"is_query_report": True,
"doctype": "Journal Voucher"
},
{
"type": "report",
"name": "Sales Partners Commission",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Customer Account Head",
"is_query_report": True,
"doctype": "Account"
},
{
"type": "report",
"name": "Supplier Account Head",
"is_query_report": True,
"doctype": "Account"
},
{
"type": "report",
"name": "Item-wise Sales Register",
"is_query_report": True,
"doctype": "Sales Invoice"
},
{
"type": "report",
"name": "Item-wise Purchase Register",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Budget Variance Report",
"is_query_report": True,
"doctype": "Cost Center"
},
{
"type": "report",
"name": "Purchase Invoice Trends",
"is_query_report": True,
"doctype": "Purchase Invoice"
},
{
"type": "report",
"name": "Sales Invoice Trends",
"is_query_report": True,
"doctype": "Sales Invoice"
},
]
},
]

View File

@ -1,169 +1,170 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier database."),
},
{
"type": "doctype",
"name": "Material Request",
"description": _("Request for purchase."),
},
{
"type": "doctype",
"name": "Supplier Quotation",
"description": _("Quotations received from Suppliers."),
},
{
"type": "doctype",
"name": "Purchase Order",
"description": _("Purchase Orders given to Suppliers."),
},
{
"type": "doctype",
"name": "Contact",
"description": _("All Contacts."),
},
{
"type": "doctype",
"name": "Address",
"description": _("All Addresses."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Buying Settings",
"description": _("Default settings for buying transactions.")
},
{
"type": "doctype",
"name": "Supplier Type",
"description": _("Supplier Type master.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name":"Terms and Conditions",
"label": _("Terms and Conditions Template"),
"description": _("Template of terms or contract.")
},
{
"type": "doctype",
"name": "Purchase Taxes and Charges Master",
"description": _("Tax template for buying transactions.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "page",
"name": "purchase-analytics",
"label": _("Purchase Analytics"),
"icon": "icon-bar-chart",
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Items To Be Requested",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Requested Items To Be Ordered",
"doctype": "Material Request"
},
{
"type": "report",
"is_query_report": True,
"name": "Material Requests for which Supplier Quotations are not created",
"doctype": "Material Request"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase In Transit",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Purchase History",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Last Purchase Rate",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Order Trends",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier Addresses And Contacts",
"doctype": "Supplier"
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier-Wise Sales Analytics",
"doctype": "Stock Ledger Entry"
}
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier database."),
},
{
"type": "doctype",
"name": "Material Request",
"description": _("Request for purchase."),
},
{
"type": "doctype",
"name": "Supplier Quotation",
"description": _("Quotations received from Suppliers."),
},
{
"type": "doctype",
"name": "Purchase Order",
"description": _("Purchase Orders given to Suppliers."),
},
{
"type": "doctype",
"name": "Contact",
"description": _("All Contacts."),
},
{
"type": "doctype",
"name": "Address",
"description": _("All Addresses."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Buying Settings",
"description": _("Default settings for buying transactions.")
},
{
"type": "doctype",
"name": "Supplier Type",
"description": _("Supplier Type master.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name":"Terms and Conditions",
"label": _("Terms and Conditions Template"),
"description": _("Template of terms or contract.")
},
{
"type": "doctype",
"name": "Purchase Taxes and Charges Master",
"description": _("Tax template for buying transactions.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "page",
"name": "purchase-analytics",
"label": _("Purchase Analytics"),
"icon": "icon-bar-chart",
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Items To Be Requested",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Requested Items To Be Ordered",
"doctype": "Material Request"
},
{
"type": "report",
"is_query_report": True,
"name": "Material Requests for which Supplier Quotations are not created",
"doctype": "Material Request"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase In Transit",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Purchase History",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Last Purchase Rate",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Order Trends",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier Addresses And Contacts",
"doctype": "Supplier"
},
{
"type": "report",
"is_query_report": True,
"name": "Supplier-Wise Sales Analytics",
"doctype": "Stock Ledger Entry"
}
]
},
]

View File

@ -1,60 +1,61 @@
from frappe import _
data = {
"Accounts": {
"color": "#3498db",
"icon": "icon-money",
"type": "module"
},
"Activity": {
"color": "#e67e22",
"icon": "icon-play",
"label": _("Activity"),
"link": "activity",
"type": "page"
},
"Buying": {
"color": "#c0392b",
"icon": "icon-shopping-cart",
"type": "module"
},
"HR": {
"color": "#2ecc71",
"icon": "icon-group",
"label": _("Human Resources"),
"type": "module"
},
"Manufacturing": {
"color": "#7f8c8d",
"icon": "icon-cogs",
"type": "module"
},
"Notes": {
"color": "#95a5a6",
"doctype": "Note",
"icon": "icon-file-alt",
"label": _("Notes"),
"link": "List/Note",
"type": "list"
},
"Projects": {
"color": "#8e44ad",
"icon": "icon-puzzle-piece",
"type": "module"
},
"Selling": {
"color": "#1abc9c",
"icon": "icon-tag",
"type": "module"
},
"Stock": {
"color": "#f39c12",
"icon": "icon-truck",
"type": "module"
},
"Support": {
"color": "#2c3e50",
"icon": "icon-phone",
"type": "module"
def get_data():
return {
"Accounts": {
"color": "#3498db",
"icon": "icon-money",
"type": "module"
},
"Activity": {
"color": "#e67e22",
"icon": "icon-play",
"label": _("Activity"),
"link": "activity",
"type": "page"
},
"Buying": {
"color": "#c0392b",
"icon": "icon-shopping-cart",
"type": "module"
},
"HR": {
"color": "#2ecc71",
"icon": "icon-group",
"label": _("Human Resources"),
"type": "module"
},
"Manufacturing": {
"color": "#7f8c8d",
"icon": "icon-cogs",
"type": "module"
},
"Notes": {
"color": "#95a5a6",
"doctype": "Note",
"icon": "icon-file-alt",
"label": _("Notes"),
"link": "List/Note",
"type": "list"
},
"Projects": {
"color": "#8e44ad",
"icon": "icon-puzzle-piece",
"type": "module"
},
"Selling": {
"color": "#1abc9c",
"icon": "icon-tag",
"type": "module"
},
"Stock": {
"color": "#f39c12",
"icon": "icon-truck",
"type": "module"
},
"Support": {
"color": "#2c3e50",
"icon": "icon-phone",
"type": "module"
}
}
}

View File

@ -1,197 +1,198 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Employee",
"description": _("Employee records."),
},
{
"type": "doctype",
"name": "Salary Slip",
"description": _("Monthly salary statement."),
},
{
"type": "doctype",
"name": "Leave Application",
"description": _("Applications for leave."),
},
{
"type": "doctype",
"name": "Attendance",
"description": _("Attendance record."),
},
{
"type": "doctype",
"name": "Expense Claim",
"description": _("Claims for company expense."),
},
{
"type": "doctype",
"name": "Appraisal",
"description": _("Performance appraisal."),
},
{
"type": "doctype",
"name": "Job Applicant",
"description": _("Applicant for a Job."),
},
{
"type": "doctype",
"name": "Job Opening",
"description": _("Opening for a Job."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Salary Manager",
"label": _("Process Payroll"),
"description":_("Generate Salary Slips"),
"hide_count": True
},
{
"type": "doctype",
"name": "Upload Attendance",
"description":_("Upload attendance from a .csv file"),
"hide_count": True
},
{
"type": "doctype",
"name": "Leave Control Panel",
"label": _("Leave Allocation Tool"),
"description":_("Allocate leaves for the year."),
"hide_count": True
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "HR Settings",
"description": _("Settings for HR Module")
},
{
"type": "doctype",
"name": "Employee",
"description": _("Employee master.")
},
{
"type": "doctype",
"name": "Employment Type",
"description": _("Types of employment (permanent, contract, intern etc.).")
},
{
"type": "doctype",
"name": "Branch",
"description": _("Organization branch master.")
},
{
"type": "doctype",
"name": "Department",
"description": _("Organization unit (department) master.")
},
{
"type": "doctype",
"name": "Designation",
"description": _("Employee designation (e.g. CEO, Director etc.).")
},
{
"type": "doctype",
"name": "Salary Structure",
"description": _("Salary template master.")
},
{
"type": "doctype",
"name": "Earning Type",
"description": _("Salary components.")
},
{
"type": "doctype",
"name": "Deduction Type",
"description": _("Tax and other salary deductions.")
},
{
"type": "doctype",
"name": "Leave Allocation",
"description": _("Allocate leaves for a period.")
},
{
"type": "doctype",
"name":"Leave Type",
"description": _("Type of leaves like casual, sick etc."),
},
{
"type": "doctype",
"name": "Holiday List",
"description": _("Holiday master.")
},
{
"type": "doctype",
"name": "Leave Block List",
"description": _("Block leave applications by department.")
},
{
"type": "doctype",
"name": "Appraisal Template",
"description": _("Template for performance appraisals.")
},
{
"type": "doctype",
"name": "Expense Claim Type",
"description": _("Types of Expense Claim.")
},
{
"type": "doctype",
"name": "Jobs Email Settings",
"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Employee Leave Balance",
"doctype": "Leave Application"
},
{
"type": "report",
"is_query_report": True,
"name": "Employee Birthday",
"doctype": "Employee"
},
{
"type": "report",
"name": "Employee Information",
"doctype": "Employee"
},
{
"type": "report",
"is_query_report": True,
"name": "Monthly Salary Register",
"doctype": "Salary Slip"
},
{
"type": "report",
"is_query_report": True,
"name": "Monthly Attendance Sheet",
"doctype": "Attendance"
},
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Employee",
"description": _("Employee records."),
},
{
"type": "doctype",
"name": "Salary Slip",
"description": _("Monthly salary statement."),
},
{
"type": "doctype",
"name": "Leave Application",
"description": _("Applications for leave."),
},
{
"type": "doctype",
"name": "Attendance",
"description": _("Attendance record."),
},
{
"type": "doctype",
"name": "Expense Claim",
"description": _("Claims for company expense."),
},
{
"type": "doctype",
"name": "Appraisal",
"description": _("Performance appraisal."),
},
{
"type": "doctype",
"name": "Job Applicant",
"description": _("Applicant for a Job."),
},
{
"type": "doctype",
"name": "Job Opening",
"description": _("Opening for a Job."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Salary Manager",
"label": _("Process Payroll"),
"description":_("Generate Salary Slips"),
"hide_count": True
},
{
"type": "doctype",
"name": "Upload Attendance",
"description":_("Upload attendance from a .csv file"),
"hide_count": True
},
{
"type": "doctype",
"name": "Leave Control Panel",
"label": _("Leave Allocation Tool"),
"description":_("Allocate leaves for the year."),
"hide_count": True
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "HR Settings",
"description": _("Settings for HR Module")
},
{
"type": "doctype",
"name": "Employee",
"description": _("Employee master.")
},
{
"type": "doctype",
"name": "Employment Type",
"description": _("Types of employment (permanent, contract, intern etc.).")
},
{
"type": "doctype",
"name": "Branch",
"description": _("Organization branch master.")
},
{
"type": "doctype",
"name": "Department",
"description": _("Organization unit (department) master.")
},
{
"type": "doctype",
"name": "Designation",
"description": _("Employee designation (e.g. CEO, Director etc.).")
},
{
"type": "doctype",
"name": "Salary Structure",
"description": _("Salary template master.")
},
{
"type": "doctype",
"name": "Earning Type",
"description": _("Salary components.")
},
{
"type": "doctype",
"name": "Deduction Type",
"description": _("Tax and other salary deductions.")
},
{
"type": "doctype",
"name": "Leave Allocation",
"description": _("Allocate leaves for a period.")
},
{
"type": "doctype",
"name":"Leave Type",
"description": _("Type of leaves like casual, sick etc."),
},
{
"type": "doctype",
"name": "Holiday List",
"description": _("Holiday master.")
},
{
"type": "doctype",
"name": "Leave Block List",
"description": _("Block leave applications by department.")
},
{
"type": "doctype",
"name": "Appraisal Template",
"description": _("Template for performance appraisals.")
},
{
"type": "doctype",
"name": "Expense Claim Type",
"description": _("Types of Expense Claim.")
},
{
"type": "doctype",
"name": "Jobs Email Settings",
"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Employee Leave Balance",
"doctype": "Leave Application"
},
{
"type": "report",
"is_query_report": True,
"name": "Employee Birthday",
"doctype": "Employee"
},
{
"type": "report",
"name": "Employee Information",
"doctype": "Employee"
},
{
"type": "report",
"is_query_report": True,
"name": "Monthly Salary Register",
"doctype": "Salary Slip"
},
{
"type": "report",
"is_query_report": True,
"name": "Monthly Attendance Sheet",
"doctype": "Attendance"
},
]
},
]

View File

@ -1,78 +1,79 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "BOM",
"description": _("Bill of Materials (BOM)"),
"label": _("Bill of Material")
},
{
"type": "doctype",
"name": "Production Order",
"description": _("Orders released for production."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Workstation",
"description": _("Where manufacturing operations are carried out."),
},
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "BOM",
"description": _("Bill of Materials (BOM)"),
"label": _("Bill of Material")
},
{
"type": "doctype",
"name": "Production Order",
"description": _("Orders released for production."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Workstation",
"description": _("Where manufacturing operations are carried out."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Production Planning Tool",
"description": _("Generate Material Requests (MRP) and Production Orders."),
},
{
"type": "doctype",
"name": "BOM Replace Tool",
"description": _("Replace Item / BOM in all BOMs"),
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Open Production Orders",
"doctype": "Production Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Production Orders in Progress",
"doctype": "Production Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Issued Items Against Production Order",
"doctype": "Production Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Completed Production Orders",
"doctype": "Production Order"
},
]
},
]
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Production Planning Tool",
"description": _("Generate Material Requests (MRP) and Production Orders."),
},
{
"type": "doctype",
"name": "BOM Replace Tool",
"description": _("Replace Item / BOM in all BOMs"),
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Open Production Orders",
"doctype": "Production Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Production Orders in Progress",
"doctype": "Production Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Issued Items Against Production Order",
"doctype": "Production Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Completed Production Orders",
"doctype": "Production Order"
},
]
},
]

View File

@ -1,66 +1,67 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Task",
"description": _("Project activity / task."),
},
{
"type": "doctype",
"name": "Project",
"description": _("Project master."),
},
{
"type": "doctype",
"name": "Time Log",
"description": _("Time Log for tasks."),
},
{
"type": "doctype",
"name": "Time Log Batch",
"description": _("Batch Time Logs for billing."),
},
{
"type": "doctype",
"name": "Activity Type",
"description": _("Types of activities for Time Sheets"),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "report",
"route": "Gantt/Task",
"doctype": "Task",
"name": "Gantt Chart",
"description": _("Gantt chart of all tasks.")
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Daily Time Log Summary",
"doctype": "Time Log"
},
{
"type": "report",
"is_query_report": True,
"name": "Project wise Stock Tracking",
"doctype": "Project"
},
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Task",
"description": _("Project activity / task."),
},
{
"type": "doctype",
"name": "Project",
"description": _("Project master."),
},
{
"type": "doctype",
"name": "Time Log",
"description": _("Time Log for tasks."),
},
{
"type": "doctype",
"name": "Time Log Batch",
"description": _("Batch Time Logs for billing."),
},
{
"type": "doctype",
"name": "Activity Type",
"description": _("Types of activities for Time Sheets"),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "report",
"route": "Gantt/Task",
"doctype": "Task",
"name": "Gantt Chart",
"description": _("Gantt chart of all tasks.")
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Daily Time Log Summary",
"doctype": "Time Log"
},
{
"type": "report",
"is_query_report": True,
"name": "Project wise Stock Tracking",
"doctype": "Project"
},
]
},
]

View File

@ -1,265 +1,266 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Lead",
"description": _("Database of potential customers."),
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database."),
},
{
"type": "doctype",
"name": "Opportunity",
"description": _("Potential opportunities for selling."),
},
{
"type": "doctype",
"name": "Quotation",
"description": _("Quotes to Leads or Customers."),
},
{
"type": "doctype",
"name": "Sales Order",
"description": _("Confirmed orders from Customers."),
},
{
"type": "doctype",
"name": "Contact",
"description": _("All Contacts."),
},
{
"type": "doctype",
"name": "Address",
"description": _("All Addresses."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Selling Settings",
"description": _("Default settings for selling transactions.")
},
{
"type": "doctype",
"name": "Campaign",
"description": _("Sales campaigns."),
},
{
"type": "page",
"label": _("Customer Group"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Customer Group",
"description": _("Manage Customer Group Tree."),
"doctype": "Customer Group",
},
{
"type": "page",
"label": _("Territory"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Territory",
"description": _("Manage Territory Tree."),
"doctype": "Territory",
},
{
"type": "page",
"label": _("Sales Person"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Sales Person",
"description": _("Manage Sales Person Tree."),
"doctype": "Sales Person",
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name":"Terms and Conditions",
"label": _("Terms and Conditions Template"),
"description": _("Template of terms or contract.")
},
{
"type": "doctype",
"name": "Sales Taxes and Charges Master",
"description": _("Tax template for selling transactions.")
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
{
"type": "doctype",
"name": "Sales BOM",
"description": _("Bundle items at time of sale."),
},
{
"type": "doctype",
"name": "Sales Email Settings",
"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
},
{
"type": "doctype",
"name": "Industry Type",
"description": _("Track Leads by Industry Type.")
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "page",
"name": "sales-analytics",
"label": _("Sales Analytics"),
"icon": "icon-bar-chart",
},
{
"type": "page",
"name": "sales-funnel",
"label": _("Sales Funnel"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"is_query_report": True,
"name": "Customer Acquisition and Loyalty",
"doctype": "Customer",
"icon": "icon-bar-chart",
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Lead Details",
"doctype": "Lead"
},
{
"type": "report",
"is_query_report": True,
"name": "Customer Addresses And Contacts",
"doctype": "Contact"
},
{
"type": "report",
"is_query_report": True,
"name": "Ordered Items To Be Delivered",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Person-wise Transaction Summary",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Sales History",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Territory Target Variance (Item Group-Wise)",
"route": "query-report/Territory Target Variance Item Group-Wise",
"doctype": "Territory"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Person Target Variance (Item Group-Wise)",
"route": "query-report/Sales Person Target Variance Item Group-Wise",
"doctype": "Sales Person",
},
{
"type": "report",
"is_query_report": True,
"name": "Customers Not Buying Since Long Time",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Quotation Trend",
"doctype": "Quotation"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Order Trends",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Available Stock for Packing Items",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Pending SO Items For Purchase Request",
"doctype": "Sales Order"
},
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Lead",
"description": _("Database of potential customers."),
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer database."),
},
{
"type": "doctype",
"name": "Opportunity",
"description": _("Potential opportunities for selling."),
},
{
"type": "doctype",
"name": "Quotation",
"description": _("Quotes to Leads or Customers."),
},
{
"type": "doctype",
"name": "Sales Order",
"description": _("Confirmed orders from Customers."),
},
{
"type": "doctype",
"name": "Contact",
"description": _("All Contacts."),
},
{
"type": "doctype",
"name": "Address",
"description": _("All Addresses."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "SMS Center",
"description":_("Send mass SMS to your contacts"),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Selling Settings",
"description": _("Default settings for selling transactions.")
},
{
"type": "doctype",
"name": "Campaign",
"description": _("Sales campaigns."),
},
{
"type": "page",
"label": _("Customer Group"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Customer Group",
"description": _("Manage Customer Group Tree."),
"doctype": "Customer Group",
},
{
"type": "page",
"label": _("Territory"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Territory",
"description": _("Manage Territory Tree."),
"doctype": "Territory",
},
{
"type": "page",
"label": _("Sales Person"),
"name": "Sales Browser",
"icon": "icon-sitemap",
"link": "Sales Browser/Sales Person",
"description": _("Manage Sales Person Tree."),
"doctype": "Sales Person",
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name":"Terms and Conditions",
"label": _("Terms and Conditions Template"),
"description": _("Template of terms or contract.")
},
{
"type": "doctype",
"name": "Sales Taxes and Charges Master",
"description": _("Tax template for selling transactions.")
},
{
"type": "doctype",
"name": "Shipping Rule",
"description": _("Rules for adding shipping costs.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
{
"type": "doctype",
"name": "Pricing Rule",
"description": _("Rules for applying pricing and discount.")
},
{
"type": "doctype",
"name": "Sales BOM",
"description": _("Bundle items at time of sale."),
},
{
"type": "doctype",
"name": "Sales Email Settings",
"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
},
{
"type": "doctype",
"name": "Industry Type",
"description": _("Track Leads by Industry Type.")
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "page",
"name": "sales-analytics",
"label": _("Sales Analytics"),
"icon": "icon-bar-chart",
},
{
"type": "page",
"name": "sales-funnel",
"label": _("Sales Funnel"),
"icon": "icon-bar-chart",
},
{
"type": "report",
"is_query_report": True,
"name": "Customer Acquisition and Loyalty",
"doctype": "Customer",
"icon": "icon-bar-chart",
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Lead Details",
"doctype": "Lead"
},
{
"type": "report",
"is_query_report": True,
"name": "Customer Addresses And Contacts",
"doctype": "Contact"
},
{
"type": "report",
"is_query_report": True,
"name": "Ordered Items To Be Delivered",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Person-wise Transaction Summary",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Sales History",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Territory Target Variance (Item Group-Wise)",
"route": "query-report/Territory Target Variance Item Group-Wise",
"doctype": "Territory"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Person Target Variance (Item Group-Wise)",
"route": "query-report/Sales Person Target Variance Item Group-Wise",
"doctype": "Sales Person",
},
{
"type": "report",
"is_query_report": True,
"name": "Customers Not Buying Since Long Time",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Quotation Trend",
"doctype": "Quotation"
},
{
"type": "report",
"is_query_report": True,
"name": "Sales Order Trends",
"doctype": "Sales Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Available Stock for Packing Items",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Pending SO Items For Purchase Request",
"doctype": "Sales Order"
},
]
},
]

View File

@ -1,129 +1,127 @@
from frappe import _
from frappe.widgets.moduleview import add_setup_section
data = [
{
"label": _("Settings"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Global Defaults",
"label": _("Global Settings"),
"description": _("Set Default Values like Company, Currency, Current Fiscal Year, etc."),
"hide_count": True
}
]
},
{
"label": _("Printing and Branding"),
"icon": "icon-print",
"items": [
{
"type": "doctype",
"name": "Letter Head",
"description": _("Letter Heads for print templates.")
},
{
"type": "doctype",
"name": "Print Heading",
"description": _("Titles for print templates e.g. Proforma Invoice.")
},
{
"type": "doctype",
"name": "Terms and Conditions",
"description": _("Standard contract terms for Sales or Purchase.")
},
]
},
{
"label": _("Customize"),
"icon": "icon-glass",
"items": [
{
"type": "doctype",
"name": "Features Setup",
"description": _("Show / Hide features like Serial Nos, POS etc.")
},
{
"type": "doctype",
"name": "Authorization Rule",
"description": _("Create rules to restrict transactions based on values.")
},
{
"type": "doctype",
"name": "Notification Control",
"label": _("Email Notifications"),
"description": _("Automatically compose message on submission of transactions.")
}
]
},
{
"label": _("Email"),
"icon": "icon-envelope",
"items": [
{
"type": "doctype",
"name": "Email Digest",
"description": _("Create and manage daily, weekly and monthly email digests.")
},
{
"type": "doctype",
"name": "Support Email Settings",
"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
},
{
"type": "doctype",
"name": "Sales Email Settings",
"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
},
{
"type": "doctype",
"name": "Jobs Email Settings",
"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
},
]
},
{
"label": _("Masters"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Company",
"description": _("Company (not Customer or Supplier) master.")
},
{
"type": "doctype",
"name": "Item",
"description": _("Item master.")
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer master.")
},
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier master.")
},
{
"type": "doctype",
"name": "Contact",
"description": _("Contact master.")
},
{
"type": "doctype",
"name": "Address",
"description": _("Address master.")
},
]
},
]
def get_data():
out = list(data)
data = [
{
"label": _("Settings"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Global Defaults",
"label": _("Global Settings"),
"description": _("Set Default Values like Company, Currency, Current Fiscal Year, etc."),
"hide_count": True
}
]
},
{
"label": _("Printing and Branding"),
"icon": "icon-print",
"items": [
{
"type": "doctype",
"name": "Letter Head",
"description": _("Letter Heads for print templates.")
},
{
"type": "doctype",
"name": "Print Heading",
"description": _("Titles for print templates e.g. Proforma Invoice.")
},
{
"type": "doctype",
"name": "Terms and Conditions",
"description": _("Standard contract terms for Sales or Purchase.")
},
]
},
{
"label": _("Customize"),
"icon": "icon-glass",
"items": [
{
"type": "doctype",
"name": "Features Setup",
"description": _("Show / Hide features like Serial Nos, POS etc.")
},
{
"type": "doctype",
"name": "Authorization Rule",
"description": _("Create rules to restrict transactions based on values.")
},
{
"type": "doctype",
"name": "Notification Control",
"label": _("Email Notifications"),
"description": _("Automatically compose message on submission of transactions.")
}
]
},
{
"label": _("Email"),
"icon": "icon-envelope",
"items": [
{
"type": "doctype",
"name": "Email Digest",
"description": _("Create and manage daily, weekly and monthly email digests.")
},
{
"type": "doctype",
"name": "Support Email Settings",
"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
},
{
"type": "doctype",
"name": "Sales Email Settings",
"description": _("Setup incoming server for sales email id. (e.g. sales@example.com)")
},
{
"type": "doctype",
"name": "Jobs Email Settings",
"description": _("Setup incoming server for jobs email id. (e.g. jobs@example.com)")
},
]
},
{
"label": _("Masters"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Company",
"description": _("Company (not Customer or Supplier) master.")
},
{
"type": "doctype",
"name": "Item",
"description": _("Item master.")
},
{
"type": "doctype",
"name": "Customer",
"description": _("Customer master.")
},
{
"type": "doctype",
"name": "Supplier",
"description": _("Supplier master.")
},
{
"type": "doctype",
"name": "Contact",
"description": _("Contact master.")
},
{
"type": "doctype",
"name": "Address",
"description": _("Address master.")
},
]
},
]
for module, label, icon in (
("accounts", _("Accounts"), "icon-money"),
@ -133,6 +131,6 @@ def get_data():
("hr", _("Human Resources"), "icon-group"),
("support", _("Support"), "icon-phone")):
add_setup_section(out, "erpnext", module, label, icon)
add_setup_section(data, "erpnext", module, label, icon)
return out
return data

View File

@ -1,263 +1,264 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Material Request",
"description": _("Requests for items."),
},
{
"type": "doctype",
"name": "Stock Entry",
"description": _("Record item movement."),
},
{
"type": "doctype",
"name": "Delivery Note",
"description": _("Shipments to customers."),
},
{
"type": "doctype",
"name": "Purchase Receipt",
"description": _("Goods received from Suppliers."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Warehouse",
"description": _("Where items are stored."),
},
{
"type": "doctype",
"name": "Serial No",
"description": _("Single unit of an Item."),
},
{
"type": "doctype",
"name": "Batch",
"description": _("Batch (lot) of an Item."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Stock Reconciliation",
"description": _("Upload stock balance via csv.")
},
{
"type": "doctype",
"name": "Installation Note",
"description": _("Installation record for a Serial No.")
},
{
"type": "doctype",
"name": "Packing Slip",
"description": _("Split Delivery Note into packages.")
},
{
"type": "doctype",
"name": "Quality Inspection",
"description": _("Incoming quality inspection.")
},
{
"type": "doctype",
"name": "Landed Cost Wizard",
"description": _("Distribute transport overhead across items."),
},
{
"type": "doctype",
"name": "Stock UOM Replace Utility",
"description": _("Change UOM for an Item."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Stock Settings",
"description": _("Default settings for stock transactions.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name": "UOM",
"label": _("Unit of Measure") + " (UOM)",
"description": _("e.g. Kg, Unit, Nos, m")
},
{
"type": "doctype",
"name": "Warehouse",
"description": _("Warehouses.")
},
{
"type": "doctype",
"name": "Brand",
"description": _("Brand master.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Stock Ledger",
"doctype": "Item",
},
{
"type": "page",
"name": "stock-balance",
"label": _("Stock Balance"),
"icon": "icon-table",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Projected Qty",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Ageing",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Price List Rate",
"doctype": "Item Price",
},
{
"type": "page",
"name": "stock-analytics",
"label": _("Stock Analytics"),
"icon": "icon-bar-chart"
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Ordered Items To Be Delivered",
"doctype": "Delivery Note"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Order Items To Be Received",
"doctype": "Purchase Receipt"
},
{
"type": "report",
"name": "Item Shortage Report",
"route": "Report/Bin/Item Shortage Report",
"doctype": "Purchase Receipt"
},
{
"type": "report",
"is_query_report": True,
"name": "Serial No Service Contract Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Status",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Warranty Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase In Transit",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Requested Items To Be Transferred",
"doctype": "Material Request"
},
{
"type": "report",
"is_query_report": True,
"name": "Batch-Wise Balance History",
"doctype": "Batch"
},
{
"type": "report",
"is_query_report": True,
"name": "Warehouse-Wise Stock Balance",
"doctype": "Warehouse"
},
{
"type": "report",
"is_query_report": True,
"name": "Item Prices",
"doctype": "Price List"
},
{
"type": "report",
"is_query_report": True,
"name": "Itemwise Recommended Reorder Level",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Delivery Note Trends",
"doctype": "Delivery Note"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Receipt Trends",
"doctype": "Purchase Receipt"
},
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Material Request",
"description": _("Requests for items."),
},
{
"type": "doctype",
"name": "Stock Entry",
"description": _("Record item movement."),
},
{
"type": "doctype",
"name": "Delivery Note",
"description": _("Shipments to customers."),
},
{
"type": "doctype",
"name": "Purchase Receipt",
"description": _("Goods received from Suppliers."),
},
{
"type": "doctype",
"name": "Item",
"description": _("All Products or Services."),
},
{
"type": "doctype",
"name": "Warehouse",
"description": _("Where items are stored."),
},
{
"type": "doctype",
"name": "Serial No",
"description": _("Single unit of an Item."),
},
{
"type": "doctype",
"name": "Batch",
"description": _("Batch (lot) of an Item."),
},
]
},
{
"label": _("Tools"),
"icon": "icon-wrench",
"items": [
{
"type": "doctype",
"name": "Stock Reconciliation",
"description": _("Upload stock balance via csv.")
},
{
"type": "doctype",
"name": "Installation Note",
"description": _("Installation record for a Serial No.")
},
{
"type": "doctype",
"name": "Packing Slip",
"description": _("Split Delivery Note into packages.")
},
{
"type": "doctype",
"name": "Quality Inspection",
"description": _("Incoming quality inspection.")
},
{
"type": "doctype",
"name": "Landed Cost Wizard",
"description": _("Distribute transport overhead across items."),
},
{
"type": "doctype",
"name": "Stock UOM Replace Utility",
"description": _("Change UOM for an Item."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Stock Settings",
"description": _("Default settings for stock transactions.")
},
{
"type": "page",
"name": "Sales Browser",
"icon": "icon-sitemap",
"label": _("Item Group Tree"),
"link": "Sales Browser/Item Group",
"description": _("Tree of Item Groups."),
"doctype": "Item Group",
},
{
"type": "doctype",
"name": "UOM",
"label": _("Unit of Measure") + " (UOM)",
"description": _("e.g. Kg, Unit, Nos, m")
},
{
"type": "doctype",
"name": "Warehouse",
"description": _("Warehouses.")
},
{
"type": "doctype",
"name": "Brand",
"description": _("Brand master.")
},
{
"type": "doctype",
"name": "Price List",
"description": _("Price List master.")
},
{
"type": "doctype",
"name": "Item Price",
"description": _("Multiple Item prices."),
"route": "Report/Item Price"
},
]
},
{
"label": _("Main Reports"),
"icon": "icon-table",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Stock Ledger",
"doctype": "Item",
},
{
"type": "page",
"name": "stock-balance",
"label": _("Stock Balance"),
"icon": "icon-table",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Projected Qty",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Stock Ageing",
"doctype": "Item",
},
{
"type": "report",
"is_query_report": True,
"name": "Item-wise Price List Rate",
"doctype": "Item Price",
},
{
"type": "page",
"name": "stock-analytics",
"label": _("Stock Analytics"),
"icon": "icon-bar-chart"
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "report",
"is_query_report": True,
"name": "Ordered Items To Be Delivered",
"doctype": "Delivery Note"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Order Items To Be Received",
"doctype": "Purchase Receipt"
},
{
"type": "report",
"name": "Item Shortage Report",
"route": "Report/Bin/Item Shortage Report",
"doctype": "Purchase Receipt"
},
{
"type": "report",
"is_query_report": True,
"name": "Serial No Service Contract Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Status",
"doctype": "Serial No"
},
{
"type": "report",
"name": "Serial No Warranty Expiry",
"doctype": "Serial No"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase In Transit",
"doctype": "Purchase Order"
},
{
"type": "report",
"is_query_report": True,
"name": "Requested Items To Be Transferred",
"doctype": "Material Request"
},
{
"type": "report",
"is_query_report": True,
"name": "Batch-Wise Balance History",
"doctype": "Batch"
},
{
"type": "report",
"is_query_report": True,
"name": "Warehouse-Wise Stock Balance",
"doctype": "Warehouse"
},
{
"type": "report",
"is_query_report": True,
"name": "Item Prices",
"doctype": "Price List"
},
{
"type": "report",
"is_query_report": True,
"name": "Itemwise Recommended Reorder Level",
"doctype": "Item"
},
{
"type": "report",
"is_query_report": True,
"name": "Delivery Note Trends",
"doctype": "Delivery Note"
},
{
"type": "report",
"is_query_report": True,
"name": "Purchase Receipt Trends",
"doctype": "Purchase Receipt"
},
]
},
]

View File

@ -1,74 +1,75 @@
from frappe import _
data = [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Support Ticket",
"description": _("Support queries from customers."),
},
{
"type": "doctype",
"name": "Customer Issue",
"description": _("Customer Issue against Serial No."),
},
{
"type": "doctype",
"name": "Maintenance Schedule",
"description": _("Plan for maintenance visits."),
},
{
"type": "doctype",
"name": "Maintenance Visit",
"description": _("Visit report for maintenance call."),
},
{
"type": "doctype",
"name": "Newsletter",
"description": _("Newsletters to contacts, leads."),
},
{
"type": "doctype",
"name": "Communication",
"description": _("Communication log."),
},
{
"type": "doctype",
"name": "Serial No",
"description": _("Single unit of an Item."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Support Email Settings",
"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "page",
"name": "support-analytics",
"label": _("Support Analytics"),
"icon": "icon-bar-chart"
},
{
"type": "report",
"name": "Maintenance Schedules",
"is_query_report": True,
"doctype": "Maintenance Schedule"
},
]
},
]
def get_data():
return [
{
"label": _("Documents"),
"icon": "icon-star",
"items": [
{
"type": "doctype",
"name": "Support Ticket",
"description": _("Support queries from customers."),
},
{
"type": "doctype",
"name": "Customer Issue",
"description": _("Customer Issue against Serial No."),
},
{
"type": "doctype",
"name": "Maintenance Schedule",
"description": _("Plan for maintenance visits."),
},
{
"type": "doctype",
"name": "Maintenance Visit",
"description": _("Visit report for maintenance call."),
},
{
"type": "doctype",
"name": "Newsletter",
"description": _("Newsletters to contacts, leads."),
},
{
"type": "doctype",
"name": "Communication",
"description": _("Communication log."),
},
{
"type": "doctype",
"name": "Serial No",
"description": _("Single unit of an Item."),
},
]
},
{
"label": _("Setup"),
"icon": "icon-cog",
"items": [
{
"type": "doctype",
"name": "Support Email Settings",
"description": _("Setup incoming server for support email id. (e.g. support@example.com)")
},
]
},
{
"label": _("Standard Reports"),
"icon": "icon-list",
"items": [
{
"type": "page",
"name": "support-analytics",
"label": _("Support Analytics"),
"icon": "icon-bar-chart"
},
{
"type": "report",
"name": "Maintenance Schedules",
"is_query_report": True,
"doctype": "Maintenance Schedule"
},
]
},
]

View File

@ -1,302 +1,88 @@
{
"_last_update": null,
"_user_tags": null,
"allow_attach": null,
"allow_copy": null,
"allow_email": null,
"allow_import": null,
"allow_print": null,
"allow_rename": null,
"allow_trash": null,
"allow_rename": 1,
"autoname": "field:party_type_name",
"change_log": null,
"client_script": null,
"client_script_core": null,
"client_string": null,
"colour": null,
"creation": "2014-04-07 12:32:18.010384",
"custom": null,
"default_print_format": null,
"description": null,
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"dt_template": null,
"fields": [
{
"allow_on_submit": null,
"default": null,
"depends_on": null,
"description": null,
"fieldname": "party_type_name",
"fieldtype": "Data",
"hidden": null,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": 1,
"label": "Party Type Name",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": null,
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": null,
"report_hide": null,
"reqd": 1,
"search_index": null,
"set_only_once": null,
"trigger": null,
"width": null
"reqd": 1
},
{
"allow_on_submit": null,
"default": null,
"depends_on": null,
"description": null,
"fieldname": "parent_party_type",
"fieldtype": "Link",
"hidden": null,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": null,
"label": "Parent Party Type",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": "Party Type",
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": null,
"report_hide": null,
"reqd": null,
"search_index": null,
"set_only_once": null,
"trigger": null,
"width": null
"permlevel": 0
},
{
"allow_on_submit": null,
"default": "Yes",
"depends_on": null,
"description": null,
"fieldname": "allow_children",
"fieldtype": "Select",
"hidden": null,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": null,
"label": "Allow Children",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": "Yes\nNo",
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": null,
"report_hide": null,
"reqd": null,
"search_index": null,
"set_only_once": null,
"trigger": null,
"width": null
"permlevel": 0
},
{
"allow_on_submit": null,
"default": null,
"depends_on": null,
"description": null,
"fieldname": "default_price_list",
"fieldtype": "Link",
"hidden": null,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": null,
"ignore_restrictions": 1,
"label": "Default Price List",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": "Price List",
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": null,
"report_hide": null,
"reqd": null,
"search_index": null,
"set_only_once": null,
"trigger": null,
"width": null
"permlevel": 0
},
{
"allow_on_submit": null,
"default": null,
"depends_on": null,
"description": null,
"fieldname": "lft",
"fieldtype": "Int",
"hidden": 1,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": null,
"label": "LFT",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": null,
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": 1,
"report_hide": null,
"reqd": null,
"search_index": 1,
"set_only_once": null,
"trigger": null,
"width": null
"search_index": 1
},
{
"allow_on_submit": null,
"default": null,
"depends_on": null,
"description": null,
"fieldname": "rgt",
"fieldtype": "Int",
"hidden": 1,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": null,
"label": "RGT",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": null,
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": 1,
"report_hide": null,
"reqd": null,
"search_index": 1,
"set_only_once": null,
"trigger": null,
"width": null
"search_index": 1
},
{
"allow_on_submit": null,
"default": null,
"depends_on": null,
"description": null,
"fieldname": "old_parent",
"fieldtype": "Data",
"hidden": 1,
"ignore_restrictions": null,
"in_filter": null,
"in_list_view": null,
"label": "Old Parent",
"no_column": null,
"no_copy": null,
"oldfieldname": null,
"oldfieldtype": null,
"options": null,
"permlevel": 0,
"print_hide": null,
"print_width": null,
"read_only": 1,
"report_hide": null,
"reqd": null,
"search_index": null,
"set_only_once": null,
"trigger": null,
"width": null
"read_only": 1
}
],
"hide_heading": null,
"hide_toolbar": null,
"icon": null,
"idx": null,
"in_create": null,
"in_dialog": null,
"is_submittable": null,
"is_transaction_doc": null,
"issingle": null,
"istable": null,
"max_attachments": null,
"menu_index": null,
"modified": "2014-04-07 12:54:46.254776",
"modified": "2014-05-07 05:18:29.669293",
"modified_by": "Administrator",
"module": "Contacts",
"name": "Party Type",
"name_case": null,
"owner": "Administrator",
"parent": null,
"parent_node": null,
"parentfield": null,
"parenttype": null,
"permissions": [
{
"amend": null,
"cancel": null,
"create": 1,
"delete": null,
"email": null,
"export": null,
"import": null,
"match": null,
"permlevel": 0,
"print": null,
"read": 1,
"report": null,
"restrict": null,
"restricted": null,
"role": "Sales User",
"submit": null,
"write": 1
},
{
"amend": null,
"cancel": null,
"create": 1,
"delete": null,
"email": null,
"export": null,
"import": null,
"match": null,
"permlevel": 0,
"print": null,
"read": 1,
"report": null,
"restrict": null,
"restricted": null,
"role": "Purchase User",
"submit": null,
"write": 1
}
],
"plugin": null,
"print_outline": null,
"read_only": null,
"read_only_onload": null,
"search_fields": null,
"section_style": null,
"server_code": null,
"server_code_compiled": null,
"server_code_core": null,
"server_code_error": null,
"show_in_menu": null,
"smallicon": null,
"subject": null,
"tag_fields": null,
"title_field": null,
"use_template": null,
"version": null
]
}

View File

@ -299,9 +299,9 @@ class AccountsController(TransactionBase):
key = item.item_code or item.item_name
if tax.item_wise_tax_detail.get(key):
item_wise_tax_amount = tax.item_wise_tax_detail[key][1] + current_tax_amount
tax.item_wise_tax_detail[key] = [tax_rate, item_wise_tax_amount]
tax.item_wise_tax_detail[key] = [tax_rate,item_wise_tax_amount]
else:
tax.item_wise_tax_detail[key] = [tax_rate, current_tax_amount]
tax.item_wise_tax_detail[key] = [tax_rate,current_tax_amount]
return current_tax_amount
@ -316,7 +316,7 @@ class AccountsController(TransactionBase):
def _cleanup(self):
for tax in self.tax_doclist:
tax.item_wise_tax_detail = json.dumps(tax.item_wise_tax_detail)
tax.item_wise_tax_detail = json.dumps(tax.item_wise_tax_detail, separators=(',', ':'))
def _set_in_company_currency(self, item, print_field, base_field):
"""set values in base currency"""

View File

@ -200,48 +200,82 @@ class BuyingController(StockController):
and not self.supplier_warehouse:
frappe.throw(_("Supplier Warehouse mandatory for sub-contracted Purchase Receipt"))
def update_raw_materials_supplied(self, raw_material_table):
self.set(raw_material_table, [])
def create_raw_materials_supplied(self, raw_material_table):
if self.is_subcontracted=="Yes":
parent_items = []
rm_supplied_idx = 0
for item in self.get(self.fname):
if self.doctype == "Purchase Receipt":
item.rm_supp_cost = 0.0
if item.item_code in self.sub_contracted_items:
self.add_bom_items(item, raw_material_table)
self.update_raw_materials_supplied(item, raw_material_table, rm_supplied_idx)
if [item.item_code, item.name] not in parent_items:
parent_items.append([item.item_code, item.name])
self.cleanup_raw_materials_supplied(parent_items, raw_material_table)
elif self.doctype == "Purchase Receipt":
for item in self.get(self.fname):
item.rm_supp_cost = 0.0
def add_bom_items(self, d, raw_material_table):
bom_items = self.get_items_from_default_bom(d.item_code)
def update_raw_materials_supplied(self, item, raw_material_table, rm_supplied_idx):
bom_items = self.get_items_from_default_bom(item.item_code)
raw_materials_cost = 0
for item in bom_items:
required_qty = flt(item.qty_consumed_per_unit) * flt(d.qty) * flt(d.conversion_factor)
rm_doclist = {
"doctype": self.doctype + " Item Supplied",
"reference_name": d.name,
"bom_detail_no": item.name,
"main_item_code": d.item_code,
"rm_item_code": item.item_code,
"stock_uom": item.stock_uom,
"required_qty": required_qty,
"conversion_factor": d.conversion_factor,
"rate": item.rate,
"amount": required_qty * flt(item.rate)
}
for bom_item in bom_items:
# check if exists
exists = 0
for d in self.get(raw_material_table):
if d.main_item_code == item.item_code and d.rm_item_code == bom_item.item_code \
and d.reference_name == item.name:
rm, exists = d, 1
break
if not exists:
rm = self.append(raw_material_table, {})
required_qty = flt(bom_item.qty_consumed_per_unit) * flt(item.qty) * flt(item.conversion_factor)
rm.reference_name = item.name
rm.bom_detail_no = bom_item.name
rm.main_item_code = item.item_code
rm.rm_item_code = bom_item.item_code
rm.stock_uom = bom_item.stock_uom
rm.required_qty = required_qty
rm.conversion_factor = item.conversion_factor
rm.rate = bom_item.rate
rm.amount = required_qty * flt(bom_item.rate)
rm.idx = rm_supplied_idx
if self.doctype == "Purchase Receipt":
rm_doclist.update({
"consumed_qty": required_qty,
"description": item.description,
})
rm.consumed_qty = required_qty
rm.description = bom_item.description
if item.batch_no and not rm.batch_no:
rm.batch_no = item.batch_no
self.append(raw_material_table, rm_doclist)
rm_supplied_idx += 1
raw_materials_cost += required_qty * flt(item.rate)
raw_materials_cost += required_qty * flt(bom_item.rate)
if self.doctype == "Purchase Receipt":
d.rm_supp_cost = raw_materials_cost
item.rm_supp_cost = raw_materials_cost
def cleanup_raw_materials_supplied(self, parent_items, raw_material_table):
"""Remove all those child items which are no longer present in main item table"""
delete_list = []
for d in self.get(raw_material_table):
if [d.main_item_code, d.reference_name] not in parent_items:
# mark for deletion from doclist
delete_list.append([d.main_item_code, d.reference_name])
# delete from doclist
if delete_list:
rm_supplied_details = self.get(raw_material_table)
self.set(raw_material_table, [])
for d in rm_supplied_details:
if d not in delete_list:
self.append(raw_material_table, d)
def get_items_from_default_bom(self, item_code):
bom_items = frappe.db.sql("""select t2.item_code, t2.qty_consumed_per_unit,

View File

@ -20,7 +20,7 @@ def get_filters_cond(doctype, filters, conditions):
query = DatabaseQuery(doctype)
query.filters = flt
query.conditions = conditions
query.build_filter_conditions()
query.build_filter_conditions(flt, conditions)
cond = ' and ' + ' and '.join(query.conditions)
else:

View File

@ -88,6 +88,7 @@ class StatusUpdater(Document):
def on_communication(self):
self.communication_set = True
self.get("communications").sort(key=lambda d: d.creation)
self.set_status(update=True)
del self.communication_set

View File

@ -83,6 +83,9 @@ def make_feed(feedtype, doctype, name, owner, subject, color):
def update_feed(doc, method=None):
"adds a new feed"
if frappe.flags.in_patch:
return
if method in ['on_update', 'on_submit']:
subject, color = feed_dict.get(doc.doctype, [None, None])
if subject:

View File

@ -5,7 +5,7 @@ cur_frm.add_fetch('employee', 'company', 'company');
cur_frm.add_fetch('employee', 'employee_name', 'employee_name');
cur_frm.cscript.onload = function(doc,cdt,cdn){
if(!doc.status)
if(!doc.status)
set_multiple(cdt,cdn,{status:'Draft'});
if(doc.amended_from && doc.__islocal) {
doc.status = "Draft";
@ -27,6 +27,7 @@ cur_frm.cscript.kra_template = function(doc, dt, dn) {
frappe.model.map_current_doc({
method: "erpnext.hr.doctype.appraisal.appraisal.fetch_appraisal_template",
source_name: cur_frm.doc.kra_template,
frm: cur_frm
});
}
@ -71,5 +72,5 @@ cur_frm.cscript.calculate_total = function(doc,cdt,cdn){
}
cur_frm.fields_dict.employee.get_query = function(doc,cdt,cdn) {
return{ query: "erpnext.controllers.queries.employee_query" }
}
return{ query: "erpnext.controllers.queries.employee_query" }
}

View File

@ -1,6 +1,6 @@
{
"autoname": "APRSL.#####",
"creation": "2013-01-10 16:34:12.000000",
"creation": "2013-01-10 16:34:12",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -157,23 +157,23 @@
},
{
"fieldname": "company",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "link:Company",
"options": "Company",
"permlevel": 0,
"reqd": 1
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
@ -196,7 +196,7 @@
"icon": "icon-thumbs-up",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-22 16:05:34.000000",
"modified": "2014-05-09 02:16:37.334857",
"modified_by": "Administrator",
"module": "HR",
"name": "Appraisal",
@ -245,5 +245,7 @@
"write": 1
}
],
"search_fields": "status, employee, employee_name"
"search_fields": "status, employee, employee_name",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,7 +1,7 @@
{
"allow_import": 1,
"autoname": "naming_series:",
"creation": "2013-01-10 16:34:13.000000",
"creation": "2013-01-10 16:34:13",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
@ -21,7 +21,7 @@
"no_copy": 1,
"oldfieldname": "naming_series",
"oldfieldtype": "Select",
"options": "ATT",
"options": "ATT-",
"permlevel": 0,
"reqd": 1
},
@ -94,23 +94,23 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
{
"fieldname": "company",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "link:Company",
"options": "Company",
"permlevel": 0,
"reqd": 1
},
@ -129,7 +129,7 @@
"icon": "icon-ok",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-20 17:48:23.000000",
"modified": "2014-05-09 02:16:37.761770",
"modified_by": "Administrator",
"module": "HR",
"name": "Attendance",
@ -175,5 +175,7 @@
"write": 1
}
],
"search_fields": "employee, employee_name, att_date, status"
"search_fields": "employee, employee_name, att_date, status",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -2,23 +2,15 @@
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:branch",
"creation": "2013-01-10 16:34:13.000000",
"creation": "2013-01-10 16:34:13",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "branch",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Branch",
"oldfieldname": "branch",
"oldfieldtype": "Data",
@ -28,7 +20,7 @@
],
"icon": "icon-code-fork",
"idx": 1,
"modified": "2014-01-20 17:48:26.000000",
"modified": "2014-05-07 06:39:31.752490",
"modified_by": "Administrator",
"module": "HR",
"name": "Branch",

View File

@ -2,23 +2,15 @@
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:deduction_name",
"creation": "2013-01-22 16:50:30.000000",
"creation": "2013-01-22 16:50:30",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "deduction_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Name",
"oldfieldname": "deduction_name",
"oldfieldtype": "Data",
@ -28,6 +20,7 @@
{
"fieldname": "description",
"fieldtype": "Small Text",
"in_list_view": 1,
"label": "Description",
"oldfieldname": "description",
"oldfieldtype": "Small Text",
@ -37,7 +30,7 @@
],
"icon": "icon-flag",
"idx": 1,
"modified": "2014-01-20 17:48:34.000000",
"modified": "2014-05-07 06:39:38.154345",
"modified_by": "Administrator",
"module": "HR",
"name": "Deduction Type",

View File

@ -1,49 +1,52 @@
{
"allow_import": 1,
"autoname": "field:department_name",
"creation": "2013-02-05 11:48:26.000000",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:department_name",
"creation": "2013-02-05 11:48:26",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "department_name",
"fieldtype": "Data",
"label": "Department",
"oldfieldname": "department_name",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "department_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Department",
"oldfieldname": "department_name",
"oldfieldtype": "Data",
"permlevel": 0,
"reqd": 1
},
},
{
"description": "Days for which Holidays are blocked for this department.",
"fieldname": "leave_block_list",
"fieldtype": "Link",
"label": "Leave Block List",
"options": "Leave Block List",
"description": "Days for which Holidays are blocked for this department.",
"fieldname": "leave_block_list",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Leave Block List",
"options": "Leave Block List",
"permlevel": 0
}
],
"icon": "icon-sitemap",
"idx": 1,
"modified": "2014-01-20 17:48:38.000000",
"modified_by": "Administrator",
"module": "HR",
"name": "Department",
"owner": "Administrator",
],
"icon": "icon-sitemap",
"idx": 1,
"modified": "2014-05-07 06:39:39.931091",
"modified_by": "Administrator",
"module": "HR",
"name": "Department",
"owner": "Administrator",
"permissions": [
{
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 0,
"write": 1
}
]
}
}

View File

@ -1,42 +1,43 @@
{
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:designation_name",
"creation": "2013-01-10 16:34:13.000000",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:designation_name",
"creation": "2013-01-10 16:34:13",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "designation_name",
"fieldtype": "Data",
"label": "Designation",
"oldfieldname": "designation_name",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "designation_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Designation",
"oldfieldname": "designation_name",
"oldfieldtype": "Data",
"permlevel": 0,
"reqd": 1
}
],
"icon": "icon-bookmark",
"idx": 1,
"modified": "2014-01-20 17:48:38.000000",
"modified_by": "Administrator",
"module": "HR",
"name": "Designation",
"owner": "Administrator",
],
"icon": "icon-bookmark",
"idx": 1,
"modified": "2014-05-07 06:39:38.265440",
"modified_by": "Administrator",
"module": "HR",
"name": "Designation",
"owner": "Administrator",
"permissions": [
{
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 0,
"write": 1
}
]
}
}

View File

@ -2,23 +2,15 @@
"allow_import": 1,
"allow_rename": 1,
"autoname": "field:earning_name",
"creation": "2013-01-24 11:03:32.000000",
"creation": "2013-01-24 11:03:32",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "earning_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Name",
"oldfieldname": "earning_name",
"oldfieldtype": "Data",
@ -28,6 +20,7 @@
{
"fieldname": "description",
"fieldtype": "Small Text",
"in_list_view": 1,
"label": "Description",
"oldfieldname": "description",
"oldfieldtype": "Small Text",
@ -38,6 +31,7 @@
{
"fieldname": "taxable",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Taxable",
"oldfieldname": "taxable",
"oldfieldtype": "Select",
@ -50,6 +44,7 @@
"fieldname": "exemption_limit",
"fieldtype": "Float",
"hidden": 0,
"in_list_view": 1,
"label": "Exemption Limit",
"oldfieldname": "exemption_limit",
"oldfieldtype": "Currency",
@ -58,7 +53,7 @@
],
"icon": "icon-flag",
"idx": 1,
"modified": "2014-01-20 17:48:38.000000",
"modified": "2014-05-07 06:39:38.414922",
"modified_by": "Administrator",
"module": "HR",
"name": "Earning Type",

View File

@ -12,17 +12,16 @@ erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({
onload: function() {
this.setup_leave_approver_select();
this.frm.toggle_display(["esic_card_no", "gratuity_lic_id", "pan_number", "pf_number"],
frappe.boot.sysdefaults.country==="India");
if(this.frm.doc.__islocal) this.frm.set_value("employee_name", "");
},
refresh: function() {
var me = this;
erpnext.toggle_naming_series();
if(!this.frm.doc.__islocal && !this.frm.doc.salary_structure_exists) {
cur_frm.add_custom_button(__('Make Salary Structure'), function() {
me.make_salary_structure(this); });
if(!this.frm.doc.__islocal && this.frm.doc.__onload &&
!this.frm.doc.__onload.salary_structure_exists) {
cur_frm.add_custom_button(__('Make Salary Structure'), function() {
me.make_salary_structure(this); });
}
},
@ -60,7 +59,7 @@ erpnext.hr.EmployeeController = frappe.ui.form.Controller.extend({
make_salary_structure: function(btn) {
frappe.model.open_mapped_doc({
method: "erpnext.hr.doctype.employee.employee.make_salary_structure",
source_name: cur_frm.doc.name
frm: cur_frm
});
}
});

File diff suppressed because it is too large Load Diff

View File

@ -14,17 +14,9 @@ from frappe.model.mapper import get_mapped_doc
class Employee(Document):
def onload(self):
self.salary_structure_exists = frappe.db.get_value("Salary Structure",
self.get("__onload").salary_structure_exists = frappe.db.get_value("Salary Structure",
{"employee": self.name, "is_active": "Yes", "docstatus": ["!=", 2]})
def as_dict(self, no_nulls=False):
doc = super(Employee, self).as_dict(no_nulls)
if hasattr(self, "salary_structure_exists"):
doc["salary_structure_exists"] = self.salary_structure_exists
return doc
def autoname(self):
naming_method = frappe.db.get_value("HR Settings", None, "emp_created_by")
if not naming_method:
@ -129,12 +121,6 @@ class Employee(Document):
if self.date_of_birth and self.date_of_joining and getdate(self.date_of_birth) >= getdate(self.date_of_joining):
throw(_("Date of Joining must be greater than Date of Birth"))
elif self.scheduled_confirmation_date and self.date_of_joining and (getdate(self.scheduled_confirmation_date) < getdate(self.date_of_joining)):
throw(_("Scheduled Confirmation Date must be greater than Date of Joining"))
elif self.final_confirmation_date and self.date_of_joining and (getdate(self.final_confirmation_date) < getdate(self.date_of_joining)):
throw(_("Final Confirmation Date must be greater than Date of Joining"))
elif self.date_of_retirement and self.date_of_joining and (getdate(self.date_of_retirement) <= getdate(self.date_of_joining)):
throw(_("Date Of Retirement must be greater than Date of Joining"))
@ -155,6 +141,8 @@ class Employee(Document):
throw(_("Please enter relieving date."))
def validate_for_enabled_user_id(self):
if not self.status == 'Active':
return
enabled = frappe.db.sql("""select name from `tabUser` where
name=%s and enabled=1""", self.user_id)
if not enabled:

View File

@ -1,62 +1,65 @@
{
"creation": "2013-02-22 01:27:45.000000",
"docstatus": 0,
"doctype": "DocType",
"creation": "2013-02-22 01:27:45",
"docstatus": 0,
"doctype": "DocType",
"fields": [
{
"fieldname": "branch",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Branch",
"oldfieldname": "branch",
"oldfieldtype": "Select",
"options": "link:Branch",
"fieldname": "branch",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Branch",
"oldfieldname": "branch",
"oldfieldtype": "Select",
"options": "Branch",
"permlevel": 0
},
},
{
"fieldname": "department",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Department",
"oldfieldname": "department",
"oldfieldtype": "Select",
"options": "link:Department",
"fieldname": "department",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Department",
"oldfieldname": "department",
"oldfieldtype": "Select",
"options": "Department",
"permlevel": 0
},
},
{
"fieldname": "designation",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Designation",
"oldfieldname": "designation",
"oldfieldtype": "Select",
"options": "link:Designation",
"fieldname": "designation",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Designation",
"oldfieldname": "designation",
"oldfieldtype": "Select",
"options": "Designation",
"permlevel": 0
},
},
{
"fieldname": "from_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "From Date",
"oldfieldname": "from_date",
"oldfieldtype": "Date",
"fieldname": "from_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "From Date",
"oldfieldname": "from_date",
"oldfieldtype": "Date",
"permlevel": 0
},
},
{
"fieldname": "to_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "To Date",
"oldfieldname": "to_date",
"oldfieldtype": "Date",
"fieldname": "to_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "To Date",
"oldfieldname": "to_date",
"oldfieldtype": "Date",
"permlevel": 0
}
],
"idx": 1,
"istable": 1,
"modified": "2013-12-20 19:24:12.000000",
"modified_by": "Administrator",
"module": "HR",
"name": "Employee Internal Work History",
"owner": "Administrator"
}
],
"idx": 1,
"istable": 1,
"modified": "2014-05-09 02:16:44.613840",
"modified_by": "Administrator",
"module": "HR",
"name": "Employee Internal Work History",
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,7 +1,7 @@
{
"allow_import": 0,
"autoname": "LAPPR-/.#####",
"creation": "2013-04-12 06:56:15.000000",
"creation": "2013-04-12 06:56:15",
"description": "Users who can approve a specific employee's leave applications",
"docstatus": 0,
"doctype": "DocType",
@ -11,6 +11,7 @@
"fieldtype": "Select",
"in_list_view": 1,
"label": "Leave Approver",
"options": "[Select]",
"permlevel": 0,
"print_hide": 1,
"reqd": 1,
@ -19,9 +20,12 @@
],
"idx": 1,
"istable": 1,
"modified": "2013-12-20 19:23:12.000000",
"modified": "2014-05-15 19:32:14.134420",
"modified_by": "Administrator",
"module": "HR",
"name": "Employee Leave Approver",
"owner": "Administrator"
"owner": "Administrator",
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,54 +1,55 @@
{
"allow_import": 1,
"autoname": "field:employee_type_name",
"creation": "2013-01-10 16:34:14.000000",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"allow_import": 1,
"autoname": "field:employee_type_name",
"creation": "2013-01-10 16:34:14",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "employee_type_name",
"fieldtype": "Data",
"label": "Employment Type",
"oldfieldname": "employee_type_name",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "employee_type_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Employment Type",
"oldfieldname": "employee_type_name",
"oldfieldtype": "Data",
"permlevel": 0,
"reqd": 1
}
],
"icon": "icon-flag",
"idx": 1,
"modified": "2014-01-20 17:48:43.000000",
"modified_by": "Administrator",
"module": "HR",
"name": "Employment Type",
"owner": "Administrator",
],
"icon": "icon-flag",
"idx": 1,
"modified": "2014-05-07 06:39:38.630562",
"modified_by": "Administrator",
"module": "HR",
"name": "Employment Type",
"owner": "Administrator",
"permissions": [
{
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 0,
"write": 1
},
},
{
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR Manager",
"submit": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR Manager",
"submit": 0,
"write": 1
}
]
}
}

View File

@ -1,6 +1,6 @@
{
"autoname": "EXP.######",
"creation": "2013-01-10 16:34:14.000000",
"creation": "2013-01-10 16:34:14",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -114,23 +114,23 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Select",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
{
"fieldname": "company",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "link:Company",
"options": "Company",
"permlevel": 0,
"reqd": 1
},
@ -187,7 +187,7 @@
"icon": "icon-money",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-22 16:05:34.000000",
"modified": "2014-05-09 02:16:38.198490",
"modified_by": "Administrator",
"module": "HR",
"name": "Expense Claim",
@ -234,5 +234,7 @@
"write": 1
}
],
"search_fields": "approval_status,employee,employee_name"
"search_fields": "approval_status,employee,employee_name",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,5 +1,5 @@
{
"creation": "2013-02-22 01:27:46.000000",
"creation": "2013-02-22 01:27:46",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -17,12 +17,12 @@
},
{
"fieldname": "expense_type",
"fieldtype": "Select",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Expense Claim Type",
"oldfieldname": "expense_type",
"oldfieldtype": "Link",
"options": "link:Expense Claim Type",
"options": "Expense Claim Type",
"permlevel": 0,
"print_width": "150px",
"reqd": 1,
@ -69,9 +69,12 @@
],
"idx": 1,
"istable": 1,
"modified": "2013-12-20 19:23:13.000000",
"modified": "2014-05-09 02:16:38.529082",
"modified_by": "Administrator",
"module": "HR",
"name": "Expense Claim Detail",
"owner": "harshada@webnotestech.com"
"owner": "harshada@webnotestech.com",
"permissions": [],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,22 +1,14 @@
{
"allow_import": 1,
"creation": "2013-01-10 16:34:14.000000",
"creation": "2013-01-10 16:34:14",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "holiday_list_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Holiday List Name",
"oldfieldname": "holiday_list_name",
"oldfieldtype": "Data",
@ -26,23 +18,26 @@
{
"fieldname": "is_default",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Default",
"permlevel": 0
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Link",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
{
"fieldname": "weekly_off",
"fieldtype": "Select",
"in_list_view": 1,
"label": "Weekly Off",
"no_copy": 1,
"options": "\nSunday\nMonday\nTuesday\nWednesday\nThursday\nFriday\nSaturday",
@ -77,7 +72,7 @@
],
"icon": "icon-calendar",
"idx": 1,
"modified": "2014-01-20 17:48:46.000000",
"modified": "2014-05-09 02:16:38.887266",
"modified_by": "Administrator",
"module": "HR",
"name": "Holiday List",
@ -96,5 +91,7 @@
"submit": 0,
"write": 1
}
]
],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,7 +1,7 @@
{
"allow_import": 1,
"autoname": "LAL/.#####",
"creation": "2013-02-20 19:10:38.000000",
"creation": "2013-02-20 19:10:38",
"docstatus": 0,
"doctype": "DocType",
"fields": [
@ -15,6 +15,7 @@
"fieldname": "employee",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Employee",
"oldfieldname": "employee",
"oldfieldtype": "Link",
@ -27,6 +28,7 @@
"fieldname": "employee_name",
"fieldtype": "Data",
"in_filter": 1,
"in_list_view": 1,
"label": "Employee Name",
"permlevel": 0,
"read_only": 1,
@ -34,12 +36,13 @@
},
{
"fieldname": "leave_type",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Leave Type",
"oldfieldname": "leave_type",
"oldfieldtype": "Link",
"options": "link:Leave Type",
"options": "Leave Type",
"permlevel": 0,
"reqd": 1,
"search_index": 1
@ -49,6 +52,7 @@
"fieldname": "posting_date",
"fieldtype": "Date",
"hidden": 0,
"in_list_view": 1,
"label": "Posting Date",
"no_copy": 1,
"oldfieldname": "date",
@ -60,12 +64,12 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Data",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1,
"search_index": 1
@ -132,7 +136,7 @@
"icon": "icon-ok",
"idx": 1,
"is_submittable": 1,
"modified": "2014-01-22 16:05:35.000000",
"modified": "2014-05-09 02:16:39.508488",
"modified_by": "Administrator",
"module": "HR",
"name": "Leave Allocation",
@ -168,5 +172,7 @@
"write": 1
}
],
"search_fields": "employee,employee_name,leave_type,total_leaves_allocated,fiscal_year"
"search_fields": "employee,employee_name,leave_type,total_leaves_allocated,fiscal_year",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -19,7 +19,9 @@ cur_frm.cscript.onload = function(doc, dt, dn) {
function(user) {
return {value: user, label: frappe.user_info(user).fullname};
}));
if(leave_approver) cur_frm.set_value("leave_approver", leave_approver);
cur_frm.cscript.get_leave_balance(cur_frm.doc);
}
});

View File

@ -1,7 +1,7 @@
{
"allow_attach": 1,
"autoname": "LAP/.#####",
"creation": "2013-02-20 11:18:11.000000",
"creation": "2013-02-20 11:18:11",
"description": "Apply / Approve Leaves",
"docstatus": 0,
"doctype": "DocType",
@ -22,16 +22,16 @@
"fieldname": "leave_approver",
"fieldtype": "Select",
"label": "Leave Approver",
"options": "link:User",
"options": "[Select]",
"permlevel": 0
},
{
"fieldname": "leave_type",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Leave Type",
"options": "link:Leave Type",
"options": "Leave Type",
"permlevel": 0,
"reqd": 1,
"search_index": 1
@ -135,10 +135,10 @@
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"options": "link:Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"read_only": 0,
"reqd": 1,
@ -182,7 +182,7 @@
"idx": 1,
"is_submittable": 1,
"max_attachments": 3,
"modified": "2014-01-20 17:48:56.000000",
"modified": "2014-05-15 19:30:47.331357",
"modified_by": "Administrator",
"module": "HR",
"name": "Leave Application",
@ -263,5 +263,7 @@
"write": 1
}
],
"search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year"
"search_fields": "employee,employee_name,leave_type,from_date,to_date,total_leave_days,fiscal_year",
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,114 +1,120 @@
{
"allow_copy": 1,
"allow_email": 1,
"allow_print": 1,
"creation": "2013-01-10 16:34:15.000000",
"docstatus": 0,
"doctype": "DocType",
"allow_copy": 1,
"allow_email": 1,
"allow_print": 1,
"creation": "2013-01-10 16:34:15",
"docstatus": 0,
"doctype": "DocType",
"fields": [
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"description": "Leave blank if considered for all employee types",
"fieldname": "employee_type",
"fieldtype": "Select",
"label": "Employee Type",
"options": "link:Employment Type",
"description": "Leave blank if considered for all employee types",
"fieldname": "employee_type",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Employee Type",
"options": "Employment Type",
"permlevel": 0
},
},
{
"description": "Leave blank if considered for all branches",
"fieldname": "branch",
"fieldtype": "Select",
"label": "Branch",
"options": "link:Branch",
"description": "Leave blank if considered for all branches",
"fieldname": "branch",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Branch",
"options": "Branch",
"permlevel": 0
},
},
{
"description": "Leave blank if considered for all departments",
"fieldname": "department",
"fieldtype": "Select",
"label": "Department",
"options": "link:Department",
"description": "Leave blank if considered for all departments",
"fieldname": "department",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Department",
"options": "Department",
"permlevel": 0
},
},
{
"description": "Leave blank if considered for all designations",
"fieldname": "designation",
"fieldtype": "Select",
"label": "Designation",
"options": "link:Designation",
"description": "Leave blank if considered for all designations",
"fieldname": "designation",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Designation",
"options": "Designation",
"permlevel": 0
},
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break1",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"in_filter": 1,
"label": "Fiscal Year",
"options": "link:Fiscal Year",
"permlevel": 0,
"fieldname": "fiscal_year",
"fieldtype": "Link",
"in_filter": 1,
"label": "Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "leave_type",
"fieldtype": "Select",
"label": "Leave Type",
"options": "link:Leave Type",
"permlevel": 0,
"fieldname": "leave_type",
"fieldtype": "Link",
"label": "Leave Type",
"options": "Leave Type",
"permlevel": 0,
"reqd": 1
},
},
{
"description": "Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year",
"fieldname": "carry_forward",
"fieldtype": "Check",
"label": "Carry Forward",
"description": "Please select Carry Forward if you also want to include previous fiscal year's balance leaves to this fiscal year",
"fieldname": "carry_forward",
"fieldtype": "Check",
"label": "Carry Forward",
"permlevel": 0
},
},
{
"fieldname": "no_of_days",
"fieldtype": "Float",
"label": "New Leaves Allocated (In Days)",
"permlevel": 0,
"fieldname": "no_of_days",
"fieldtype": "Float",
"label": "New Leaves Allocated (In Days)",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "allocate",
"fieldtype": "Button",
"label": "Allocate",
"options": "allocate_leave",
"fieldname": "allocate",
"fieldtype": "Button",
"label": "Allocate",
"options": "allocate_leave",
"permlevel": 0
}
],
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "icon-cog",
"idx": 1,
"issingle": 1,
"modified": "2013-07-05 14:45:50.000000",
"modified_by": "Administrator",
"module": "HR",
"name": "Leave Control Panel",
"owner": "Administrator",
],
"hide_heading": 0,
"hide_toolbar": 0,
"icon": "icon-cog",
"idx": 1,
"issingle": 1,
"modified": "2014-05-09 02:16:44.996178",
"modified_by": "Administrator",
"module": "HR",
"name": "Leave Control Panel",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"permlevel": 0,
"read": 1,
"report": 0,
"role": "HR User",
"submit": 0,
"create": 1,
"permlevel": 0,
"read": 1,
"report": 0,
"role": "HR User",
"submit": 0,
"write": 1
}
],
"read_only": 1
}
],
"read_only": 1,
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,23 +1,15 @@
{
"allow_import": 1,
"autoname": "field:leave_type_name",
"creation": "2013-02-21 09:55:58.000000",
"creation": "2013-02-21 09:55:58",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Master",
"fields": [
{
"fieldname": "trash_reason",
"fieldtype": "Small Text",
"label": "Trash Reason",
"oldfieldname": "trash_reason",
"oldfieldtype": "Small Text",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "leave_type_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Leave Type Name",
"oldfieldname": "leave_type_name",
"oldfieldtype": "Data",
@ -27,6 +19,7 @@
{
"fieldname": "max_days_allowed",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Max Days Leave Allowed",
"oldfieldname": "max_days_allowed",
"oldfieldtype": "Data",
@ -36,6 +29,7 @@
{
"fieldname": "is_carry_forward",
"fieldtype": "Check",
"in_list_view": 1,
"label": "Is Carry Forward",
"oldfieldname": "is_carry_forward",
"oldfieldtype": "Check",
@ -45,6 +39,7 @@
"fieldname": "is_encash",
"fieldtype": "Check",
"hidden": 1,
"in_list_view": 1,
"label": "Is Encash",
"oldfieldname": "is_encash",
"oldfieldtype": "Check",
@ -67,7 +62,7 @@
],
"icon": "icon-flag",
"idx": 1,
"modified": "2014-01-20 17:48:56.000000",
"modified": "2014-05-07 06:39:38.884656",
"modified_by": "Administrator",
"module": "HR",
"name": "Leave Type",
@ -98,6 +93,11 @@
"role": "HR Manager",
"submit": 0,
"write": 1
},
{
"permlevel": 0,
"read": 1,
"role": "Employee"
}
]
}

View File

@ -1,159 +1,163 @@
{
"allow_copy": 1,
"allow_email": 1,
"allow_print": 1,
"creation": "2012-03-27 14:35:59.000000",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Other",
"allow_copy": 1,
"allow_email": 1,
"allow_print": 1,
"creation": "2012-03-27 14:35:59",
"docstatus": 0,
"doctype": "DocType",
"document_type": "Other",
"fields": [
{
"fieldname": "document_description",
"fieldtype": "HTML",
"label": "Document Description",
"options": "<div class=\"field_description\">You can generate multiple salary slips based on the selected criteria, submit and mail those to the employee directly from here</div>",
"fieldname": "document_description",
"fieldtype": "HTML",
"label": "Document Description",
"options": "<div class=\"field_description\">You can generate multiple salary slips based on the selected criteria, submit and mail those to the employee directly from here</div>",
"permlevel": 0
},
},
{
"fieldname": "section_break0",
"fieldtype": "Section Break",
"fieldname": "section_break0",
"fieldtype": "Section Break",
"permlevel": 0
},
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "company",
"fieldtype": "Select",
"label": "Company",
"options": "link:Company",
"permlevel": 0,
"fieldname": "company",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Company",
"options": "Company",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "branch",
"fieldtype": "Link",
"label": "Branch",
"options": "Branch",
"fieldname": "branch",
"fieldtype": "Link",
"in_list_view": 1,
"label": "Branch",
"options": "Branch",
"permlevel": 0
},
},
{
"fieldname": "department",
"fieldtype": "Link",
"label": "Department",
"options": "Department",
"fieldname": "department",
"fieldtype": "Link",
"label": "Department",
"options": "Department",
"permlevel": 0
},
},
{
"fieldname": "designation",
"fieldtype": "Link",
"label": "Designation",
"options": "Designation",
"fieldname": "designation",
"fieldtype": "Link",
"label": "Designation",
"options": "Designation",
"permlevel": 0
},
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break1",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "fiscal_year",
"fieldtype": "Select",
"label": "Fiscal Year",
"options": "link:Fiscal Year",
"permlevel": 0,
"fieldname": "fiscal_year",
"fieldtype": "Link",
"label": "Fiscal Year",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "month",
"fieldtype": "Select",
"label": "Month",
"options": "\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12",
"permlevel": 0,
"fieldname": "month",
"fieldtype": "Select",
"label": "Month",
"options": "\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12",
"permlevel": 0,
"reqd": 1
},
},
{
"description": "Check if you want to send salary slip in mail to each employee while submitting salary slip",
"fieldname": "send_email",
"fieldtype": "Check",
"label": "Send Email",
"description": "Check if you want to send salary slip in mail to each employee while submitting salary slip",
"fieldname": "send_email",
"fieldtype": "Check",
"label": "Send Email",
"permlevel": 0
},
},
{
"fieldname": "section_break1",
"fieldtype": "Section Break",
"fieldname": "section_break1",
"fieldtype": "Section Break",
"permlevel": 0
},
},
{
"fieldname": "column_break2",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break2",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"description": "Creates salary slip for above mentioned criteria.",
"fieldname": "create_salary_slip",
"fieldtype": "Button",
"label": "Create Salary Slip",
"description": "Creates salary slip for above mentioned criteria.",
"fieldname": "create_salary_slip",
"fieldtype": "Button",
"label": "Create Salary Slip",
"permlevel": 0
},
},
{
"fieldname": "column_break3",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break3",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "25%"
},
},
{
"description": "Submit all salary slips for the above selected criteria",
"fieldname": "submit_salary_slip",
"fieldtype": "Button",
"label": "Submit Salary Slip",
"description": "Submit all salary slips for the above selected criteria",
"fieldname": "submit_salary_slip",
"fieldtype": "Button",
"label": "Submit Salary Slip",
"permlevel": 0
},
},
{
"fieldname": "column_break4",
"fieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break4",
"fieldtype": "Column Break",
"permlevel": 0,
"width": "25%"
},
},
{
"description": "Create Bank Voucher for the total salary paid for the above selected criteria",
"fieldname": "make_bank_voucher",
"fieldtype": "Button",
"label": "Make Bank Voucher",
"description": "Create Bank Voucher for the total salary paid for the above selected criteria",
"fieldname": "make_bank_voucher",
"fieldtype": "Button",
"label": "Make Bank Voucher",
"permlevel": 0
},
},
{
"fieldname": "section_break2",
"fieldtype": "Section Break",
"fieldname": "section_break2",
"fieldtype": "Section Break",
"permlevel": 0
},
},
{
"fieldname": "activity_log",
"fieldtype": "HTML",
"label": "Activity Log",
"fieldname": "activity_log",
"fieldtype": "HTML",
"label": "Activity Log",
"permlevel": 0
}
],
"icon": "icon-cog",
"idx": 1,
"issingle": 1,
"modified": "2013-07-22 15:23:58.000000",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Manager",
"owner": "Administrator",
],
"icon": "icon-cog",
"idx": 1,
"issingle": 1,
"modified": "2014-05-09 02:16:45.165977",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Manager",
"owner": "Administrator",
"permissions": [
{
"create": 1,
"permlevel": 0,
"read": 1,
"role": "HR Manager",
"create": 1,
"permlevel": 0,
"read": 1,
"role": "HR Manager",
"write": 1
}
]
}
],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -1,386 +1,370 @@
{
"creation": "2013-01-10 16:34:15",
"docstatus": 0,
"doctype": "DocType",
"creation": "2013-01-10 16:34:15",
"docstatus": 0,
"doctype": "DocType",
"fields": [
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break0",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "employee",
"fieldtype": "Link",
"in_filter": 1,
"label": "Employee",
"oldfieldname": "employee",
"oldfieldtype": "Link",
"options": "Employee",
"permlevel": 0,
"reqd": 1,
"fieldname": "employee",
"fieldtype": "Link",
"in_filter": 1,
"label": "Employee",
"oldfieldname": "employee",
"oldfieldtype": "Link",
"options": "Employee",
"permlevel": 0,
"reqd": 1,
"search_index": 1
},
},
{
"fieldname": "employee_name",
"fieldtype": "Data",
"in_filter": 1,
"in_list_view": 1,
"label": "Employee Name",
"oldfieldname": "employee_name",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1,
"fieldname": "employee_name",
"fieldtype": "Data",
"in_filter": 1,
"in_list_view": 1,
"label": "Employee Name",
"oldfieldname": "employee_name",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1,
"reqd": 1
},
},
{
"fieldname": "department",
"fieldtype": "Link",
"in_filter": 1,
"label": "Department",
"oldfieldname": "department",
"oldfieldtype": "Link",
"options": "Department",
"permlevel": 0,
"read_only": 1,
"reqd": 0,
"fieldname": "department",
"fieldtype": "Link",
"in_filter": 1,
"label": "Department",
"oldfieldname": "department",
"oldfieldtype": "Link",
"options": "Department",
"permlevel": 0,
"read_only": 1,
"reqd": 0,
"search_index": 0
},
},
{
"fieldname": "designation",
"fieldtype": "Link",
"in_filter": 1,
"label": "Designation",
"oldfieldname": "designation",
"oldfieldtype": "Link",
"options": "Designation",
"permlevel": 0,
"read_only": 1,
"fieldname": "designation",
"fieldtype": "Link",
"in_filter": 1,
"label": "Designation",
"oldfieldname": "designation",
"oldfieldtype": "Link",
"options": "Designation",
"permlevel": 0,
"read_only": 1,
"search_index": 0
},
},
{
"fieldname": "branch",
"fieldtype": "Link",
"in_filter": 1,
"label": "Branch",
"oldfieldname": "branch",
"oldfieldtype": "Link",
"options": "Branch",
"permlevel": 0,
"read_only": 1,
"fieldname": "branch",
"fieldtype": "Link",
"in_filter": 1,
"label": "Branch",
"oldfieldname": "branch",
"oldfieldtype": "Link",
"options": "Branch",
"permlevel": 0,
"read_only": 1,
"search_index": 0
},
},
{
"fieldname": "pf_no",
"fieldtype": "Data",
"label": "PF No.",
"oldfieldname": "pf_no",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "esic_no",
"fieldtype": "Data",
"label": "ESIC No.",
"oldfieldname": "esic_no",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1
},
{
"fieldname": "letter_head",
"fieldtype": "Link",
"label": "Letter Head",
"options": "Letter Head",
"fieldname": "letter_head",
"fieldtype": "Link",
"label": "Letter Head",
"options": "Letter Head",
"permlevel": 0
},
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break1",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "fiscal_year",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Data",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1,
"fieldname": "fiscal_year",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Fiscal Year",
"oldfieldname": "fiscal_year",
"oldfieldtype": "Data",
"options": "Fiscal Year",
"permlevel": 0,
"reqd": 1,
"search_index": 0
},
},
{
"fieldname": "company",
"fieldtype": "Select",
"in_filter": 1,
"label": "Company",
"options": "link:Company",
"permlevel": 0,
"fieldname": "company",
"fieldtype": "Link",
"in_filter": 1,
"label": "Company",
"options": "Company",
"permlevel": 0,
"reqd": 1
},
},
{
"fieldname": "month",
"fieldtype": "Select",
"in_filter": 1,
"in_list_view": 1,
"label": "Month",
"oldfieldname": "month",
"oldfieldtype": "Select",
"options": "\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12",
"permlevel": 0,
"reqd": 1,
"search_index": 1,
"fieldname": "month",
"fieldtype": "Select",
"in_filter": 1,
"in_list_view": 1,
"label": "Month",
"oldfieldname": "month",
"oldfieldtype": "Select",
"options": "\n01\n02\n03\n04\n05\n06\n07\n08\n09\n10\n11\n12",
"permlevel": 0,
"reqd": 1,
"search_index": 1,
"width": "37%"
},
},
{
"fieldname": "total_days_in_month",
"fieldtype": "Data",
"label": "Total Working Days In The Month",
"oldfieldname": "total_days_in_month",
"oldfieldtype": "Int",
"permlevel": 0,
"read_only": 1,
"fieldname": "total_days_in_month",
"fieldtype": "Data",
"label": "Total Working Days In The Month",
"oldfieldname": "total_days_in_month",
"oldfieldtype": "Int",
"permlevel": 0,
"read_only": 1,
"reqd": 1
},
},
{
"fieldname": "leave_without_pay",
"fieldtype": "Float",
"label": "Leave Without Pay",
"oldfieldname": "leave_without_pay",
"oldfieldtype": "Currency",
"fieldname": "leave_without_pay",
"fieldtype": "Float",
"label": "Leave Without Pay",
"oldfieldname": "leave_without_pay",
"oldfieldtype": "Currency",
"permlevel": 0
},
},
{
"fieldname": "payment_days",
"fieldtype": "Float",
"label": "Payment Days",
"oldfieldname": "payment_days",
"oldfieldtype": "Float",
"permlevel": 0,
"read_only": 1,
"fieldname": "payment_days",
"fieldtype": "Float",
"label": "Payment Days",
"oldfieldname": "payment_days",
"oldfieldtype": "Float",
"permlevel": 0,
"read_only": 1,
"reqd": 1
},
},
{
"fieldname": "bank_name",
"fieldtype": "Data",
"label": "Bank Name",
"oldfieldname": "bank_name",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "bank_name",
"fieldtype": "Data",
"label": "Bank Name",
"oldfieldname": "bank_name",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1
},
},
{
"fieldname": "bank_account_no",
"fieldtype": "Data",
"label": "Bank Account No.",
"oldfieldname": "bank_account_no",
"oldfieldtype": "Data",
"permlevel": 0,
"fieldname": "bank_account_no",
"fieldtype": "Data",
"label": "Bank Account No.",
"oldfieldname": "bank_account_no",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1
},
},
{
"fieldname": "email_check",
"fieldtype": "Check",
"label": "Email",
"no_copy": 1,
"oldfieldname": "email_check",
"oldfieldtype": "Check",
"permlevel": 0,
"print_hide": 1,
"fieldname": "email_check",
"fieldtype": "Check",
"label": "Email",
"no_copy": 1,
"oldfieldname": "email_check",
"oldfieldtype": "Check",
"permlevel": 0,
"print_hide": 1,
"report_hide": 1
},
},
{
"fieldname": "amended_from",
"fieldtype": "Data",
"hidden": 0,
"ignore_restrictions": 1,
"label": "Amended From",
"no_copy": 1,
"oldfieldname": "amended_from",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"fieldname": "amended_from",
"fieldtype": "Data",
"hidden": 0,
"ignore_restrictions": 1,
"label": "Amended From",
"no_copy": 1,
"oldfieldname": "amended_from",
"oldfieldtype": "Data",
"permlevel": 0,
"print_hide": 1,
"report_hide": 0
},
},
{
"fieldname": "earning_deduction",
"fieldtype": "Section Break",
"label": "Earning & Deduction",
"oldfieldtype": "Section Break",
"fieldname": "earning_deduction",
"fieldtype": "Section Break",
"label": "Earning & Deduction",
"oldfieldtype": "Section Break",
"permlevel": 0
},
},
{
"fieldname": "earning",
"fieldtype": "Column Break",
"label": "Earning",
"oldfieldtype": "Column Break",
"permlevel": 0,
"reqd": 0,
"fieldname": "earning",
"fieldtype": "Column Break",
"label": "Earning",
"oldfieldtype": "Column Break",
"permlevel": 0,
"reqd": 0,
"width": "50%"
},
},
{
"fieldname": "earning_details",
"fieldtype": "Table",
"label": "Salary Structure Earnings",
"oldfieldname": "earning_details",
"oldfieldtype": "Table",
"options": "Salary Slip Earning",
"fieldname": "earning_details",
"fieldtype": "Table",
"label": "Salary Structure Earnings",
"oldfieldname": "earning_details",
"oldfieldtype": "Table",
"options": "Salary Slip Earning",
"permlevel": 0
},
},
{
"fieldname": "deduction",
"fieldtype": "Column Break",
"label": "Deduction",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "deduction",
"fieldtype": "Column Break",
"label": "Deduction",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "deduction_details",
"fieldtype": "Table",
"label": "Deductions",
"oldfieldname": "deduction_details",
"oldfieldtype": "Table",
"options": "Salary Slip Deduction",
"fieldname": "deduction_details",
"fieldtype": "Table",
"label": "Deductions",
"oldfieldname": "deduction_details",
"oldfieldtype": "Table",
"options": "Salary Slip Deduction",
"permlevel": 0
},
},
{
"fieldname": "totals",
"fieldtype": "Section Break",
"label": "Totals",
"oldfieldtype": "Section Break",
"fieldname": "totals",
"fieldtype": "Section Break",
"label": "Totals",
"oldfieldtype": "Section Break",
"permlevel": 0
},
},
{
"fieldname": "column_break2",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break2",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"fieldname": "arrear_amount",
"fieldtype": "Currency",
"label": "Arrear Amount",
"oldfieldname": "arrear_amount",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"fieldname": "arrear_amount",
"fieldtype": "Currency",
"label": "Arrear Amount",
"oldfieldname": "arrear_amount",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0
},
},
{
"fieldname": "leave_encashment_amount",
"fieldtype": "Currency",
"label": "Leave Encashment Amount",
"oldfieldname": "encashment_amount",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"fieldname": "leave_encashment_amount",
"fieldtype": "Currency",
"label": "Leave Encashment Amount",
"oldfieldname": "encashment_amount",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0
},
},
{
"fieldname": "gross_pay",
"fieldtype": "Currency",
"label": "Gross Pay",
"oldfieldname": "gross_pay",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"fieldname": "gross_pay",
"fieldtype": "Currency",
"label": "Gross Pay",
"oldfieldname": "gross_pay",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"read_only": 1
},
},
{
"fieldname": "total_deduction",
"fieldtype": "Currency",
"label": "Total Deduction",
"oldfieldname": "total_deduction",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"fieldname": "total_deduction",
"fieldtype": "Currency",
"label": "Total Deduction",
"oldfieldname": "total_deduction",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"read_only": 1
},
},
{
"fieldname": "column_break3",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"fieldname": "column_break3",
"fieldtype": "Column Break",
"oldfieldtype": "Column Break",
"permlevel": 0,
"width": "50%"
},
},
{
"description": "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction",
"fieldname": "net_pay",
"fieldtype": "Currency",
"label": "Net Pay",
"oldfieldname": "net_pay",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"description": "Gross Pay + Arrear Amount +Encashment Amount - Total Deduction",
"fieldname": "net_pay",
"fieldtype": "Currency",
"label": "Net Pay",
"oldfieldname": "net_pay",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency",
"permlevel": 0,
"read_only": 1
},
},
{
"fieldname": "rounded_total",
"fieldtype": "Currency",
"label": "Rounded Total",
"options": "Company:company:default_currency",
"permlevel": 0,
"fieldname": "rounded_total",
"fieldtype": "Currency",
"label": "Rounded Total",
"options": "Company:company:default_currency",
"permlevel": 0,
"read_only": 1
},
},
{
"description": "Net Pay (in words) will be visible once you save the Salary Slip.",
"fieldname": "total_in_words",
"fieldtype": "Data",
"label": "Total in words",
"oldfieldname": "net_pay_in_words",
"oldfieldtype": "Data",
"permlevel": 0,
"description": "Net Pay (in words) will be visible once you save the Salary Slip.",
"fieldname": "total_in_words",
"fieldtype": "Data",
"label": "Total in words",
"oldfieldname": "net_pay_in_words",
"oldfieldtype": "Data",
"permlevel": 0,
"read_only": 1
}
],
"icon": "icon-file-text",
"idx": 1,
"is_submittable": 1,
"modified": "2014-05-01 04:21:14.543092",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Slip",
"owner": "Administrator",
],
"icon": "icon-file-text",
"idx": 1,
"is_submittable": 1,
"modified": "2014-05-09 02:17:14.634335",
"modified_by": "Administrator",
"module": "HR",
"name": "Salary Slip",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"create": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 1,
"amend": 0,
"create": 1,
"delete": 0,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR User",
"submit": 1,
"write": 1
},
},
{
"amend": 1,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR Manager",
"submit": 1,
"amend": 1,
"cancel": 1,
"create": 1,
"delete": 1,
"email": 1,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "HR Manager",
"submit": 1,
"write": 1
},
},
{
"permlevel": 0,
"read": 1,
"restricted": 0,
"permlevel": 0,
"read": 1,
"restricted": 0,
"role": "Employee"
}
]
}
],
"sort_field": "modified",
"sort_order": "DESC"
}

View File

@ -38,12 +38,10 @@ class SalarySlip(TransactionBase):
def pull_emp_details(self):
emp = frappe.db.get_value("Employee", self.employee,
["bank_name", "bank_ac_no", "esic_card_no", "pf_number"], as_dict=1)
["bank_name", "bank_ac_no"], as_dict=1)
if emp:
self.bank_name = emp.bank_name
self.bank_account_no = emp.bank_ac_no
self.esic_no = emp.esic_card_no
self.pf_no = emp.pf_number
def get_leave_details(self, lwp=None):
if not self.fiscal_year:

Some files were not shown because too many files have changed in this diff Show More