DECLARE N NUMBER :=0; N1 NUMBER :=0; V_SUBJECT VARCHAR2(500); V_BRANCH VARCHAR2(500); V_ADDRESS_ENG VARCHAR2(500); v_blob BLOB := empty_blob(); l_step NUMBER :=22500; l_mime_type VARCHAR2(1000); V_LVL_01_ID NUMBER; V_LVL_10_ID NUMBER; CURSOR AUTH IS select USERS, REQ_NO, BRANCH_ID, PREPARED, USER_LEVEL, DESIG, AUTHORITY, ZONE, REMARKS_DATE, x.MIME_TYPE attch_mimetype, x.FILE_NAME,t.USER_SIL attch from (SELECT distinct A. login_id USERS, A.REQ_NO, A.BRANCH_ID, C.FULL_NAME_ENG PREPARED, C.USER_LEVEL, D.NAME_ENG DESIG, E.AUTHORITY, E.NAME_ENG ZONE, max(a.sign_date)--max(TO_CHAR (f.SIGN_DATE, 'DD-MM-YYYY HH24:MI:SS AM')) REMARKS_DATE, g.MIME_TYPE, g.FILE_NAME--t.USER_SIL attaches FROM (SELECT distinct LOGIN_ID, REQ_NO, BRANCH_ID,max(to_char(SIGN_DATE, 'DD-MM-YYYY HH24:MI:SS AM')) SIGN_DATE FROM BUDGET_SIGNS WHERE LOGIN_ID IS NOT NULL group by LOGIN_ID, REQ_NO, BRANCH_ID UNION SELECT distinct CREATED_BY LOGIN_ID , REQ_NO, BRANCH_ID,max(to_char(SIGN_DATE, 'DD-MM-YYYY HH24:MI:SS AM')) SIGN_DATE FROM BUDGET_SIGNS WHERE LOGIN_ID IS NOT NULL group by CREATED_BY , REQ_NO, BRANCH_ID ) A, APP_USERS C, budget.designations D, BRANCHS E, BUDGET_SIGNS f, USER_DEG_SIL g, BDG_REQ_MST h WHERE A.BRANCH_ID IS NOT NULL AND A.LOGIN_ID = C.LOGIN_ID AND C.DESIG_ID = D.ID AND A.BRANCH_ID = E.ID AND H.BDG_REQ_MST_ID = :P154_REQ_MST_ID AND A.REQ_NO= h.BDG_REQ_MST_ID AND A.BRANCH_ID = :G_BRANCH_ID and a.REQ_NO = f.REQ_NO and a.LOGIN_ID=g. LOGIN_ID (+) GROUP BY A.LOGIN_ID, A.REQ_NO, A.BRANCH_ID, C.FULL_NAME_ENG, C.USER_LEVEL, D.NAME_ENG, E.AUTHORITY, E.NAME_ENG, g.MIME_TYPE, g.FILE_NAME) x left join USER_DEG_SIL t on x.USERS=t.LOGIN_ID (+) ; CURSOR LVL_01 IS select SHORT_NAME,ID from HEAD_INFOS where PARENT_ID is null; CURSOR LVL_03 IS SELECT X.ID, X.U_ID, X.HEAD_NAME, Y.OLD_PRV_ACTUAL_EXPENSE_AMT, Y.PRV_APPROVE_AMT, Y.PRV_CURRENT_EXPENSE_AMT, Y.PRV_EXPECT_EXPENSE_AMT, Y.BDG_REQ_AMT, Y.BDG_REMARKS FROM (SELECT ID, U_ID, NAME_ENG || ' (' || NAME_BNG || ')' HEAD_NAME FROM HEAD_INFOS WHERE ID IN (SELECT ID FROM HEAD_INFOS WHERE PARENT_ID =V_LVL_10_ID))X, (SELECT A.HEAD_ID, A.OLD_PRV_ACTUAL_EXPENSE_AMT, A.PRV_APPROVE_AMT, A.PRV_CURRENT_EXPENSE_AMT, A.PRV_EXPECT_EXPENSE_AMT, A.BDG_REQ_AMT, A.BDG_REMARKS FROM BDG_REQ_DTL A, BDG_REQ_MST C WHERE A.REQ_MST_ID = C.BDG_REQ_MST_ID AND C.BRANCH_ID = (SELECT BRANCH_ID FROM APP_USERS WHERE UPPER (TRIM (LOGIN_ID)) = :APP_USER)) Y WHERE Y.HEAD_ID = X.ID(+) AND X.ID IS NOT NULL; CURSOR LVL_10 IS select x.PARENT_ID,y.head_name from (SELECT distinct h.PARENT_ID FROM BDG_REQ_DTL A, BDG_REQ_MST C,HEAD_INFOS h WHERE A.REQ_MST_ID = C.BDG_REQ_MST_ID and A.HEAD_ID=h.id AND C.BRANCH_ID = (SELECT BRANCH_ID FROM APP_USERS WHERE UPPER (TRIM (LOGIN_ID)) = :APP_USER)) x, (select ID,NAME_ENG || ' (' || NAME_BNG || ')' HEAD_NAME from HEAD_INFOS where PARENT_ID=V_LVL_01_ID) y where x.PARENT_ID=y.id; -- SELECT ID, U_ID, NAME_ENG || ' (' || NAME_BNG || ')' HEAD_NAME -- FROM HEAD_INFOS -- WHERE PARENT_ID = V_LVL_01_ID ; BEGIN /* BEGIN SELECT USER_IMG, MIME_TYPE INTO v_blob, l_mime_type FROM USER_IMG_SIG WHERE UPPER(TRIM(LOGIN_ID)) = UPPER(TRIM(:APP_USER)) AND ROWNUM = 1; exception when no_data_found then v_blob := null; l_step := 'Empty!'; END; */ BEGIN SELECT B.SUBJECT_NAME, A.NAME_BNG, A.ADDRESS_BNG INTO V_SUBJECT, V_BRANCH, V_ADDRESS_ENG FROM BRANCHS A, SUBJECTS B, BDG_REQ_MST C WHERE C.BDG_SUBJECT = B.SUBJECT_ID(+) AND C.BRANCH_ID = A.ID(+) AND C.BRANCH_ID = (SELECT BRANCH_ID FROM APP_USERS WHERE UPPER(TRIM(LOGIN_ID)) = :APP_USER) and rownum=1; EXCEPTION WHEN NO_DATA_FOUND THEN V_SUBJECT := null; END; htp.p(' '); -- htp.p(' -- -- '); htp.p('
'); Htp.p('
'); Htp.p('
'); Htp.p('
'); htp.p('
ঢাকা পানি সরবরাহ ও পয়: নিষ্কাশন কর্তৃপক্ষ
নির্বাহী প্রকৌশলীর দপ্তর, '||' '||V_BRANCH||'
'||V_ADDRESS_ENG||'
'); Htp.p('
'); Htp.p(''); htp.p('
'); htp.p('
 

'); htp.p('
'); htp.p('
Print Date: '||TO_CHAR(SYSDATE, 'DD-MON-YYYY HH:MI:SS')||'

'); htp.p('
'||'Subject Name:'||' '||V_SUBJECT||'
'); htp.p('
'); FOR T IN ( SELECT A.MEMO_NO, A.REQ_DT, B.NAME_ENG, A.PRESENT_USER, A.APPROVE_STUTAS, A.FINAL_APPROVE_STUTAS, C.PRIORITY_NAME FROM BDG_REQ_MST A, FINANCIAL_YEARS B, PRIORITYS C WHERE A.FI_YEAR_ID = B.ID AND A.BDG_PRIORITY = C.PRIORITY_ID AND A.BRANCH_ID = (SELECT BRANCH_ID FROM APP_USERS WHERE UPPER(TRIM(LOGIN_ID)) = :APP_USER) ) LOOP n:=n+1; htp.p(''); END LOOP; htp.p('
Serial Memo No Requisition Date Financial Year PRESENT USER APPROVE STUTAS FINAL APPROVE STUTAS PRIORITY
'||N||' '||T.MEMO_NO||' '||T.REQ_DT||' '||T.NAME_ENG||' '||T.PRESENT_USER||' '||T.APPROVE_STUTAS||' '||T.FINAL_APPROVE_STUTAS||' '||T.PRIORITY_NAME||'

'); htp.p('
'); FOR I IN LVL_01 LOOP V_LVL_01_ID := I.ID; htp.p(' '); FOR Z IN LVL_10 LOOP V_LVL_10_ID := Z.PARENT_ID; n1 :=0; htp.p(''); FOR J IN LVL_03 LOOP n1:=n1+1; htp.p(' '); END LOOP; for t in (select sum(x.OLD_PRV_ACTUAL_EXPENSE_AMT) OLD_PRV_ACTUAL_EXPENSE_AMT ,sum(x.PRV_APPROVE_AMT) PRV_APPROVE_AMT ,sum(x.PRV_CURRENT_EXPENSE_AMT) PRV_CURRENT_EXPENSE_AMT ,sum(x.PRV_EXPECT_EXPENSE_AMT) PRV_EXPECT_EXPENSE_AMT ,sum(x.BDG_REQ_AMT) BDG_REQ_AMT from (select head_id, OLD_PRV_ACTUAL_EXPENSE_AMT,PRV_APPROVE_AMT,PRV_CURRENT_EXPENSE_AMT,BDG_REQ_AMT,PRV_EXPECT_EXPENSE_AMT from BDG_REQ_DTL d,BDG_REQ_MST C where d.REQ_MST_ID = c.BDG_REQ_MST_ID and c.BRANCH_ID = (SELECT BRANCH_ID FROM APP_USERS WHERE UPPER (TRIM (LOGIN_ID)) = :APP_USER)) x, (select id ,NAME_BNG from HEAD_INFOS where parent_id=V_LVL_10_ID) y where x.head_id=y.id ) loop htp.p(' '); end loop; end loop; -- FOR CN IN -- (SELECT A.REQ_MST_ID, -- sum(A.OLD_PRV_ACTUAL_EXPENSE_AMT) OLD_PRV_ACTUAL_EXPENSE_AMT, -- sum(A.PRV_APPROVE_AMT) PRV_APPROVE_AMT, -- sum(A.PRV_CURRENT_EXPENSE_AMT) PRV_CURRENT_EXPENSE_AMT, -- sum(A.PRV_EXPECT_EXPENSE_AMT) PRV_EXPECT_EXPENSE_AMT, -- sum(A.BDG_REQ_AMT) BDG_REQ_AMT -- FROM BDG_REQ_DTL A, BDG_REQ_MST C -- WHERE A.REQ_MST_ID = C.BDG_REQ_MST_ID -- AND C.BRANCH_ID = (SELECT BRANCH_ID -- FROM APP_USERS -- WHERE UPPER (TRIM (LOGIN_ID)) = :APP_USER) -- GROUP BY A.REQ_MST_ID -- ) -- LOOP -- htp.p(' -- -- -- -- -- -- -- -- '); -- end loop; END LOOP; FOR CT IN (SELECT A.REQ_MST_ID, sum(A.OLD_PRV_ACTUAL_EXPENSE_AMT) OLD_PRV_ACTUAL_EXPENSE_AMT, sum(A.PRV_APPROVE_AMT) PRV_APPROVE_AMT, sum(A.PRV_CURRENT_EXPENSE_AMT) PRV_CURRENT_EXPENSE_AMT, sum(A.PRV_EXPECT_EXPENSE_AMT) PRV_EXPECT_EXPENSE_AMT, sum(A.BDG_REQ_AMT) BDG_REQ_AMT FROM BDG_REQ_DTL A, BDG_REQ_MST C WHERE A.REQ_MST_ID = C.BDG_REQ_MST_ID AND C.BRANCH_ID = (SELECT BRANCH_ID FROM APP_USERS WHERE UPPER (TRIM (LOGIN_ID)) = :APP_USER) GROUP BY A.REQ_MST_ID ) LOOP htp.p('
'); end loop; htp.p('
'||I.SHORT_NAME||'
Serial UID Head Name Estimate
2023-24
Revise
2022-23
Approve
2022-23
Actual Expence
2022-23
Actual Expence
2021-22
Remarks
'||Z.HEAD_NAME||'
'||N1||' '||J.U_ID||' '||J.HEAD_NAME||' '||J.BDG_REQ_AMT||' '||J.PRV_EXPECT_EXPENSE_AMT||' '||J.PRV_APPROVE_AMT||' '||J.PRV_CURRENT_EXPENSE_AMT||' '||J.OLD_PRV_ACTUAL_EXPENSE_AMT||' '||J.BDG_REMARKS||'
SUBTOTAL '||t.BDG_REQ_AMT||' '||t.PRV_EXPECT_EXPENSE_AMT||' '||t.PRV_APPROVE_AMT||' '||t.PRV_CURRENT_EXPENSE_AMT||' '||t.OLD_PRV_ACTUAL_EXPENSE_AMT||'
'||'Sub Total'||''||CN.BDG_REQ_AMT||''||CN.PRV_EXPECT_EXPENSE_AMT||''||CN.PRV_APPROVE_AMT||''||CN.PRV_CURRENT_EXPENSE_AMT||''||CN.OLD_PRV_ACTUAL_EXPENSE_AMT||'
'||'Grand Total'||' '||CT.BDG_REQ_AMT||' '||CT.PRV_EXPECT_EXPENSE_AMT||' '||CT.PRV_APPROVE_AMT||' '||CT.PRV_CURRENT_EXPENSE_AMT||' '||CT.OLD_PRV_ACTUAL_EXPENSE_AMT||'

'); htp.p('
'); htp.p('
'); for c1 in AUTH loop IF c1.USER_LEVEL = 4 THEN htp.p( 'Signature Image '); htp.p('

'||c1.REMARKS_DATE||' '||c1.USER_LEVEL|| '

'||c1.Prepared||'

'||C1.DESIG||'

'||C1.ZONE||', ঢাকা ওয়াসা

'); END IF; end loop; htp.p(''); htp.p('
'); htp.p('
'); for c1 in AUTH loop IF c1.USER_LEVEL = 3 THEN htp.p( 'Signature Image '); htp.p('

'||c1.REMARKS_DATE||'

'||c1.Prepared||'

'||C1.DESIG||'

'||C1.ZONE||', ঢাকা ওয়াসা

'); END IF; end loop; htp.p(''); htp.p('
'); htp.p('
'); for c1 in AUTH loop IF c1.USER_LEVEL = 2 THEN htp.p( 'Signature Image '); htp.p('

'||c1.REMARKS_DATE||'

'||c1.Prepared||'

'||C1.DESIG||'

'||C1.ZONE||', ঢাকা ওয়াসা

'); END IF; end loop; htp.p(''); htp.p('
'); htp.p('
'); for c1 in AUTH loop IF c1.USER_LEVEL = 1 THEN htp.p( 'Signature Image '); htp.p('

'||c1.REMARKS_DATE||'

'||c1.Prepared||'

'||C1.DESIG||'

'||C1.ZONE||', ঢাকা ওয়াসা

'); END IF; end loop; htp.p(''); htp.p('
'); htp.p('






'); END;