Merge branch 'develop'
This commit is contained in:
		
						commit
						a6db546457
					
				| @ -5,8 +5,7 @@ from __future__ import unicode_literals | ||||
| import webnotes | ||||
| 
 | ||||
| from webnotes.utils import flt, fmt_money, getdate | ||||
| from webnotes.model.code import get_obj | ||||
| from webnotes import msgprint, _ | ||||
| from webnotes import _ | ||||
| 	 | ||||
| class DocType: | ||||
| 	def __init__(self,d,dl): | ||||
| @ -130,7 +129,8 @@ def update_outstanding_amt(account, against_voucher_type, against_voucher, on_ca | ||||
| 		against_voucher_amount = flt(webnotes.conn.sql(""" | ||||
| 			select sum(ifnull(debit, 0)) - sum(ifnull(credit, 0)) | ||||
| 			from `tabGL Entry` where voucher_type = 'Journal Voucher' and voucher_no = %s | ||||
| 			and account = %s""", (against_voucher, account))[0][0]) | ||||
| 			and account = %s and ifnull(against_voucher, '') = ''""",  | ||||
| 			(against_voucher, account))[0][0]) | ||||
| 		bal = against_voucher_amount + bal | ||||
| 		if against_voucher_amount < 0: | ||||
| 			bal = -bal | ||||
|  | ||||
| @ -85,7 +85,7 @@ class AccountsReceivableReport(object): | ||||
| 	def get_account_map(self): | ||||
| 		if not hasattr(self, "account_map"): | ||||
| 			self.account_map = dict(((r.name, r) for r in webnotes.conn.sql("""select  | ||||
| 				account.name, customer.customer_name, customer.territory | ||||
| 				account.name, customer.name as customer_name, customer.territory | ||||
| 				from `tabAccount` account, `tabCustomer` customer  | ||||
| 				where account.master_type="Customer"  | ||||
| 				and customer.name=account.master_name""", as_dict=True))) | ||||
|  | ||||
| @ -27,6 +27,14 @@ class DocType(TransactionBase): | ||||
| 		else: | ||||
| 			self.doc.name = make_autoname(self.doc.naming_series + '.#####') | ||||
| 
 | ||||
| 	def update_address(self): | ||||
| 		webnotes.conn.sql("""update `tabAddress` set supplier_name=%s, modified=NOW()  | ||||
| 			where supplier=%s""", (self.doc.supplier_name, self.doc.name)) | ||||
| 
 | ||||
| 	def update_contact(self): | ||||
| 		webnotes.conn.sql("""update `tabContact` set supplier_name=%s, modified=NOW()  | ||||
| 			where supplier=%s""", (self.doc.supplier_name, self.doc.name)) | ||||
| 
 | ||||
| 	def update_credit_days_limit(self): | ||||
| 		webnotes.conn.sql("""update tabAccount set credit_days = %s where name = %s""",  | ||||
| 			(cint(self.doc.credit_days), self.doc.name + " - " + self.get_company_abbr())) | ||||
| @ -35,6 +43,9 @@ class DocType(TransactionBase): | ||||
| 		if not self.doc.naming_series: | ||||
| 			self.doc.naming_series = '' | ||||
| 
 | ||||
| 		self.update_address() | ||||
| 		self.update_contact() | ||||
| 
 | ||||
| 		# create account head | ||||
| 		self.create_account_head() | ||||
| 
 | ||||
| @ -153,8 +164,17 @@ class DocType(TransactionBase): | ||||
| 		rename_account_for("Supplier", olddn, newdn, merge) | ||||
| 
 | ||||
| 	def after_rename(self, olddn, newdn, merge=False): | ||||
| 		set_field = '' | ||||
| 		if webnotes.defaults.get_global_default('supp_master_name') == 'Supplier Name': | ||||
| 			webnotes.conn.set(self.doc, "supplier_name", newdn) | ||||
| 			self.update_contact() | ||||
| 			set_field = ", supplier_name=%(newdn)s" | ||||
| 		self.update_supplier_address(newdn, set_field) | ||||
| 
 | ||||
| 	def update_supplier_address(self, newdn, set_field): | ||||
| 		webnotes.conn.sql("""update `tabAddress` set address_title=%(newdn)s  | ||||
| 			{set_field} where supplier=%(newdn)s"""\ | ||||
| 			.format(set_field=set_field), ({"newdn": newdn})) | ||||
| 
 | ||||
| @webnotes.whitelist() | ||||
| def get_dashboard_info(supplier): | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|  "app_name": "ERPNext",  | ||||
|  "app_version": "3.1.2",  | ||||
|  "app_version": "3.2.0",  | ||||
|  "base_template": "app/portal/templates/base.html",  | ||||
|  "modules": { | ||||
|   "Accounts": { | ||||
| @ -74,5 +74,5 @@ | ||||
|    "type": "module" | ||||
|   } | ||||
|  },  | ||||
|  "requires_framework_version": "==3.1.1" | ||||
|  "requires_framework_version": "==3.2.0" | ||||
| } | ||||
| @ -72,9 +72,9 @@ class DocType: | ||||
| 				and (exists (select name from `tabItem` item where item.name=so_item.item_code | ||||
| 					and (ifnull(item.is_pro_applicable, 'No') = 'Yes'  | ||||
| 						or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s) | ||||
| 					or exists (select name from `tabPacked Item` dnpi | ||||
| 						where dnpi.parent = so.name and dnpi.parent_item = so_item.item_code | ||||
| 							and exists (select name from `tabItem` item where item.name=dnpi.item_code | ||||
| 					or exists (select name from `tabPacked Item` pi | ||||
| 						where pi.parent = so.name and pi.parent_item = so_item.item_code | ||||
| 							and exists (select name from `tabItem` item where item.name=pi.item_code | ||||
| 								and (ifnull(item.is_pro_applicable, 'No') = 'Yes'  | ||||
| 									or ifnull(item.is_sub_contracted_item, 'No') = 'Yes') %s))) | ||||
| 			""" % ('%s', so_filter, item_filter, item_filter), self.doc.company, as_dict=1) | ||||
| @ -83,6 +83,8 @@ class DocType: | ||||
| 
 | ||||
| 	def add_so_in_table(self, open_so): | ||||
| 		""" Add sales orders in the table""" | ||||
| 		self.clear_so_table() | ||||
| 
 | ||||
| 		so_list = [d.sales_order for d in getlist(self.doclist, 'pp_so_details')] | ||||
| 		for r in open_so: | ||||
| 			if cstr(r['name']) not in so_list: | ||||
| @ -116,19 +118,19 @@ class DocType: | ||||
| 					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \ | ||||
| 			(", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1) | ||||
| 		 | ||||
| 		dnpi_items = webnotes.conn.sql("""select distinct dnpi.parent, dnpi.item_code, dnpi.warehouse as reserved_warhouse, | ||||
| 			(((so_item.qty - ifnull(so_item.delivered_qty, 0)) * dnpi.qty) / so_item.qty)  | ||||
| 		packed_items = webnotes.conn.sql("""select distinct pi.parent, pi.item_code, pi.warehouse as reserved_warhouse, | ||||
| 			(((so_item.qty - ifnull(so_item.delivered_qty, 0)) * pi.qty) / so_item.qty)  | ||||
| 				as pending_qty | ||||
| 			from `tabSales Order Item` so_item, `tabPacked Item` dnpi | ||||
| 			where so_item.parent = dnpi.parent and so_item.docstatus = 1  | ||||
| 			and dnpi.parent_item = so_item.item_code | ||||
| 			from `tabSales Order Item` so_item, `tabPacked Item` pi | ||||
| 			where so_item.parent = pi.parent and so_item.docstatus = 1  | ||||
| 			and pi.parent_item = so_item.item_code | ||||
| 			and so_item.parent in (%s) and ifnull(so_item.qty, 0) > ifnull(so_item.delivered_qty, 0) | ||||
| 			and exists (select * from `tabItem` item where item.name=dnpi.item_code | ||||
| 			and exists (select * from `tabItem` item where item.name=pi.item_code | ||||
| 				and (ifnull(item.is_pro_applicable, 'No') = 'Yes'  | ||||
| 					or ifnull(item.is_sub_contracted_item, 'No') = 'Yes'))""" % \ | ||||
| 			(", ".join(["%s"] * len(so_list))), tuple(so_list), as_dict=1) | ||||
| 
 | ||||
| 		return items + dnpi_items | ||||
| 		return items + packed_items | ||||
| 		 | ||||
| 
 | ||||
| 	def add_items(self, items): | ||||
|  | ||||
| @ -47,6 +47,14 @@ class DocType(TransactionBase): | ||||
| 		if self.doc.lead_name: | ||||
| 			webnotes.conn.sql("update `tabLead` set status='Converted' where name = %s", self.doc.lead_name) | ||||
| 
 | ||||
| 	def update_address(self): | ||||
| 		webnotes.conn.sql("""update `tabAddress` set customer_name=%s, modified=NOW()  | ||||
| 			where customer=%s""", (self.doc.customer_name, self.doc.name)) | ||||
| 
 | ||||
| 	def update_contact(self): | ||||
| 		webnotes.conn.sql("""update `tabContact` set customer_name=%s, modified=NOW()  | ||||
| 			where customer=%s""", (self.doc.customer_name, self.doc.name)) | ||||
| 
 | ||||
| 	def create_account_head(self): | ||||
| 		if self.doc.company : | ||||
| 			abbr = self.get_company_abbr() | ||||
| @ -99,6 +107,9 @@ class DocType(TransactionBase): | ||||
| 		self.validate_name_with_customer_group() | ||||
| 		 | ||||
| 		self.update_lead_status() | ||||
| 		self.update_address() | ||||
| 		self.update_contact() | ||||
| 
 | ||||
| 		# create account head | ||||
| 		self.create_account_head() | ||||
| 		# update credit days and limit in account | ||||
| @ -148,8 +159,17 @@ class DocType(TransactionBase): | ||||
| 		rename_account_for("Customer", olddn, newdn, merge) | ||||
| 
 | ||||
| 	def after_rename(self, olddn, newdn, merge=False): | ||||
| 		set_field = '' | ||||
| 		if webnotes.defaults.get_global_default('cust_master_name') == 'Customer Name': | ||||
| 			webnotes.conn.set(self.doc, "customer_name", newdn) | ||||
| 			self.update_contact() | ||||
| 			set_field = ", customer_name=%(newdn)s" | ||||
| 		self.update_customer_address(newdn, set_field) | ||||
| 
 | ||||
| 	def update_customer_address(self, newdn, set_field): | ||||
| 		webnotes.conn.sql("""update `tabAddress` set address_title=%(newdn)s  | ||||
| 			{set_field} where customer=%(newdn)s"""\ | ||||
| 			.format(set_field=set_field), ({"newdn": newdn})) | ||||
| 
 | ||||
| @webnotes.whitelist() | ||||
| def get_dashboard_info(customer): | ||||
|  | ||||
| @ -2,7 +2,7 @@ | ||||
|  { | ||||
|   "creation": "2013-03-25 17:53:21",  | ||||
|   "docstatus": 0,  | ||||
|   "modified": "2013-11-28 11:54:42",  | ||||
|   "modified": "2013-12-06 13:12:25",  | ||||
|   "modified_by": "Administrator",  | ||||
|   "owner": "Administrator" | ||||
|  },  | ||||
| @ -103,6 +103,7 @@ | ||||
|   "label": "Auto Email Id" | ||||
|  },  | ||||
|  { | ||||
|   "default": "1",  | ||||
|   "description": "If checked, an email with an attached HTML format will be added to part of the EMail body as well as attachment. To only send as attachment, uncheck this.",  | ||||
|   "doctype": "DocField",  | ||||
|   "fieldname": "send_print_in_body_and_attachment",  | ||||
|  | ||||
| @ -150,7 +150,7 @@ class DocType(StockController): | ||||
| 			where serial_no like %s and item_code=%s and ifnull(is_cancelled, 'No')='No'  | ||||
| 			order by posting_date desc, posting_time desc, name desc""",  | ||||
| 			("%%%s%%" % self.doc.name, self.doc.item_code), as_dict=1): | ||||
| 				if self.doc.name in get_serial_nos(sle.serial_no): | ||||
| 				if self.doc.name.upper() in get_serial_nos(sle.serial_no): | ||||
| 					if sle.actual_qty > 0: | ||||
| 						sle_dict.setdefault("incoming", []).append(sle) | ||||
| 					else: | ||||
| @ -268,7 +268,8 @@ def get_item_details(item_code): | ||||
| 		from tabItem where name=%s""", item_code, as_dict=True)[0] | ||||
| 		 | ||||
| def get_serial_nos(serial_no): | ||||
| 	return [s.strip() for s in cstr(serial_no).strip().replace(',', '\n').split('\n') if s.strip()] | ||||
| 	return [s.strip() for s in cstr(serial_no).strip().upper().replace(',', '\n').split('\n')  | ||||
| 		if s.strip()] | ||||
| 
 | ||||
| def make_serial_no(serial_no, sle): | ||||
| 	sr = webnotes.new_bean("Serial No") | ||||
|  | ||||
| @ -244,7 +244,7 @@ cur_frm.script_manager.make(erpnext.stock.StockEntry); | ||||
| 
 | ||||
| cur_frm.cscript.toggle_related_fields = function(doc) { | ||||
| 	disable_from_warehouse = inList(["Material Receipt", "Sales Return"], doc.purpose); | ||||
| 	disable_to_warehouse = inList(["Material Issue", "Purchase Return"], doc.purpose) | ||||
| 	disable_to_warehouse = inList(["Material Issue", "Purchase Return"], doc.purpose); | ||||
| 	 | ||||
| 	cur_frm.toggle_enable("from_warehouse", !disable_from_warehouse); | ||||
| 	cur_frm.toggle_enable("to_warehouse", !disable_to_warehouse); | ||||
| @ -302,7 +302,7 @@ cur_frm.fields_dict['production_order'].get_query = function(doc) { | ||||
| } | ||||
| 
 | ||||
| cur_frm.cscript.purpose = function(doc, cdt, cdn) { | ||||
| 	cur_frm.cscript.toggle_related_fields(doc, cdt, cdn); | ||||
| 	cur_frm.cscript.toggle_related_fields(doc); | ||||
| } | ||||
| 
 | ||||
| // Overloaded query for link batch_no
 | ||||
|  | ||||
| @ -2,11 +2,12 @@ | ||||
|  { | ||||
|   "creation": "2013-01-10 16:34:32",  | ||||
|   "docstatus": 0,  | ||||
|   "modified": "2013-07-11 17:02:12",  | ||||
|   "modified": "2013-12-12 12:17:46",  | ||||
|   "modified_by": "Administrator",  | ||||
|   "owner": "Administrator" | ||||
|  },  | ||||
|  { | ||||
|   "allow_rename": 1,  | ||||
|   "doctype": "DocType",  | ||||
|   "document_type": "Master",  | ||||
|   "icon": "icon-map-marker",  | ||||
|  | ||||
| @ -2,11 +2,12 @@ | ||||
|  { | ||||
|   "creation": "2013-01-10 16:34:32",  | ||||
|   "docstatus": 0,  | ||||
|   "modified": "2013-10-08 16:48:50",  | ||||
|   "modified": "2013-12-12 12:18:19",  | ||||
|   "modified_by": "Administrator",  | ||||
|   "owner": "Administrator" | ||||
|  },  | ||||
|  { | ||||
|   "allow_rename": 1,  | ||||
|   "doctype": "DocType",  | ||||
|   "document_type": "Master",  | ||||
|   "icon": "icon-user",  | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user