def validate(self):
		import utilities
		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
			"In Process", "Completed", "Cancelled"])

		if self.doc.production_item :
			item_detail = sql("select name from `tabItem` where name = '%s' and docstatus != 2"
			 	% self.doc.production_item, as_dict = 1)
			if not item_detail:
				msgprint("Item '%s' does not exist or cancelled in the system." 
					% cstr(self.doc.production_item), raise_exception=1)

		if self.doc.bom_no:
			bom = sql("""select name from `tabBOM` where name=%s and docstatus=1 
				and is_active=1 and item=%s"""
				, (self.doc.bom_no, self.doc.production_item), as_dict =1)
			if not bom:
				msgprint("""Incorrect BOM: %s entered. 
					May be BOM not exists or inactive or not submitted 
					or for some other item.""" % cstr(self.doc.bom_no), raise_exception=1)
					
		if self.doc.sales_order:
			if not webnotes.conn.sql("""select name from `tabSales Order` 
					where name=%s and docstatus = 1""", self.doc.sales_order):
				msgprint("Sales Order: %s is not valid" % self.doc.sales_order, raise_exception=1)
				
			self.validate_production_order_against_so()

		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "stock_uom", ["qty", "produced_qty"])
示例#2
0
    def validate(self):
        # check for duplicate
        self.check_duplicate()
        self.validate_main_item()

        from utilities.transaction_base import validate_uom_is_integer
        validate_uom_is_integer(self.doclist, "uom", "qty")
示例#3
0
	def validate(self):
		# check for duplicate
		self.check_duplicate()
		self.validate_main_item()

		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "uom", "qty")
示例#4
0
文件: bom.py 项目: CarlosAnt/erpnext
	def validate(self):
		self.clear_operations()
		self.validate_main_item()

		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "stock_uom", "qty")

		self.validate_operations()
		self.validate_materials()
		self.set_bom_material_details()
		self.calculate_cost()
示例#5
0
	def validate(self):
		import utilities
		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
			"In Process", "Completed", "Cancelled"])

		self.validate_bom_no()
		self.validate_sales_order()
		self.validate_warehouse()
		
		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "stock_uom", ["qty", "produced_qty"])
示例#6
0
    def validate(self):
        self.clear_operations()
        self.validate_main_item()

        from utilities.transaction_base import validate_uom_is_integer
        validate_uom_is_integer(self.doclist, "stock_uom", "qty")

        self.validate_operations()
        self.validate_materials()
        self.set_bom_material_details()
        self.calculate_cost()
示例#7
0
	def validate(self):
		if self.doc.docstatus == 0:
			self.doc.status = "Draft"
			
		import utilities
		utilities.validate_status(self.doc.status, ["Draft", "Submitted", "Stopped", 
			"In Process", "Completed", "Cancelled"])

		self.validate_bom_no()
		self.validate_sales_order()
		self.validate_warehouse()
		
		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "stock_uom", ["qty", "produced_qty"])
	def raise_production_order(self):
		"""It will raise production order (Draft) for all distinct FG items"""
		self.validate_data()

		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "stock_uom", "planned_qty")

		items = self.get_distinct_items_and_boms()[1]
		pro = self.create_production_order(items)
		if pro:
			pro = ["""<a href="#Form/Production Order/%s" target="_blank">%s</a>""" % \
				(p, p) for p in pro]
			msgprint(_("Production Order(s) created:\n\n") + '\n'.join(pro))
		else :
			msgprint(_("No Production Order created."))
    def raise_production_order(self):
        """It will raise production order (Draft) for all distinct FG items"""
        self.validate_data()

        from utilities.transaction_base import validate_uom_is_integer
        validate_uom_is_integer(self.doclist, "stock_uom", "planned_qty")

        items = self.get_distinct_items_and_boms()[1]
        pro = self.create_production_order(items)
        if pro:
            pro = ["""<a href="#Form/Production Order/%s" target="_blank">%s</a>""" % \
             (p, p) for p in pro]
            msgprint("Production Order(s) created:\n\n" + '\n'.join(pro))
        else:
            msgprint("No Production Order created.")
示例#10
0
	def validate(self):
		"""
			* Validate existence of submitted Delivery Note
			* Case nos do not overlap
			* Check if packed qty doesn't exceed actual qty of delivery note

			It is necessary to validate case nos before checking quantity
		"""
		self.validate_delivery_note()
		self.validate_items_mandatory()
		self.validate_case_nos()
		self.validate_qty()

		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "stock_uom", "qty")
		validate_uom_is_integer(self.doclist, "weight_uom", "net_weight")
示例#11
0
    def validate(self):
        """
			* Validate existence of submitted Delivery Note
			* Case nos do not overlap
			* Check if packed qty doesn't exceed actual qty of delivery note

			It is necessary to validate case nos before checking quantity
		"""
        self.validate_delivery_note()
        self.validate_items_mandatory()
        self.validate_case_nos()
        self.validate_qty()

        from utilities.transaction_base import validate_uom_is_integer
        validate_uom_is_integer(self.doclist, "stock_uom", "qty")
        validate_uom_is_integer(self.doclist, "weight_uom", "net_weight")
示例#12
0
    def validate(self):
        self.validate_main_item()

        from utilities.transaction_base import validate_uom_is_integer
        validate_uom_is_integer(self.doclist, "uom", "qty")
示例#13
0
	def validate(self):
		self.validate_main_item()

		from utilities.transaction_base import validate_uom_is_integer
		validate_uom_is_integer(self.doclist, "uom", "qty")