Ejemplo n.º 1
0
	def _update_percent_field(self, args, update_modified=True):
		"""Update percent field in parent transaction"""

		self._update_modified(args, update_modified)

		if args.get('target_parent_field'):
			frappe.db.sql("""update `tab%(target_parent_dt)s`
				set %(target_parent_field)s = round(
					ifnull((select
						ifnull(sum(if(%(target_ref_field)s > %(target_field)s, %(target_field)s, %(target_ref_field)s)), 0)
						/ sum(%(target_ref_field)s) * 100
					from `tab%(target_dt)s` where parent="%(name)s"), 0), 2)
					%(update_modified)s
				where name='%(name)s'""" % args)

		# update field
		if args.get('status_field'):
			frappe.db.sql("""update `tab%(target_parent_dt)s`
				set %(status_field)s = if(%(target_parent_field)s<0.001,
					'Not %(keyword)s', if(%(target_parent_field)s>=99.99,
					'Fully %(keyword)s', 'Partly %(keyword)s'))
				where name='%(name)s'""" % args)

		if update_modified:
			target = frappe.get_doc(args["target_parent_dt"], args["name"])
			target.set_status(update=True)
			target.notify_update()
			notify_status(target)
Ejemplo n.º 2
0
    def _update_percent_field(self, args, update_modified=True):
        """Update percent field in parent transaction"""

        self._update_modified(args, update_modified)

        if args.get('target_parent_field'):
            frappe.db.sql("""update `tab%(target_parent_dt)s`
				set %(target_parent_field)s = round(
					ifnull((select
						ifnull(sum(if(%(target_ref_field)s > %(target_field)s, abs(%(target_field)s), abs(%(target_ref_field)s))), 0)
						/ sum(abs(%(target_ref_field)s)) * 100
					from `tab%(target_dt)s` where parent="%(name)s"), 0), 2)
					%(update_modified)s
				where name='%(name)s'""" % args)

            # update field
            if args.get('status_field'):
                frappe.db.sql("""update `tab%(target_parent_dt)s`
					set %(status_field)s = if(%(target_parent_field)s<0.001,
						'Not %(keyword)s', if(%(target_parent_field)s>=99.99,
						'Fully %(keyword)s', 'Partly %(keyword)s'))
					where name='%(name)s'""" % args)

            if update_modified:
                target = frappe.get_doc(args["target_parent_dt"], args["name"])
                target.set_status(update=True)
                target.notify_update()
                notify_status(target)