-- C:\Radni\bm_rec3020c.pkb -- -- Generated for Oracle 10g on Tue Mar 25 08:55:21 2025 by Server Generator 6.5.96.5.6 PROMPT Creating Package Body 'BM_REC3020C' CREATE OR REPLACE PACKAGE BODY BM_REC3020C IS /* bm_rec3020c */ PROCEDURE PROVJERI_UVJETE (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DAT_POC_P IN IREC_ZURDW.DATUM%TYPE ,DAT_ZAV_P IN IREC_ZURDW.DATUM%TYPE ,METCVOR_SIFRA_CENTRA_P IN OUT SMET_CVOROVI.SIFRA%TYPE ,METCVOR_SIFRA_OBJEKTA_P IN OUT SMET_CVOROVI.SIFRA%TYPE ); /* bm_rec3020c */ PROCEDURE PUNI_ZURDW (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DATUM_P IN IREC_ZURDW.DATUM%TYPE ,METCVOR_SIFRA_CENTRA_P IN SMET_CVOROVI.SIFRA%TYPE ,METCVOR_SIFRA_OBJEKTA_P IN SMET_CVOROVI.SIFRA%TYPE ); /* bm_rec3020c */ PROCEDURE BRISI_ZURDW (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DATUM_P IN IREC_ZURDW.DATUM%TYPE ,METCVOR_SIFRA_CENTRA_P IN SMET_CVOROVI.SIFRA%TYPE ,METCVOR_SIFRA_OBJEKTA_P IN SMET_CVOROVI.SIFRA%TYPE ); /* bm_rec3020c */ PROCEDURE BRISI_ZURNAL_NA_CENTRU (SO_ID_P IN I_ZURNALI.SO_ID%TYPE ,DATUM_P IN I_ZURNALI.DATUM%TYPE ) IS -- metcvor_sifra_so_l smet_cvorovi.sifra%TYPE; metcvor_sifra_centra_l smet_cvorovi.sifra%TYPE; naredba_l VARCHAR2 (4000); brojac_l INTEGER; zur_id_stari_centar_l i_zurnali.id%TYPE; BEGIN -- metcvor_sifra SO SELECT metcvor_sifra INTO metcvor_sifra_so_l FROM m_so WHERE id = so_id_p; -- metcvor šifra centra metcvor_sifra_centra_l := pra_zmp_zaj.zmppar_vrijednost ('ZMP', '0018'); --samo čvor-NEcentar može kopirati vlastiti žurnal na centar IF pra_zmp_zaj.centar = -1 OR metcvor_sifra_centra_l = 'nebitno' OR metcvor_sifra_centra_l = pra_zmp_zaj.tekuci_cvor OR metcvor_sifra_so_l <> pra_zmp_zaj.tekuci_cvor THEN RETURN; END IF; -- briši žurnal na centru ako postoji naredba_l := 'SELECT COUNT (1) FROM i_zurnali@' || metcvor_sifra_centra_l || ' WHERE so_id = :so_id_l AND datum = :datum_l'; EXECUTE IMMEDIATE naredba_l INTO brojac_l USING so_id_p, datum_p; IF brojac_l = 1 THEN naredba_l := 'SELECT id FROM i_zurnali@' || metcvor_sifra_centra_l || ' WHERE so_id = :so_id_l AND datum = :datum_l'; EXECUTE IMMEDIATE naredba_l INTO zur_id_stari_centar_l USING so_id_p, datum_p; naredba_l := 'DELETE FROM i_zur_nap@' || metcvor_sifra_centra_l || ' WHERE zur_id = :zur_id_stari_centar_l'; EXECUTE IMMEDIATE naredba_l USING zur_id_stari_centar_l; naredba_l := 'DELETE FROM i_zur_usl@' || metcvor_sifra_centra_l || ' WHERE zur_id = :zur_id_stari_centar_l'; EXECUTE IMMEDIATE naredba_l USING zur_id_stari_centar_l; naredba_l := 'DELETE FROM irec_zur_sas@' || metcvor_sifra_centra_l || ' WHERE zur_id = :zur_id_stari_centar_l'; EXECUTE IMMEDIATE naredba_l USING zur_id_stari_centar_l; naredba_l := 'DELETE FROM irec_zur_kolusl@' || metcvor_sifra_centra_l || ' WHERE zur_id = :zur_id_stari_centar_l'; EXECUTE IMMEDIATE naredba_l USING zur_id_stari_centar_l; naredba_l := 'DELETE FROM i_zurnali@' || metcvor_sifra_centra_l || ' WHERE id = :zur_id_stari_centar_l'; EXECUTE IMMEDIATE naredba_l USING zur_id_stari_centar_l; END IF; -- ažuriraj log UPDATE l_prijepisi_zur SET zur_id = NULL WHERE so_id = so_id_p AND datum = datum_p; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; -- da se ne bi stavke brisale a zaglavlje ostalo UPDATE l_prijepisi_zur SET zur_id = NULL WHERE so_id = so_id_p AND datum = datum_p; COMMIT; END; /* bm_rec3020c */ PROCEDURE KOPIRAJ_ZURNAL_NA_CENTAR (ZUR_ID_P IN I_ZURNALI.ID%TYPE ) IS -- brojac_l INTEGER; naredba_l VARCHAR2 (4000); metcvor_sifra_centra_l smet_cvorovi.sifra%TYPE; metcvor_sifra_so_l smet_cvorovi.sifra%TYPE; zur_id_centar_l i_zurnali.id%TYPE; zur_id_stari_centar_l i_zurnali.id%TYPE; so_id_l i_zurnali.so_id%TYPE; datum_l i_zurnali.datum%TYPE; BEGIN -- da li postoji žurnal koji se želi kopirati SELECT COUNT (1) INTO brojac_l FROM i_zurnali WHERE id = zur_id_p; IF brojac_l = 0 THEN RETURN; END IF; -- UK zurnala, metcvor_sifra SO SELECT so_id, datum, metcvor_sifra INTO so_id_l, datum_l, metcvor_sifra_so_l FROM i_zurnali, m_so WHERE i_zurnali.id = zur_id_p AND m_so.id = i_zurnali.so_id; -- metcvor šifra centra metcvor_sifra_centra_l := pra_zmp_zaj.zmppar_vrijednost ('ZMP', '0018'); -- samo čvor-NEcentar može kopirati vlastiti žurnal na centar IF pra_zmp_zaj.centar = -1 OR UPPER (metcvor_sifra_centra_l) = 'NEBITNO' OR metcvor_sifra_centra_l = pra_zmp_zaj.tekuci_cvor OR metcvor_sifra_so_l <> pra_zmp_zaj.tekuci_cvor THEN RETURN; END IF; bm_rec3020c.brisi_zurnal_na_centru (so_id_l, datum_l); -- sekvenca sa centra za novi žurnal naredba_l := 'SELECT pra_rec_zaj.sekvenca_zur@' || metcvor_sifra_centra_l || ' (NULL) FROM dual'; EXECUTE IMMEDIATE naredba_l INTO zur_id_centar_l; -- upis u tablice naredba_l := 'INSERT INTO i_zurnali@' || metcvor_sifra_centra_l || ' (id, so_id, datum, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat, ozn_ponisten_donos) SELECT :zur_id_centar_l, so_id, datum, NULL, NULL, NULL, NULL, ozn_ponisten_donos FROM i_zurnali WHERE id = :zur_id_p'; EXECUTE IMMEDIATE naredba_l USING zur_id_centar_l, zur_id_p; naredba_l := 'INSERT INTO i_zur_usl@' || metcvor_sifra_centra_l || ' (id, zur_id, szur_id, izn_prihoda_nz, izn_pdv_nz, izn_ppot_nz, izn_prihoda_z, izn_pdv_z, izn_ppot_z, izn_prihoda_uz, izn_pdv_uz, izn_ppot_uz, izn_odbitka_z, izn_odbitka_pdv_z, izn_odbitka_nz, izn_odbitka_pdv_nz, izn_odbitka_uz, izn_odbitka_pdv_uz, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) SELECT NULL, :zur_id_centar_l, szur_id, izn_prihoda_nz, izn_pdv_nz, izn_ppot_nz, izn_prihoda_z, izn_pdv_z, izn_ppot_z, izn_prihoda_uz, izn_pdv_uz, izn_ppot_uz, izn_odbitka_z, izn_odbitka_pdv_z, izn_odbitka_nz, izn_odbitka_pdv_nz, izn_odbitka_uz, izn_odbitka_pdv_uz, NULL, NULL, NULL, NULL FROM i_zur_usl WHERE zur_id = :zur_id_p'; EXECUTE IMMEDIATE naredba_l USING zur_id_centar_l, zur_id_p; naredba_l := 'INSERT INTO i_zur_nap@' || metcvor_sifra_centra_l || ' (id, zur_id, szur_id, iznos, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) SELECT NULL, :zur_id_centar_l, szur_id, iznos, NULL, NULL, NULL, NULL FROM i_zur_nap WHERE zur_id = :zur_id_p'; EXECUTE IMMEDIATE naredba_l USING zur_id_centar_l, zur_id_p; naredba_l := 'INSERT INTO irec_zur_sas@' || metcvor_sifra_centra_l || ' (id, zur_id, sas_id, kolicina_danas, kolicina_storno, ms_id, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) SELECT NULL, :zur_id_centar_l, sas_id, kolicina_danas, kolicina_storno, ms_id, NULL, NULL, NULL, NULL FROM irec_zur_sas WHERE zur_id = :zur_id_p'; EXECUTE IMMEDIATE naredba_l USING zur_id_centar_l, zur_id_p; naredba_l := 'INSERT INTO irec_zur_kolusl@' || metcvor_sifra_centra_l || ' (id, zur_id, usl_id, ms_id, kol_danas, kol_ispravci, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) SELECT NULL, :zur_id_centar_l, usl_id, ms_id, kol_danas, kol_ispravci, NULL, NULL, NULL, NULL FROM irec_zur_kolusl WHERE zur_id = :zur_id_p'; EXECUTE IMMEDIATE naredba_l USING zur_id_centar_l, zur_id_p; -- upis u log INSERT INTO l_prijepisi_zur (id, zur_id, so_id, datum, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) VALUES ( NULL, zur_id_p, so_id_l, datum_l, NULL, NULL, NULL, NULL); COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; /* poništi sve insertove u proceduri, zadnji commit/rollback je u brisi_zurnal_na_centru */ RAISE; -- IRN 3216 END; /* bm_rec3020c */ PROCEDURE KOPIRAJ_ZURNALE_NA_CENTAR (SO_ID_P IN I_ZURNALI.SO_ID%TYPE ,DATUM_P IN I_ZURNALI.DATUM%TYPE ) IS -- so_sifra_l m_so.sifra%TYPE; datum_l i_zurnali.datum%TYPE; BEGIN FOR neprepisani_zur IN ( SELECT zur.id zur_id, zur.datum datum FROM i_zurnali zur, l_prijepisi_zur prizur WHERE zur.id = prizur.zur_id (+) AND prizur.zur_id IS NULL AND zur.so_id = so_id_p AND datum_p - zur.datum <= pra_rec_zaj.vrijednost_parametra ('1020') ) LOOP datum_l := neprepisani_zur.datum; SELECT sifra INTO so_sifra_l FROM m_so WHERE id = so_id_p; bm_rec3020c.kopiraj_zurnal_na_centar (neprepisani_zur.zur_id); END LOOP; EXCEPTION WHEN OTHERS THEN pra_rec.puni_promjene ('0025', SUBSTR (so_sifra_l || '; ' || datum_l || '; ' || pra_zmp_zaj.poruka ('REC', 'REC1555') || '; ' || SQLERRM, 1, 2000), 0); -- Kopiranje na centar RAISE; END; /* bm_rec3020c */ PROCEDURE PROVJERI_UVJETE (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DAT_POC_P IN IREC_ZURDW.DATUM%TYPE ,DAT_ZAV_P IN IREC_ZURDW.DATUM%TYPE ,METCVOR_SIFRA_CENTRA_P IN OUT SMET_CVOROVI.SIFRA%TYPE ,METCVOR_SIFRA_OBJEKTA_P IN OUT SMET_CVOROVI.SIFRA%TYPE ) IS -- metcvor_sifra_centra_l smet_cvorovi.sifra%TYPE; metcvor_sifra_objekta_l smet_cvorovi.sifra%TYPE; BEGIN IF so_id_p IS NULL OR dat_poc_p IS NULL OR dat_zav_p IS NULL THEN -- Šifra smještajnog objekta, početni i završni datum za izračun su obavezni! pra_rec_zaj.vrati_poruku(-20225); END IF; IF dat_poc_p > dat_zav_p THEN -- Početni datum mora biti manji ili jednak završnom ! pra_rec_zaj.vrati_poruku(-20226); END IF; IF pra_rec_s2.so_pripada_tekucem_cvoru (so_id_p) IN (0) THEN -- Smještajni objekt ne pripada tekućem serveru. Izračun nije dopušten! pra_rec_zaj.vrati_poruku (-20344); END IF; metcvor_sifra_objekta_l := UPPER (pra_zmp_zaj.tekuci_cvor); metcvor_sifra_centra_l := UPPER (pra_zmp_zaj.zmppar_vrijednost ('ZMP', '0018')); IF metcvor_sifra_centra_l IS NULL THEN -- Izračun nije moguć jer nije definirana veza prema centralnom serveru! pra_rec_zaj.vrati_poruku (-20346); END IF; IF metcvor_sifra_centra_l <> 'NEBITNO' AND metcvor_sifra_centra_l <> metcvor_sifra_objekta_l THEN IF NOT pra_rec_s.centar_connected (metcvor_sifra_centra_l) THEN -- Veza prema centralnom serveru nije aktivna. Nastavak izračuna nije moguć! pra_rec_zaj.vrati_poruku (-20347); END IF; END IF; -- Datum izračuna ne može biti manji od početnog datuma rada na aplikaciji (ZMP parametar 0036). pra_zmp_s.provjeri_dat_pocetni_0036 (dat_poc_p); metcvor_sifra_objekta_p := metcvor_sifra_objekta_l; metcvor_sifra_centra_p := metcvor_sifra_centra_l; END; /* bm_rec3020c */ PROCEDURE PUNI_ZURDW (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DATUM_P IN IREC_ZURDW.DATUM%TYPE ,METCVOR_SIFRA_CENTRA_P IN SMET_CVOROVI.SIFRA%TYPE ,METCVOR_SIFRA_OBJEKTA_P IN SMET_CVOROVI.SIFRA%TYPE ) IS -- zurdw_id_centar_l irec_zurdw.id%TYPE; zurdw_id_objekt_l irec_zurdw.id%TYPE; naredba_l VARCHAR2 (4000); brojac_l NUMBER; dummy_date_l DATE; BEGIN /* Ako ne postoji žurnal za zadani datum ne računa zurdw. */ SELECT COUNT(1) INTO brojac_l FROM i_zurnali WHERE so_id = so_id_p AND datum = datum_p; IF brojac_l = 0 THEN RETURN; END IF; /* zaglavlje na objektu */ naredba_l := 'SELECT pra_zmp_zaj.i3_sekvenca' || ' (NULL) FROM dual'; EXECUTE IMMEDIATE naredba_l INTO zurdw_id_objekt_l; naredba_l := 'INSERT INTO irec_zurdw '|| ' (id, so_id, datum, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) VALUES (:zur_id_objekt, :so_id, :datum, NULL, NULL, NULL, NULL)'; EXECUTE IMMEDIATE naredba_l USING zurdw_id_objekt_l, so_id_p, datum_p; /* zaglavlje na centru */ IF metcvor_sifra_centra_p <> 'NEBITNO' AND metcvor_sifra_centra_p <> metcvor_sifra_objekta_p THEN naredba_l := 'SELECT pra_zmp_zaj.i3_sekvenca@' || metcvor_sifra_centra_p || ' (NULL) FROM dual'; EXECUTE IMMEDIATE naredba_l INTO zurdw_id_centar_l; naredba_l := 'INSERT INTO irec_zurdw@' || metcvor_sifra_centra_p || ' (id, so_id, datum, unos_korisnik, unos_dat, izmjena_korisnik, izmjena_dat) VALUES (:zur_id_objekt, :so_id, :datum, NULL, NULL, NULL, NULL)'; EXECUTE IMMEDIATE naredba_l USING zurdw_id_centar_l, so_id_p, datum_p; END IF; -- postavi datume za v_irec_zurdw_szuru dummy_date_l := zmp_zaj.set_dates (datum_p, datum_p); FOR izr IN ( SELECT -- datum, so_id, ms_id, age_id, agep_id, zem_id, sj.vsj_id, recgdgost_id, recvpro_id, usl_id, szur_id, ponso_id, usl_id1, ozn_usl1, sas_id, recnrez_id, -- IRN 4011 SUM (iznn_prihod_bodb) iznn_prihod_bodb, SUM (iznn_prihodz_bodb) iznn_prihodz_bodb, SUM (iznn_odbitakz) iznn_odbitakz, SUM (iznn_pdv) iznn_pdv, SUM (iznb_prihod_bpdv_bodb) iznb_prihod_bpdv_bodb, SUM (iznb_odbitak_bpdv) iznb_odbitak_bpdv, SUM (iznb_prihodz_bpdv) iznb_prihodz_bpdv, SUM (iznb_pdv_bodb) iznb_pdv_bodb, SUM (iznb_pdv_u_odbitku) iznb_pdv_u_odbitku, SUM (izn_pdvz) izn_pdvz, SUM (izn_prihoda_knj) izn_prihoda_knj, SUM (izn_prihoda_izv) izn_prihoda_izv FROM v_irec_zurdw_szuru v, m_sj sj WHERE v.so_id = so_id_p AND v.sj_id = sj.id (+) GROUP BY ms_id, age_id, agep_id, zem_id, sj.vsj_id, recgdgost_id, recvpro_id, usl_id, szur_id, ponso_id, usl_id1, ozn_usl1, sas_id, recnrez_id -- IRN 4011 ) LOOP EXECUTE IMMEDIATE 'INSERT INTO irec_zurdw_szuru' || ' (reczurdw_id, ' || ' datum, so_id, ms_id, age_id, agep_id, zem_id, ' || ' vsj_id, recgdgost_id, recvpro_id, usl_id, szur_id, ' || ' ponso_id, usl_id1, ozn_usl1, sas_id, recnrez_id, ' || -- IRN 4011 ' iznn_prihod_bodb, iznn_prihodz_bodb, iznn_odbitakz, iznn_pdv, ' || ' iznb_prihod_bpdv_bodb, iznb_odbitak_bpdv, iznb_prihodz_bpdv, iznb_pdv_bodb,' || ' iznb_pdv_u_odbitku, izn_pdvz, izn_prihoda_knj, izn_prihoda_izv) ' || ' VALUES ' || ' (:zurdw_id_objekt, ' || ' :datum, :so_id, :ms_id, :age_id, :agep_id, :zem_id, ' || ' :vsj_id, :recgdgost_id, :recvpro_id, :usl_id, :szur_id, ' || ' :ponso_id, :usl_id1, :ozn_usl1, :sas_id, :recnrez_id, ' || -- IRN 4011 ' :iznn_prihod_bodb, :iznn_prihodz_bodb, :iznn_odbitakz, :iznn_pdv, ' || ' :iznb_prihod_bpdv_bodb, :iznb_odbitak_bpdv, :iznb_prihodz_bpdv, :iznb_pdv_bodb, ' || ' :iznb_pdv_u_odbitku, :izn_pdvz, :izn_prihoda_knj, :izn_prihoda_izv)' USING zurdw_id_objekt_l, datum_p, so_id_p, izr.ms_id, izr.age_id, izr.agep_id, izr.zem_id, izr.vsj_id, izr.recgdgost_id, izr.recvpro_id, izr.usl_id, izr.szur_id, izr.ponso_id, izr.usl_id1, izr.ozn_usl1, izr.sas_id, izr.recnrez_id, -- IRN 4011 izr.iznn_prihod_bodb, izr.iznn_prihodz_bodb, izr.iznn_odbitakz, izr.iznn_pdv, izr.iznb_prihod_bpdv_bodb, izr.iznb_odbitak_bpdv, izr.iznb_prihodz_bpdv, izr.iznb_pdv_bodb, izr.iznb_pdv_u_odbitku, izr.izn_pdvz, izr.izn_prihoda_knj, izr.izn_prihoda_izv; IF metcvor_sifra_centra_p <> 'NEBITNO' AND metcvor_sifra_centra_p <> metcvor_sifra_objekta_p THEN EXECUTE IMMEDIATE --(@' || metcvor_sifra_centra_p ||, zurdw_id_centar_l) -- 'INSERT INTO irec_zurdw_szuru@' || metcvor_sifra_centra_p || ' (reczurdw_id, ' || ' datum, so_id, ms_id, age_id, agep_id, zem_id, ' || ' vsj_id, recgdgost_id, recvpro_id, usl_id, szur_id, ' || ' ponso_id, usl_id1, ozn_usl1, sas_id, recnrez_id, ' || -- IRN 4011 ' iznn_prihod_bodb, iznn_prihodz_bodb, iznn_odbitakz, iznn_pdv, ' || ' iznb_prihod_bpdv_bodb, iznb_odbitak_bpdv, iznb_prihodz_bpdv, iznb_pdv_bodb,' || ' iznb_pdv_u_odbitku, izn_pdvz, izn_prihoda_knj, izn_prihoda_izv) ' || ' VALUES ' || ' (:zurdw_id_centar, ' || ' :datum, :so_id, :ms_id, :age_id, :agep_id, :zem_id, ' || ' :vsj_id, :recgdgost_id, :recvpro_id, :usl_id, :szur_id, ' || ' :ponso_id, :usl_id1, :ozn_usl1, :sas_id, :recnrez_id, ' || -- IRN 4011 ' :iznn_prihod_bodb, :iznn_prihodz_bodb, :iznn_odbitakz, :iznn_pdv, ' || ' :iznb_prihod_bpdv_bodb, :iznb_odbitak_bpdv, :iznb_prihodz_bpdv, :iznb_pdv_bodb, ' || ' :iznb_pdv_u_odbitku, :izn_pdvz, :izn_prihoda_knj, :izn_prihoda_izv)' USING zurdw_id_centar_l, datum_p, so_id_p, izr.ms_id, izr.age_id, izr.agep_id, izr.zem_id, izr.vsj_id, izr.recgdgost_id, izr.recvpro_id, izr.usl_id, izr.szur_id, izr.ponso_id, izr.usl_id1, izr.ozn_usl1, izr.sas_id, izr.recnrez_id, -- IRN 4011 izr.iznn_prihod_bodb, izr.iznn_prihodz_bodb, izr.iznn_odbitakz, izr.iznn_pdv, izr.iznb_prihod_bpdv_bodb, izr.iznb_odbitak_bpdv, izr.iznb_prihodz_bpdv, izr.iznb_pdv_bodb, izr.iznb_pdv_u_odbitku, izr.izn_pdvz, izr.izn_prihoda_knj, izr.izn_prihoda_izv; END IF; END LOOP; END; /* bm_rec3020c */ PROCEDURE BRISI_ZURDW (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DATUM_P IN IREC_ZURDW.DATUM%TYPE ,METCVOR_SIFRA_CENTRA_P IN SMET_CVOROVI.SIFRA%TYPE ,METCVOR_SIFRA_OBJEKTA_P IN SMET_CVOROVI.SIFRA%TYPE ) IS BEGIN IF so_id_p IS NULL OR datum_p IS NULL OR metcvor_sifra_centra_p IS NULL OR metcvor_sifra_objekta_p IS NULL THEN RETURN; END IF; EXECUTE IMMEDIATE 'DELETE irec_zurdw_szuru WHERE so_id = :1 AND datum = :2' USING so_id_p, datum_p; EXECUTE IMMEDIATE 'DELETE irec_zurdw WHERE so_id = :1 AND datum = :2' USING so_id_p, datum_p; IF metcvor_sifra_centra_p <> 'NEBITNO' AND metcvor_sifra_centra_p <> metcvor_sifra_objekta_p THEN EXECUTE IMMEDIATE 'DELETE irec_zurdw_szuru@' || metcvor_sifra_centra_p || ' WHERE so_id = :1 AND datum = :2' USING so_id_p, datum_p; EXECUTE IMMEDIATE 'DELETE irec_zurdw@' || metcvor_sifra_centra_p || ' WHERE so_id = :1 AND datum = :2' USING so_id_p, datum_p; END IF; END; /* bm_rec3020c */ PROCEDURE IZRACUNAJ_ZURDW_DAN (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DATUM_P IN IREC_ZURDW.DATUM%TYPE ) IS -- metcvor_sifra_centra_l smet_cvorovi.sifra%TYPE; metcvor_sifra_objekta_l smet_cvorovi.sifra%TYPE; BEGIN bm_rec3020c.provjeri_uvjete (so_id_p, datum_p, datum_p, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); bm_rec3020c.brisi_zurdw (so_id_p, datum_p, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); bm_rec3020c.puni_zurdw (so_id_p, datum_p, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); -- COMMIT; END; /* bm_rec3020c */ PROCEDURE BRISI_ZURDW_DAN (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DATUM_P IN IREC_ZURDW.DATUM%TYPE ) IS -- metcvor_sifra_centra_l smet_cvorovi.sifra%TYPE; metcvor_sifra_objekta_l smet_cvorovi.sifra%TYPE; BEGIN bm_rec3020c.provjeri_uvjete (so_id_p, datum_p, datum_p, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); bm_rec3020c.brisi_zurdw (so_id_p, datum_p, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); END; /* bm_rec3020c */ PROCEDURE IZRACUNAJ_ZURDW_RAZDOBLJE (SO_ID_P IN IREC_ZURDW.SO_ID%TYPE ,DAT_POC_P IN IREC_ZURDW.DATUM%TYPE ,DAT_ZAV_P IN IREC_ZURDW.DATUM%TYPE ) IS -- metcvor_sifra_centra_l smet_cvorovi.sifra%TYPE; metcvor_sifra_objekta_l smet_cvorovi.sifra%TYPE; dana_l INTEGER; datum_l i_zurnali.datum%TYPE; so_sifra_l m_so.sifra%TYPE; BEGIN bm_rec3020c.provjeri_uvjete (so_id_p, dat_poc_p, dat_zav_p, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); dana_l := (dat_zav_p - dat_poc_p); SELECT sifra INTO so_sifra_l FROM m_so WHERE id = so_id_p; FOR dan IN 0..dana_l LOOP datum_l := dat_poc_p + dan; bm_rec3020c.brisi_zurdw (so_id_p, datum_l, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); bm_rec3020c.puni_zurdw (so_id_p, datum_l, metcvor_sifra_centra_l, metcvor_sifra_objekta_l); END LOOP; COMMIT; EXCEPTION WHEN OTHERS THEN pra_rec.puni_promjene ('0025', SUBSTR ('SO: ' || so_sifra_l || ' od: ' || dat_poc_p || ' ' || ' do: ' || dat_zav_p || ' ' || SQLERRM, 1, 2000), 0); RAISE; END; END BM_REC3020C; / SHOW ERROR