Merge branch 'develop' of github.com:frappe/erpnext into develop

This commit is contained in:
Rushabh Mehta 2014-05-26 11:40:46 +05:30
commit 9f399f139b
26 changed files with 2744 additions and 4790 deletions

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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')},

View File

@ -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")

View File

@ -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",

View File

@ -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

View File

@ -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)):

View File

@ -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