Changes between Version 5 and Version 6 of DatabaseProgramming
- Timestamp:
- 09/16/26 07:23:31 (11 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DatabaseProgramming
v5 v6 219 219 === Процедура 5: Промена на статус на проект (sp_update_project_status) === 220 220 221 Го води животниот циклус на проектот: го менува статусот и запишува редица во историјата на статуси со точно еден актер, корисник на софтверската агенција или менаџмент корисник. Новиот статус мора да постои ; дека проектот и актерот постојат и дека корисникот на агенцијата ѝ припаѓа на агенцијата на проектот го проверува тригерот при запишувањето во историјата. Ако проектот веќе е во целниот статус, не се запишува ништо. Проект што веќе има рецензија не може да се врати во отворен статус.221 Го води животниот циклус на проектот: го менува статусот и запишува редица во историјата на статуси со точно еден актер, корисник на софтверската агенција или менаџмент корисник. Новиот статус мора да постои. Тригерот при запишувањето во историјата проверува дека проектот и актерот постојат и дека корисникот на агенцијата ѝ припаѓа на агенцијата на проектот. Ако проектот веќе е во целниот статус, не се запишува ништо. Проект што веќе има рецензија не може да се врати во отворен статус. 222 222 223 223 {{{#!sql … … 241 241 PERFORM fn_assert_status_exists(p_new_status_id); 242 242 243 -- Дека проектот и актерот постојат и дека актерот од агенцијата ѝ припаѓа244 -- на агенцијата на проектот го проверува тригерот trg_status_history_actor245 -- при INSERT во Project_Status_History подолу246 247 243 -- Ако проектот веќе е во целниот статус, не се запишува ништо 248 244 SELECT status_id INTO v_current_status_id … … 267 263 WHERE project_id = p_project_id; 268 264 265 -- проектот, актерот и неговата агенција ги проверува trg_status_history_actor 269 266 INSERT INTO Project_Status_History ( 270 267 project_id, status_id, vendor_user_id, management_user_id, comment … … 367 364 END IF; 368 365 369 -- Дека проектот е завршен (Completed или Cancelled) го проверува тригерот370 -- trg_review_finished_project при INSERT во Review подолу371 372 366 -- Најмногу една рецензија по проект (UNIQUE врз Review.project_id) 373 367 IF EXISTS (SELECT 1 FROM Review WHERE project_id = p_project_id) THEN … … 414 408 END IF; 415 409 410 -- завршеноста на проектот (Completed или Cancelled) ја проверува trg_review_finished_project 416 411 INSERT INTO Review (project_id, client_user_id, summary_text) 417 412 VALUES (p_project_id, p_client_user_id, p_summary_text) … … 505 500 PERFORM fn_assert_not_blank(p_resolution_note, 'resolution_note'); 506 501 507 -- Дека доделениот менаџмент корисник постоиго проверува тригерот502 -- Постоењето на доделениот менаџмент корисник го проверува тригерот 508 503 -- trg_dispute_ticket_resolve при UPDATE подолу, кој го запишува и 509 504 -- времето на решавање (resolved_at); само отворен спор може да се реши
