440 lines
22 KiB
SQL
440 lines
22 KiB
SQL
SET global log_bin_trust_function_creators = 1;
|
|
SET global sql_mode = '';
|
|
USE `__TABLE__`;
|
|
|
|
DROP FUNCTION IF EXISTS `get_monday`;
|
|
CREATE FUNCTION `get_monday`(day date) RETURNS date
|
|
begin if date_format(day, '%w') = 0 then return subdate(day, date_format(day, '%w') - 6)__DELIMITER__
|
|
else return subdate(day, date_format(day, '%w') -1)__DELIMITER__
|
|
end if__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `get_sunday`;
|
|
CREATE FUNCTION `get_sunday`(day date) RETURNS date
|
|
begin
|
|
if date_format(day, '%w') = 0 then return day__DELIMITER__
|
|
else return subdate(day, date_format(day, '%w') - 7)__DELIMITER__
|
|
end if__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_cminited`;
|
|
CREATE FUNCTION qc_cminited($project int, $category varchar(30)) returns int
|
|
begin
|
|
declare products int default 0__DELIMITER__
|
|
declare objects int default 0__DELIMITER__
|
|
select count(*) from zt_projectproduct where project = $project into products__DELIMITER__
|
|
select count(distinct product) from zt_object where project = $project and category = $category and type = 'taged' and product in (select product from zt_projectproduct where project = $project) into objects__DELIMITER__
|
|
IF products = objects THEN
|
|
return 1__DELIMITER__
|
|
ELSEIF products != objects THEN
|
|
return 0__DELIMITER__
|
|
END IF__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_initscale`;
|
|
CREATE FUNCTION qc_initscale($project int, $category varchar(30), $estimateType varchar(30)) RETURNS float(10,2)
|
|
BEGIN
|
|
declare $estimate int default 0__DELIMITER__
|
|
declare $storyEst varchar(30) default 'storyEst'__DELIMITER__
|
|
declare $requestEst varchar(30) default 'requestEst'__DELIMITER__
|
|
if($estimateType = $storyEst) THEN SELECT sum(storyEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = $category and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
end if__DELIMITER__
|
|
if($estimateType = $requestEst) THEN SELECT sum(requestEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = $category and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
end if__DELIMITER__
|
|
RETURN @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmplanscale`;
|
|
CREATE FUNCTION `qc_pgmplanscale`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
declare programScale float (10,2) default 0__DELIMITER__
|
|
select `scale` from zt_workestimation where project = $project into @programScale__DELIMITER__
|
|
return @programScale__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmsrinitscale`;
|
|
CREATE FUNCTION `qc_pgmsrinitscale`($project int) RETURNS float(10,2)
|
|
begin
|
|
declare scale int default 0__DELIMITER__
|
|
declare inited int default 0__DELIMITER__
|
|
select qc_cminited($project, 'SRS') into inited__DELIMITER__
|
|
IF inited = 1 THEN
|
|
select qc_initscale($project, 'SRS', 'storyEst') into scale __DELIMITER__
|
|
return scale __DELIMITER__
|
|
ELSE
|
|
return 0__DELIMITER__
|
|
END IF__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmsrrealscale`;
|
|
CREATE FUNCTION `qc_pgmsrrealscale`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
declare totalEstimate float(10,2) default 0__DELIMITER__
|
|
select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where id in (select story from zt_projectstory where project=$project) and type='story' and deleted='0' and closedReason not in ('subdivided', 'duplicate', 'willnotdo', 'cancel', 'bydesign') into totalEstimate__DELIMITER__
|
|
return totalEstimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmurinitscale`;
|
|
CREATE FUNCTION `qc_pgmurinitscale`($project int) RETURNS float(10,2)
|
|
begin
|
|
declare scale int default 0__DELIMITER__
|
|
declare inited int default 0__DELIMITER__
|
|
select qc_cminited($project, 'URS') into inited__DELIMITER__
|
|
IF inited = 1 THEN
|
|
select qc_initscale($project, 'URS', 'requestEst') into scale__DELIMITER__
|
|
return scale__DELIMITER__
|
|
ELSE
|
|
return 0__DELIMITER__
|
|
END IF__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmurrealscale`;
|
|
CREATE FUNCTION `qc_pgmurrealscale`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
declare totalEstimate float(10,2) default 0__DELIMITER__
|
|
select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_story where project=$project and type='requirement' and deleted='0' and closedReason not in ('subdivided', 'duplicate', 'willnotdo', 'cancel', 'bydesign') into totalEstimate__DELIMITER__
|
|
return totalEstimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmallrequirementstage`;
|
|
CREATE FUNCTION `qc_pgmallrequirementstage`($project int) RETURNS int(1)
|
|
BEGIN
|
|
-- 获取项目产品总数
|
|
select count(*) as products from zt_projectproduct where project = $project into @totalproduct__DELIMITER__
|
|
-- 获取已经设置需求阶段的产品总数
|
|
select count(*) as product from (select product from zt_projectproduct where project in (select id from zt_project where project = $project and type = 'stage' and attribute = 'request' and deleted = '0') GROUP BY product) as product into @product__DELIMITER__
|
|
-- 让项目产品总数和已设置需求阶段产品总数比较,都设置返回1,否则返回0
|
|
if @totalproduct = @product then return 1__DELIMITER__
|
|
end if__DELIMITER__
|
|
RETURN 0__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdesigntplandays`;
|
|
CREATE FUNCTION `qc_pgmdesigntplandays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeplanneddays($project,'design') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdesigntrealdays`;
|
|
CREATE FUNCTION `qc_pgmdesigntrealdays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeactualdays($project,'design') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdevelplandays`;
|
|
CREATE FUNCTION `qc_pgmdevelplandays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeplanneddays($project,'dev') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdevelrealdays`;
|
|
CREATE FUNCTION `qc_pgmdevelrealdays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeactualdays($project,'dev') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrequestplandays`;
|
|
CREATE FUNCTION `qc_pgmrequestplandays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeplanneddays($project,'request') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrequestrealdays`;
|
|
CREATE FUNCTION `qc_pgmrequestrealdays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeactualdays($project,'request') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmspecifiedtypeactualdays`;
|
|
CREATE FUNCTION `qc_pgmspecifiedtypeactualdays`($project int,$attribute varchar(50)) RETURNS int(10)
|
|
BEGIN
|
|
-- 查询某类型的阶段总数
|
|
select count(*) from zt_project where project = $project and attribute = $attribute and deleted = '0' and id not in (select parent from zt_project where project = $project and attribute = $attribute and grade = 2 group by parent) into @totalstory__DELIMITER__
|
|
-- 查询某类型已设置实际工期的阶段总数
|
|
select count(*) from zt_project where project = $project and attribute = $attribute and deleted = '0' and realDuration > 0 and id not in (select parent from zt_project where project = $project and attribute = $attribute and grade = 2 group by parent) into @setstory__DELIMITER__
|
|
-- 查询项目下某类型阶段实际工期总数
|
|
select sum(realDuration) as realDuration from zt_project where project = $project and attribute = $attribute and deleted = '0' and realDuration > 0 and id not in (select parent from zt_project where project = $project and attribute = $attribute and grade = 2 group by parent) into @days__DELIMITER__
|
|
-- 判断项目下某类型的阶段是否都已设置实际工期
|
|
if @totalstory != @setstory then
|
|
set @days = 0__DELIMITER__
|
|
end if__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmspecifiedtypeplanneddays`;
|
|
CREATE FUNCTION `qc_pgmspecifiedtypeplanneddays`($project int,$attribute varchar(50)) RETURNS int(10)
|
|
BEGIN
|
|
select sum(planDuration) as planDuration from zt_project where project = $project and attribute = $attribute and deleted = '0' and id not in (select parent from zt_project where project = $project and attribute = $attribute and grade = 2 group by parent) into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmstageactualduration`;
|
|
CREATE FUNCTION `qc_pgmstageactualduration`($product int, $attribute varchar(50)) RETURNS int(10)
|
|
BEGIN
|
|
-- 查找某类型的阶段总数
|
|
select count(*) as totalduration from zt_project where id in (select project from zt_projectproduct where product = $product) and type = 'stage' and attribute = $attribute and deleted = '0' and id not in (select parent from zt_project where id in (select project from zt_projectproduct where product = $product) and attribute = $attribute and grade = 2 group by parent) into @totalduration__DELIMITER__
|
|
-- 查某类型阶段已设置实际工期的总数
|
|
select count(*) as setduration from zt_project where id in (select project from zt_projectproduct where product = $product) and type = 'stage' and attribute = $attribute and deleted = '0' and id not in (select parent from zt_project where id in (select project from zt_projectproduct where product = $product) and attribute = $attribute and grade = 2 group by parent) and realDuration > 0 into @setduration__DELIMITER__
|
|
-- 指定产品下某类型的阶段实际工期总和
|
|
select sum(realDuration) as duration from zt_project where id in (select project from zt_projectproduct where product = $product) and type = 'stage' and attribute = $attribute and deleted = '0' and id not in (select parent from zt_project where id in (select project from zt_projectproduct where product = $product) and attribute = $attribute and grade = 2 group by parent) and realDuration > 0 into @duration__DELIMITER__
|
|
-- 需要判断该类型阶段都已设置实际工期,否则不统计
|
|
if @totalduration != @setduration then
|
|
set @duration = 0__DELIMITER__
|
|
end if__DELIMITER__
|
|
return @duration__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmstageplannedduration`;
|
|
CREATE FUNCTION `qc_pgmstageplannedduration`($product int, $attribute varchar(50)) RETURNS int(10)
|
|
BEGIN
|
|
-- 查找某产品对应阶段
|
|
select sum(planDuration) as duration from zt_project where id in (select project from zt_projectproduct where product = $product) and attribute = $attribute and deleted = '0' and id not in (select parent from zt_project where id in (select project from zt_projectproduct where product = $product) and attribute = $attribute and grade = 2 group by parent) and planDuration > 0 into @duration__DELIMITER__
|
|
RETURN @duration__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmtestplandays`;
|
|
CREATE FUNCTION `qc_pgmtestplandays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeplanneddays($project,'qa') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmtestrealdays`;
|
|
CREATE FUNCTION `qc_pgmtestrealdays`($project int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmspecifiedtypeactualdays($project,'qa') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prddesigntplandays`;
|
|
CREATE FUNCTION `qc_prddesigntplandays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageplannedduration($project, $product, 'design') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prddesigntrealdays`;
|
|
CREATE FUNCTION `qc_prddesigntrealdays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageactualduration($project, $product, 'design') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prddevelplandays`;
|
|
CREATE FUNCTION `qc_prddevelplandays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageplannedduration($project, $product, 'dev') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prddevelrealdays`;
|
|
CREATE FUNCTION `qc_prddevelrealdays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageactualduration($project, $product, 'dev') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prdrequestplandays`;
|
|
CREATE FUNCTION `qc_prdrequestplandays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageplannedduration($project, $product, 'request') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prdrequestrealdays`;
|
|
CREATE FUNCTION `qc_prdrequestrealdays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageactualduration($project, $product, 'request') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prdtestplandays`;
|
|
CREATE FUNCTION `qc_prdtestplandays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageplannedduration($project, $product, 'qa') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_prdtestrealdays`;
|
|
CREATE FUNCTION `qc_prdtestrealdays`($project int, $product int) RETURNS int(10)
|
|
BEGIN
|
|
select qc_pgmstageactualduration($project, $product, 'qa') as days into @days__DELIMITER__
|
|
return @days__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdesgignrealesthours`;
|
|
CREATE FUNCTION `qc_pgmdesgignrealesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmesthoursbytype($project, 'design')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdesignrealhours`;
|
|
CREATE FUNCTION `qc_pgmdesignrealhours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmrealhoursbytype($project, 'design')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdevelrealesthours`;
|
|
CREATE FUNCTION `qc_pgmdevelrealesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmesthoursbytype($project, 'devel')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmdevelrealhours`;
|
|
CREATE FUNCTION `qc_pgmdevelrealhours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmrealhoursbytype($project, 'devel')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrealesthours`;
|
|
CREATE FUNCTION `qc_pgmrealesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_task where project=$project and parent >= 0 and status != 'cancel' and deleted = '0' into @estimate__DELIMITER__
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmesthoursbytype`;
|
|
CREATE FUNCTION `qc_pgmesthoursbytype`($project int, $type char(30)) RETURNS float(10,2)
|
|
BEGIN
|
|
select CAST(sum(estimate) as DECIMAL(10,2)) as estimate from zt_task where project=$project and type = $type and parent >= 0 and status != 'cancel' and deleted = '0' into @estimate__DELIMITER__
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrealhours`;
|
|
CREATE FUNCTION `qc_pgmrealhours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
select CAST(sum(consumed) as DECIMAL(10,2)) as consumed from zt_task where project=$project and parent >= 0 and status != 'cancel' and deleted = '0' into @consumed__DELIMITER__
|
|
return @consumed__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrealhoursbytype`;
|
|
CREATE FUNCTION `qc_pgmrealhoursbytype`($project int, $type char(30)) RETURNS float(10,2)
|
|
BEGIN
|
|
select CAST(sum(consumed) as DECIMAL(10,2)) as consumed from zt_task where project=$project and type = $type and parent >= 0 and status != 'cancel' and deleted = '0' into @consumed__DELIMITER__
|
|
return @consumed__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrequestrealesthours`;
|
|
CREATE FUNCTION `qc_pgmrequestrealesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmesthoursbytype($project, 'request')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmrequestrealhours`;
|
|
CREATE FUNCTION `qc_pgmrequestrealhours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmrealhoursbytype($project, 'request')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmtestrealesthours`;
|
|
CREATE FUNCTION `qc_pgmtestrealesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmesthoursbytype($project, 'test')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmtestrealhours`;
|
|
CREATE FUNCTION `qc_pgmtestrealhours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
return qc_pgmrealhoursbytype($project, 'test')__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getdevelfirstesthours`;
|
|
CREATE FUNCTION `qc_getdevelfirstesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(devEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getdesignfirstesthours`;
|
|
CREATE FUNCTION `qc_getdesignfirstesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(designEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getstoryfirstesthours`;
|
|
CREATE FUNCTION `qc_getstoryfirstesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(requestEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_gettestfirstesthours`;
|
|
CREATE FUNCTION `qc_gettestfirstesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(testEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getfirstesthours`;
|
|
CREATE FUNCTION `qc_getfirstesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(taskEst) as estimate FROM zt_object WHERE id in(SELECT MIN(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getdevlastesthours`;
|
|
CREATE FUNCTION `qc_getdevlastesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(devEst) as estimate FROM zt_object WHERE id in(SELECT MAX(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getrequestlastesthours`;
|
|
CREATE FUNCTION `qc_getrequestlastesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(requestEst) as estimate FROM zt_object WHERE id in(SELECT MAX(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_gettestlastesthours`;
|
|
CREATE FUNCTION `qc_gettestlastesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(testEst) as estimate FROM zt_object WHERE id in(SELECT MAX(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getdesignlastesthours`;
|
|
CREATE FUNCTION `qc_getdesignlastesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(designEst) as estimate FROM zt_object WHERE id in(SELECT MAX(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_getlastesthours`;
|
|
CREATE FUNCTION `qc_getlastesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
SELECT sum(taskEst) as estimate FROM zt_object WHERE id in(SELECT MAX(id) FROM zt_object WHERE project = $project and category = 'PP' and type = 'taged' and product in (select product from zt_projectproduct where project = $project) group by `product`) into @estimate__DELIMITER__
|
|
|
|
return @estimate__DELIMITER__
|
|
END;
|
|
|
|
DROP FUNCTION IF EXISTS `qc_pgmlastesthours`;
|
|
CREATE FUNCTION `qc_pgmlastesthours`($project int) RETURNS float(10,2)
|
|
BEGIN
|
|
declare estimate float(10,2) default 0__DELIMITER__
|
|
declare inited int default 0__DELIMITER__
|
|
select qc_cminited($project,'PP') into inited__DELIMITER__
|
|
IF inited = 1 THEN
|
|
select qc_getlastesthours($project) into estimate__DELIMITER__
|
|
return estimate__DELIMITER__
|
|
ELSE
|
|
return 0__DELIMITER__
|
|
END IF__DELIMITER__
|
|
END;
|