CREATE OR REPLACE DEFINER=`root`@`localhost`
	SQL SECURITY DEFINER
	VIEW `vn`.`lastTopClaims`
AS SELECT `s`.`itemFk` AS `itemFk`,
	`i`.`longName` AS `itemName`,
	`it`.`name` AS `itemTypeName`,
	COUNT(0) AS `claimsNumber`,
	round(
		sum(
			`cb`.`quantity` * `s`.`price` * (1 - (`c`.`responsibility` - 1) / 4) * (100 - `s`.`discount`) / 100
		),
		2
	) AS `claimedAmount`,
	round(
		sum(
			`cb`.`quantity` * `s`.`price` * (100 - `s`.`discount`) / 100
		),
		2
	) AS `totalAmount`
FROM (
		(
			(
				(
					`vn`.`claim` `c`
					JOIN `vn`.`claimBeginning` `cb` ON(`cb`.`claimFk` = `c`.`id`)
				)
				JOIN `vn`.`sale` `s` ON(`s`.`id` = `cb`.`saleFk`)
			)
			JOIN `vn`.`item` `i` ON(`i`.`id` = `s`.`itemFk`)
		)
		JOIN `vn`.`itemType` `it` ON(`it`.`id` = `i`.`typeFk`)
	)
WHERE `c`.`created` >= `util`.`VN_CURDATE`() + INTERVAL -1 week
GROUP BY `s`.`itemFk`
HAVING `claimedAmount` > 100
	AND `claimsNumber` > 2
	OR `claimsNumber` > 4
ORDER BY COUNT(0) DESC
