Cristian Lucero 5 năm trước cách đây
mục cha
commit
109a41b93d
1 tập tin đã thay đổi với 47 bổ sung1 xóa
  1. 47 1
      alter_table.sql

+ 47 - 1
alter_table.sql

@@ -52,4 +52,50 @@ BEGIN
 END;
 
 
-ALTER TABLE EVALUACION_PROVEEDOR ADD SCORECARD_ID int NULL;
+ALTER TABLE EVALUACION_PROVEEDOR ADD SCORECARD_ID int NULL;
+
+
+
+
+CREATE OR REPLACE TRIGGER TRG_ACTION_PLAN_AVG
+AFTER INSERT OR UPDATE OR DELETE ON PLAN_ACCION_DET
+FOR EACH ROW
+DECLARE
+
+    L_PLAN_ACCION_ID NUMBER(15);
+    L_PLAN_PARENT_ID NUMBER(15);
+    L_PLAN_ID NUMBER(15);
+    L_PLAN_ACCION_DET_AVG NUMBER(15,2);
+    L_PLAN_ACCION_AVG NUMBER(15,2);
+
+  cursor cur_avg_det is
+     select avg(AVANCE),PARENT_ID  from PLAN_ACCION_DET d where d.id=:NEW.id
+      and PARENT_ID is not null
+  group by PARENT_ID ;
+
+  cursor cur_avg_plan is
+     select avg(AVANCE),PLAN_ACCION_ID  from PLAN_ACCION_DET d where d.id=:NEW.id
+      and PARENT_ID is null
+    group by PLAN_ACCION_ID ;
+
+BEGIN
+
+
+      OPEN cur_avg_det;
+       FETCH cur_avg_det INTO L_PLAN_ACCION_DET_AVG,L_PLAN_PARENT_ID;
+      CLOSE cur_avg_det;
+
+      UPDATE PLAN_ACCION_DET SET AVANCE = L_PLAN_ACCION_DET_AVG
+       WHERE ID =L_PLAN_PARENT_ID;
+--         where ID = :new.ID AND PARENT_ID IS NULL;
+
+
+      OPEN cur_avg_plan;
+       FETCH cur_avg_plan INTO L_PLAN_ACCION_AVG,L_PLAN_ID;
+      CLOSE cur_avg_plan;
+
+      UPDATE PLAN_ACCION SET AVANCE_PROVEEDOR = L_PLAN_ACCION_AVG
+        where ID = L_PLAN_ID;
+
+
+END;