Boris Aguilar пре 5 година
родитељ
комит
e0818dae42
2 измењених фајлова са 367 додато и 945 уклоњено
  1. 349 256
      create_table.sql
  2. 18 689
      populate.sql

+ 349 - 256
create_table.sql

@@ -447,7 +447,7 @@ create table AUTHORITIES
     AUTHORITY NVARCHAR2(100)
 )
 ;
-create PROCEDURE dashboard_generateScoreYear(pid_evaluacion IN  NUMBER,
+CREATE OR REPLACE PROCEDURE dashboard_generateScoreYear(pid_evaluacion IN  NUMBER,
                                              result_code    OUT NUMBER)
 AS
 
@@ -528,11 +528,14 @@ EXCEPTION WHEN OTHERS
 
 END;
 ;
-create PROCEDURE dash_global_by_kpi_month(pid_kpi     IN  NUMBER,
-                                          pmes        IN  NUMBER,
-                                          result_code OUT NUMBER)
+CREATE OR REPLACE PROCEDURE dash_global_by_kpi(pid_kpi     IN  NUMBER,
+                                    result_code OUT NUMBER)
 AS
 
+
+    paa_id INT := 0;
+
+
 BEGIN
 
     result_code := 0;
@@ -561,31 +564,27 @@ BEGIN
                     JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
                     JOIN areas a ON e.AREAS_ID = a.id
                     JOIN categorias c ON ed.CATEGORIAS_ID = c.id
-                    JOIN kpi k ON a.KPI_ID = k.id AND k.id = pid_kpi
-           WHERE to_number(EXTRACT(MONTH FROM ed.mes), 99) = pmes) detail
+                    JOIN kpi k ON a.KPI_ID = k.id
+               AND k.id = pid_kpi) detail
     ON (orig.id = detail.detail_id)
     WHEN MATCHED THEN UPDATE SET orig.CALIFICACION_GLOBAL = detail.global_categoria;
 
     COMMIT;
 
-EXCEPTION
-    WHEN OTHERS
-        THEN
-            result_code := -1;
-            ROLLBACK;
-            RAISE;
+EXCEPTION WHEN OTHERS
+    THEN
+        result_code := -1;
+        ROLLBACK;
+        RAISE;
 
 
 END;
 ;
-create PROCEDURE dash_global_by_kpi(pid_kpi     IN  NUMBER,
-                                    result_code OUT NUMBER)
+CREATE OR REPLACE PROCEDURE dash_global_by_kpi_month(pid_kpi     IN  NUMBER,
+                                          pmes        IN  NUMBER,
+                                          result_code OUT NUMBER)
 AS
 
-
-    paa_id INT := 0;
-
-
 BEGIN
 
     result_code := 0;
@@ -614,23 +613,24 @@ BEGIN
                     JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
                     JOIN areas a ON e.AREAS_ID = a.id
                     JOIN categorias c ON ed.CATEGORIAS_ID = c.id
-                    JOIN kpi k ON a.KPI_ID = k.id
-               AND k.id = pid_kpi) detail
+                    JOIN kpi k ON a.KPI_ID = k.id AND k.id = pid_kpi
+           WHERE to_number(EXTRACT(MONTH FROM ed.mes), 99) = pmes) detail
     ON (orig.id = detail.detail_id)
     WHEN MATCHED THEN UPDATE SET orig.CALIFICACION_GLOBAL = detail.global_categoria;
 
     COMMIT;
 
-EXCEPTION WHEN OTHERS
-    THEN
-        result_code := -1;
-        ROLLBACK;
-        RAISE;
+EXCEPTION
+    WHEN OTHERS
+        THEN
+            result_code := -1;
+            ROLLBACK;
+            RAISE;
 
 
 END;
 ;
-create PROCEDURE d_eval_global_month(pid_kpi     IN  NUMBER, pmes IN NUMBER,
+CREATE OR REPLACE PROCEDURE d_eval_global_month(pid_kpi     IN  NUMBER, pmes IN NUMBER,
                                      result_code OUT NUMBER)
 AS
 
@@ -665,7 +665,7 @@ EXCEPTION WHEN OTHERS
 
 END;
 ;
-create PROCEDURE get_detail_month(pkpi_id IN NUMBER, pmes IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
+CREATE OR REPLACE PROCEDURE get_detail_month(pkpi_id IN NUMBER, pmes IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
 AS
 BEGIN
     OPEN p_cursor FOR
@@ -693,7 +693,7 @@ BEGIN
 
 END;
 ;
-create PROCEDURE get_detail_global(pkpi_id IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
+CREATE OR REPLACE PROCEDURE get_detail_global(pkpi_id IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
 AS
 BEGIN
     OPEN p_cursor FOR
@@ -720,7 +720,7 @@ BEGIN
 
 END;
 ;
-create PROCEDURE get_detail_global_month(pkpi_id IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
+CREATE OR REPLACE PROCEDURE get_detail_global_month(pkpi_id IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
 AS
 BEGIN
     OPEN p_cursor FOR
@@ -741,249 +741,244 @@ BEGIN
 
 END;
 ;
-create PROCEDURE pc_create_up_scorecard(p_provider_id IN PROVEEDORES.ID%TYPE,
-                                        p_year        IN SCORECARD_PROVIDER.YEAR%TYPE,
-                                        p_month       IN SCORECARD_PROVIDER_MONTH.MONTH%TYPE)
-    IS
-    -- area
---type acursor is ref cursor;
---cur_score_area  acursor;
-
-    CURSOR cur_score_cate (p_provider_id IN scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
-        p_month IN SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
-        p_year IN scorecard_PROVIDER.YEAR%TYPE) is
-        SELECT to_number(EXTRACT(MONTH FROM ed.mes), 99)  mes,
+
+
+
+CREATE OR REPLACE PROCEDURE pc_create_up_scorecard(p_provider_id IN INTEGER,
+                                        p_year        IN INTEGER,
+                                        p_month       IN INTEGER)
+IS
+
+  CURSOR cur_score_cate (p_provider_id IN scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
+  p_month IN SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
+  p_year IN scorecard_PROVIDER.YEAR%TYPE) is
+  SELECT to_number(EXTRACT(MONTH FROM ed.mes), 99)  mes,
+         to_number(EXTRACT(YEAR FROM ed.mes), 9999) YEAR,
+           p.NOMBRE,a.NOMBRE,c.NOMBRE,
+           p.id,
+           a.ID,c.id,
+           avg(ed.CALIFICACION_ACTUAL) promedio_area
+  FROM EVALUACION_DET ed
+         JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
+         JOIN areas a ON e.AREAS_ID = a.id
+         JOIN categorias c ON ed.CATEGORIAS_ID = c.id
+         JOIN kpi k ON a.KPI_ID = k.id
+         JOIN PROVEEDORES P on e.PROVEEDORES_ID = P.ID
+  WHERE p.id = p_provider_id
+    AND to_number(EXTRACT(MONTH FROM ed.mes), 99) = p_month
+    AND to_number(EXTRACT(year FROM ed.mes), 9999) = p_year
+  GROUP BY k.id, e.id, a.id,c.id, p.nombre,a.nombre,c.nombre, p.id
+           , to_number(EXTRACT(MONTH FROM ed.mes), 99),
+              to_number(EXTRACT(YEAR FROM ed.mes), 9999)
+  order by mes;
+
+  CURSOR cur_score_area (
+    p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
+    p_month SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
+    p_year scorecard_PROVIDER.YEAR%TYPE,
+    p_area_id IN scorecard_PROVIDER.YEAR%TYPE) is
+  SELECT  avg(ed.CALIFICACION_ACTUAL)
+  FROM EVALUACION_DET ed
+         JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
+         JOIN areas a ON e.AREAS_ID = a.id
+         JOIN categorias c ON ed.CATEGORIAS_ID = c.id
+         JOIN PROVEEDORES P on e.PROVEEDORES_ID = P.ID
+  WHERE p.id = p_provider_id
+    AND to_number(EXTRACT(MONTH FROM ed.mes), 99) = p_month
+    AND to_number(EXTRACT(year FROM ed.mes), 9999) = p_year
+    and a.id = p_area_id;
+
+  CURSOR cur_score_global (p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
+  p_month SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
+  p_year scorecard_PROVIDER.YEAR%TYPE) is
+  select         avg(promedio_categoria),NOMBRE
+  from (SELECT e.id                                       eval_id,
+               c.id                                       categoria_id,
+               to_number(EXTRACT(MONTH FROM ed.mes), 99)  mes,
                to_number(EXTRACT(YEAR FROM ed.mes), 9999) YEAR,
                p.NOMBRE,
-               a.NOMBRE,
-               c.NOMBRE,
-               p.id,
-               a.ID,
-               c.id,
-               avg(ed.CALIFICACION_ACTUAL)                promedio_area
-               -- INTO           L_MONTH, L_YEAR, L_NAME, L_PROVEEDORES_ID, L_LAST_SCORE
-        FROM EVALUACION_DET ed
-                 JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
-                 JOIN areas a ON e.AREAS_ID = a.id
-                 JOIN categorias c ON ed.CATEGORIAS_ID = c.id
-                 JOIN kpi k ON a.KPI_ID = k.id
-                 JOIN PROVEEDORES P on e.PROVEEDORES_ID = P.ID
-        WHERE p.id = p_provider_id
-          AND to_number(EXTRACT(MONTH FROM ed.mes), 99) = p_month
-          AND to_number(EXTRACT(year FROM ed.mes), 9999) = p_year
-        GROUP BY k.id, e.id, a.id, c.id, p.nombre, a.nombre, c.nombre, p.id, to_number(EXTRACT(MONTH FROM ed.mes), 99),
-                 to_number(EXTRACT(YEAR FROM ed.mes), 9999)
-        order by mes;
-
-    --   -- por area nota total de todas las areas agrupadas por categoria
-    CURSOR cur_score_area (
-        p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
-        p_month SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
-        p_year scorecard_PROVIDER.YEAR%TYPE,
-        p_area_id IN scorecard_PROVIDER.YEAR%TYPE) is
-        SELECT avg(ed.CALIFICACION_ACTUAL)
+               p.id                                       provedorId,
+               avg(ed.CALIFICACION_ACTUAL)                promedio_categoria
         FROM EVALUACION_DET ed
-                 JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
-                 JOIN areas a ON e.AREAS_ID = a.id
-                 JOIN categorias c ON ed.CATEGORIAS_ID = c.id
-                 JOIN PROVEEDORES P on e.PROVEEDORES_ID = P.ID
-        WHERE p.id = p_provider_id
-          AND to_number(EXTRACT(MONTH FROM ed.mes), 99) = p_month
+               JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
+               JOIN categorias c ON ed.CATEGORIAS_ID = c.id
+               JOIN PROVEEDORES P on e.PROVEEDORES_ID = P.ID
+        where p.id = p_provider_id
+          and to_number(EXTRACT(MONTH FROM ed.mes), 99) = p_month
           AND to_number(EXTRACT(year FROM ed.mes), 9999) = p_year
-          and a.id = p_area_id
-    --group by ed.id
-    --   GROUP BY c.id, p.nombre,c.nombre, p.id, to_number(EXTRACT(MONTH FROM ed.mes), 99),
-    --            to_number(EXTRACT(YEAR FROM ed.mes), 9999)
-    ;
-
-    --   p.NOMBRE,a.NOMBRE,c.nombre catname,
-    --          p.id,
-
-    --global
-    CURSOR cur_score_global (p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
-        p_month SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
-        p_year scorecard_PROVIDER.YEAR%TYPE) is
-        select -- mes, YEAR, NOMBRE, provedorId,
-               -- categoria_id,
-               avg(promedio_categoria), NOMBRE
-               -- INTO L_TOTAL_AVG
-        from (SELECT e.id                                       eval_id,
-                     c.id                                       categoria_id,
-                     to_number(EXTRACT(MONTH FROM ed.mes), 99)  mes,
-                     to_number(EXTRACT(YEAR FROM ed.mes), 9999) YEAR,
-                     p.NOMBRE,
-                     p.id                                       provedorId,
-                     avg(ed.CALIFICACION_ACTUAL)                promedio_categoria
-              FROM EVALUACION_DET ed
-                       JOIN EVALUACION e ON ed.EVALUACION_ID = e.id
-                       JOIN categorias c ON ed.CATEGORIAS_ID = c.id
-                       JOIN PROVEEDORES P on e.PROVEEDORES_ID = P.ID
-              where p.id = p_provider_id
-                and to_number(EXTRACT(MONTH FROM ed.mes), 99) = p_month
-                AND to_number(EXTRACT(year FROM ed.mes), 9999) = p_year
-              GROUP BY e.id, c.id, p.nombre, p.id, to_number(EXTRACT(MONTH FROM ed.mes), 99),
-                       to_number(EXTRACT(YEAR FROM ed.mes), 9999))
-        group by YEAR, NOMBRE, provedorId; --mes,
-
-    CURSOR cur_score_year (
-        p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
-        p_month IN SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
-        p_year scorecard_PROVIDER.YEAR%TYPE) is
-        select p.id, p.LAST_SCORE
-        from SCORECARD_PROVIDER p
-        where p.PROVEEDORES_ID = p_provider_id
-          and p.YEAR = p_year
-          and p.MONTH = p_month;
-
-    CURSOR cur_quiz_comments
-        (p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
-        p_month SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
-        p_year scorecard_PROVIDER.YEAR%TYPE)
-        is
-        select d.id, d.comentario, d.CREATED_DATE, d.CREATED_BY
-        from EVALUACION_DET_COMMENTARIOS d
-                 join evaluacion_det e on e.id = d.EVALUACION_DET_ID
-                 join evaluacion x on x.id = e.EVALUACION_ID
-            and x.PROVEEDORES_ID = p_provider_id
-            and to_number(EXTRACT(MONTH FROM e.mes), 99) = p_month
-            AND to_number(EXTRACT(year FROM e.mes), 9999) = p_year;
-
-
-    L_NAME            scorecard_PROVIDER.NAME%TYPE;
-    L_LAST_SCORE_AREA SCORECARD_PROVIDER_MONTH.SCORE%TYPE;
-    L_LAST_SCORE      scorecard_PROVIDER.LAST_SCORE%TYPE; -- CATGORIAS
-    L_BEFORE_SCORE    scorecard_PROVIDER.BEFORE_SCORE%TYPE;
-    L_TOTAL_AVG       scorecard_PROVIDER.TOTAL_AVG%TYPE;
-    L_TARGET                scorecard_PROVIDER.TARGET%TYPE := 5;
-    L_YEAR                  scorecard_PROVIDER.YEAR%TYPE := p_year;
-    L_CREATED_DATE          scorecard_PROVIDER.CREATED_DATE%TYPE;
-    L_PROVEEDORES_ID        scorecard_PROVIDER.PROVEEDORES_ID%TYPE := p_provider_id;
-    L_SCORECARD_PROVIDER    SCORECARD_PROVIDER.PROVEEDORES_ID%TYPE;
-    L_MONTH                 SCORECARD_PROVIDER_MONTH.MONTH%TYPE := p_month;
-    L_SCORECARD_PROVIDER_ID SCORECARD_PROVIDER.ID%TYPE;
-    L_NOMBRE_AREA           scorecard_PROVIDER_MONTH.NOMBRE_AREA%TYPE;
-    L_NOMBRE_CATEGORIA      scorecard_PROVIDER_MONTH.NOMBRE_CATEGORIA%TYPE;
-    L_ID_AREA               AREAS.ID%TYPE;
-    L_ID_CATEGORIA         CATEGORIAS.ID%TYPE;
-    L_COMMENT              EVALUACION_DET_COMMENTARIOS.COMENTARIO%TYPE;
-    L_COMMENT_ID           EVALUACION_DET_COMMENTARIOS.ID%TYPE;
-    L_COMMENT_CREATED_DATE EVALUACION_DET_COMMENTARIOS.CREATED_DATE%TYPE;
-    L_CREATED_BY           EVALUACION_DET_COMMENTARIOS.CREATED_BY%TYPE;
-
-    --d.comentario,d.CREATED_DATE,x.PROVEEDORES_ID,e.MES
-
-BEGIN
-    --DBMS_OUTPUT.ENABLE (buffer_size IN INTEGER DEFAULT 20000);
-
-    OPEN cur_score_global(p_provider_id, p_month, p_year);
-    FETCH cur_score_global INTO L_TOTAL_AVG, L_NAME;
+        GROUP BY e.id, c.id, p.nombre, p.id, to_number(EXTRACT(MONTH FROM ed.mes), 99),
+                 to_number(EXTRACT(YEAR FROM ed.mes), 9999))
+  group by  YEAR, NOMBRE, provedorId; --mes,
+
+  CURSOR cur_score_year (
+      p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
+      p_month IN SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
+      p_year scorecard_PROVIDER.YEAR%TYPE) is
+  select p.id, p.LAST_SCORE
+  from SCORECARD_PROVIDER p
+  where p.PROVEEDORES_ID = p_provider_id
+    and p.YEAR = p_year
+    and p.MONTH = p_month;
+
+  CURSOR cur_quiz_comments
+    (p_provider_id scorecard_PROVIDER.PROVEEDORES_ID%TYPE,
+     p_month SCORECARD_PROVIDER_MONTH.MONTH%TYPE,
+     p_year scorecard_PROVIDER.YEAR%TYPE)
+  is
+     select d.id,d.comentario,d.CREATED_DATE,d.CREATED_BY
+      from EVALUACION_DET_COMMENTARIOS d
+      join evaluacion_det e on e.id =d.EVALUACION_DET_ID
+      join evaluacion x on x.id = e.EVALUACION_ID
+      and x.PROVEEDORES_ID = p_provider_id
+      and to_number(EXTRACT(MONTH FROM e.mes), 99) = p_month
+      AND to_number(EXTRACT(year FROM e.mes), 9999) = p_year;
+
+
+
+
+  L_NAME               scorecard_PROVIDER.NAME%TYPE;
+  L_LAST_SCORE_AREA     SCORECARD_PROVIDER_MONTH.SCORE%TYPE;
+  L_LAST_SCORE         scorecard_PROVIDER.LAST_SCORE%TYPE; -- CATGORIAS
+  L_BEFORE_SCORE       scorecard_PROVIDER.BEFORE_SCORE%TYPE;
+  L_TOTAL_AVG          scorecard_PROVIDER.TOTAL_AVG%TYPE;
+  L_TARGET             scorecard_PROVIDER.TARGET%TYPE:=5;
+  L_YEAR               scorecard_PROVIDER.YEAR%TYPE:=p_year;
+  L_CREATED_DATE       scorecard_PROVIDER.CREATED_DATE%TYPE;
+  L_PROVEEDORES_ID     scorecard_PROVIDER.PROVEEDORES_ID%TYPE:=p_provider_id;
+  L_SCORECARD_PROVIDER SCORECARD_PROVIDER.PROVEEDORES_ID%TYPE;
+  L_MONTH                 SCORECARD_PROVIDER_MONTH.MONTH%TYPE:=p_month;
+  L_SCORECARD_PROVIDER_ID SCORECARD_PROVIDER.ID%TYPE;
+  L_NOMBRE_AREA        scorecard_PROVIDER_MONTH.NOMBRE_AREA%TYPE;
+  L_NOMBRE_CATEGORIA   scorecard_PROVIDER_MONTH.NOMBRE_CATEGORIA%TYPE;
+  L_ID_AREA        AREAS.ID%TYPE;
+  L_ID_CATEGORIA   CATEGORIAS.ID%TYPE;
+  L_COMMENT        EVALUACION_DET_COMMENTARIOS.COMENTARIO%TYPE;
+  L_COMMENT_ID     EVALUACION_DET_COMMENTARIOS.ID%TYPE;
+  L_COMMENT_CREATED_DATE        EVALUACION_DET_COMMENTARIOS.CREATED_DATE%TYPE;
+  L_CREATED_BY       EVALUACION_DET_COMMENTARIOS.CREATED_BY%TYPE;
+
+  BEGIN
+
+    OPEN cur_score_global(p_provider_id,p_month,p_year);
+     FETCH cur_score_global INTO L_TOTAL_AVG,L_NAME;
     CLOSE cur_score_global;
 
-    OPEN cur_score_year(p_provider_id, p_month, p_year);
+    OPEN cur_score_year (p_provider_id,p_month,p_year);
     FETCH cur_score_year INTO L_SCORECARD_PROVIDER_ID, L_LAST_SCORE;
 
     CLOSE cur_score_year;
 
 
     if L_SCORECARD_PROVIDER_ID > 0
-    then
-        UPDATE SCORECARD_PROVIDER
-        SET NAME         = L_NAME,
-            LAST_SCORE   = L_TOTAL_AVG, --L_LAST_SCORE,
-            BEFORE_SCORE = L_BEFORE_SCORE,
-            TOTAL_AVG    = L_TOTAL_AVG,
-            TARGET       = L_TARGET,
-            YEAR         = L_YEAR,
-            UPDATED_DATE = CURRENT_DATE
-        WHERE ID = L_SCORECARD_PROVIDER_ID;
-
-    else
-        --NVL(MAX(CodigoImpacto),0)+1
-        --select scorecard_provider_seq.nextval into L_SCORECARD_PROVIDER_ID from dual;
-        L_SCORECARD_PROVIDER_ID := scorecard_provider_seq.nextval;
-        INSERT INTO SCORECARD_PROVIDER (ID,
-                                                  NAME,
-                                                  LAST_SCORE,
-                                                  BEFORE_SCORE,
-                                                  TOTAL_AVG,
-                                                  TARGET,
-                                                  YEAR,
-                                                  CREATED_DATE,
-                                                  PROVEEDORES_ID,
-                                                  STATUS,
-                                                  MONTH)
-            --select NVL(MAX(id),0)+1,
-        values (L_SCORECARD_PROVIDER_ID, --SCORECARD_PROVIDER_SEQ.nextval,
-                L_NAME, L_TOTAL_AVG, --L_LAST_SCORE,
-                L_TOTAL_AVG, --L_BEFORE_SCORE,
-                L_TOTAL_AVG, L_TARGET, p_year, CURRENT_DATE, p_provider_id, 'NO INICIADO', p_month)
-        --from SCORECARD_PROVIDER
-        ;
-    end if;
+            then
+              UPDATE SCORECARD_PROVIDER
+              SET NAME         = L_NAME,
+                  LAST_SCORE   = L_TOTAL_AVG,
+                  BEFORE_SCORE = L_BEFORE_SCORE,
+                  TOTAL_AVG    = L_TOTAL_AVG,
+                  TARGET       = L_TARGET,
+                  YEAR         = L_YEAR,
+                  UPDATED_DATE = CURRENT_DATE
+              WHERE ID = L_SCORECARD_PROVIDER_ID;
+
+            else
+              L_SCORECARD_PROVIDER_ID := scorecard_provider_seq.nextval;
+              INSERT INTO SCORECARD_PROVIDER (ID,
+                                                        NAME,
+                                                        LAST_SCORE,
+                                                        BEFORE_SCORE,
+                                                        TOTAL_AVG,
+                                                        TARGET,
+                                                        YEAR,
+                                                        CREATED_DATE,
+                                                        PROVEEDORES_ID,
+                                                        STATUS,
+                                                        MONTH)
+
+                  values( L_SCORECARD_PROVIDER_ID,
+                        L_NAME,
+                         L_TOTAL_AVG,
+                          0,
+                        L_TOTAL_AVG,--L_LAST_SCORE,
+                        L_TARGET,--L_BEFORE_SCORE,
+                        p_year,
+                        CURRENT_DATE,
+                         p_provider_id,
+                         'NO INICIADO',
+                        p_month)
+                  ;
+        end if;
 
     OPEN cur_score_cate(p_provider_id, p_month, p_year);
-    LOOP
-        FETCH cur_score_cate INTO L_MONTH, L_YEAR,
-            L_NAME, L_NOMBRE_AREA, L_NOMBRE_CATEGORIA, L_PROVEEDORES_ID, L_ID_AREA, L_ID_CATEGORIA,
-            L_LAST_SCORE;
-        EXIT WHEN cur_score_cate%NOTFOUND OR cur_score_cate%NOTFOUND IS NULL;
-
-
-        open cur_score_area(p_provider_id, p_month, p_year, L_ID_AREA); --nota agrupada de las categorias al area
-        FETCH cur_score_area INTO L_LAST_SCORE_AREA;
-        CLOSE cur_score_area;
+        LOOP
+          FETCH  cur_score_cate INTO L_MONTH,L_YEAR,
+                  L_NAME,L_NOMBRE_AREA,L_NOMBRE_CATEGORIA,L_PROVEEDORES_ID,L_ID_AREA,L_ID_CATEGORIA,
+                  L_LAST_SCORE;
+          EXIT WHEN cur_score_cate%NOTFOUND OR cur_score_cate%NOTFOUND IS NULL;
+
+
+          open cur_score_area(p_provider_id, p_month, p_year,L_ID_AREA);--nota agrupada de las categorias al area
+          FETCH cur_score_area INTO L_LAST_SCORE_AREA;
+          CLOSE cur_score_area;
+
+         INSERT INTO SCORECARD_PROVIDER_MONTH (ID,
+                                                            MONTH,
+                                                            SCORE,
+                                                            BEFORE_SCORE,
+                                                            SCORE_CATEGORY,
+                                                            BEFORE_SCORE_CATEGORY,
+                                                            CREATED_DATE,
+                                                            SCORECARD_PROVIDER_ID,
+                                                            ESTADO,
+                                                            NOMBRE_AREA,
+                                                            NOMBRE_CATEGORIA,
+                                                            ID_AREA,ID_CATEGORIA)
+            VALUES (scorecard_provider_month_seq.nextval,
+                    L_MONTH,
+                    L_LAST_SCORE_AREA,
+                    L_LAST_SCORE_AREA,
+                    L_LAST_SCORE,
+                    L_LAST_SCORE,
+                    CURRENT_DATE,
+                    L_SCORECARD_PROVIDER_ID,
+                    'NO INICIADO',
+                    L_NOMBRE_AREA,
+                    L_NOMBRE_CATEGORIA,
+                    L_ID_AREA,L_ID_CATEGORIA);
 
-        --insert into log values ('*****');
-        INSERT INTO SCORECARD_PROVIDER_MONTH (ID,
-                                                        MONTH,
-                                                        SCORE,
-                                                        BEFORE_SCORE,
-                                                        SCORE_CATEGORY,
-                                                        BEFORE_SCORE_CATEGORY,
-                                                        CREATED_DATE,
-                                                        SCORECARD_PROVIDER_ID,
-                                                        ESTADO,
-                                                        NOMBRE_AREA,
-                                                        NOMBRE_CATEGORIA,
-                                                        ID_AREA,
-                                                        ID_CATEGORIA)
-        VALUES (scorecard_provider_month_seq.nextval,
-                L_MONTH,
-                L_LAST_SCORE_AREA,
-                L_LAST_SCORE_AREA,
-                L_LAST_SCORE,
-                L_LAST_SCORE,
-                CURRENT_DATE,
-                L_SCORECARD_PROVIDER_ID,
-                'NO INICIADO',
-                L_NOMBRE_AREA,
-                L_NOMBRE_CATEGORIA,
-                L_ID_AREA,
-                L_ID_CATEGORIA);
-
-    END LOOP;
+        END LOOP;
     close cur_score_cate;
 
-    OPEN cur_quiz_comments(p_provider_id, p_month, p_year);
+    OPEN cur_quiz_comments (p_provider_id,p_month,p_year);
     LOOP
-        FETCH cur_quiz_comments INTO L_COMMENT_ID, L_COMMENT, L_COMMENT_CREATED_DATE, L_CREATED_BY;
+      FETCH cur_quiz_comments INTO L_COMMENT_ID,L_COMMENT,L_COMMENT_CREATED_DATE,L_CREATED_BY;
+
+      EXIT WHEN cur_quiz_comments%NOTFOUND OR cur_quiz_comments%NOTFOUND IS NULL;
+
+            INSERT INTO SCORECARD_PROVIDER_COMMENTS (ID,
+                                                              COMMENTS,
+                                                              CREATED_DATE,
+                                                              CREATED_USER,
+                                                              SCORECARD_PROVIDER_ID)
+              VALUES (L_COMMENT_ID,
+                      L_COMMENT,
+                      L_COMMENT_CREATED_DATE,
+                      L_CREATED_BY,
+                      L_SCORECARD_PROVIDER_ID
+            );
+
+    END LOOP ;
+    CLOSE cur_quiz_comments;
 
-        EXIT WHEN cur_quiz_comments%NOTFOUND OR cur_quiz_comments%NOTFOUND IS NULL;
 
-        INSERT INTO SCORECARD_PROVIDER_COMMENTS (ID,
-                                                           COMMENTS,
-                                                           CREATED_DATE,
-                                                           CREATED_USER,
-                                                           SCORECARD_PROVIDER_ID)
-        VALUES (L_COMMENT_ID, L_COMMENT, L_COMMENT_CREATED_DATE, L_CREATED_BY, L_SCORECARD_PROVIDER_ID);
+  END pc_create_up_scorecard;
+  ;
 
-    END LOOP;
-    CLOSE cur_quiz_comments;
 
 
-END pc_create_up_scorecard;
-;
-create PROCEDURE GET_RESUME_SCORE_AREA(
+
+
+CREATE OR REPLACE PROCEDURE GET_RESUME_SCORE_AREA(
     p_scoreprovider_id IN     SCORECARD_PROVIDER.ID%TYPE
                                       , p_cursor           IN OUT SYS_REFCURSOR)
     IS
@@ -994,13 +989,16 @@ BEGIN
         from scorecard_provider_month s
         where scorecard_provider_id = p_scoreprovider_id
         group by s.ID_AREA, s.nombre_area, s.score;
-
+--
 
 END GET_RESUME_SCORE_AREA;
 ;
-create PROCEDURE GET_RESUME_LASTEST_MONTHS(
-    p_provider_id IN     SCORECARD_PROVIDER.ID%TYPE
-                                          , p_cursor      IN OUT SYS_REFCURSOR)
+
+
+CREATE OR REPLACE PROCEDURE GET_RESUME_LASTEST_MONTHS(
+    p_provider_id IN     SCORECARD_PROVIDER.ID%TYPE,
+    p_year in INTEGER,
+    p_cursor      IN OUT SYS_REFCURSOR)
     IS
 
 BEGIN
@@ -1008,15 +1006,16 @@ BEGIN
         select p.MONTH as name, (p.TOTAL_AVG / 5 * 100) as score
         from scorecard_provider p
         where p.proveedores_id = p_provider_id
-          and p.year = 2019
+          and p.year = p_year
           and p.month > 0
         order by p.MONTH;
-    --and p.status = 'APROBADO';
 
 
 END GET_RESUME_LASTEST_MONTHS;
 ;
-create PROCEDURE GET_SCOREPRO_CATEGORY_SCORES(
+
+
+CREATE OR REPLACE PROCEDURE GET_SCOREPRO_CATEGORY_SCORES(
     p_scoreprovider_id IN     SCORECARD_PROVIDER.ID%TYPE,
     p_area_id          IN     SCORECARD_PROVIDER_MONTH.ID_AREA%TYPE,
     p_cursor           IN OUT SYS_REFCURSOR)
@@ -1029,8 +1028,102 @@ BEGIN
         where s.scorecard_provider_id = p_scoreprovider_id
           and s.ID_AREA = p_area_id;
 
+
     --and p.status = 'APROBADO';
 
 
 END GET_SCOREPRO_CATEGORY_SCORES;
 ;
+
+
+
+CREATE OR REPLACE PROCEDURE P_GET_TREND_GLOBAL_MONTH(p_providerId IN NUMBER, p_cursor IN OUT SYS_REFCURSOR)
+AS
+  BEGIN
+    OPEN p_cursor FOR
+
+    select * from scorecard_provider p
+    where p.PROVEEDORES_ID = p_providerId
+    order BY  TO_NUMBER(p.YEAR), TO_NUMBER(p.MONTH) ASC;
+    --and status ='PUBLICADO'
+
+  END;
+
+CREATE OR REPLACE PROCEDURE P_GET_DETAIL_BY_PROVIDER(
+  p_provider_id IN NUMBER,
+  p_year in number,
+  p_cursor IN OUT SYS_REFCURSOR
+)
+AS
+  BEGIN
+    OPEN p_cursor FOR
+    select 1 as kpi_id,
+       m.nombre_area kpi_nombre,
+       1 as evalId,
+       p.TOTAL_AVG global_actual,
+       m.ID_AREA areas_id,
+       m.NOMBRE_AREA area_nombre,
+       m.ID_CATEGORIA categoria_id,
+       m.NOMBRE_CATEGORIA cat_nombre,
+       p.TARGET meta,
+       (m.SCORE_CATEGORY / 5 ) global_categoria,
+       1 detail_id,
+       m.MONTH mes_number,
+       p.YEAR,
+       m.SCORE calificacion_actual,
+       p.LAST_SCORE calificacion_global
+  from SCORECARD_PROVIDER p
+  join SCORECARD_PROVIDER_MONTH m on m.SCORECARD_PROVIDER_ID = p.id
+    where p.PROVEEDORES_ID = p_provider_id
+    and p.TOTAL_AVG  is not null
+  order by TO_NUMBER(p.YEAR),TO_NUMBER(m.MONTH),m.ID_AREA,m.ID_CATEGORIA ;
+
+  END;
+
+
+CREATE OR REPLACE PROCEDURE P_GET_PROGRESS_ACTION_PLAN(
+  p_providerId IN NUMBER,
+  p_year IN NUMBER,
+  p_cursor IN OUT SYS_REFCURSOR)
+AS
+  BEGIN
+    OPEN p_cursor FOR
+
+    SELECT SUM(AVANCE_CM)/COUNT(*) progress from PLAN_ACCION
+    where PROVEEDOR_ID = p_providerId
+--    AND ESTADO = 'EN PROGRESO'
+--     AND YEAR =
+    GROUP BY PROVEEDOR_ID;
+
+  END;
+
+CREATE OR REPLACE PROCEDURE P_GET_ACTION_PLAN_STATUS(
+  p_providerId IN NUMBER,
+  p_year IN NUMBER,
+  p_cursor IN OUT SYS_REFCURSOR)
+AS
+  BEGIN
+    OPEN p_cursor FOR
+
+    select p.ESTADO,COUNT(*) qty from PLAN_ACCION p
+     where PROVEEDOR_ID = p_providerId
+--     AND YEAR =
+    group by p.ESTADO;
+
+  END;
+
+CREATE OR REPLACE PROCEDURE P_GET_GLOBAL_AVG(
+  p_providerId IN NUMBER,
+  p_year IN NUMBER,
+  p_cursor IN OUT SYS_REFCURSOR)
+AS
+  BEGIN
+    OPEN p_cursor FOR
+
+    select sum(last_score)/count(*) global_avg
+      from SCORECARD_PROVIDER p
+    where p.PROVEEDORES_ID =p_providerId
+    AND p.year = p_year
+    ;
+
+  END;

Разлика између датотеке није приказан због своје велике величине
+ 18 - 689
populate.sql