Merge branch 'develop' of github.com:frappe/erpnext into develop
This commit is contained in:
commit
9f399f139b
@ -87,6 +87,7 @@ class StatusUpdater(Document):
|
||||
frappe.db.set_value(self.doctype, self.name, "status", self.status)
|
||||
|
||||
def on_communication(self):
|
||||
if not self.get("communication"): return
|
||||
self.communication_set = True
|
||||
self.get("communications").sort(key=lambda d: d.creation)
|
||||
self.set_status(update=True)
|
||||
|
@ -8,6 +8,7 @@ from collections import Counter
|
||||
from frappe.core.doctype.user.user import STANDARD_USERS
|
||||
|
||||
def execute():
|
||||
frappe.reload_doc("core", "doctype", "system_settings")
|
||||
system_settings = frappe.get_doc("System Settings")
|
||||
|
||||
# set values from global_defauls
|
||||
|
@ -207,7 +207,7 @@ class Company(Document):
|
||||
[_('Plant and Machinery'),_('Fixed Assets'),'Ledger','Fixed Asset','Balance Sheet','', 'Asset'],
|
||||
[_('Investments'),_('Application of Funds (Assets)'),'Group','','Balance Sheet','', 'Asset'],
|
||||
[_('Temporary Accounts (Assets)'),_('Application of Funds (Assets)'),'Group','','Balance Sheet','', 'Asset'],
|
||||
[_('Temporary Account (Assets)'),_('Temporary Accounts (Assets)'),'Ledger','','Balance Sheet','', 'Asset'],
|
||||
[_('Temporary Assets'),_('Temporary Accounts (Assets)'),'Ledger','','Balance Sheet','', 'Asset'],
|
||||
[_('Expenses'),'','Group','Expense Account','Profit and Loss','', 'Expense'],
|
||||
[_('Direct Expenses'),_('Expenses'),'Group','Expense Account','Profit and Loss','', 'Expense'],
|
||||
[_('Stock Expenses'),_('Direct Expenses'),'Group','Expense Account','Profit and Loss','', 'Expense'],
|
||||
@ -253,7 +253,7 @@ class Company(Document):
|
||||
[_('Unsecured Loans'),_('Loans (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
|
||||
[_('Bank Overdraft Account'),_('Loans (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
|
||||
[_('Temporary Accounts (Liabilities)'),_('Source of Funds (Liabilities)'),'Group','','Balance Sheet','', 'Liability'],
|
||||
[_('Temporary Account (Liabilities)'),_('Temporary Accounts (Liabilities)'),'Ledger','','Balance Sheet','', 'Liability']
|
||||
[_('Temporary Liabilities'),_('Temporary Accounts (Liabilities)'),'Ledger','','Balance Sheet','', 'Liability']
|
||||
]
|
||||
|
||||
# load common account heads
|
||||
|
@ -51,7 +51,6 @@ def install(country=None):
|
||||
{'doctype': 'Employment Type', 'employee_type_name': _('Contract')},
|
||||
{'doctype': 'Employment Type', 'employee_type_name': _('Commission')},
|
||||
{'doctype': 'Employment Type', 'employee_type_name': _('Piecework')},
|
||||
{'doctype': 'Employment Type', 'employee_type_name': _('Trainee')},
|
||||
{'doctype': 'Employment Type', 'employee_type_name': _('Intern')},
|
||||
{'doctype': 'Employment Type', 'employee_type_name': _('Apprentice')},
|
||||
|
||||
|
@ -76,6 +76,7 @@ def setup_account(args=None):
|
||||
|
||||
frappe.clear_cache()
|
||||
frappe.db.commit()
|
||||
|
||||
except:
|
||||
traceback = frappe.get_traceback()
|
||||
for hook in frappe.get_hooks("setup_wizard_exception"):
|
||||
@ -83,6 +84,11 @@ def setup_account(args=None):
|
||||
|
||||
raise
|
||||
|
||||
else:
|
||||
for hook in frappe.get_hooks("setup_wizard_success"):
|
||||
frappe.get_attr(hook)(args)
|
||||
|
||||
|
||||
def update_user_name(args):
|
||||
if args.get("email"):
|
||||
args['name'] = args.get("email")
|
||||
@ -407,6 +413,7 @@ def create_territories():
|
||||
|
||||
@frappe.whitelist()
|
||||
def load_messages(language):
|
||||
frappe.clear_cache()
|
||||
lang = get_lang_dict()[language]
|
||||
frappe.local.lang = lang
|
||||
m = get_dict("page", "setup-wizard")
|
||||
|
@ -277,6 +277,7 @@
|
||||
"fieldname": "serial_no_series",
|
||||
"fieldtype": "Data",
|
||||
"label": "Serial Number Series",
|
||||
"no_copy": 1,
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
@ -728,6 +729,7 @@
|
||||
"fieldname": "page_name",
|
||||
"fieldtype": "Data",
|
||||
"label": "Page Name",
|
||||
"no_copy": 1,
|
||||
"permlevel": 0,
|
||||
"read_only": 1
|
||||
},
|
||||
@ -825,6 +827,7 @@
|
||||
"fieldtype": "Link",
|
||||
"ignore_restrictions": 1,
|
||||
"label": "Parent Website Route",
|
||||
"no_copy": 1,
|
||||
"options": "Website Route",
|
||||
"permlevel": 0
|
||||
}
|
||||
@ -832,7 +835,7 @@
|
||||
"icon": "icon-tag",
|
||||
"idx": 1,
|
||||
"max_attachments": 1,
|
||||
"modified": "2014-05-12 07:54:58.118118",
|
||||
"modified": "2014-05-21 15:37:30.124881",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Stock",
|
||||
"name": "Item",
|
||||
|
@ -119,6 +119,10 @@ class Item(WebsiteGenerator):
|
||||
if self.has_serial_no == 'Yes' and self.is_stock_item == 'No':
|
||||
msgprint(_("'Has Serial No' can not be 'Yes' for non-stock item"), raise_exception=1)
|
||||
|
||||
if self.has_serial_no == "No" and self.serial_no_series:
|
||||
self.serial_no_series = None
|
||||
|
||||
|
||||
def check_for_active_boms(self):
|
||||
if self.is_purchase_item != "Yes":
|
||||
bom_mat = frappe.db.sql("""select distinct t1.parent
|
||||
|
@ -248,7 +248,8 @@ def validate_serial_no(sle, item_det):
|
||||
SerialNoRequiredError)
|
||||
|
||||
def update_serial_nos(sle, item_det):
|
||||
if sle.is_cancelled == "No" and not sle.serial_no and sle.actual_qty > 0 and item_det.serial_no_series:
|
||||
if sle.is_cancelled == "No" and not sle.serial_no and sle.actual_qty > 0 \
|
||||
and item_det.has_serial_no == "Yes" and item_det.serial_no_series:
|
||||
from frappe.model.naming import make_autoname
|
||||
serial_nos = []
|
||||
for i in xrange(cint(sle.actual_qty)):
|
||||
|
@ -50,10 +50,8 @@ class StockLedgerEntry(Document):
|
||||
frappe.throw(_("{0} is required").format(self.meta.get_label(k)))
|
||||
|
||||
def validate_item(self):
|
||||
item_det = frappe.db.sql("""select name, has_batch_no, docstatus,
|
||||
is_stock_item, has_serial_no, serial_no_series
|
||||
from tabItem where name=%s""",
|
||||
self.item_code, as_dict=True)[0]
|
||||
item_det = frappe.db.sql("""select name, has_batch_no, docstatus, is_stock_item
|
||||
from tabItem where name=%s""", self.item_code, as_dict=True)[0]
|
||||
|
||||
if item_det.is_stock_item != 'Yes':
|
||||
frappe.throw(_("Item {0} must be a stock Item").format(self.item_code))
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user