Changes between Version 1 and Version 2 of DatabaseProgramming
- Timestamp:
- 06/13/26 18:39:01 (6 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
DatabaseProgramming
v1 v2 276 276 [[BR]] 277 277 == 3. Дополнителна функција: azuriraj_kazna_plakanja == 278 Функција што ги обработува задоцнетите уплати наеднаш: на неплатените постари од 2 недели им го зголемува износот за 50%, а тие постари од 2 месеци ги префрла во статус `Sudska_postapka`. Враќа колку уплати вкупно се променети.278 Функција што ги обработува задоцнетите неплатени казни: на неплатените постари од '''8 дена''' им го зголемува износот за 50% (само ако сè уште не се зголемени), а на тие постари од '''2 месеци''' им го менува статусот во `Sudska_postapka`. Враќа порака дека постапката е успешно извршена. 279 279 280 280 Прво ја прошируваме табелата `Uplata` со новиот статус и со колона за обележување дали казната е веќе зголемена: … … 289 289 {{{#!sql 290 290 CREATE OR REPLACE FUNCTION azuriraj_kazna_plakanja() 291 RETURNS int 292 LANGUAGE plpgsql 293 AS $$ 294 DECLARE 295 v_zgolemeni int := 0; 296 v_na_sud int := 0; 291 RETURNS text 292 LANGUAGE plpgsql 293 AS $$ 297 294 BEGIN 298 295 UPDATE Uplata u … … 303 300 AND u.status = 'Neplateno' 304 301 AND u.kazna_zgolemena = false 305 AND z.datum < CURRENT_DATE - INTERVAL '2 weeks'; 306 GET DIAGNOSTICS v_zgolemeni = ROW_COUNT; 302 AND z.datum < CURRENT_DATE - INTERVAL '8 days'; 307 303 308 304 UPDATE Uplata u … … 312 308 AND u.status = 'Neplateno' 313 309 AND z.datum < CURRENT_DATE - INTERVAL '2 months'; 314 GET DIAGNOSTICS v_na_sud = ROW_COUNT; 315 316 RAISE NOTICE 'Zgolemena kazna za % uplati, prefrleni % na sudska postapka.', v_zgolemeni, v_na_sud; 317 RETURN v_zgolemeni + v_na_sud; 310 311 RETURN 'Постапката за автоматско ажурирање на неплатените казни е успешно извршена.'; 318 312 END; 319 313 $$; … … 325 319 SELECT status, COUNT(*) FROM Uplata GROUP BY status; 326 320 }}} 321 322 Оваа функција е наменета да се извршува автоматски како '''закажана (scheduled)''' задача што периодично ги обработува задоцнетите неплатени казни — ги зголемува застарените и најстарите ги префрла во судска постапка без рачна интервенција.
