Professional Documents
Culture Documents
XX Create 1002 XML 2022 Package Body
XX Create 1002 XML 2022 Package Body
end get_org_dis_payer_status;
v_file_name := p_jib||'-'||v_year||v_month||'-'||v_vrsta||'-'||
p_file_version||'.xml';
return v_file_name;
exception
when others then
v_file_name := 'Greska';
return v_file_name;
end c_file_name;
return v_days + 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_days := 0;
return v_days;
END get_work_days;
begin
nts_common.insert_log_record(p_source =>
'XX_CREATE_1002_XML_2022.get_tax_return_ugo',
p_type => 'Er',
p_message => 'el_type_id_1'||'-'||'start');
case tip
when 'Z' then entry_name:='Zakonsko umanjenje';
when 'M' then entry_name:='Mjesecno umanjenje poreska kartica';
end case;
select payroll_id,
decode(EMPLOYMENT_CATEGORY,
'BA_U_04','Ugovor o PIP I',
'BA_U_05','Ugovor o djelu I',
'BA_U_06','Ugovor o autorskom djelu I',
'BA_U_10','Komisija I',
'Ugovor o zakupu I'
)
into pay_id, el_name
from PER_ALL_ASSIGNMENTS_F
where ASSIGNMENT_ID=assi_id and
datum between EFFECTIVE_START_DATE and EFFECTIVE_END_DATE;
nts_common.insert_log_record(p_source =>
'XX_CREATE_1002_XML_2022.get_tax_return_ugo',
p_type => 'Er',
p_message => 'el_type_id_1'||'-'||el_type_id);
begin
exception
when no_data_found then
if el_name='Ugovor o djelu I' then
end if;
end;
nts_common.insert_log_record(p_source =>
'XX_CREATE_1002_XML_2022.get_tax_return_ugo',
p_type => 'Er',
p_message => el_type_id||'-'||input_val_id||'-'||entry_name);
return tax_return;
/*exception
when others then
tax_return:='XXX';
return tax_return;*/
end get_tax_return_ugo;
select case when paaf.payroll_id in (8275, 8094) then '3' else '1' end into
v_return FROM PER_ALL_ASSIGNMENTS_F paaf where paaf.assignment_id = p_ass_id and
p_date between effective_start_date and effective_end_date;
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '1';
return v_return;
end get_dl_by_assignment;
begin
v_return := '0';
case
when to_number(action_information20) > 1000 then
to_number(action_information20) - 1000
else 0 end MJESECNO_UMANJENJE_OLD2,
to_number(action_information22) MJESECNO_UMANJENJE,
case
when to_number(action_information20) > 1000 then
round((to_number(action_information20) - 1000) * 0.1, 2)
else 0 end POVRAT_POREZ,
/*case
when to_number(action_information19) > 0 then
case when round(round(to_number(action_information20) /
(to_number(action_information18) + to_number(action_information19)), 4) *
to_number(action_information18), 2) > 500 then 500
else round(round(to_number(action_information20) /
(to_number(action_information18) + to_number(action_information19)), 4) *
to_number(action_information18), 2) end
else to_number(action_information20) end ISKORISTENO_UMANJENJE,
action_context_id
from pay_action_information
where action_information3 like 'BRUTO plata'
/*or action_information3 like 'Doprinos za PIO SAR misija'*/)
--glavni select
SELECT
ASSI_ID,
JMBG,
IME,
PREZIME,
round(RADNI_SATI,0),
BRUTO,
PIO,
ZO,
DZ,
ZN,
TROSKOVI,
DOHODAK,
case
when (to_number(dohodak)>=1000 and emp_cat_s=1) then UMANJENJE_ZAKON
--when (to_number(dohodak)<500 and emp_cat_s=1) then DOHODAK
else UMANJENJE_ZAKON
end UMANJENJE_ZAKON,
POREZ_UMANJENJE_ZAKON,
PORESKA_KARTICA,
POVRAT_POREZA,
OSNOVICA_POREZ,
POREZ,
NETO,
--case when PAYROLL in ('IMENOVANA LICA - SPOLJNI CLANOVI RADNIH TIJELA',
'IMENOVANA LICA - NEPROFESIONALNI POSLANICI') then '3' else EMP_CAT_S end
EMP_CAT_S,
OPST_PIO,
OPST_ZO,
OPST_DZ,
OPST_ZN,
ENTITET,
OPST_POREZ,
SOLID,
EMP_CAT,
OSTALE_NAKNADE,
NEOPOR_NAKNADE
FROM
(SELECT 1 ASSI_ID,
LICNI.JMBG JMBG,
--LICNI2.PAYROLL,
TRIM(SUBSTR(UPPER(LICNI.IME), 0, 20)) IME,
UPPER(LICNI.PREZIME) PREZIME,
SUM(DECODE(TIP_UGOVORA.EMP_CAT_S,'3','0',
NVL(NIS.SATI_MJESEC, '0'))) RADNI_SATI,
SUM(NVL(B1.BRUTO1, '0')) BRUTO,
SUM(NVL(PIO.DOP_PIO, '0')) PIO,
SUM(NVL(ZO.DOP_ZO, '0')) ZO,
SUM(NVL(DZ.DOP_DZ, '0')) DZ,
SUM(NVL(NZ.DOP_NZ, '0')) ZN,
sum(NVL(TROS.TROS, '0')) TROSKOVI,
SUM(to_char(TO_NUMBER(NVL(B1.BRUTO1, '0')) - TO_NUMBER(NVL(PIO.DOP_PIO,
'0')) -
TO_NUMBER(NVL(DZ.DOP_DZ, '0')) - TO_NUMBER(NVL(ZO.DOP_ZO, '0')) -
TO_NUMBER(NVL(NZ.DOP_NZ, '0'))-TO_NUMBER(NVL(TROS.TROS, '0')))) DOHODAK,
SUM(DECODE(TIP_UGOVORA.EMP_CAT_S,
'3',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'Z'),'0
'),
'2',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'Z'),'0
'),
'4','0',
to_char(NVL(POR_KARTICA.ISKORISTENO_UMANJENJE,'1000'))))
UMANJENJE_ZAKON,
--
to_char(NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_BASE(LICNI.ASSI_ID,p_datum_do),'
500')))) UMANJENJE_ZAKON,
--nvl(sum(POR_KARTICA.MJESECNO_UMANJENJE), 0) UMANJENJE_ZAKON,
SUM(DECODE(TIP_UGOVORA.EMP_CAT_S,
'3',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'Z')*0.
1,'0'),
'2',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'Z')*0.
1,'0'),
'0')) POREZ_UMANJENJE_ZAKON,
SUM(DECODE(TIP_UGOVORA.EMP_CAT_S,
'3',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'M'),'0
'),
'2',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'M'),'0
'),
to_char(NVL(POR_KARTICA.MJESECNO_UMANJENJE,'0')))) PORESKA_KARTICA,
SUM(DECODE(TIP_UGOVORA.EMP_CAT_S,
'3',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'M')*0.
1,'0'),
'2',NVL(XX_CREATE_1002_XML_2022.GET_TAX_RETURN_UGO(LICNI.ASSI_ID,p_datum_do,'M')*0.
1,'0'),
to_char(NVL(POR_KARTICA.POVRAT_POREZ, '0')))) POVRAT_POREZA,
SUM(NVL(POREZ.OSNOVICA_POREZ, '0')) OSNOVICA_POREZ,
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '4';
return v_return;
end fill_main_tmp_table;
begin
execute immediate 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''. ''';
v_return := '0';
delete from XX_OBRAZAC1002_BOL_TT;
commit;
insert into
XX_OBRAZAC1002_BOL_TT(ASSI_ID,JMBG,IME,PREZIME,RADNI_SATI,IZNOS_NAKNADE_BOL,RAZLIKA
_PLATE)
WITH LICNI AS (
select
assignment_id ASSI_ID,
action_information13 JMBG,
UPPER(action_information1) IME,
UPPER(action_information2) PREZIME,
action_information15 ENTITET_ZDRAVSTVA,
action_information16 OPST_POREZ,
action_information17 OPST_PIO,
action_information18 OPST_ZO,
action_information19 OPST_DZ,
action_information20 OPST_NZ,
effective_date,
action_context_id
from pay_action_information
where action_information_category ='RS EMPLOYEE ADDL DETAILS'),
ORG_INFO AS (select pai.assignment_id ASSI_ID,
HAOU.ATTRIBUTE10 ORG_JIB,
pai.action_information2 ORG_ID,
pai.action_context_id
from pay_action_information pai
left outer join HR_ALL_ORGANIZATION_UNITS HAOU ON
PAI.action_information2=HAOU.ORGANIZATION_ID
where action_information_category ='EMPLOYEE DETAILS'),
BOLOVANJE AS (
SELECT
ASSI_ID,
case when TIP_BOLOVANJA = 'Bolovanje 100%' then 'Bolovanje 100'
when TIP_BOLOVANJA = 'Bolovanje 90% preko 30 dana' then 'Bolovanje 90 preko 30
dana'
else TIP_BOLOVANJA end TIP_BOLOVANJA,
IZNOS_NAKANADE_BOLOVANJE/*+MINULI_BOLOVANJE_1+MINULI_BOLOVANJE_2*/
IZNOS_NAKANADE_BOLOVANJE,
MINULI_BOLOVANJE_1,
MINULI_BOLOVANJE_2,
SATI,
action_context_id
FROM (SELECT
assignment_id ASSI_ID,
ACTION_INFORMATION3 TIP_BOLOVANJA,
action_information16 IZNOS_NAKANADE_BOLOVANJE,
nvl(action_information25,'0') MINULI_BOLOVANJE_1,
nvl(action_information26,'0') MINULI_BOLOVANJE_2,
decode(action_information3,
'Porodiljsko do 30 dana',action_information19,
'Porodiljsko preko 30 dana',action_information19,
'Porodiljsko do 30 dana fiksno',action_information17,
'Porodiljsko preko 30 dana fiksno',action_information17,
action_information19) SATI,
action_context_id
FROM PAY_ACTION_INFORMATION
WHERE (ACTION_INFORMATION3 LIKE '%olovanje%'
OR ACTION_INFORMATION3 LIKE '%Porodiljsko%')
and ACTION_INFORMATION3 not like 'Porodiljsko refundacija' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje refundacija' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac minuli rad' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje' and
ACTION_INFORMATION3 not like '%NOP' and
action_information16 > '0')
),
BOLOVANJE_NOP AS (
SELECT
ASSI_ID,
TIP_BOLOVANJA,
IZNOS_NAKANADE_BOLOVANJE IZNOS_NAKANADE_BOLOVANJE,
IZNOS_NAK_BOL_SA_POREZOM,
action_context_id
FROM (SELECT
assignment_id ASSI_ID,
decode(ACTION_INFORMATION3, 'Porodiljsko refundacija fiksno NOP', 'Porodiljsko
preko 30 dana fiksno NOP', 'Porodiljsko refundacija NOP', 'Porodiljsko preko 30
dana NOP',
'Porodiljsko poslodavac fiksno NOP', 'Porodiljsko do 30 dana fiksno NOP',
'Porodiljsko poslodavac NOP', 'Porodiljsko do 30 dana NOP', ACTION_INFORMATION3)
TIP_BOLOVANJA,
action_information16 IZNOS_NAKANADE_BOLOVANJE,
action_information17 IZNOS_NAK_BOL_SA_POREZOM,
action_context_id
FROM PAY_ACTION_INFORMATION
WHERE (ACTION_INFORMATION3 LIKE '%olovanje%NOP'
OR ACTION_INFORMATION3 LIKE '%Porodiljsko%NOP')
and ACTION_INFORMATION3 not like 'Porodiljsko refundacija' and
--ACTION_INFORMATION3 not like 'Porodiljsko refundacija NOP' and
--ACTION_INFORMATION3 not like 'Porodiljsko refundacija fiksno NOP' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje refundacija' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje refundacija NOP' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac' and
--ACTION_INFORMATION3 not like 'Porodiljsko poslodavac NOP' and
--ACTION_INFORMATION3 not like 'Porodiljsko poslodavac fiksno NOP' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac minuli rad' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac minuli rad NOP' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac minuli rad fiksno NOP' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje NOP' and
action_information16 > '0')
)
SELECT
1 ASSI_ID,
LICNI.JMBG JMBG,
TRIM(SUBSTR(LICNI.IME, 0, 20)) IME,
LICNI.PREZIME PREZIME,
sum(BOLOVANJE.SATI) RADNI_SATI,
sum(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE) + sum(BOLOVANJE.MINULI_BOLOVANJE_1) +
sum(BOLOVANJE.MINULI_BOLOVANJE_2) IZNOS_NAKNADE_BOL,
round(sum(CASE BOLOVANJE.TIP_BOLOVANJA
WHEN 'Porodiljsko preko 30 dana fiksno' THEN 0
WHEN 'Porodiljsko preko 30 dana' THEN 0
WHEN 'Bolovanje do 30 dana' THEN
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.7-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Bolovanje do 42 dana' THEN
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.7-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Porodiljsko do 30 dana fiksno' THEN 0
WHEN 'Bolovanje preko 30 dana' THEN
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.7-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Bolovanje preko 42 dana' THEN
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.7-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Bolovanje PIO' THEN to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.7-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Porodiljsko do 30 dana' THEN 0
WHEN 'Bolovanje 100' THEN 0
WHEN 'Bolovanje 90%' THEN to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.9-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Bolovanje 90 preko 30 dana' THEN
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.9-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
WHEN 'Bolovanje 90 do 30 dana' THEN
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)/0.9-
to_number(BOLOVANJE_NOP.IZNOS_NAKANADE_BOLOVANJE)
END),2) RAZLIKA_PLATE
FROM LICNI
LEFT OUTER JOIN ORG_INFO ON LICNI.ASSI_ID=ORG_INFO.ASSI_ID and
LICNI.action_context_id=ORG_INFO.action_context_id
RIGHT OUTER JOIN BOLOVANJE ON LICNI.ASSI_ID=BOLOVANJE.ASSI_ID and
LICNI.action_context_id=BOLOVANJE.action_context_id
RIGHT JOIN BOLOVANJE_NOP ON BOLOVANJE.ASSI_ID=BOLOVANJE_NOP.ASSI_ID and
BOLOVANJE.action_context_id=BOLOVANJE_NOP.action_context_id
and BOLOVANJE.TIP_BOLOVANJA || ' NOP'=BOLOVANJE_NOP.TIP_BOLOVANJA and
BOLOVANJE.IZNOS_NAKANADE_BOLOVANJE = BOLOVANJE_NOP.IZNOS_NAK_BOL_SA_POREZOM
WHERE
--licni.ENTITET_ZDRAVSTVA='REPUBLIKA SRPSKA' AND
licni.effective_date BETWEEN p_datum_od AND p_datum_DO
and org_info.ORG_JIB=p_org_jib
group by /*LICNI.ASSI_ID*/ LICNI.JMBG, LICNI.IME, LICNI.PREZIME
ORDER BY LICNI.PREZIME;
commit;
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '1';
return v_return;
END fill_bol_tmp_table;
begin
execute immediate 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''. ''';
v_return := '0';
delete from XX_OBRAZAC1002_POR_BOL_TT;
commit;
insert into
XX_OBRAZAC1002_POR_BOL_TT(ASSI_ID,JMBG,IME,PREZIME,RADNI_SATI,IZNOS_NAKNADE_BOL,RAZ
LIKA_PLATE)
WITH LICNI AS (
select
assignment_id ASSI_ID,
action_information13 JMBG,
UPPER(action_information1) IME,
UPPER(action_information2) PREZIME,
action_information15 ENTITET_ZDRAVSTVA,
action_information16 OPST_POREZ,
action_information17 OPST_PIO,
action_information18 OPST_ZO,
action_information19 OPST_DZ,
action_information20 OPST_NZ,
effective_date,
action_context_id
from pay_action_information
where action_information_category ='RS EMPLOYEE ADDL DETAILS'),
ORG_INFO AS (select pai.assignment_id ASSI_ID,
HAOU.ATTRIBUTE10 ORG_JIB,
pai.action_information2 ORG_ID,
pai.action_context_id
from pay_action_information pai
left outer join HR_ALL_ORGANIZATION_UNITS HAOU ON
PAI.action_information2=HAOU.ORGANIZATION_ID
where action_information_category ='EMPLOYEE DETAILS'),
BOLOVANJE AS (
SELECT
ASSI_ID,
TIP_BOLOVANJA,
IZNOS_NAKANADE_BOLOVANJE+MINULI_BOLOVANJE_1+MINULI_BOLOVANJE_2
IZNOS_NAKANADE_BOLOVANJE,
SATI,
action_context_id
FROM (SELECT
assignment_id ASSI_ID,
ACTION_INFORMATION3 TIP_BOLOVANJA,
action_information16 IZNOS_NAKANADE_BOLOVANJE,
nvl(action_information25,'0') MINULI_BOLOVANJE_1,
nvl(action_information26,'0') MINULI_BOLOVANJE_2,
decode(action_information3,
'Porodiljsko do 30 dana',action_information19,
'Porodiljsko preko 30 dana',action_information19,
'Porodiljsko do 30 dana fiksno',action_information17,
'Porodiljsko preko 30 dana fiksno',action_information17,
action_information19) SATI,
action_context_id
FROM PAY_ACTION_INFORMATION
WHERE ACTION_INFORMATION3 LIKE '%Porodiljsko%'
and ACTION_INFORMATION3 not like 'Porodiljsko refundacija' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje refundacija' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac' and
ACTION_INFORMATION3 not like 'Porodiljsko poslodavac minuli rad' and
ACTION_INFORMATION3 not like 'Minuli rad bolovanje' and
ACTION_INFORMATION3 not like '%NOP' and
action_information16 > '0')
)
SELECT
1 ASSI_ID,
LICNI.JMBG JMBG,
TRIM(SUBSTR(LICNI.IME, 0, 20)) IME,
LICNI.PREZIME PREZIME,
/*sum(BOLOVANJE.SATI)*/ 0 RADNI_SATI,
--sum(BOLOVANJE.IZNOS_NAKANADE_BOLOVANJE) IZNOS_NAKNADE_BOL,
XX_RS_BRUTO_PRIJE_POROD(ASSI_ID, p_datum_od) IZNOS_NAKNADE_BOL,
round(sum(CASE TIP_BOLOVANJA
WHEN 'Porodiljsko preko 30 dana fiksno' THEN 0
WHEN 'Porodiljsko preko 30 dana' THEN 0
WHEN 'Porodiljsko do 30 dana fiksno' THEN 0
WHEN 'Porodiljsko do 30 dana' THEN 0
END),2) RAZLIKA_PLATE
FROM LICNI
LEFT OUTER JOIN ORG_INFO ON LICNI.ASSI_ID=ORG_INFO.ASSI_ID and
LICNI.action_context_id=ORG_INFO.action_context_id
RIGHT OUTER JOIN BOLOVANJE ON LICNI.ASSI_ID=BOLOVANJE.ASSI_ID and
LICNI.action_context_id=BOLOVANJE.action_context_id
WHERE
--licni.ENTITET_ZDRAVSTVA='REPUBLIKA SRPSKA' AND
licni.effective_date BETWEEN p_datum_od AND p_datum_DO
and org_info.ORG_JIB=p_org_jib
group by /*LICNI.ASSI_ID*/ LICNI.JMBG, LICNI.IME, LICNI.PREZIME,
XX_RS_BRUTO_PRIJE_POROD(ASSI_ID, p_datum_od)
ORDER BY LICNI.PREZIME;
commit;
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '1';
return v_return;
END fill_por_bol_tmp_table;
begin
execute immediate ' ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''. ''';
v_return := '0';
delete from XX_OBRAZAC1002_BEN_TT;
commit;
insert into
XX_OBRAZAC1002_BEN_TT(ASSI_ID,JMBG,IME,PREZIME,BRUTO,PIO_BEN,RADNI_SATI,KOEF_UVECAN
JA,SIFRA_MJESTA)
WITH LICNI AS (
select
ASSIGNMENT_ID ASSI_ID,
action_information13 JMBG,
UPPER(action_information1) IME,
UPPER(action_information2) PREZIME,
action_information15 ENTITET_ZDRAVSTVA,
action_information16 OPST_POREZ,
action_information17 OPST_PIO,
action_information18 OPST_ZO,
action_information19 OPST_DZ,
action_information20 OPST_NZ,
effective_date,
action_context_id
from pay_action_information
where action_information_category ='RS EMPLOYEE ADDL DETAILS'),
ORG_INFO AS (
select pai.assignment_id ASSI_ID,
HAOU.ATTRIBUTE10 JIB,
pai.action_information2 ORG_ID,
pai.action_context_id
from pay_action_information pai
left outer join HR_ALL_ORGANIZATION_UNITS HAOU ON
PAI.action_information2=HAOU.ORGANIZATION_ID
where action_information_category ='EMPLOYEE DETAILS'),
PIO_BEN AS (
SELECT
ASSIGNMENT_ID ASSI_ID,
ACTION_CONTEXT_ID,
EFFECTIVE_DATE DATUM,
XX_CREATE_1002_XML_2022.get_ben_COEF(ASSIGNMENT_ID, EFFECTIVE_DATE) KOEF,
XX_CREATE_1002_XML_2022.get_ben_JOB_CODE(ASSIGNMENT_ID, EFFECTIVE_DATE) JOB,
sum(ACTION_INFORMATION16) PIO_BEN,
sum(ACTION_INFORMATION17) OSNOVICA
--,XX_RS_RADNI_SATI_BEZ_BOL_SUSP(ASSIGNMENT_ID,p_datum_od,p_datum_DO) RADNI_SATI
from PAY_ACTION_INFORMATION where
(ACTION_INFORMATION3 like 'Doprinos za PIO BEN'
or ACTION_INFORMATION3 like 'Doprinos za PIO BEN Ostale naknade')
and action_information16>0
group by
ASSIGNMENT_ID,
ACTION_CONTEXT_ID,
EFFECTIVE_DATE
--,XX_RS_RADNI_SATI_BEZ_BOL_SUSP(ASSIGNMENT_ID,p_datum_od,p_datum_DO)
),
U_SA AS
(SELECT assignment_id ASSI_ID,
SUM(DECODE(action_information3,
'NETO plata',
action_information18,
'0')) S_MJE,
action_context_id
from pay_action_information
where action_information3 like 'NETO plata'
OR action_information4 like 'Ugovori i komisije'
OR action_information3 like 'NETO ostale naknade'
group by assignment_id, action_context_id
),
SU_SA AS
(
select
ASSIGNMENT_ID ASSI_ID,
ACTION_CONTEXT_ID,
sum(ACTION_INFORMATION19) S_SU
from PAY_ACTION_INFORMATION where
(action_information3 like '%Suspenzija%'
or action_information3 like '%olovanje%'
or ACTION_INFORMATION3 LIKE '%Porodiljsko%')
and action_information3 not like '%NOP'
group by ASSIGNMENT_ID, ACTION_CONTEXT_ID
)
/*PIO_BEN2 as
(
SELECT
PIO_BEN.ASSI_ID ASSI_ID,
PIO_BEN.ACTION_CONTEXT_ID ACTION_CONTEXT_ID,
PIO_BEN.EFFECTIVE_DATE DATUM,
PIO_BEN.KOEF KOEF,
PIO_BEN.JOB JOB,
PIO_BEN.PIO_BEN PIO_BEN,
PIO_BEN.OSNOVICA OSNOVICA,
SU_SA.S_MJE,
U_SA.S_SU
FROM PIO_BEN
left outer join U_SA on PIO_BEN.ASSI_ID=U_SA.ASSI_ID and
PIO_BEN.action_context_id=U_SA.action_context_id
left outer join SU_SA on PIO_BEN.ASSI_ID=SU_SA.ASSI_ID and
PIO_BEN.action_context_id=SU_SA.action_context_id
)*/
SELECT
1 ASSI_ID,
LICNI.JMBG JMBG,
TRIM(SUBSTR(LICNI.IME, 0, 20)) IME,
LICNI.PREZIME PREZIME,
SUM(PIO_BEN.OSNOVICA) BRUTO,
SUM(PIO_BEN.PIO_BEN) PIO_BEN,
--'0' RADNI_SATI,
SUM(U_SA.S_MJE-NVL(SU_SA.S_SU,0)) RADNI_SATI,
PIO_BEN.KOEF KOEF_UVECANJA,
NVL(PIO_BEN.JOB,'5815') SIFRA_MJESTA
FROM LICNI
LEFT OUTER JOIN ORG_INFO ON LICNI.ASSI_ID=ORG_INFO.ASSI_ID and
LICNI.action_context_id=ORG_INFO.action_context_id
RIGHT OUTER JOIN PIO_BEN ON LICNI.ASSI_ID=PIO_BEN.ASSI_ID and
LICNI.action_context_id = PIO_BEN.action_context_id
LEFT OUTER JOIN U_SA ON LICNI.ASSI_ID=U_SA.ASSI_ID and
LICNI.action_context_id=U_SA.action_context_id
LEFT OUTER JOIN SU_SA ON LICNI.ASSI_ID=SU_SA.ASSI_ID and
LICNI.action_context_id=SU_SA.action_context_id
WHERE ORG_INFO.JIB=p_org_jib AND PIO_BEN.DATUM BETWEEN p_datum_od AND p_datum_DO
GROUP BY
LICNI.JMBG,
LICNI.IME,
LICNI.PREZIME,
PIO_BEN.KOEF,
NVL(PIO_BEN.JOB,'5815');
commit;
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '1';
return v_return;
END fill_BEN_tmp_table;
begin
execute immediate ' ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''. ''';
v_return := '0';
delete from XX_OBRAZAC1002_DPF_TT_20;
commit;
insert into XX_OBRAZAC1002_DPF_TT_20(JMBG,IZNOS_POS,IZNOS_RAD,OPST_POREZ)
select t.JMBG, sum(t.UPL_POSL) UPL_POSL, sum(t.LICNA_UPL) LICNA_UPL, t.OPST_POREZ
from
(select pai.action_information4 JMBG,
case when pai2.action_information3 = 'Uplata u DPF -
poslodavac' then pai2.action_information16 else '0' end UPL_POSL,
case when pai2.action_information3 != 'Uplata u DPF -
poslodavac' then pai2.action_information16 else '0' end LICNA_UPL,
pai3.action_information17 OPST_POREZ
from pay_action_information pai
--join hr_all_organization_units hr on
hr.organization_id = pai.action_information2
join pay_action_information pai2 on
pai2.action_context_id = pai.action_context_id
join pay_action_information pai3 on pai3.action_context_id =
pai.action_context_id
where 1=1
--and to_char(pai.effective_date, 'mm.yyyy') =
p_period
and pai.effective_date between to_date('01.' || p_period,
'dd.mm.yyyy') and last_day(to_date('01.' || p_period, 'dd.mm.yyyy'))
--and pai.action_information2 = p_org_id
and pai.action_information2 in (select distinct
hr.organization_id from hr_all_organization_units hr where hr.attribute10 =
p_org_jib)
--and hr.attribute10 = p_org_jib
and pai.action_information_category = 'EMPLOYEE
DETAILS'
and pai2.action_information3 like '%DPF%'
and pai3.action_information_category = 'RS EMPLOYEE ADDL
DETAILS') t
where t.UPL_POSL + t.LICNA_UPL > 0
GROUP BY t.JMBG, t.OPST_POREZ;
commit;
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '1';
return v_return;
END fill_dpf_tmp_table;
begin
v_return := '0';
return v_return;
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_return := '4';
return v_return;
end fill_pred_sind_tmp_table;
return v_status;
EXCEPTION
WHEN others THEN
v_status := false;
return v_status;
end create_dls;
root_node xmldom.DOMNode;
root_elmt xmldom.DOMElement;
root_node_final xmldom.DOMNode;
root_elmt_final xmldom.DOMElement;
zaglavlje_root_node xmldom.DOMNode;
zaglavlje_root_elmt xmldom.DOMElement;
zaglavlje_node xmldom.DOMNode;
zaglavlje_elmt xmldom.DOMElement;
zaglavlje_text xmldom.DOMText;
zaglavlje_value_int integer;
zaglavlje_value_varchar varchar2(2);
obaveza_root_node xmldom.DOMNode;
obaveza_root_elmt xmldom.DOMElement;
obaveza_node xmldom.DOMNode;
obaveza_elmt xmldom.DOMElement;
obaveza_text xmldom.DOMText;
stavka_root_node xmldom.DOMNode;
stavka_root_elmt xmldom.DOMElement;
dl_node xmldom.DOMNode;
dl_elmt xmldom.DOMElement;
dl_text xmldom.DOMText;
v_vrsta_isplate vrste_isplata;
v_vrsta_isplate_1 vrste_isplata;
uk_ostale_isplate number;
PORESKI_P_OD DATE;
PORESKI_P_DO DATE;
ISPLATNI_P_OD DATE;
ISPLATNI_P_DO DATE;
STATUS_MAIN varchar2(10);
STATUS_BOL varchar2(10);
STATUS_BEN varchar2(10);
SIFRA_OPSTINE varchar2(240);
SIFRA_OPSTINE_3 varchar2(240);
ADRESA_INSTITUCIJE varchar2(250);
NAZIV_INSTITUCIJE varchar2(250);
NAZIV_INSTITUCIJE_K varchar2(250);
V_FILE_NAME varchar2(240);
V_DIR varchar2(240);
V_FILE_HANDLER UTL_FILE.FILE_TYPE;
UK_BRUTO_ZAP NUMBER;
OST_NAKNADE_BRUTO NUMBER;
UK_NETO varchar2(240);
UK_NETO_KOM varchar2(240);
STATUS_INV varchar2(240);
V_DPF NUMBER;
V_DPF_RAD NUMBER;
V_DPF_POS NUMBER;
V_DPF_IZNOS_NEOP NUMBER;
STATUS_DPF varchar2(10);
STATUS_PRED_SIND varchar2(10);
v_temp_var number;
v_req_status boolean;
V_PRED_SIND NUMBER := 0;
V_PRED_SIND_BRUTO NUMBER;
V_PRED_SIND_DOHODAK NUMBER;
V_PRED_SIND_NETO NUMBER;
V_PRED_SIND_OSN_POREZ NUMBER;
V_PRED_SIND_POREZ NUMBER;
V_PRED_SIND_PIO NUMBER;
V_PRED_SIND_ZO NUMBER;
V_PRED_SIND_DZ NUMBER;
V_PRED_SIND_ZN NUMBER;
V_NETO_ISPLATA NUMBER;
v_broj_ben INTEGER := 0;
nl xmldom.DOMNodeList;
n xmldom.DOMNode;
len number;
e xmldom.DOMElement;
CURSOR RAZ_ZO_ZN IS
select JMBG from XX_OBRAZAC1002_MAIN_TT where TRIM(OPST_ZO) != TRIM(OPST_ZN);
BEGIN
V_DIR :='OBRAZAC_1002';
NAZIV_INSTITUCIJE := XX_CREATE_1002_XML_2022.GET_ORG_NAME(p_org_id);
NAZIV_INSTITUCIJE_K := SUBSTR(NAZIV_INSTITUCIJE,1,29);
ADRESA_INSTITUCIJE := XX_CREATE_1002_XML_2022.GET_ORG_ADDRESS(p_org_id);
STATUS_INV:=get_org_dis_payer_status(p_org_id);
PORESKI_P_OD :=FND_DATE.CANONICAL_TO_DATE(P_PERIOD_OD);
PORESKI_P_DO :=FND_DATE.CANONICAL_TO_DATE(P_PERIOD_DO);
ISPLATNI_P_OD :=FND_DATE.CANONICAL_TO_DATE(I_PERIOD_OD);
ISPLATNI_P_DO :=FND_DATE.CANONICAL_TO_DATE(I_PERIOD_DO);
STATUS_MAIN:=XX_CREATE_1002_XML_2022.FILL_MAIN_TMP_TABLE(P_JIB,ISPLATNI_P_OD,ISPLAT
NI_P_DO);
STATUS_BOL:=XX_CREATE_1002_XML_2022.FILL_BOL_TMP_TABLE(P_JIB,ISPLATNI_P_OD,ISPLATNI
_P_DO);
STATUS_BEN:=XX_CREATE_1002_XML_2022.FILL_BEN_TMP_TABLE(P_JIB,ISPLATNI_P_OD,ISPLATNI
_P_DO);
STATUS_DPF:=XX_CREATE_1002_XML_2022.FILL_DPF_TMP_TABLE(P_JIB,to_char(ISPLATNI_P_OD,
'mm.yyyy'));
STATUS_PRED_SIND:=XX_CREATE_1002_XML_2022.fill_pred_sind_tmp_table(P_JIB,ISPLATNI_P
_OD,ISPLATNI_P_DO);
doc := xmldom.newDOMDocument;
main_node := xmldom.makeNode(doc);
--<VRSTA_PRIJAVE>
zaglavlje_elmt := xmldom.createElement(doc, 'VRSTA_PRIJAVE');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, 'MPO1');
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<TIP_PRIJAVE>
zaglavlje_elmt := xmldom.createElement(doc, 'TIP_PRIJAVE');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, 'O');
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<JIB>
zaglavlje_elmt := xmldom.createElement(doc, 'JIB');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, p_jib);
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<SIFRA_OPSTINE>
zaglavlje_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, substr(p_opstina,1,3));
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<PORESKI_PERIOD_OD>
zaglavlje_elmt := xmldom.createElement(doc, 'PORESKI_PERIOD_OD');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, to_char(PORESKI_P_OD, 'dd.mm.yyyy'));
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<PORESKI_PERIOD_DO>
zaglavlje_elmt := xmldom.createElement(doc, 'PORESKI_PERIOD_DO');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, to_char(PORESKI_P_DO, 'dd.mm.yyyy'));
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<ISPLATNI_PERIOD_OD>
zaglavlje_elmt := xmldom.createElement(doc, 'ISPLATNI_PERIOD_OD');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, to_char(ISPLATNI_P_OD, 'dd.mm.yyyy'));
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<ISPLATNI_PERIOD_DO>
zaglavlje_elmt := xmldom.createElement(doc, 'ISPLATNI_PERIOD_DO');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, to_char(ISPLATNI_P_DO, 'dd.mm.yyyy'));
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<POSLODAVAC_KTI>
zaglavlje_elmt := xmldom.createElement(doc, 'POSLODAVAC_KTI');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, '');
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<NAMJENA_PRIJAVE>
zaglavlje_elmt := xmldom.createElement(doc, 'NAMJENA_PRIJAVE');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
if p_vrsta = 'POREZ' then
zaglavlje_value_int := 1;
else
zaglavlje_value_int := 2;
end if;
zaglavlje_text := xmldom.createTextNode(doc, zaglavlje_value_int);
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<ISPLATA_PRIMANJA>
zaglavlje_elmt := xmldom.createElement(doc, 'ISPLATA_PRIMANJA');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
--<NACIN_OBAVLJANJA_SDJELATNOSTI>
zaglavlje_elmt := xmldom.createElement(doc, 'NACIN_OBAVLJANJA_SDJELATNOSTI');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_text := xmldom.createTextNode(doc, '');
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<PO_NALOGU_INSPEKTORA>
zaglavlje_elmt := xmldom.createElement(doc, 'PO_NALOGU_INSPEKTORA');
zaglavlje_node := xmldom.appendChild(zaglavlje_root_node,
xmldom.makeNode(zaglavlje_elmt));
zaglavlje_node := xmldom.appendChild(zaglavlje_node,
xmldom.makeNode(zaglavlje_text));
--<OBAVEZA>
obaveza_root_elmt := xmldom.createElement(doc, 'OBAVEZA');
obaveza_root_node := xmldom.appendChild(root_node,
xmldom.makeNode(obaveza_root_elmt));
IF p_vrsta='POREZ' THEN
V_DPF_IZNOS_NEOP:=0;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '713113');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '711118');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
ELSE
IF VP711118_PRED_SIND IS NOT NULL THEN
--<STAVKA>
stavka_root_elmt := xmldom.createElement(doc, 'STAVKA');
stavka_root_node := xmldom.appendChild(obaveza_root_node,
xmldom.makeNode(stavka_root_elmt));
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '711118');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc,
format_number_1002(VP711118_PRED_SIND));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '711112');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc,
format_number_1002(VP711112));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '711311');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc,
format_number_1002(VP711311));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.IME || ' ' ||
D_SL_L.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZO');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_DZ>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_DZ');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZN>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZN');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<UKUPNI_DOPRINOSI>
dl_elmt := xmldom.createElement(doc, 'UKUPNI_DOPRINOSI');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.PIO + D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN -
(V_PRED_SIND_PIO + V_PRED_SIND_ZO + V_PRED_SIND_DZ + V_PRED_SIND_ZN)));
else*/
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.PIO + D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN));
--end if;
--dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.PIO + D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
end if;
/*fnd_file.put_line(fnd_file.LOG, 'ISPLACENO_PRIMANJE_1');
fnd_file.put_line(fnd_file.LOG, 'D_SL_L.JMBG' || ' = ' ||
D_SL_L.JMBG);
fnd_file.put_line(fnd_file.LOG, 'D_SL_L.NETO' || ' = ' ||
to_char(D_SL_L.NETO));*/
--<NEOPOREZIVO_PRIMANJE>
dl_elmt := xmldom.createElement(doc, 'NEOPOREZIVO_PRIMANJE');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.IME || ' ' ||
D_SL_L.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZO');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_DZ>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_DZ');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZN>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZN');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<UKUPNI_DOPRINOSI>
dl_elmt := xmldom.createElement(doc, 'UKUPNI_DOPRINOSI');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(D_SL_L.PIO
+ D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
end if;
if SIFRA_OPSTINE_3=substr(P_OPSTINA,1,3) then
if STATUS_INV='D' then
if ISPLATNI_P_OD<to_date('01.12.2015','dd.mm.yyyy') then
v_vrsta_isplate := vrste_isplata(18,42,43,44);
elsif ISPLATNI_P_OD>=to_date('01.12.2015','dd.mm.yyyy') and
ISPLATNI_P_OD<to_date('01.12.2016','dd.mm.yyyy') then
v_vrsta_isplate := vrste_isplata(18,43,44);
elsif ISPLATNI_P_OD>=to_date('01.12.2016','dd.mm.yyyy') and
ISPLATNI_P_OD<to_date('01.01.2018','dd.mm.yyyy') then
v_vrsta_isplate := vrste_isplata(18);
else
--v_vrsta_isplate := vrste_isplata(18,54);
v_vrsta_isplate := vrste_isplata(18);
end if;
else
if ISPLATNI_P_OD<to_date('01.12.2015','dd.mm.yyyy') then
v_vrsta_isplate := vrste_isplata(42,43,44);
elsif ISPLATNI_P_OD>=to_date('01.12.2015','dd.mm.yyyy') and
ISPLATNI_P_OD<to_date('01.12.2016','dd.mm.yyyy') then
v_vrsta_isplate := vrste_isplata(43,44);
elsif ISPLATNI_P_OD>=to_date('01.12.2016','dd.mm.yyyy') and
ISPLATNI_P_OD<to_date('01.01.2018','dd.mm.yyyy') then
v_vrsta_isplate := vrste_isplata();
else
--v_vrsta_isplate := vrste_isplata(54);
v_vrsta_isplate := vrste_isplata();
end if;
end if;
IF STATUS_INV='D' THEN
SELECT nvl(SUM(BRUTO),0) INTO UK_BRUTO_ZAP FROM
XX_OBRAZAC1002_MAIN_TT where emp_cat_s='1';
SELECT NVL(SUM(OSTALE_NAKNADE),0) INTO OST_NAKNADE_BRUTO FROM
XX_OBRAZAC1002_MAIN_TT where emp_cat_s='1';
ELSE
UK_BRUTO_ZAP:=0;
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712172');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
if ISPLATNI_P_OD<to_date('01.12.2015','dd.mm.yyyy') then
obaveza_text := xmldom.createTextNode(doc,
format_number_1002(TO_NUMBER(VP712172) + TO_NUMBER(DOP_SLOLID_BEZ_KOM)));
else
obaveza_text := xmldom.createTextNode(doc,
format_number_1002(TO_NUMBER(VP712172)));
end if;
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
uk_ostale_isplate := v_vrsta_isplate.count;
select NVL(sum(NETO),0) into UK_NETO FROM XX_OBRAZAC1002_MAIN_TT where
emp_cat!='BA_U_10' and emp_cat!='BA_U_06' AND SOLID>0;
select NVL(sum(NETO),0) into UK_NETO_KOM FROM XX_OBRAZAC1002_MAIN_TT
where emp_cat='BA_U_10';
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, NAZIV_INSTITUCIJE);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, P_JIB);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<RADNI_SATI>
dl_elmt := xmldom.createElement(doc, 'RADNI_SATI');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, '0');
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<OSNOVICA_ZA_VI6>
dl_elmt := xmldom.createElement(doc, 'OSNOVICA_ZA_VI6');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF v_vrsta_isplate(i)=18 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(uk_bruto_zap-OST_NAKNADE_BRUTO));
elsif v_vrsta_isplate(i)=42 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(UK_NETO));
elsif v_vrsta_isplate(i)=43 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(UK_NETO));
elsif v_vrsta_isplate(i)=44 then
IF DOP_SLOLID_KOM IS NOT NULL THEN
dl_text := xmldom.createTextNode(doc,
format_number_1002(UK_NETO_KOM));
ELSE
dl_text := xmldom.createTextNode(doc,
format_number_1002(0));
END IF;
end if;
--<DOPRINOS_PIO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_PIO');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF v_vrsta_isplate(i)=18 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(round((UK_BRUTO_ZAP-OST_NAKNADE_BRUTO)*0.002, 2)));
elsif v_vrsta_isplate(i)=42 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(DOP_SLOLID_BEZ_KOM));
elsif v_vrsta_isplate(i)=43 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(DOP_SLOLID_BEZ_KOM));
elsif v_vrsta_isplate(i)=44 then
IF DOP_SLOLID_KOM IS NOT NULL THEN
dl_text := xmldom.createTextNode(doc,
format_number_1002(DOP_SLOLID_KOM));
ELSE
dl_text := xmldom.createTextNode(doc,
format_number_1002(0));
END IF;
end if;
--<DOPRINOS_ZO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZO');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_DZ>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_DZ');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZN>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZN');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<UKUPNI_DOPRINOSI>
dl_elmt := xmldom.createElement(doc, 'UKUPNI_DOPRINOSI');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF v_vrsta_isplate(i)=18 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(round((UK_BRUTO_ZAP-OST_NAKNADE_BRUTO)*0.002, 2)));
elsif v_vrsta_isplate(i)=42 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(DOP_SLOLID_BEZ_KOM));
elsif v_vrsta_isplate(i)=43 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(DOP_SLOLID_BEZ_KOM));
elsif v_vrsta_isplate(i)=44 then
IF DOP_SLOLID_KOM IS NOT NULL THEN
dl_text := xmldom.createTextNode(doc,
format_number_1002(DOP_SLOLID_KOM));
ELSE
dl_text := xmldom.createTextNode(doc,
format_number_1002(0));
END IF;
end if;
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<TIP_POSEBNE_ISPLATE>
dl_elmt := xmldom.createElement(doc, 'TIP_POSEBNE_ISPLATE');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, to_char(v_vrsta_isplate(i)));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
END LOOP;
end if;
END LOOP PETLJA_ZA_KREIRANJE_FAJLOVA;
/
***********************************************************************************
***************************************/
/* Ovde počinje dio koji kreira EPP fajl za prijavu doprinosa. Kreira se fajl za
opštinu sjedišta */
/* Fajl obuhvata sve radnike i ugovorce.
*/
/
***********************************************************************************
***************************************/
ELSIF p_vrsta='DOPRINOSI' THEN
v_temp_var := 0;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712199');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, format_number_1002(VP712199));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712113');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, format_number_1002(VP712113));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712129');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, format_number_1002(VP712129));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712149');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, format_number_1002(VP712149));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712159');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, format_number_1002(VP712159));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<VRSTA_PRIHODA>
obaveza_elmt := xmldom.createElement(doc, 'VRSTA_PRIHODA');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, '712169');
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<IZNOS_OBAVEZE>
obaveza_elmt := xmldom.createElement(doc, 'IZNOS_OBAVEZE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, format_number_1002(VP712169));
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
--<SIFRA_OPSTINE>
obaveza_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
obaveza_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(obaveza_elmt));
obaveza_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
obaveza_node := xmldom.appendChild(obaveza_node,
xmldom.makeNode(obaveza_text));
END IF;
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.IME || ' ' ||
D_SL_L.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--fnd_file.put(fnd_file.LOG, D_SL_L.JMBG);
--fnd_file.put(fnd_file.LOG, D_SL_L.EMP_CAT_S);
--fnd_file.put(fnd_file.LOG, to_char(V_PRED_SIND));
--<DOPRINOS_ZO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZO');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF D_SL_L.OPST_ZO=P_OPSTINA THEN
/*if V_PRED_SIND > 0 and D_SL_L.EMP_CAT_S = 1 then
select sum(ZO) into V_PRED_SIND_ZO from
XX_OBRAZAC1002_PRED_SIND_TT where JMBG = D_SL_L.JMBG;
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.ZO - V_PRED_SIND_ZO));
else*/
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.ZO));
--end if;
ELSE
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
END IF;
--<DOPRINOS_DZ>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_DZ');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
--<DOPRINOS_ZN>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZN');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF D_SL_L.OPST_ZN=P_OPSTINA THEN
/*if V_PRED_SIND > 0 and D_SL_L.EMP_CAT_S = 1 then
select sum(ZN) into V_PRED_SIND_ZN from
XX_OBRAZAC1002_PRED_SIND_TT where JMBG = D_SL_L.JMBG;
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.ZN - V_PRED_SIND_ZN));
else*/
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.ZN));
--end if;
ELSE
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
END IF;
--<UKUPNI_DOPRINOSI>
dl_elmt := xmldom.createElement(doc, 'UKUPNI_DOPRINOSI');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
/*if V_PRED_SIND > 0 and D_SL_L.EMP_CAT_S = 1 then
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.PIO + D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN -
(V_PRED_SIND_PIO + V_PRED_SIND_ZO + V_PRED_SIND_DZ + V_PRED_SIND_ZN)));
else*/
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.PIO + D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN));
--end if;
/*fnd_file.put(fnd_file.LOG, 'ISPLACENO_PRIMANJE');
fnd_file.put(fnd_file.LOG, D_SL_L.JMBG);
fnd_file.put(fnd_file.LOG, D_SL_L.EMP_CAT_S); */
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.IME || ' ' || D_SL_L.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZO');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF D_SL_L.OPST_ZO=P_OPSTINA THEN
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.ZO));
ELSE
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
END IF;
--<DOPRINOS_DZ>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_DZ');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(D_SL_L.DZ));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZN>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZN');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
IF D_SL_L.OPST_ZN=P_OPSTINA THEN
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L.ZN));
ELSE
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
END IF;
--<UKUPNI_DOPRINOSI>
dl_elmt := xmldom.createElement(doc, 'UKUPNI_DOPRINOSI');
dl_node := xmldom.appendChild(stavka_root_node,
xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(D_SL_L.PIO +
D_SL_L.ZO + D_SL_L.DZ + D_SL_L.ZN));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
end if;
--loop za bolovanje
FOR D_SL_L_BOL in D_SL_BOL LOOP
stavka_root_elmt := xmldom.createElement(doc, 'STAVKA');
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BOL.IME || ' ' ||
D_SL_L_BOL.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BOL.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<RADNI_SATI>
dl_elmt := xmldom.createElement(doc, 'RADNI_SATI');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BOL.RADNI_SATI);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<NETO_BOLOVANJE>
dl_elmt := xmldom.createElement(doc, 'NETO_BOLOVANJE');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
--<NETO_RAZLIKA_BOL>
dl_elmt := xmldom.createElement(doc, 'NETO_RAZLIKA_BOL');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BOL.RAZLIKA_PLATE);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
END LOOP;
--loop za beneficirani
FOR D_SL_L_BEN in D_SL_BEN LOOP
stavka_root_elmt := xmldom.createElement(doc, 'STAVKA');
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BEN.IME || ' ' ||
D_SL_L_BEN.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BEN.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<RADNI_SATI>
dl_elmt := xmldom.createElement(doc, 'RADNI_SATI');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BEN.RADNI_SATI);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_RADNOG_MJESTA>
dl_elmt := xmldom.createElement(doc, 'SIFRA_RADNOG_MJESTA');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BEN.SIFRA_MJESTA);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<KOEF_UVECANJA>
dl_elmt := xmldom.createElement(doc, 'KOEF_UVECANJA');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_BEN.KOEF_UVECANJA);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<BRUTO>
dl_elmt := xmldom.createElement(doc, 'BRUTO');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L_BEN.BRUTO));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_PIO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_PIO');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L_BEN.PIO_BEN));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
END LOOP;
--loop za volontere
FOR D_SL_L_VOL in D_SL_VOL LOOP
stavka_root_elmt := xmldom.createElement(doc, 'STAVKA');
--<IME_PREZIME>
dl_elmt := xmldom.createElement(doc, 'IME_PREZIME');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_VOL.IME || ' ' ||
D_SL_L_VOL.PREZIME);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<JMBG>
dl_elmt := xmldom.createElement(doc, 'JMBG');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_VOL.JMBG);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<SIFRA_OPSTINE>
dl_elmt := xmldom.createElement(doc, 'SIFRA_OPSTINE');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, SIFRA_OPSTINE_3);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<RADNI_SATI>
dl_elmt := xmldom.createElement(doc, 'RADNI_SATI');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, D_SL_L_VOL.RADNI_SATI);
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<OSNOVICA_ZA_VI6>
dl_elmt := xmldom.createElement(doc, 'OSNOVICA_ZA_VI6');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc,
format_number_1002(D_SL_L_VOL.BRUTO));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_PIO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_PIO');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(D_SL_L_VOL.PIO));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZO>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZO');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(D_SL_L_VOL.ZO));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_DZ>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_DZ');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<DOPRINOS_ZN>
dl_elmt := xmldom.createElement(doc, 'DOPRINOS_ZN');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(0));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<UKUPNI_DOPRINOSI>
dl_elmt := xmldom.createElement(doc, 'UKUPNI_DOPRINOSI');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, format_number_1002(D_SL_L_VOL.PIO +
D_SL_L_VOL.ZO));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
--<TIP_POSEBNE_ISPLATE>
dl_elmt := xmldom.createElement(doc, 'TIP_POSEBNE_ISPLATE');
dl_node := xmldom.appendChild(stavka_root_node, xmldom.makeNode(dl_elmt));
dl_text := xmldom.createTextNode(doc, to_char('16'));
dl_node := xmldom.appendChild(dl_node, xmldom.makeNode(dl_text));
END LOOP;
doc_final := xmldom.newDOMDocument;
main_node_final := xmldom.makeNode(doc_final);
nl := xmldom.getElementsByTagName(doc, 'ZAGLAVLJE');
n := DBMS_XMLDOM.clonenode(xmldom.item(nl, 0), true);
n := DBMS_XMLDOM.importnode(doc_final, n, true);
n := DBMS_XMLDOM.appendChild(root_node_final, n);
nl := xmldom.getElementsByTagName(doc, 'OBAVEZA');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL1');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL1B');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL2');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL3');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL4');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL5');
len := xmldom.getLength(nl);
nl := xmldom.getElementsByTagName(doc, 'DL6');
len := xmldom.getLength(nl);
dbms_lob.createtemporary(v_clob,true);
XMLDOM.WRITETOCLOB(doc_final, v_clob);
v_clob_len := length(v_clob);
v_clob_value := 0;
LOOP
v_clob_value := v_clob_value + 3000;
v_clob_char := NULL;
v_clob_char := dbms_lob.substr(v_clob, 3000, v_clob_value - 3000 + 1);
fnd_file.put(fnd_file.LOG, to_char(v_clob_char));
EXIT WHEN v_clob_value > v_clob_len;
END LOOP;
v_dir :='OBRAZAC_1002';
v_file_name := c_file_name(p_jib, PORESKI_P_OD, p_vrsta, '01');
xmldom.writeToFile(doc_final, v_dir || '/' || v_file_name || '.xml');
xmldom.freeDocument(doc);
xmldom.freeDocument(doc_final);
EXCEPTION
WHEN OTHERS THEN
fnd_file.put_line(fnd_file.LOG, 'GRESKA -> ' || SQLERRM);
xmldom.freeDocument(doc);
END create_1002_xml_fs;
END XX_CREATE_1002_XML_2022;