[issue fixes] + added fixtures for item attribute and operation
This commit is contained in:
		
							parent
							
								
									e9b3092167
								
							
						
					
					
						commit
						e8a37949cf
					
				| @ -23,7 +23,7 @@ def execute(filters=None): | ||||
| 			purchase_receipt = d.purchase_receipt | ||||
| 		elif d.po_detail: | ||||
| 			purchase_receipt = ", ".join(frappe.db.sql_list("""select distinct parent | ||||
| 			from `tabPurchase Receipt Item` where docstatus=1 and prevdoc_detail_docname=%s""", d.po_detail)) | ||||
| 			from `tabPurchase Receipt Item` where docstatus=1 and po_detail=%s""", d.po_detail)) | ||||
| 
 | ||||
| 		expense_account = d.expense_account or aii_account_map.get(d.company) | ||||
| 		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, d.supplier, | ||||
|  | ||||
| @ -22,7 +22,7 @@ def execute(filters=None): | ||||
| 			delivery_note = d.delivery_note | ||||
| 		elif d.so_detail: | ||||
| 			delivery_note = ", ".join(frappe.db.sql_list("""select distinct parent | ||||
| 			from `tabDelivery Note Item` where docstatus=1 and prevdoc_detail_docname=%s""", d.so_detail)) | ||||
| 			from `tabDelivery Note Item` where docstatus=1 and so_detail=%s""", d.so_detail)) | ||||
| 
 | ||||
| 		row = [d.item_code, d.item_name, d.item_group, d.parent, d.posting_date, d.customer, d.customer_name, | ||||
| 			d.customer_group, d.debit_to, d.territory, d.project_name, d.company, d.sales_order, | ||||
|  | ||||
| @ -160,7 +160,7 @@ def get_invoice_po_pr_map(invoice_list): | ||||
| 			pr_list = [d.purchase_receipt] | ||||
| 		elif d.po_detail: | ||||
| 			pr_list = frappe.db.sql_list("""select distinct parent from `tabPurchase Receipt Item` | ||||
| 				where docstatus=1 and prevdoc_detail_docname=%s""", d.pr_detail) | ||||
| 				where docstatus=1 and po_detail=%s""", d.pr_detail) | ||||
| 
 | ||||
| 		if pr_list: | ||||
| 			invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("purchase_receipt", pr_list) | ||||
|  | ||||
| @ -160,7 +160,7 @@ def get_invoice_so_dn_map(invoice_list): | ||||
| 			delivery_note_list = [d.delivery_note] | ||||
| 		elif d.sales_order: | ||||
| 			delivery_note_list = frappe.db.sql_list("""select distinct parent from `tabDelivery Note Item` | ||||
| 				where docstatus=1 and prevdoc_detail_docname=%s""", d.so_detail) | ||||
| 				where docstatus=1 and so_detail=%s""", d.so_detail) | ||||
| 
 | ||||
| 		if delivery_note_list: | ||||
| 			invoice_so_dn_map.setdefault(d.parent, frappe._dict()).setdefault("delivery_note", delivery_note_list) | ||||
|  | ||||
| @ -9,13 +9,13 @@ frappe.provide("erpnext.buying"); | ||||
| erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend({ | ||||
| 	refresh: function(doc, cdt, cdn) { | ||||
| 		this._super(); | ||||
| 		this.frm.dashboard.reset(); | ||||
| 		// this.frm.dashboard.reset();
 | ||||
| 
 | ||||
| 		if(doc.docstatus == 1 && doc.status != 'Stopped'){ | ||||
| 			cur_frm.dashboard.add_progress(cint(doc.per_received) + __("% Received"), | ||||
| 				doc.per_received); | ||||
| 			cur_frm.dashboard.add_progress(cint(doc.per_billed) + __("% Billed"), | ||||
| 				doc.per_billed); | ||||
| 			// cur_frm.dashboard.add_progress(cint(doc.per_received) + __("% Received"),
 | ||||
| 			// 	doc.per_received);
 | ||||
| 			// cur_frm.dashboard.add_progress(cint(doc.per_billed) + __("% Billed"),
 | ||||
| 			// 	doc.per_billed);
 | ||||
| 
 | ||||
| 			if(flt(doc.per_received, 2) < 100) | ||||
| 				cur_frm.add_custom_button(__('Make Purchase Receipt'), | ||||
|  | ||||
| @ -59,12 +59,12 @@ erpnext.production_order = { | ||||
| 		var doc = frm.doc; | ||||
| 		if (doc.docstatus === 1) { | ||||
| 
 | ||||
| 			if (doc.material_transferred_for_qty < doc.qty) { | ||||
| 			if (flt(doc.material_transferred_for_qty) < flt(doc.qty)) { | ||||
| 				frm.add_custom_button(__('Transfer Materials for Manufacture'), | ||||
| 					cur_frm.cscript['Transfer Raw Materials'], frappe.boot.doctype_icons["Stock Entry"]); | ||||
| 			} | ||||
| 
 | ||||
| 			if (doc.produced_qty < doc.material_transferred_for_qty) { | ||||
| 			if (flt(doc.produced_qty) < flt(doc.material_transferred_for_qty)) { | ||||
| 				frm.add_custom_button(__('Update Finished Goods'), | ||||
| 					cur_frm.cscript['Update Finished Goods'], frappe.boot.doctype_icons["Stock Entry"]); | ||||
| 			} | ||||
|  | ||||
							
								
								
									
										54
									
								
								erpnext/setup/page/setup_wizard/fixtures/industry_type.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								erpnext/setup/page/setup_wizard/fixtures/industry_type.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,54 @@ | ||||
| from frappe import _ | ||||
| 
 | ||||
| items = [ | ||||
| _('Accounting'), | ||||
| _('Advertising'), | ||||
| _('Aerospace'), | ||||
| _('Agriculture'), | ||||
| _('Airline'), | ||||
| _('Apparel & Accessories'), | ||||
| _('Automotive'), | ||||
| _('Banking'), | ||||
| _('Biotechnology'), | ||||
| _('Broadcasting'), | ||||
| _('Brokerage'), | ||||
| _('Chemical'), | ||||
| _('Computer'), | ||||
| _('Consulting'), | ||||
| _('Consumer Products'), | ||||
| _('Cosmetics'), | ||||
| _('Defense'), | ||||
| _('Department Stores'), | ||||
| _('Education'), | ||||
| _('Electronics'), | ||||
| _('Energy'), | ||||
| _('Entertainment & Leisure'), | ||||
| _('Executive Search'), | ||||
| _('Financial Services'), | ||||
| _('Food, Beverage & Tobacco'), | ||||
| _('Grocery'), | ||||
| _('Health Care'), | ||||
| _('Internet Publishing'), | ||||
| _('Investment Banking'), | ||||
| _('Legal'), | ||||
| _('Manufacturing'), | ||||
| _('Motion Picture & Video'), | ||||
| _('Music'), | ||||
| _('Newspaper Publishers'), | ||||
| _('Online Auctions'), | ||||
| _('Pension Funds'), | ||||
| _('Pharmaceuticals'), | ||||
| _('Private Equity'), | ||||
| _('Publishing'), | ||||
| _('Real Estate'), | ||||
| _('Retail & Wholesale'), | ||||
| _('Securities & Commodity Exchanges'), | ||||
| _('Service'), | ||||
| _('Soap & Detergent'), | ||||
| _('Software'), | ||||
| _('Sports'), | ||||
| _('Technology'), | ||||
| _('Telecommunications'), | ||||
| _('Television'), | ||||
| _('Transportation'), | ||||
| _('Venture Capital')] | ||||
							
								
								
									
										165
									
								
								erpnext/setup/page/setup_wizard/fixtures/operations.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								erpnext/setup/page/setup_wizard/fixtures/operations.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,165 @@ | ||||
| # source: http://en.wikipedia.org/wiki/List_of_manufacturing_processes" | ||||
| 
 | ||||
| from __future__ import unicode_literals | ||||
| from frappe import _ | ||||
| 
 | ||||
| items = [ | ||||
| _("Centrifugal casting"), | ||||
| _("Continuous casting"), | ||||
| _("Die casting"), | ||||
| _("Evaporative-pattern casting"), | ||||
| _("Full-mold casting"), | ||||
| _("Lost-foam casting"), | ||||
| _("Investment casting"), | ||||
| _("Countergravity casting"), | ||||
| _("Permanent mold casting"), | ||||
| _("Resin casting"), | ||||
| _("Sand casting"), | ||||
| _("Shell molding"), | ||||
| _("Spray forming"), | ||||
| _("Vacuum molding"), | ||||
| _("Molding"), | ||||
| _("Compaction plus sintering"), | ||||
| _("Hot isostatic pressing"), | ||||
| _("Metal injection molding"), | ||||
| _("Injection molding"), | ||||
| _("Compression molding"), | ||||
| _("Blow molding"), | ||||
| _("Dip molding"), | ||||
| _("Rotational molding"), | ||||
| _("Thermoforming"), | ||||
| _("Laminating"), | ||||
| _("Shrink fitting"), | ||||
| _("Shrink wrapping"), | ||||
| _("End tube forming"), | ||||
| _("Tube beading"), | ||||
| _("Forging"), | ||||
| _("Rolling"), | ||||
| _("Cold rolling"), | ||||
| _("Hot rolling"), | ||||
| _("Cryorolling"), | ||||
| _("Cross-rolling"), | ||||
| _("Pressing"), | ||||
| _("Embossing"), | ||||
| _("Stretch forming"), | ||||
| _("Blanking"), | ||||
| _("Drawing"), | ||||
| _("Bulging"), | ||||
| _("Necking"), | ||||
| _("Nosing"), | ||||
| _("Deep drawing"), | ||||
| _("Bending"), | ||||
| _("Hemming"), | ||||
| _("Shearing"), | ||||
| _("Piercing"), | ||||
| _("Trimming"), | ||||
| _("Shaving"), | ||||
| _("Notching"), | ||||
| _("Perforating"), | ||||
| _("Nibbling"), | ||||
| _("Lancing"), | ||||
| _("Cutting"), | ||||
| _("Stamping"), | ||||
| _("Coining"), | ||||
| _("Straight shearing"), | ||||
| _("Slitting"), | ||||
| _("Redrawing"), | ||||
| _("Ironing"), | ||||
| _("Flattening"), | ||||
| _("Swaging"), | ||||
| _("Spinning"), | ||||
| _("Peening"), | ||||
| _("Explosive forming"), | ||||
| _("Electroforming"), | ||||
| _("Staking"), | ||||
| _("Seaming"), | ||||
| _("Flanging"), | ||||
| _("Straightening"), | ||||
| _("Decambering"), | ||||
| _("Cold sizing"), | ||||
| _("Hubbing"), | ||||
| _("Hot metal gas forming"), | ||||
| _("Curling"), | ||||
| _("Hydroforming"), | ||||
| _("Machining"), | ||||
| _("Milling"), | ||||
| _("Hammering"), | ||||
| _("Smelting"), | ||||
| _("Refining"), | ||||
| _("Annealing"), | ||||
| _("Pickling"), | ||||
| _("Coating"), | ||||
| _("Turning"), | ||||
| _("Facing"), | ||||
| _("Boring"), | ||||
| _("Knurling"), | ||||
| _("Hard turning"), | ||||
| _("Drilling"), | ||||
| _("Reaming"), | ||||
| _("Countersinking"), | ||||
| _("Tapping"), | ||||
| _("Sawing"), | ||||
| _("Filing"), | ||||
| _("Broaching"), | ||||
| _("Shaping"), | ||||
| _("Planing"), | ||||
| _("Double housing"), | ||||
| _("Abrasive jet machining"), | ||||
| _("Water jet cutting"), | ||||
| _("Photochemical machining"), | ||||
| _("Honing"), | ||||
| _("Electro-chemical grinding"), | ||||
| _("Finishing & industrial finishing"), | ||||
| _("Abrasive blasting"), | ||||
| _("Buffing"), | ||||
| _("Burnishing"), | ||||
| _("Electroplating"), | ||||
| _("Electropolishing"), | ||||
| _("Magnetic field-assisted finishing"), | ||||
| _("Etching"), | ||||
| _("Linishing"), | ||||
| _("Mass finishing"), | ||||
| _("Tumbling"), | ||||
| _("Spindle finishing"), | ||||
| _("Vibratory finishing"), | ||||
| _("Plating"), | ||||
| _("Polishing"), | ||||
| _("Superfinishing"), | ||||
| _("Wire brushing"), | ||||
| _("Routing"), | ||||
| _("Hobbing"), | ||||
| _("Ultrasonic machining"), | ||||
| _("Electron beam machining"), | ||||
| _("Electrochemical machining"), | ||||
| _("Laser cutting"), | ||||
| _("Laser drilling"), | ||||
| _("Grinding"), | ||||
| _("Gashing"), | ||||
| _("Biomachining"), | ||||
| _("Joining"), | ||||
| _("Welding"), | ||||
| _("Brazing"), | ||||
| _("Sintering"), | ||||
| _("Adhesive bonding"), | ||||
| _("Nailing"), | ||||
| _("Screwing"), | ||||
| _("Riveting"), | ||||
| _("Clinching"), | ||||
| _("Pinning"), | ||||
| _("Stitching"), | ||||
| _("Stapling"), | ||||
| _("Press fitting"), | ||||
| _("3D printing"), | ||||
| _("Direct metal laser sintering"), | ||||
| _("Fused deposition modeling"), | ||||
| _("Laminated object manufacturing"), | ||||
| _("Laser engineered net shaping"), | ||||
| _("Selective laser sintering"), | ||||
| _("Mining"), | ||||
| _("Quarrying"), | ||||
| _("Blasting"), | ||||
| _("Woodworking"), | ||||
| _("Lapping"), | ||||
| _("Morticing"), | ||||
| _("Crushing"), | ||||
| _("Packaging and labeling")] | ||||
| @ -137,64 +137,31 @@ def install(country=None): | ||||
| 		{'doctype': 'Activity Type', 'activity_type': _('Communication')}, | ||||
| 		{'doctype': 'Activity Type', 'activity_type': 'Manufacturing'}, | ||||
| 
 | ||||
| 		# Industry Type | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Accounting')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Advertising')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Aerospace')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Agriculture')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Airline')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Apparel & Accessories')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Automotive')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Banking')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Biotechnology')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Broadcasting')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Brokerage')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Chemical')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Computer')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Consulting')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Consumer Products')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Cosmetics')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Defense')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Department Stores')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Education')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Electronics')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Energy')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Entertainment & Leisure')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Executive Search')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Financial Services')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Food, Beverage & Tobacco')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Grocery')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Health Care')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Internet Publishing')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Investment Banking')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Legal')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Manufacturing')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Motion Picture & Video')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Music')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Newspaper Publishers')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Online Auctions')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Pension Funds')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Pharmaceuticals')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Private Equity')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Publishing')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Real Estate')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Retail & Wholesale')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Securities & Commodity Exchanges')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Service')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Soap & Detergent')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Software')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Sports')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Technology')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Telecommunications')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Television')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Transportation')}, | ||||
| 		{'doctype': 'Industry Type', 'industry': _('Venture Capital')}, | ||||
| 		{'doctype': "Item Attribute", "attribute_name": _("Size"), "item_attribute_values": [ | ||||
| 			{"attribute_value": _("Extra Small"), "abbr": "XS"}, | ||||
| 			{"attribute_value": _("Small"), "abbr": "S"}, | ||||
| 			{"attribute_value": _("Medium"), "abbr": "M"}, | ||||
| 			{"attribute_value": _("Large"), "abbr": "L"}, | ||||
| 			{"attribute_value": _("Extra Large"), "abbr": "XL"} | ||||
| 		]}, | ||||
| 
 | ||||
| 		{'doctype': "Item Attribute", "attribute_name": _("Colour"), "item_attribute_values": [ | ||||
| 			{"attribute_value": _("Red"), "abbr": "RED"}, | ||||
| 			{"attribute_value": _("Green"), "abbr": "GRE"}, | ||||
| 			{"attribute_value": _("Blue"), "abbr": "BLU"}, | ||||
| 			{"attribute_value": _("Black"), "abbr": "BLA"}, | ||||
| 			{"attribute_value": _("White"), "abbr": "WHI"} | ||||
| 		]}, | ||||
| 
 | ||||
| 		{'doctype': "Email Account", "email_id": "sales@example.com", "append_to": "Lead"}, | ||||
| 		{'doctype': "Email Account", "email_id": "support@example.com", "append_to": "Issue"}, | ||||
| 		{'doctype': "Email Account", "email_id": "jobs@example.com", "append_to": "Job Applicant"} | ||||
| 	] | ||||
| 
 | ||||
| 	from erpnext.setup.page.setup_wizard.fixtures import industry_type, operations | ||||
| 	records += [{"doctype":"Industry Type", "industry": d} for d in industry_type.items] | ||||
| 	records += [{"doctype":"Operation", "operation": d} for d in operations.items] | ||||
| 
 | ||||
| 	from frappe.modules import scrub | ||||
| 	for r in records: | ||||
| 		doc = frappe.new_doc(r.get("doctype")) | ||||
|  | ||||
| @ -427,7 +427,7 @@ class StockEntry(StockController): | ||||
| 			pro_doc = frappe.get_doc("Production Order", self.production_order) | ||||
| 			_validate_production_order(pro_doc) | ||||
| 			pro_doc.run_method("update_status") | ||||
| 			if self.purpose == "Manufacture": | ||||
| 			if self.purpose in ("Manufacture", "Material Transfer for Manufacture"): | ||||
| 				pro_doc.run_method("update_production_order_qty") | ||||
| 				self.update_planned_qty(pro_doc) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user