|
@@ -803,4 +803,55 @@ CREATE OR REPLACE PROCEDURE P_AVG_PROGRESS_ACTION_PLAN(
|
|
|
|
|
|
;
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+CREATE OR REPLACE PROCEDURE P_AVG_SCORECARD_PROVIDER(
|
|
|
+ p_scorecard_provider_id in integer,
|
|
|
+ p_username in varchar2)
|
|
|
+ as
|
|
|
+
|
|
|
+ cursor cur_avg_area (p_scorecard_provider_id in integer)
|
|
|
+ is
|
|
|
+ select avg(SCORE_CATEGORY), ID_AREA
|
|
|
+ from SCORECARD_PROVIDER_MONTH m
|
|
|
+ where m.SCORECARD_PROVIDER_ID = p_scorecard_provider_id
|
|
|
+ group by ID_AREA;
|
|
|
+
|
|
|
+ cursor cur_tot_avg (p_scorecard_provider_id in integer)
|
|
|
+ is
|
|
|
+ select avg(SCORE_CATEGORY)
|
|
|
+ from SCORECARD_PROVIDER_MONTH m
|
|
|
+ where m.SCORECARD_PROVIDER_ID = p_scorecard_provider_id
|
|
|
+ ;
|
|
|
+
|
|
|
+ L_TOTAL_AVG NUMBER(5, 2);
|
|
|
+ L_TOTAL_AREA_AVG NUMBER(5,2);
|
|
|
+ L_AREA_ID number(5,2);
|
|
|
+
|
|
|
+ BEGIN
|
|
|
+ OPEN cur_tot_avg(p_scorecard_provider_id);
|
|
|
+ FETCH cur_tot_avg INTO L_TOTAL_AVG;
|
|
|
+ CLOSE cur_tot_avg;
|
|
|
+
|
|
|
+ UPDATE SCORECARD_PROVIDER SET TOTAL_AVG = L_TOTAL_AVG,LAST_SCORE=L_TOTAL_AVG,
|
|
|
+ UPDATED_DATE=current_date,UPDATED_BY=p_username
|
|
|
+ where ID = p_scorecard_provider_id;
|
|
|
+
|
|
|
+
|
|
|
+ OPEN cur_avg_area (p_scorecard_provider_id);
|
|
|
+ LOOP
|
|
|
+ FETCH cur_avg_area INTO L_TOTAL_AREA_AVG,L_AREA_ID;
|
|
|
+
|
|
|
+ EXIT WHEN cur_avg_area%NOTFOUND OR cur_avg_area%NOTFOUND IS NULL;
|
|
|
+
|
|
|
+ update SOCRECARDNEW.SCORECARD_PROVIDER_MONTH
|
|
|
+ set score = L_TOTAL_AREA_AVG,UPDATED_DATE=CURRENT_DATE
|
|
|
+ where SCORECARD_PROVIDER_ID = p_scorecard_provider_id
|
|
|
+ and ID_AREA = L_AREA_ID;
|
|
|
+
|
|
|
+ END LOOP ;
|
|
|
+ CLOSE cur_avg_area;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ end;
|
|
|
+;
|