alter_table.sql 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. ALTER TABLE SCORECARD_PROVIDER ADD REJECT_REASON VARCHAR2(200) NULL;
  2. ALTER TABLE PLAN_ACCION ADD PARENT_ID NUMBER(*) NULL;
  3. ALTER TABLE PLAN_ACCION_DET ADD PARENT_ID number(*) NULL;
  4. ALTER TABLE PLAN_ACCION_DET ADD RESPONSABLE_ID number(*) NULL;
  5. ALTER TABLE PROVEEDORES ADD TARGET number(*) NULL;
  6. ALTER TABLE SCORECARD_PROVIDER ADD CREATED_BY VARCHAR2(25) NULL;
  7. ALTER TABLE SCORECARD_PROVIDER ADD UPDATED_BY VARCHAR2(25) NULL;
  8. ALTER TABLE SCORECARD_PROVIDER_COMMENTS ADD UPDATED_BY VARCHAR2(50) NULL;
  9. cREATE SEQUENCE score_provider_comments_seq
  10. MINVALUE 1
  11. MAXVALUE 9999999999
  12. START WITH 4
  13. INCREMENT BY 1;
  14. cREATE SEQUENCE score_provider_workflow_seq
  15. MINVALUE 1
  16. MAXVALUE 9999999999
  17. START WITH 4
  18. INCREMENT BY 1;
  19. CREATE TABLE workflow_log
  20. (
  21. ID int PRIMARY KEY,
  22. entity_id int,
  23. entity_type varchar2(50),
  24. created_by varchar2(50),
  25. step varchar2(100),
  26. comments varchar2(1000),
  27. created_date date DEFAULT current_timestamp NOT NULL
  28. );
  29. CREATE OR REPLACE TRIGGER TRG_SCORE_EVALUCION_LOG
  30. AFTER INSERT OR UPDATE OR DELETE ON SCORECARD_PROVIDER
  31. FOR EACH ROW
  32. DECLARE
  33. L_ID NUMBER(15);
  34. BEGIN
  35. insert into WORKFLOW_LOG(id,ENTITY_ID,ENTITY_TYPE,CREATED_BY,STEP,CREATED_DATE,comments )
  36. VALUES(score_provider_workflow_seq.nextval,:new.id,'SCORECARD_PROVIDER',:new.UPDATED_BY,:new.STATUS,SYSDATE,:new.REJECT_REASON);
  37. END;
  38. ALTER TABLE EVALUACION_PROVEEDOR ADD SCORECARD_ID int NULL;
  39. CREATE OR REPLACE TRIGGER TRG_ACTION_PLAN_AVG
  40. AFTER INSERT OR UPDATE OR DELETE ON PLAN_ACCION_DET
  41. FOR EACH ROW
  42. DECLARE
  43. L_PLAN_ACCION_ID NUMBER(15);
  44. L_PLAN_PARENT_ID NUMBER(15);
  45. L_PLAN_ID NUMBER(15);
  46. L_PLAN_ACCION_DET_AVG NUMBER(15,2);
  47. L_PLAN_ACCION_AVG NUMBER(15,2);
  48. cursor cur_avg_det is
  49. select avg(AVANCE),PARENT_ID from PLAN_ACCION_DET d where d.id=:NEW.id
  50. and PARENT_ID is not null
  51. group by PARENT_ID ;
  52. cursor cur_avg_plan is
  53. select avg(AVANCE),PLAN_ACCION_ID from PLAN_ACCION_DET d where d.id=:NEW.id
  54. and PARENT_ID is null
  55. group by PLAN_ACCION_ID ;
  56. BEGIN
  57. OPEN cur_avg_det;
  58. FETCH cur_avg_det INTO L_PLAN_ACCION_DET_AVG,L_PLAN_PARENT_ID;
  59. CLOSE cur_avg_det;
  60. UPDATE PLAN_ACCION_DET SET AVANCE = L_PLAN_ACCION_DET_AVG
  61. WHERE ID =L_PLAN_PARENT_ID;
  62. -- where ID = :new.ID AND PARENT_ID IS NULL;
  63. OPEN cur_avg_plan;
  64. FETCH cur_avg_plan INTO L_PLAN_ACCION_AVG,L_PLAN_ID;
  65. CLOSE cur_avg_plan;
  66. UPDATE PLAN_ACCION SET AVANCE_PROVEEDOR = L_PLAN_ACCION_AVG
  67. where ID = L_PLAN_ID;
  68. END;