Sei sulla pagina 1di 9

SELECT DISTINCT PAPF.EMPLOYEE_NUMBER, PAAF.

BUSINESS_GROUP_ID,
NVL (hruserdt.get_table_value (PAAF.BUSINESS_GROUP_ID ,
'XXGWC_AIR_TICKET_ELIGIBILITY',
PG.NAME,
'Highest Fare/Return Ticket',
:P_DATE
),0) ELGIBILITY,
(
SELECT DISTINCT purf.ROW_LOW_RANGE_OR_NAME
FROM PAY_USER_ROWS_F purf,
per_analysis_criteria pac,
fnd_id_flex_structures_vl fflex,
per_person_analyses ppa,
per_all_assignments_f paf
WHERE 1 = 1
AND UPPER (fflex.id_flex_structure_code) IN UPPER
('GWC_AIR_TICKET')
AND to_char(purf.user_row_id) = (pac.segment2)
AND fflex.id_flex_num = pac.id_flex_num
AND ppa.analysis_criteria_id =
pac.analysis_criteria_id
AND paf.person_id = ppa.person_id
-- AND :l_date BETWEEN paf.effective_start_date AND
paf.effective_end_date
-- AND :l_date BETWEEN ppa.date_from AND PPA.date_to
AND paf.assignment_id = PAAF.ASSIGNMENT_ID-- 867
) TICKET,
NVL (hruserdt.get_table_value (PAAF.BUSINESS_GROUP_ID ,
'XXGWC_AIR_TICKET_FARE_TABLE',
'Highiest Air Fare',
(
SELECT DISTINCT purf.ROW_LOW_RANGE_OR_NAME
FROM PAY_USER_ROWS_F purf,
per_analysis_criteria pac,
fnd_id_flex_structures_vl fflex,
per_person_analyses ppa,
per_all_assignments_f paf
WHERE 1 = 1
AND UPPER (fflex.id_flex_structure_code) IN UPPER
('GWC_AIR_TICKET')
AND to_char(purf.user_row_id) = (pac.segment2)
AND fflex.id_flex_num = pac.id_flex_num
AND ppa.analysis_criteria_id =
pac.analysis_criteria_id
AND paf.person_id = ppa.person_id
-- AND :l_date BETWEEN paf.effective_start_date AND
paf.effective_end_date
-- AND :l_date BETWEEN ppa.date_from AND PPA.date_to
AND paf.assignment_id = PAAF.ASSIGNMENT_ID-- 867
),
-- 'INDIA - MUMBAI', --l_ticket_to,
:P_DATE --SYSDATE
),0) TICKET_AMOUNT
FROM
per_all_people_f papf,
per_all_assignments_f paaf,
PER_GRADES PG
where
papf.EMPLOYEE_NUMBER = '10027'
and
paaf.PERSON_ID = papf.PERSON_ID
AND PG.GRADE_ID = PAAF.GRADE_ID
order by
papf.EMPLOYEE_NUMBER

------------- grade air ticket details ------------------


select distinct
papf.EMPLOYEE_NUMBER,
papf.FULL_NAME,
hapf.NAME Designation,
hru.NAME Department,
pg.NAME grade,
hruserdt.get_table_value (paaf.business_group_id,
'XXGWC_AIR_TICKET_ELIGIBILITY',
pg.NAME,
'Once in Years',
SYSDATE) l_ticket_dur
from
per_grades pg,
per_all_people_f papf,
per_all_assignments_f paaf,
HR_ALL_POSITIONS_F hapf,
hr_organization_units hru
where
paaf.PERSON_ID = papf.PERSON_ID
and pg.GRADE_ID = paaf.GRADE_ID
and hapf.POSITION_ID = paaf.POSITION_ID
and hru.ORGANIZATION_ID = paaf.ORGANIZATION_ID
and sysdate between paaf.EFFECTIVE_START_DATE and paaf.EFFECTIVE_END_DATE
order by
papf.EMPLOYEE_NUMBER
----------------------------------------------------------------------------

select
papf.EMPLOYEE_NUMBER, papf.FULL_NAME,
--xxgwc_payroll_all.get_accrued_ticket ( 81 , 73 , '5.A' , '01-AUG-2012' , '31-AUG-
2012') --,0,0,0)
hruserdt.get_table_value (81,
'XXGWC_AIR_TICKET_FARE_TABLE',
'Highiest Air Fare',
'INDIA - COCHIN',
SYSDATE
) TICKET_FARE,
xxgwc_payroll_all.get_balance (73,
81,
'GWC Number of Adult Tickets',
'ITD',
SYSDATE --l_start_date
) l_ticket_a_balance,
xxgwc_payroll_all.get_balance (73,
81,
'GWC Number of Adult Dep Tickets',
'ITD',
SYSDATE - 30 --l_start_date
) l_ticket_a_dep_balance,
xxgwc_payroll_all.get_balance (73,
81,
'GWC Number of Child Tickets',
'ITD',
SYSDATE - 30 --l_start_date
) l_ticket_c_balance ,
hruserdt.get_table_value (81,
'XXGWC_AIR_TICKET_ELIGIBILITY',
'1.',
'Self/Family Ticket',
SYSDATE) l_ticket_elig ,
hruserdt.get_table_value (81,
'XXGWC_AIR_TICKET_ELIGIBILITY',
'1.',
'Once in Years',
SYSDATE) l_ticket_dur,
hruserdt.get_table_value (81,
'XXGWC_AIR_TICKET_ELIGIBILITY',
'1.',
'Highest Fare/Return Ticket',
SYSDATE) l_ticket_elig_perc,
DECODE(hruserdt.get_table_value (81,
'XXGWC_AIR_TICKET_ELIGIBILITY',
'1.',
'Highest Fare/Return Ticket',
SYSDATE),'Highest Fare',1,.6) l_tick_elig_perc_amt ,
DECODE(hruserdt.get_table_value (81,
'XXGWC_AIR_TICKET_ELIGIBILITY',
'1.',
'Self/Family Ticket',
SYSDATE) , 'FAMILY' , (1/(365*1))) l_ticket_slf

FROM
PER_ALL_PEOPLE_F PAPF
WHERE
PAPF.EMPLOYEE_NUMBER = 10771
and papf.CURRENT_EMPLOYEE_FLAG = 'Y'
and sysdate between papf.EFFECTIVE_START_DATE and papf.EFFECTIVE_END_DATE

select * from PER_ALL_PEOPLE_F PAPF


where
PAPF.EMPLOYEE_NUMBER = 10001

select * from
XXGWC_AIR_TICKET_FARE_TABLE

select * from pay_user_tables pt where pt.USER_TABLE_NAME =


'XXGWC_AIR_TICKET_FARE_TABLE'

select * from pay_user_columns pc where pc.USER_TABLE_ID = 1072

select * from pay_user_rows_f pr where pr.USER_TABLE_ID = 1072

select * from pay_user_column_instances_f pci where pci.USER_ROW_ID = 88

select
pt.USER_TABLE_NAME,
pc.USER_COLUMN_NAME,
pr.ROW_LOW_RANGE_OR_NAME,
pci.VALUE,
to_char(pci.EFFECTIVE_START_DATE,'DD-MON-YYYY') START_DATE,
TO_CHAR(pci.EFFECTIVE_END_DATE,'DD-MON-YYYY') END_DATE
from
pay_user_column_instances_f pci,
pay_user_rows_f pr,
pay_user_columns pc,
pay_user_tables pt
where
pt.USER_TABLE_NAME = 'XXGWC_AIR_TICKET_FARE_TABLE'
and pc.USER_TABLE_ID = pt.USER_TABLE_ID
and pr.USER_TABLE_ID = pt.USER_TABLE_ID
and pci.USER_ROW_ID = pr.USER_ROW_ID
and pci.USER_COLUMN_ID = pc.USER_COLUMN_ID
and sysdate between pci.EFFECTIVE_START_DATE and pci.EFFECTIVE_END_DATE
order by
pr.ROW_LOW_RANGE_OR_NAME

l_curr_month_amt := ((l_ticket_amt * (NVL(l_ticket_a_balance,0)+


p_accrued_ticket_a)) +
(l_ticket_amt * (NVL(l_ticket_a_dep_balance,0)
+ p_accrued_ticket_a_dep)) + -- Changed
(l_ticket_amt * (NVL(l_ticket_c_balance,0) +
p_accrued_ticket_c))) * l_tick_elig_perc_amt;

SELECT purf.ROW_LOW_RANGE_OR_NAME , PPA.ID_FLEX_NUM


FROM PAY_USER_ROWS_F purf,
per_analysis_criteria pac,
fnd_id_flex_structures_vl fflex,
per_person_analyses ppa,
per_all_assignments_f paf
WHERE 1 = 1
-- AND UPPER (fflex.id_flex_structure_code) IN UPPER
('GWC_AIR_TICKET')
AND to_char(purf.user_row_id) = (pac.segment2)
AND fflex.id_flex_num = pac.id_flex_num
AND ppa.analysis_criteria_id = pac.analysis_criteria_id
AND paf.person_id = ppa.person_id
AND SYSDATE BETWEEN paf.effective_start_date AND
paf.effective_end_date
AND SYSDATE BETWEEN NVL (ppa.date_from, SYSDATE) AND NVL (date_to,
SYSDATE)
AND paf.assignment_id = 867 --p_assignment_id;

p_business_group_id NUMBER,
p_assignment_id NUMBER,
p_grade_name VARCHAR2,
p_start_date DATE,
p_end_date DATE,
p_accrued_ticket_a OUT NUMBER,
p_accrued_ticket_c OUT NUMBER,
p_accrued_ticket_a_dep OUT NUMBER
)
select * from per_all_people_f
where
employee_number = 10036

select * from per_all_assignments_f


where
person_id = 73

select * from per_grades


where
grade_id = 68

select distinct papf.EMPLOYEE_NUMBER, papf.FULL_NAME,


(
SELECT purf.ROW_LOW_RANGE_OR_NAME
FROM PAY_USER_ROWS_F purf,
per_analysis_criteria pac,
fnd_id_flex_structures_vl fflex,
per_person_analyses ppa,
per_all_assignments_f paf
WHERE 1 = 1
AND UPPER (fflex.id_flex_structure_code) IN UPPER ('GWC_AIR_TICKET')
AND to_char(purf.user_row_id) = (pac.segment2)
AND fflex.id_flex_num = pac.id_flex_num
AND ppa.analysis_criteria_id = pac.analysis_criteria_id
AND paf.person_id = ppa.person_id
AND SYSDATE BETWEEN paf.effective_start_date AND
paf.effective_end_date
AND SYSDATE BETWEEN NVL (ppa.date_from, SYSDATE) AND NVL (date_to,
SYSDATE)
AND paf.assignment_id = paaf.ASSIGNMENT_ID
) AIR_TICKET,
--xxgwc_payroll_all.get_accrued_ticket ( 81 , 73 , '5.A' , '01-AUG-2012' , '31-AUG-
2012') --,0,0,0)
hruserdt.get_table_value (paaf.business_group_id,
'XXGWC_AIR_TICKET_FARE_TABLE',
'Highiest Air Fare',
(
SELECT purf.ROW_LOW_RANGE_OR_NAME
FROM PAY_USER_ROWS_F purf,
per_analysis_criteria pac,
fnd_id_flex_structures_vl fflex,
per_person_analyses ppa,
per_all_assignments_f paf
WHERE 1 = 1
AND UPPER (fflex.id_flex_structure_code) IN UPPER ('GWC_AIR_TICKET')
AND to_char(purf.user_row_id) = (pac.segment2)
AND fflex.id_flex_num = pac.id_flex_num
AND ppa.analysis_criteria_id = pac.analysis_criteria_id
AND paf.person_id = ppa.person_id
AND SYSDATE BETWEEN paf.effective_start_date AND
paf.effective_end_date
AND SYSDATE BETWEEN NVL (ppa.date_from, SYSDATE) AND NVL (date_to,
SYSDATE)
AND paf.assignment_id = paaf.ASSIGNMENT_ID
),
-- 'INDIA - MUMBAI',
:effective_date_in
) TICKET_FARE,
xxgwc_payroll_all.get_balance (PAAF.ASSIGNMENT_ID,
paaf.business_group_id,
'GWC Number of Adult Tickets',
'ITD',
:effective_date_in --SYSDATE --l_start_date
) l_ticket_a_balance,
xxgwc_payroll_all.get_balance (PAAF.ASSIGNMENT_ID,
paaf.business_group_id,
'GWC Number of Adult Dep Tickets',
'ITD',
:effective_date_in --SYSDATE - 30 --l_start_date
) l_ticket_a_dep_balance,
xxgwc_payroll_all.get_balance (PAAF.ASSIGNMENT_ID,
paaf.business_group_id,
'GWC Number of Child Tickets',
'ITD',
:effective_date_in --SYSDATE - 30 --l_start_date
) l_ticket_c_balance
--hruserdt.get_table_value (paaf.business_group_id,
-- 'XXGWC_AIR_TICKET_ELIGIBILITY',
-- '1.',
-- 'Self/Family Ticket',
-- :effective_date_in) l_ticket_elig ,
--hruserdt.get_table_value (paaf.business_group_id,
-- 'XXGWC_AIR_TICKET_ELIGIBILITY',
-- '1.',
-- 'Once in Years',
-- :effective_date_in) l_ticket_dur,
--hruserdt.get_table_value (paaf.business_group_id,
-- 'XXGWC_AIR_TICKET_ELIGIBILITY',
-- '1.',
-- 'Highest Fare/Return Ticket',
-- :effective_date_in) l_ticket_elig_perc,
--DECODE(hruserdt.get_table_value (paaf.business_group_id,
-- 'XXGWC_AIR_TICKET_ELIGIBILITY',
-- '1.',
-- 'Highest Fare/Return Ticket',
-- :effective_date_in),'Highest Fare',1,.6)
l_tick_elig_perc_amt ,
--DECODE(hruserdt.get_table_value (paaf.business_group_id,
-- 'XXGWC_AIR_TICKET_ELIGIBILITY',
-- '1.',
-- 'Self/Family Ticket',
-- :effective_date_in) , 'FAMILY' , (1/(365*1)))
l_ticket_slf
FROM
PER_ALL_PEOPLE_F PAPF,
per_all_assignments_f paaf
WHERE
paaf.PERSON_ID = papf.PERSON_ID
and papf.CURRENT_EMPLOYEE_FLAG = 'Y'
and sysdate between papf.EFFECTIVE_START_DATE and papf.EFFECTIVE_END_DATE
and sysdate between paaf.EFFECTIVE_START_DATE and paaf.EFFECTIVE_END_DATE
--and PAPF.EMPLOYEE_NUMBER in ( 10771 , 10001)
ORDER BY
PAPF.EMPLOYEE_NUMBER

/
***********************************************************************************
*Formula Name : XXGWC_AIR_TICKET_ACCRUAL *
*Description : Formula To Ait Ticket Accrual*
***********************************************************************************
*
*Change History *
*----------------------------------------------------------------------------------
*
*Author Date Version Description *
*----------------------------------------------------------------------------------
*
*Ambati Srinath 27-JUL-2011 1.0 Initial Version *
***********************************************************************************
*/

Alias Air_Ticket_Encashment_Already_Paid_ASG_YTD as Already_Paid


Alias GWC_TICKET_AMOUNT_ASG_ITD as T_ACCRUED_AMOUNT
Alias ASG_LAST_PROC_PERIOD_NUMBER as P_L_PERIOD
Alias PAY_PROC_PERIOD_START_DATE as P_S_DATE
Alias PAY_PROC_PERIOD_END_DATE as P_E_DATE
Alias EMP_TERM_DATE as T_DATE
Alias EMP_HIRE_DATE as H_DATE

Default for Already_Paid is 0


Default for P_L_PERIOD is 0
Default for PAY_PROC_PERIOD_START_DATE is '01-JAN-1951'(Date)
Default for PAY_PROC_PERIOD_END_DATE is '31-DEC-4712'(Date)
Default for EMP_HIRE_DATE is '01-JAN-1951'(Date)
Default for EMP_TERM_DATE is '31-DEC-4712'(Date)
Default for ASSIGNMENTS_TICKET_CLASS is 'None'
Default for ASSIGNMENTS_TICKET_DESTINATION is 'None'
Default for ASSIGNMENTS_NO_OF_TICKETS_ADULT is '0'
Default for ASSIGNMENTS_NO_OF_TICKETS_CHILD is '0'
Default for ASG_NO_TKTS_ADULTS is '0'
DEFAULT FOR GWC_NUMBER_OF_ADULT_DEP_TICKETS_ASG_ITD IS 0
DEFAULT FOR GWC_NUMBER_OF_ADULT_TICKETS_ASG_ITD IS 0
DEFAULT FOR GWC_NUMBER_OF_CHILD_TICKETS_ASG_ITD IS 0
Default for ASG_NO_TKTS_CHILD is '0'
Default for T_ACCRUED_AMOUNT is 0
Default for ASG_PAYROLL is ' '
Default for Msg is ' '
DEFAULT FOR ASG_GRADE IS ' '

If P_L_PERIOD was Defaulted or P_L_PERIOD = 0 Then


L_START_DATE = H_DATE
Else
L_START_DATE = GREATEST(P_S_DATE,H_DATE)

L_END_DATE = LEAST(P_E_DATE,T_DATE)

l_los = MONTHS_BETWEEN (P_E_DATE,H_DATE)


/*
Msg = 'Start'||TO_CHAR(L_START_DATE)||' End'||TO_CHAR(L_END_DATE)
*/
/*-------------------------------- Ticket Accrual Calculation
----------------------------------*/

L_T_C_ACC_TKT_A = 0
L_T_C_ACC_TKT_C = 0
L_T_ACCRUAL_DT = 0
L_T_C_ACCRUAL_AMOUNT = 0 --L_T_C_ACCRUAL_AMOUNT
L_ACCRUED_TICKET_A_DEP = 0
L_T_C_ACC_TKT_C_P = 0
L_T_C_ACC_TKT_A_P = 0
L_ACCRUED_TICKET_A_DEP_P = 0

If (L_START_DATE < L_END_DATE) Then


(
IF T_ACCRUED_AMOUNT > 0 Then
(
L_T_C_ACCRUAL_AMOUNT =
XXGWC_GET_ACCRUED_AMOUNT(ASG_GRADE,L_START_DATE,L_END_DATE,L_T_C_ACC_TKT_A,L_T_C_AC
C_TKT_C,L_ACCRUED_TICKET_A_DEP) - T_ACCRUED_AMOUNT
)
Else
(
L_T_C_ACCRUAL_AMOUNT =
XXGWC_GET_ACCRUED_AMOUNT(ASG_GRADE,L_START_DATE,L_END_DATE,L_T_C_ACC_TKT_A,L_T_C_AC
C_TKT_C,L_ACCRUED_TICKET_A_DEP) - T_ACCRUED_AMOUNT
)
)

l_highest_air_fare = GET_TABLE_VALUE
('XXGWC_AIR_TICKET_ELIGIBILITY',ASG_GRADE,'Highest Fare/Return Ticket')

mesg1 = 'l_highest_air_fare'||to_char(GWC_NUMBER_OF_ADULT_TICKETS_ASG_ITD ) ||' '


||to_char(L_T_C_ACC_TKT_A)||' ,'
|| to_char(GWC_NUMBER_OF_ADULT_TICKETS_ASG_ITD + L_T_C_ACC_TKT_A)

/***************Payment for HIghest Air Fare************/


IF l_highest_air_fare = 'Highest Fare' AND l_los >= 12 and
to_char (EMP_HIRE_DATE, 'MON') = to_char(PAY_PROC_PERIOD_END_DATE,'MON')
THEN
(
L_T_C_ACC_TKT_A_P = GWC_NUMBER_OF_ADULT_TICKETS_ASG_ITD + L_T_C_ACC_TKT_A
L_ACCRUED_TICKET_A_DEP_P = GWC_NUMBER_OF_ADULT_TICKETS_ASG_ITD +
L_ACCRUED_TICKET_A_DEP
L_T_C_ACC_TKT_C_P = GWC_NUMBER_OF_CHILD_TICKETS_ASG_ITD + L_T_C_ACC_TKT_C
L_payment = Round(T_ACCRUED_AMOUNT + L_T_C_ACCRUAL_AMOUNT,0)

If Already_Paid > 0
Then
L_payment = 0
Else
L_payment = Round(T_ACCRUED_AMOUNT + L_T_C_ACCRUAL_AMOUNT,0)

)
IF L_T_C_ACC_TKT_C_P > 0 OR L_T_C_ACC_TKT_A_P > 0 OR L_ACCRUED_TICKET_A_DEP_P > 0
THEN
(
RETURN
L_T_C_ACCRUAL_AMOUNT,
L_T_C_ACC_TKT_C_P,
L_T_C_ACC_TKT_A_P,
L_ACCRUED_TICKET_A_DEP_P,
L_payment,
L_T_C_ACC_TKT_A,
L_T_C_ACC_TKT_C,
L_ACCRUED_TICKET_A_DEP,
Msg,
mesg1)
ELSE
(
RETURN
L_T_C_ACCRUAL_AMOUNT,
L_payment,
L_T_C_ACC_TKT_A,
L_T_C_ACC_TKT_C,
L_ACCRUED_TICKET_A_DEP,
Msg,
mesg1)

Potrebbero piacerti anche