Merge branch '4.0.0-wip' of github.com:webnotes/erpnext into 4.0-hotfix

This commit is contained in:
Akhilesh Darjee 2014-01-24 11:12:50 +05:30
commit 7cbf5b4e67
10 changed files with 19 additions and 61 deletions

View File

@ -4,7 +4,7 @@
from __future__ import unicode_literals
import webnotes
def make_test_records(verbose):
def _make_test_records(verbose):
from webnotes.test_runner import make_test_objects
accounts = [

View File

@ -241,8 +241,8 @@ cur_frm.cscript.hide_fields = function(doc) {
cur_frm.cscript.mode_of_payment = function(doc) {
return cur_frm.call({
method: "get_bank_cash_account",
args: { mode_of_payment: doc.mode_of_payment }
method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.get_bank_cash_account",
args: { mode_of_payment: doc.mode_of_payment },
});
}
@ -255,9 +255,6 @@ cur_frm.cscript.is_opening = function(doc, dt, dn) {
if (doc.is_opening == 'Yes') unhide_field('aging_date');
}
//Make Delivery Note Button
//-----------------------------
cur_frm.cscript['Make Delivery Note'] = function() {
wn.model.open_mapped_doc({
method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.make_delivery_note",

View File

@ -668,7 +668,7 @@ class TestSalesInvoice(unittest.TestCase):
def test_recurring_invoice(self):
from webnotes.utils import get_first_day, get_last_day, add_to_date, nowdate, getdate
from accounts.utils import get_fiscal_year
from erpnext.accounts.utils import get_fiscal_year
today = nowdate()
base_si = webnotes.bean(copy=test_records[0])
base_si.doc.fields.update({

View File

@ -74,7 +74,7 @@ class TestPurchaseOrder(unittest.TestCase):
self.assertEquals(flt(webnotes.conn.get_value("Bin", {"item_code": "_Test Item",
"warehouse": "_Test Warehouse - _TC"}, "ordered_qty")), 0.0)
def test_make_purchase_invocie(self):
def test_make_purchase_invoice(self):
from erpnext.buying.doctype.purchase_order.purchase_order import make_purchase_invoice
po = webnotes.bean(copy=test_records[0]).insert()

View File

@ -134,7 +134,8 @@ class AccountsController(TransactionBase):
def calculate_taxes_and_totals(self):
self.discount_amount_applied = False
self._calculate_taxes_and_totals()
if self.meta.get_field(self.doc.doctype, "discount_amount"):
if self.meta.get_field("discount_amount"):
self.apply_discount_amount()
def _calculate_taxes_and_totals(self):

View File

@ -53,6 +53,7 @@ scheduler_event = daily:erpnext.accounts.doctype.sales_invoice.sales_invoice.man
scheduler_event = daily:erpnext.setup.doctype.backup_manager.backup_manager.take_backups_daily
scheduler_event = daily:erpnext.stock.utils.reorder_item
scheduler_event = daily:erpnext.setup.doctype.email_digest.email_digest.send
scheduler_event = daily:support.doctype.support_ticket.support_ticket.auto_close_tickets
#### Weekly

View File

@ -5,10 +5,8 @@ from __future__ import unicode_literals
import webnotes
from webnotes.utils.nestedset import DocTypeNestedSet
from webnotes.webutils import WebsiteGenerator
from webnotes.webutils import delete_page_cache
class DocType(DocTypeNestedSet, WebsiteGenerator):
class DocType(DocTypeNestedSet):
def __init__(self, doc, doclist=[]):
self.doc = doc
self.doclist = doclist
@ -16,35 +14,12 @@ class DocType(DocTypeNestedSet, WebsiteGenerator):
def on_update(self):
DocTypeNestedSet.on_update(self)
WebsiteGenerator.on_update(self)
self.validate_name_with_item()
invalidate_cache_for(self.doc.name)
self.validate_one_root()
def validate_name_with_item(self):
if webnotes.conn.exists("Item", self.doc.name):
webnotes.msgprint("An item exists with same name (%s), please change the \
item group name or rename the item" % self.doc.name, raise_exception=1)
def get_group_item_count(item_group):
child_groups = ", ".join(['"' + i[0] + '"' for i in get_child_groups(item_group)])
return webnotes.conn.sql("""select count(*) from `tabItem`
where docstatus = 0 and show_in_website = 1
and (item_group in (%s)
or name in (select parent from `tabWebsite Item Group`
where item_group in (%s))) """ % (child_groups, child_groups))[0][0]
def get_parent_item_groups(item_group_name):
item_group = webnotes.doc("Item Group", item_group_name)
return webnotes.conn.sql("""select name, page_name from `tabItem Group`
where lft <= %s and rgt >= %s
and ifnull(show_in_website,0)=1
order by lft asc""", (item_group.lft, item_group.rgt), as_dict=True)
def invalidate_cache_for(item_group):
for i in get_parent_item_groups(item_group):
if i.page_name:
delete_page_cache(i.page_name)

View File

@ -4,9 +4,8 @@
from __future__ import unicode_literals
import webnotes
from webnotes.utils import cint, cstr, filter_strip_join
from webnotes.webutils import WebsiteGenerator, clear_cache
class DocType(WebsiteGenerator):
class DocType():
def __init__(self, doc, doclist=None):
self.doc = doc
self.doclist = doclist
@ -15,11 +14,6 @@ class DocType(WebsiteGenerator):
if self.doc.partner_website and not self.doc.partner_website.startswith("http"):
self.doc.partner_website = "http://" + self.doc.partner_website
def on_update(self):
WebsiteGenerator.on_update(self)
if self.doc.page_name:
clear_cache("partners")
def get_contacts(self,nm):
if nm:
contact_details =webnotes.conn.convert_to_lists(webnotes.conn.sql("select name, CONCAT(IFNULL(first_name,''),' ',IFNULL(last_name,'')),contact_no,email_id from `tabContact` where sales_partner = '%s'"%nm))

View File

@ -8,13 +8,12 @@ from webnotes.utils import cstr, flt
from webnotes.model.doc import addchild
from webnotes.model.bean import getlist
from webnotes import msgprint, _
from webnotes.webutils import WebsiteGenerator
from webnotes.model.controller import DocListController
class WarehouseNotSet(Exception): pass
class DocType(DocListController, WebsiteGenerator):
class DocType(DocListController):
def onload(self):
self.doc.fields["__sle_exists"] = self.check_if_sle_exists()
@ -48,7 +47,6 @@ class DocType(DocListController, WebsiteGenerator):
def on_update(self):
self.validate_name_with_item_group()
self.update_website()
self.update_item_price()
def check_warehouse_is_set_for_stock_item(self):
@ -197,14 +195,6 @@ class DocType(DocListController, WebsiteGenerator):
please change the item name or rename the item group" %
self.doc.name, raise_exception=1)
def update_website(self):
from erpnext.setup.doctype.item_group.item_group import invalidate_cache_for
invalidate_cache_for(self.doc.item_group)
[invalidate_cache_for(d.item_group) for d in \
self.doclist.get({"doctype":"Website Item Group"})]
WebsiteGenerator.on_update(self)
def update_item_price(self):
webnotes.conn.sql("""update `tabItem Price` set item_name=%s,
item_description=%s, modified=NOW() where item_code=%s""",
@ -232,7 +222,6 @@ class DocType(DocListController, WebsiteGenerator):
def on_trash(self):
webnotes.conn.sql("""delete from tabBin where item_code=%s""", self.doc.item_code)
WebsiteGenerator.on_trash(self)
def before_rename(self, olddn, newdn, merge=False):
if merge:
@ -250,18 +239,11 @@ class DocType(DocListController, WebsiteGenerator):
def after_rename(self, olddn, newdn, merge):
webnotes.conn.set_value("Item", newdn, "item_code", newdn)
self.update_website_page_name()
if merge:
self.set_last_purchase_rate(newdn)
self.recalculate_bin_qty(newdn)
def update_website_page_name(self):
if self.doc.page_name:
self.update_website()
from webnotes.webutils import clear_cache
clear_cache(self.doc.page_name)
def set_last_purchase_rate(self, newdn):
from erpnext.buying.utils import get_last_purchase_details
last_purchase_rate = get_last_purchase_details(newdn).get("purchase_rate", 0)

View File

@ -36,6 +36,7 @@ test_records = [
"stock_uom": "_Test UOM",
"default_income_account": "Sales - _TC",
"default_warehouse": "_Test Warehouse - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC"
}, {
"doctype": "Item Reorder",
"parentfield": "item_reorder",
@ -64,6 +65,7 @@ test_records = [
"stock_uom": "_Test UOM",
"default_income_account": "Sales - _TC",
"default_warehouse": "_Test Warehouse - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC"
}],
[{
"doctype": "Item",
@ -73,6 +75,7 @@ test_records = [
"item_group": "_Test Item Group Desktops",
"default_warehouse": "_Test Warehouse - _TC",
"default_income_account": "Sales - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC",
"is_stock_item": "Yes",
"is_asset_item": "No",
"has_batch_no": "No",
@ -99,6 +102,7 @@ test_records = [
"item_group": "_Test Item Group Desktops",
"default_warehouse": "_Test Warehouse - _TC",
"default_income_account": "Sales - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC",
"is_stock_item": "Yes",
"is_asset_item": "No",
"has_batch_no": "No",
@ -119,6 +123,7 @@ test_records = [
"description": "_Test Sales BOM Item",
"item_group": "_Test Item Group Desktops",
"default_income_account": "Sales - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC",
"is_stock_item": "No",
"is_asset_item": "No",
"has_batch_no": "No",
@ -140,6 +145,7 @@ test_records = [
"is_stock_item": "Yes",
"default_warehouse": "_Test Warehouse - _TC",
"default_income_account": "Sales - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC",
"is_asset_item": "No",
"has_batch_no": "No",
"has_serial_no": "No",
@ -216,6 +222,7 @@ test_records = [
"item_group": "_Test Item Group Desktops",
"default_warehouse": "_Test Warehouse - _TC",
"default_income_account": "Sales - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC",
"is_stock_item": "Yes",
"is_asset_item": "No",
"has_batch_no": "No",
@ -238,6 +245,7 @@ test_records = [
"is_stock_item": "Yes",
"default_warehouse": "_Test Warehouse - _TC",
"default_income_account": "Sales - _TC",
"purchase_account": "_Test Account Cost for Goods Sold - _TC",
"is_asset_item": "No",
"has_batch_no": "No",
"has_serial_no": "No",