Important Note
Important Note
XXX_CALC_GENERAL_ALW>>>> in DB
XXX_CALC_GENERAL_ALW>>>>> in write formula
-----------------------------------------------------------------------------------
-
-----------------------------------------------------------------------------------
-
-----------------------------------------------------------------------------------
-
xxx_hr_package1.XXX_gregorian_to_hijrah_2(date)
-----------------------------------------------------------------------------------
--------------------------
xx_errors:= apps.xx_debug('L_EIT_NAME'||L_EIT_NAME);
xx_errors:= apps.xx_debug('L_ELEMENT_LINK_ID_ADDITIONAL2:'||
L_ELEMENT_LINK_ID_ADDITIONAL2);
-----------------------------------------------------------------------------------
-------------------------
XXCUSTOM.XXX_HR_All_DECREES_DETAILS
-----------------------------------------------------------------------------------
---------------------------
������ ������� ��� ����
������� FUNCTION
-----------------------------------------------------------------------------------
--------------------------
�����
-----------------------------------------------------------------------------------
--------------------------
DDL+DML COMMANDS
DELETE XXX_HR_PROMOTION_DETAILS_TEMP
....................................
INSERT INTO XXX_HR_PROMOTION_DETAILS_TEMP(SELECT *
FROM XXX_HR_PROMOTION_DETAILS)
....................................
<<<Feild Leave Element>>>
T_GRADE_ID VARCHAR2(100);
--This Validation made by Yazeed Awwad in 22/02/2016
-- This Validation to prevent pay a transportation allowance from a type : CASH
for the rank which grade id is :1156
T_GRADE_ID:=XXX_HR_PACKAGE4.XXX_PERSON_INFO ( P_PERSON_ID ,
l_assignment_id , SYSDATE , 'GRD_ID' , 'US' );
-----------------------------------------------------------------------------------
----------------------------
begin
dbms_refresh.refresh('"XXCUSTOM"."XXX_HR_ASSIGNMENT_REFERENCE"');
end;
-----------------------------------------------------------------------------------
-----------------------------
<<FOR EXCELL CONCATENATION FUNCTION>>>
EX:
=CONCATENATE("'";A1;"'";",")
OUTPUT IS :
'4134',
��� A1��� �� ������
-----------------------------------------------------------------------------------
-------------------------------
Function to Get informations about the person>>>>>
--
L_PERSON_TYPE :=
XXX_HR_PACKAGE4.XXX_PERSON_INFO (L_PERSON_ID,
0,
P_START_DATE,
'PT_NAME',
'US');
L_ASSIGNMENT_ID :=
XXX_HR_PACKAGE4.XXX_PERSON_INFO (L_PERSON_ID,
0,
P_START_DATE,
'ASS_ID',
'US');
-----------------------------------------------------------------------------------
-----------------------------------
FUNCTION TO GET PRIMARY ASSIGNMENT>>>
EX:
WHERE pspp.assignment_id = XXX_HR_PACKAGE1.XXX_get_primary_asg
(p_person_id,
TRUNC (SYSDATE)
)
-----------------------------------------------------------------------------------
------------------------------------
<<<<<<Important information about the name of the field in ENTER & MAINTAIN
screen>>>>
��� �� :
���� �� ������ ��� ��:
EFFECTIVE_START_DATE
��� ����� ������� ���� �� ������ ��� ��:
START_DATE
..............................
GREATEST IN DATE
������ :
��� ���� �����
LEAST:
��� ���� �����
EX)
SELECT
GREATEST(PPEI.PEI_INFORMATION9,TO_CHAR(GREATEST(PAPF.EFFECTIVE_START_DATE,PAPF.STAR
T_DATE),'YYYY/MM/DD'))PPPPP
FROM ...
WHERE ...
-----------------------------------------------------------------------------------
-----------------------------------------
*������ ��� ������*
select employee_number
from per_all_people_f
where person_id=61354
and trunc(sysdate)between effective_start_date and effective_end_date
-----------------------------------------------------------------------------------
----------
������ ������ ������� ���� ����
DBA_JOBS
.......................................
BEGIN
dbms_refresh.refresh('"XXCUSTOM"."XXX_HR_ASSIGNMENT_REFERENCE"');
END ;
.......................................
-----------------------------------------------------------------------------------
-----------
<<< Table ERROR >>>>
DROP TABLE APPS.XX_ERROR CASCADE CONSTRAINTS;
-----------------------------------------------------------------------------------
----------------------------
<<<Employee Hire Date>>>
V_EMP_HIRE_DATE :=
FND_DATE.CANONICAL_TO_DATE (XXX_HR_PACKAGE4.XXX_PERSON_INFO (
P_PERSON_ID,
0,
TRUNC (SYSDATE) - 1,
'CURR_HIR',
'US'));
-----------------------------------------------------------------------------------
-----------------------------
XXX_HR_ALW_DETAILS ... view �������� ������� �� XXX_EIT_ELEMENT_MAPPING.. UDT �����
������ ��
(
SELECT BASE_ROW_LOW_RANGE_OR_NAME
FROM PAY_USER_COLUMN_INSTANCES_FV
WHERE (BUSINESS_GROUP_ID IS NULL OR BUSINESS_GROUP_ID = 0)
AND (LEGISLATION_CODE IS NULL OR LEGISLATION_CODE = 'SA')
AND (USER_COLUMN_ID = 52836)
)
-----------------------------------------------------------------------------------
------------------------------
TO LIST ALL HOLD BULK DECREES <<<<���� �������� ��������>>>
L_END_SCH := 0;
SELECT 1
INTO L_END_SCH
FROM PER_PEOPLE_EXTRA_INFO
WHERE INFORMATION_TYPE = 'XXX_SCH_DELETE_DECREE'
AND PERSON_ID = P_PERSON_ID
AND PEI_INFORMATION25 = P_PEI_INFORMATION25
AND PEI_INFORMATION4 = 'END'
AND FND_DATE.CANONICAL_TO_DATE(PEI_INFORMATION5) <=
FND_DATE.CANONICAL_TO_DATE (P_PEI_INFORMATION3)--rejoin date
AND PEI_INFORMATION15 IS NOT NULL
AND PEI_INFORMATION16 IS NOT NULL;
IF L_END_SCH = 0 THEN
-----------------------------------------------------------------------------------
------------------------------
<<<TO SHOW MESSAGES FOR TRACKING>>>
XX_ERRORS VARCHAR2(1000);
XX_ERRORS:=APPS.XX_DEBUG('FFFF1');
-----------------------------------------------------------------------------------
------------------------------
-----------------------------------------------------------------------------------
---------------------------------
���� ����� :
���� ���� ����� ������� �������� ����� ������ ���� ��� ���� ������� ���� �� ����
��� ������� �� �� �������� ���� ����� �������� �������� ���� ���� ��� ������� :
SELECT *
FROM PER_PEOPLE_EXTRA_INFO PPEI
WHERE PPEI.INFORMATION_TYPE LIKE'XXX_ASSIGNMENT_CANCEL'
--AND PPEI.PERSON_ID=1835
AND PPEI.PEI_INFORMATION1=(SELECT PERSON_EXTRA_INFO_ID
FROM PER_PEOPLE_EXTRA_INFO PPEI2
WHERE
PPEI.PEI_INFORMATION1=PPEI2.PERSON_EXTRA_INFO_ID
AND
PPEI2.INFORMATION_TYPE='XXX_TRANSFER_DECREE')
--AND PPEI2.PERSON_ID=1835)
-----------------------------------------------------------------------------------
---------------------------------------------
<<System Login>>>
user name: 440007655
Pass. :y123456*
-----------------------------------------------------------------------------------
---------------------------------------------
������ ������ ������� ������� �� ����� ������,,
������ �� ���Payroll
-----------------------------------------------------------------------------------
---------------------------------------------------------
SELECT ppx.EMPLOYEE_NUMBER,
ppx.FULL_NAME,
-- pet.CLASSIFICATION_ID,
'������' CLASSIFICATION,
'������' element_name,
pay.payroll_name payroll,
sum(DECODE (pet.CLASSIFICATION_ID,
105, TO_NUMBER (prv1.result_value),
101, TO_NUMBER (prv1.result_value) * -1,
0))
result_value--, XXX_HR_PACKAGE4.XXX_PERSON_INFO
( ppx.PERSON_ID, 0, to_date('20-MAR-2015','dd-MON-yyyy') , 'GRADE_STEP', 'US' )
STEP_NO
pax.EMPLOYMENT_CATEGORY,
lk.meaning lk_emp_class,
DECODE (pax.EMPLOYMENT_CATEGORY,
'01', '������',
'02', '������',
'10', '�������',
'11', '�������',
'20', '�������',
'30', '�������',
'31', '�������',
'51', '����������',
'52', '����������',
lk.meaning)
emp_class
--,XXX_HR_PACKAGE1.GET_GRADE_INFO( Pax.GRADE_ID , 'RANK' )
RANK_CODE
FROM pay_element_types_f pet,
pay_input_values_f piv1 /* Pay Value */
,
pay_assignment_actions rpaa /* run assignment action */
,
pay_payroll_actions rppa /* run payroll action */
,
pay_run_result_values prv1 /* Pay Value */
,
pay_run_results prr,
per_all_assignments_f pax,
per_people_x ppx,
pay_payrolls_f pay,
pay_payrolls_f pay1,
fnd_common_lookups lk
WHERE rppa.action_type IN ('R', 'Q')
-- and rppa.action_status = 'C'
-- and ppx.employee_number='200022786'
AND rppa.payroll_action_id = rpaa.payroll_action_id
AND rpaa.assignment_action_id = prr.assignment_action_id
AND rpaa.assignment_id = pax.assignment_id
AND SYSDATE BETWEEN pay.effective_start_date
AND pay.effective_end_date
AND SYSDATE BETWEEN pet.effective_start_date
AND pet.effective_end_date
AND rppa.EFFECTIVE_DATE BETWEEN pax.effective_start_date
AND pax.effective_end_date
-- and grstep.assignment_id(+) = pax.assignment_id
AND RPPA.CONSOLIDATION_SET_ID = 1
--AND pet.CLASSIFICATION_ID IN (105,101,109,104,100)
group by ppx.EMPLOYEE_NUMBER,
ppx.FULL_NAME,
-- pet.CLASSIFICATION_ID,
--CLASSIFICATION,
--element_name,
pay.payroll_name,
pax.EMPLOYMENT_CATEGORY,
lk.meaning,
DECODE (pax.EMPLOYMENT_CATEGORY,
'01', '������',
'02', '������',
'10', '�������',
'11', '�������',
'20', '�������',
'30', '�������',
'31', '�������',
'51', '����������',
'52', '����������',
lk.meaning)
SELECT ppx.EMPLOYEE_NUMBER,
ppx.FULL_NAME,
-- pet.CLASSIFICATION_ID,
'������' CLASSIFICATION,
'������' element_name,
pay.payroll_name payroll,
DECODE (pet.CLASSIFICATION_ID,
105, TO_NUMBER (prv1.result_value),
101, TO_NUMBER (prv1.result_value) * -1,
0)
result_value--, XXX_HR_PACKAGE4.XXX_PERSON_INFO
( ppx.PERSON_ID, 0, to_date('20-MAR-2015','dd-MON-yyyy') , 'GRADE_STEP', 'US' )
STEP_NO
pax.EMPLOYMENT_CATEGORY,
lk.meaning lk_emp_class,
DECODE (pax.EMPLOYMENT_CATEGORY,
'01', '������',
'02', '������',
'10', '�������',
'11', '�������',
'20', '�������',
'30', '�������',
'31', '�������',
'51', '����������',
'52', '����������',
lk.meaning)
emp_class
--,XXX_HR_PACKAGE1.GET_GRADE_INFO( Pax.GRADE_ID , 'RANK' )
RANK_CODE
AND RPPA.CONSOLIDATION_SET_ID = 1
--AND pet.CLASSIFICATION_ID IN (105,101,109,104,100)
...................................................................................
...........................OR
SELECT ppx.EMPLOYEE_NUMBER , ppx.FULL_NAME,pet.ELEMENT_NAME--,pet.CLASSIFICATION_ID
, element_name ,prr.RUN_RESULT_ID,prr.ASSIGNMENT_ACTION_ID
-- , payroll_name payroll,to_number(prv1.result_value) , rppa.EFFECTIVE_DATE ,
hr_sa_hijrah_functions.gregorian_to_hijrah( rppa.EFFECTIVE_DATE )
--, DECODE(pax.EMPLOYMENT_CATEGORY,'01','??????'
-- ,'02','??????'
-- ,'10','???????'
-- ,'11','???????'
-- ,'20','???????'
-- ,'30','???????'
-- ,'31','???????'
-- ,'51','??????????'
-- ,'52','??????????'
-- ,lk.meaning
-- ) emp_class
,sum(prv1.result_value)
FROM pay_element_types_f pet
,pay_input_values_f piv1 /* Pay Value */
,pay_assignment_actions rpaa /* run assignment action */
,pay_payroll_actions rppa /* run payroll action */
,pay_run_result_values prv1 /* Pay Value */
,pay_run_results prr
,per_all_assignments_f pax
, per_people_x ppx
,pay_payrolls_f pay
,fnd_common_lookups lk
WHERE
rppa.action_type in ('R')
and rppa.action_status = 'C'
and rppa.payroll_action_id=rpaa.payroll_action_id
and rpaa.assignment_action_id=prr.assignment_action_id
and rpaa.assignment_id = pax.assignment_id
and sysdate between pay.effective_start_date and pay.effective_end_date
and sysdate between pet.effective_start_date and pet.effective_end_date
and rppa.EFFECTIVE_DATE between pax.effective_start_date and
pax.effective_end_date
-- and grstep.assignment_id(+) = pax.assignment_id
and pet.element_type_id=piv1.element_type_id
and piv1.name='Pay Value'
and piv1.input_value_id=prv1.input_value_id
and prv1.run_result_id=prr.run_result_id
and prv1.result_value is not null
and ppx.person_id = pax.person_id
and pay.payroll_id = pax.payroll_id
and lk.lookup_type = 'EMP_CAT'
and lookup_code = pax.EMPLOYMENT_CATEGORY
and ppx.person_id= (select person_id from per_people_x where EMPLOYEE_NUMBER =
'300325857')
-- and rppa.ELEMENT_SET_ID = 2078
-- AND pet.CLASSIFICATION_ID IN (105,101,109,104,100)
-- and rppa.CONSOLIDATION_SET_ID = 26078
-- and :p_date between TO_DATE('12-05-2016','DD-MM-YYYY') and to_date('12-05-
2016','dd-MM-yyyy')
and rppa.EFFECTIVE_DATE between TO_DATE('01-01-2016','DD-MM-YYYY') and
to_date('01-02-2016','dd-MM-yyyy')
-- and pet.element_name like 'Qualifying Award'
and rownum <=10
group by ppx.EMPLOYEE_NUMBER , ppx.FULL_NAME,pet.ELEMENT_NAME
-----------------------------------------------------------------------------------
--------------------------------
<< last query: to list all employees and using case statement>>
select salgroup,count(salgroup)
from
(SELECT employee_number,
full_name,
payroll,
cnt,
(CASE
WHEN (result_value BETWEEN 5000 AND 10000) THEN 1
WHEN (result_value BETWEEN 10001 AND 15000) THEN 2
WHEN (result_value > 15000) THEN 3 ELSE 0
END)salgroup
FROM (
SELECT ppx.EMPLOYEE_NUMBER,
ppx.FULL_NAME,
pay.payroll_name payroll,
COUNT (*) cnt,
SUM (
DECODE (pet.CLASSIFICATION_ID,
105, TO_NUMBER (prv1.result_value),
101, TO_NUMBER (prv1.result_value) * -1,
0))
result_value,
pax.EMPLOYMENT_CATEGORY,
lk.meaning lk_emp_class,
DECODE (pax.EMPLOYMENT_CATEGORY,
'01', '������',
'02', '������',
'10', '�������',
'11', '�������',
'20', '�������',
'30', '�������',
'31', '�������',
'51', '����������',
'52', '����������',
lk.meaning)
emp_class
FROM pay_element_types_f pet,
pay_input_values_f piv1 /* Pay Value */
,
pay_assignment_actions rpaa /* run assignment action */
,
pay_payroll_actions rppa /* run payroll action */
,
pay_run_result_values prv1 /* Pay Value */
,
pay_run_results prr,
per_all_assignments_f pax,
per_people_x ppx,
pay_payrolls_f pay,
pay_payrolls_f pay1,
fnd_common_lookups lk
WHERE rppa.action_type IN ('R', 'Q')
AND rppa.payroll_action_id = rpaa.payroll_action_id
AND rpaa.assignment_action_id = prr.assignment_action_id
AND rpaa.assignment_id = pax.assignment_id
AND SYSDATE BETWEEN pay.effective_start_date
AND pay.effective_end_date
AND SYSDATE BETWEEN pet.effective_start_date
AND pet.effective_end_date
AND rppa.EFFECTIVE_DATE BETWEEN pax.effective_start_date
AND pax.effective_end_date
AND pet.element_type_id = piv1.element_type_id
AND piv1.name = 'Pay Value'
AND piv1.input_value_id = prv1.input_value_id
AND prv1.run_result_id = prr.run_result_id
AND prv1.result_value IS NOT NULL
AND ppx.person_id = pax.person_id
AND pay.payroll_id = pax.payroll_id
AND pay1.payroll_id = pax.payroll_id
AND lk.lookup_type = 'EMP_CAT'
AND lookup_code = pax.EMPLOYMENT_CATEGORY
AND RPPA.CONSOLIDATION_SET_ID = 1
AND rppa.EFFECTIVE_DATE BETWEEN TO_DATE ('05-09-2016',
'dd-mm-yyyy')
AND TO_DATE ('05-09-2016',
'dd-mm-yyyy')
-- AND
ppx.employee_number in ('200030134','200030135','200030136','200030137')
AND pay.payroll_id = 81
GROUP BY ppx.EMPLOYEE_NUMBER,
ppx.FULL_NAME,
pay.payroll_name,
pax.EMPLOYMENT_CATEGORY,
lk.meaning,
DECODE (pax.EMPLOYMENT_CATEGORY,
'01', '������',
'02', '������',
'10', '�������',
'11', '�������',
'20', '�������',
'30', '�������',
'31', '�������',
'51', '����������',
'52', '����������',
lk.meaning)
))
group by salgroup;
...................................................TO LIST ALL PEOPLE HAVE A
CERTAIN ELEMENT IN A CERTAIN DATE................
%%%%%���� ���� ��� ��� ������� �� ���� ��� ����� ��� ���� ����� ��� ���� ���� ���
������%%%%%%%
1-���� ���� �� ��� ��� ����� ���� ��� �� ���� ������� ��� �� ���
2-���� ������� ����� �� ���� ������ ������:
System Administrator>> Define profile option
----------
SQL="SELECT PUC_TL.USER_COLUMN_NAME \"XXX_HR_BUSINESS_MISSION_TYPES\",
PUC.USER_COLUMN_NAME
into :visible_option_value, :profile_option_value
FROM PAY_USER_TABLES PUT
,PAY_USER_COLUMNS PUC
,PAY_USER_COLUMNS_TL PUC_TL
WHERE PUT.USER_TABLE_NAME = 'XXX_BUSINESS_MISSION_RESTRICT'
AND PUT.USER_TABLE_ID = PUC.USER_TABLE_ID
AND PUC.USER_COLUMN_ID = PUC_TL.USER_COLUMN_ID
AND PUC_TL.LANGUAGE = USERENV('LANG')"
COLUMN="\"XXX_HR_BUSINESS_MISSION_TYPES\"(*)"'
����� ��� ������ ���� �� ��� ���� �� ��
�3- ���� ����� ��� ������� �� ���� ��� ���� ���� ������ ��� ������� ��������
�������� ������::
AND ( 'Y' = XXX_HR_PACKAGE2.XXX_GET_TABLE_VALUE (0
,'XXX_EMP_CERTIFICATE_LIST
'
,FND_PROFILE.VALUE('XXX_EM
P_CERTIFICATE_LIST')
,DFVV.FLEX_VALUE
,TRUNC(sysdate)
)
)
-----------------------------------------------------------------------------------
----------------------------
<<XXX_SCH_DELETE_DECREE>>
��� ��� ����� ������ ������ ����� ��� ���� ��� ��� �� ��� ������� ��������� ���
����� ����� ������ ������� ������ �������
���� ���� �������:
���� ����� ������� ���� ����� ����� ������� ������ �������
Enrollment End Date
������ ���� ���� ������ �� ����� �������� ���� ������
-----------------------------------------------------------------------------------
-----------------------------
important packages>>
L_EMP_CATEGORY :=
XXX_HR_PACKAGE1.GET_GRADE_INFO(MY_ASSIGNMENT_INFO_DETAILS.GRADE_ID,'CLASS');
-----------------------------------------------------------------------------------
-----------------------------
-----------------------------------------------------------------------------------
--------------------
to get the rank of the grade
-----------------------------------------------------------------------------------
--------------------
########################################
update FND_PROFILE_OPTION_VALUES
and LEVEL_VALUE in
select LEVEL_VALUE
-----------------------------------------------------------
<<< Request Name>>>>
Regenerate Position Names>>> request name from saudi HRMS Res. To regenerate
position names.
----------------------------------------------------------------
������� ���� ���� ����� ����� ���� ��� �����,,
and pp.person_id=paaf.person_id
and paaf.primary_flag='Y'
per_people_extra_info ppei2
FROM
PER_PERIODS_OF_SERVICE PPOS
where
ppos.ACTUAL_TERMINATION_DATE=FND_DATE.CANONICAL_TO_DATE(PPEI1.PEI_INFORMATION3)-1
and PPOS.person_id
=paaf.person_id )
-----------------------------------------------------------------------------------
-------------------------------------------------------------------
DECLARE
V_ERROR VARCHAR2 (2000);
V_DUMMY VARCHAR2 (100);
LV_USER_ID NUMBER;
LV_RESP_ID NUMBER;
LV_RESP_APPL_ID NUMBER;
-- l_count number;
CURSOR C1 IS
SELECT PAPF.FULL_NAME,
PAPF.EMPLOYEE_NUMBER,PA.POSITION_ID,HR_GENERAL.DECODE_POSITION_LATEST_NAME
(PA.POSITION_ID) POSITION_NAME
FROM PER_ALL_ASSIGNMENTS_F PA , PER_ALL_PEOPLE_F
PAPF,PER_PEOPLE_EXTRA_INFO PPEI
WHERE PAPF.PERSON_ID = PA.PERSON_ID
AND PPEI.PERSON_ID=PAPF.PERSON_ID
AND PPEI.INFORMATION_TYPE='XXX_SPECIALTY'
AND PPEI.PEI_INFORMATION3=678
AND PA.PRIMARY_FLAG = 'Y'
--AND PAPF.EMPLOYEE_NUMBER in('200030702','200029924','200029972')
AND PAPF.CURRENT_EMPLOYEE_FLAG = 'Y'
AND HR_GENERAL.DECODE_POSITION_LATEST_NAME (PA.POSITION_ID) LIKE
'%���� ��� �����%'
AND SYSDATE BETWEEN PAPF.EFFECTIVE_START_DATE
AND PAPF.EFFECTIVE_END_DATE
AND SYSDATE BETWEEN PA.EFFECTIVE_START_DATE
AND PA.EFFECTIVE_END_DATE;
BEGIN
FOR I IN C1 LOOP
BEGIN
HR_POSITION_API.REGENERATE_POSITION_NAME(I.POSITION_ID);
DBMS_OUTPUT.PUT_LINE('The Position : '||I.POSITION_ID||' ' ||'Updated
PASS');
--DBMS_OUTPUT.PUT_LINE('l_count : '||l_count);
EXCEPTION
END;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
V_ERROR := SUBSTR (SQLERRM, 1, 2000);
DBMS_OUTPUT.PUT_LINE(V_ERROR);
END ;
-----------------------------------------------------------------------------------
------------------------------
-----------------------------------------------------------------------------------
-------------------------------
-----------------------------------------------------------------------------------
------------------------------
<< error in arabic session and not appera in english session>>>
����� ���� ��� :
�� ��� ���� ������ ������� ��� ������ ������� ������
��� ���� ��� ����� ������� ��������� ���� ���� �� :
���� ����� �� ��� �� ���� ��� ����� �� ����� ��� ��� 100 ���� 150 �� 200 �����
�������
-----------------------------------------------------------------------------------
-------------------------------
<<���� ����� >>
select * from all_source where text like'%XXX_DELEGATION_DECREE%'
-----------------------------------------------------------------------------------
-------------------------------
<<������ ������� ��������>>
CREATE OR REPLACE FUNCTION XXX_HR_SCH_PRA_CER(P_PERSON_EXTRA_INFO_ID IN
NUMBER)RETURN VARCHAR2 AS
BEGIN
IF V_FLAG='Y' THEN
RETURN 'WITH_PRACTICE_CERTIFICATE';
ELSE
RETURN 'WITHOUT_PRACTICE_CERTIFICATE';
END IF;
END;
-----------------------------------------------------------------------------------
--------------------
-----------------------------------------------------------------------------------
----------------------
A)HR_API_MODULES
B)HR_API_HOOKS
C)HR_API_HOOK_CALLS
declare
l_api_hook_call_id number;
l_object_version_number number;
l_sequence number;
begin
select HR_API_HOOKS_S.NEXTVAL
into l_sequence
from dual;
hr_api_hook_call_api.create_api_hook_call
(p_validate => false,
p_effective_date => to_date('01-01-2014','dd-mm-yyyy'),
p_api_hook_id => 3876, ------------------------------------
p_api_hook_call_type => 'PP',
p_sequence => l_sequence,
p_enabled_flag => 'Y',
p_call_package => 'XXX_HR_USER_HOOKS', --------------
p_call_procedure => 'AFTER_INSERT',
-----------------
p_api_hook_call_id => l_api_hook_call_id,
p_object_version_number => l_object_version_number);
dbms_output.put_line('l_api_hook_call_id:'||l_api_hook_call_id);
dbms_output.put_line('l_object_version_number:'||l_object_version_number);
end;
/
TABLE(A)ABOVE.
___________________________________________________________________________________
_____________________________
HR_API_MODULES
HR_API_HOOKS
HR_API_HOOK_CALLS
--------------------------------------------------------------
select * from hr_api_modules where module_name = 'CREATE_PERSON_EXTRA_INFO'
-----------------
select ahk.api_hook_id,ahk.api_hook_type,
ahk.hook_package,
api_module_id = 1226
---------------------------------
select * from hr_api_hook_calls where api_hook_id = 2758 -- After Proccess
------------------------------
select ahk.api_hook_id,ahk.api_hook_type,
ahk.hook_package,
ahk.hook_procedure
hr_api_modules ahm
where ahm.module_name='CREATE_PERSON_EXTRA_INFO'
and ahk.api_module_id=ahm.api_module_id
-------------------------------------------
declare
l_api_hook_call_id number;
l_object_version_number number;
begin
hr_api_hook_call_api.create_api_hook_call
BEGIN
hr_api_user_hooks_utility.create_hooks_one_module(1226); -- Module ID
exception
dbms_output.put_line(sqlerrm);
END;
-----------------------------------------------------------------------------------
------------------------
PER_PEOPLE_EXTRA_INFO PPEI2
UNION
SELECT PP.EMPLOYEE_NUMBER , FULL_NAME,
PP.PERSON_ID,PAAF.PERIOD_OF_SERVICE_ID,PPEI1.PEI_INFORMATION3 END_EMPLOYMENT ,
PPEI1.INFORMATION_TYPE,PAAF.ASSIGNMENT_NUMBER
FROM per_people_extra_info ppei1 , per_all_people_f
pp,per_all_assignments_f paaf
WHERE ppei1.information_type = 'XXX_EARLY_RETIREMENT'
AND ppei1.person_id = pp.person_id
and pp.person_id=paaf.person_id
AND pp.CURRENT_EMPLOYEE_FLAG = 'Y'
and paaf.primary_flag='Y'
-- and employee_number = '4131979' -- '4131979'
AND sysdate between pp.EFFECTIVE_START_DATE and pp.EFFECTIVE_END_DATE
AND sysdate between paaf.EFFECTIVE_START_DATE and
paaf.EFFECTIVE_END_DATE
AND PPEI1.PEI_INFORMATION15 is not null
AND PPEI1.PEI_INFORMATION16 is not null
-- and not exists ( SELECT 1 FROM
--
per_people_extra_info ppei2
--
where ppei2.information_type = 'XXX_CANCEL_TERMINATION'
--
and ppei2.PEI_INFORMATION25 = ppei1.PERSON_EXTRA_INFO_ID
--
and ppei2.person_id = ppei1.person_id )
and not exists ( SELECT PPOS.PERIOD_OF_SERVICE_ID
FROM
PER_PERIODS_OF_SERVICE PPOS
where
ppos.ACTUAL_TERMINATION_DATE=FND_DATE.CANONICAL_TO_DATE(PPEI1.PEI_INFORMATION3)-1
and PPOS.person_id
=paaf.person_id )
UNION
SELECT PP.EMPLOYEE_NUMBER , FULL_NAME,
PP.PERSON_ID,PAAF.PERIOD_OF_SERVICE_ID,PPEI1.PEI_INFORMATION3 END_EMPLOYMENT ,
PPEI1.INFORMATION_TYPE,PAAF.ASSIGNMENT_NUMBER
FROM per_people_extra_info ppei1 , per_all_people_f
pp,per_all_assignments_f paaf
WHERE ppei1.information_type = 'XXX_RESIGNATION'
AND ppei1.person_id = pp.person_id
and pp.person_id=paaf.person_id
AND pp.CURRENT_EMPLOYEE_FLAG = 'Y'
and paaf.primary_flag='Y'
-- and employee_number = '4131979' -- '4131979'
AND sysdate between pp.EFFECTIVE_START_DATE and pp.EFFECTIVE_END_DATE
AND sysdate between paaf.EFFECTIVE_START_DATE and
paaf.EFFECTIVE_END_DATE
AND PPEI1.PEI_INFORMATION15 is not null
AND PPEI1.PEI_INFORMATION16 is not null
-- and not exists ( SELECT 1 FROM
--
per_people_extra_info ppei2
--
where ppei2.information_type = 'XXX_CANCEL_TERMINATION'
--
and ppei2.PEI_INFORMATION25 = ppei1.PERSON_EXTRA_INFO_ID
--
and ppei2.person_id = ppei1.person_id )
and not exists ( SELECT PPOS.PERIOD_OF_SERVICE_ID
FROM
PER_PERIODS_OF_SERVICE PPOS
where
ppos.ACTUAL_TERMINATION_DATE=FND_DATE.CANONICAL_TO_DATE(PPEI1.PEI_INFORMATION3)-1
and PPOS.person_id
=paaf.person_id )
-----------------------------------------------------------------------------------
-------------------------------
,EVT.EFFECTIVE_DATE
,EVT.DESCRIPTION
,EVT.CREATION_DATE
,EVT.CREATED_BY
,EVT.STATUS
,EVT.SURROGATE_KEY
,EVU.TABLE_NAME
,EVU.CHANGE_TYPE
,EVU.COLUMN_NAME
,EVU.EVENT_TYPE
from
per_ALL_people_F ppx
,per_all_assignments_f pax
,PAY_PROCESS_EVENTS evt
,PAY_EVENT_UPDATES evu
������� ����� ����� ����� ��� ����� ��� ���� ��� ��� ��� �������� ��������
SELECT PPEI.INFORMATION_TYPE,PPEI.PERSON_ID
FROM PER_PEOPLE_EXTRA_INFO PPEI
WHERE PPEI.INFORMATION_TYPE ='XXX_TRANSFER_DECREE'
AND EXISTS(SELECT 1
FROM PER_PEOPLE_EXTRA_INFO PPEI2
WHERE PPEI2.PERSON_ID=PPEI.PERSON_ID
AND PPEI2.INFORMATION_TYPE='XXX_TRANSFER_RESUME'
AND PPEI2.PEI_INFORMATION25=PPEI.PERSON_EXTRA_INFO_ID)
AND FND_DATE.CANONICAL_TO_DATE (PPEI.PEI_INFORMATION6)!=(SELECT
EFFECTIVE_START_DATE
FROM
PER_ALL_ASSIGNMENTS_F PAAF1
WHERE
PAAF1.PERSON_ID=PPEI.PERSON_ID
AND
PAAF1.PRIMARY_FLAG='Y'
AND
EFFECTIVE_START_DATE =FND_DATE.CANONICAL_TO_DATE (PPEI.PEI_INFORMATION6))
-----------------------------------------------------------------------------------
--------------------------------------------------
<<Example of the condition to build a value set in D.F.F Segments>>
WHERE PERSON_ID IN ( 0 , FND_PROFILE.VALUE ('PER_PERSON_ID') )
AND TRANS_TYPE LIKE '%' || :$FLEX$.XXX_HR_TICKETING_REASONS || '%'
AND ( NOT EXISTS ( SELECT 'X'
FROM PER_PEOPLE_EXTRA_INFO PPEI_IN
WHERE PPEI_IN.INFORMATION_TYPE =
'XXX_TICKETING_ORDERS'
AND TO_NUMBER (PPEI_IN.PEI_INFORMATION6) = DECODE
(TRANS_ID,0, NULL,TRANS_ID)
AND NOT EXISTS ( SELECT 'X'
FROM PER_PEOPLE_EXTRA_INFO PPEI
WHERE PPEI.INFORMATION_TYPE =
'XXX_TICKETING_CANCEL'
AND PPEI.PEI_INFORMATION25 =
PPEI_IN.PERSON_EXTRA_INFO_ID
)
)
OR
EXISTS ( SELECT 'X'
FROM PER_PEOPLE_EXTRA_INFO
WHERE INFORMATION_TYPE = 'XXX_TICKETING_ORDERS'
AND PEI_INFORMATION28 = :$FLEX$.XXX_HR_DUMMY
)
)
-----------------------------------------------------------------------------------
--------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------
-----------------------------------------------------------------------------------
-------------------------------------------------
<<<To list all employees that have more than one record in national
identification>>>
select count(*),PPEI.person_id,PAPF.EMPLOYEE_NUMBER,PAPF.FULL_NAME
from per_people_extra_info PPEI,PER_ALL_PEOPLE_F PAPF
where information_type='XXX_NATIONAL_ID'
AND PPEI.PERSON_ID=PAPF.PERSON_ID
AND SYSDATE BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE
having count(*)>1
GROUP BY PPEI.person_id,PAPF.EMPLOYEE_NUMBER,PAPF.FULL_NAME
-----------------------------------------------------------------------------------
---------------------------
>>Teaching Allowance For ���� ����� ����<<
��� ��� ������� ����� �������� �� ���� ����� ���� ��� ������� ������ 07
���� ���� ��� ����� ����� ������ ���� ����� ����� ��� ������� �� ��� ����� �������
������ ���� �� ��� �����:11/07/1437
����� �� �����
"��� ����� ��� ���� ������� ����� ����ӡ ��� ��� �� ���� ����� ����"�
���� ��������� ����� :
������ ���
�������� ������� �� �������������� �������� �� ������� ������
�� ��� ����� �� ������� ������ ��� ���� �� ������� �������
�� �� ��� ����� ����� �� ��� �������
-----------------------------------------------------------------------------------
-------------------------
SELECT NAME,1,2
FROM HR_ORGANIZATION_UNITS_V ORG,HR_ORGANIZATION_INFORMATION_V OI
WHERE ORG.ORGANIZATION_ID=OI.ORGANIZATION_ID
--AND TYPE='FACULTY'
AND INTERNAL_EXTERNAL_FLAG='INT'
AND LENGTH(SUBSTR(NAME,1,INSTR(NAME,';')-1))=2
AND ORG_INFORMATION1='HR_ORG'
-----------------------------------------------------------------------------------
-------------------------
<<APIs Collections>>
-----------------------------------------------------------------------------------
-------------------------
1) To update Start_date In People Enter And Maintain And Assignment:
--
END IF;
--
END LOOP;
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
And this is the cursor that get the feneral hiring information about the person:
CURSOR APPLICANT_HIRE_DATE (P_EFFECTIVE_DATE DATE) IS
SELECT PAAF.PERSON_ID, PPOS.DATE_START ORGINAL_HIRE_DATE
,FND_DATE.CANONICAL_TO_DATE(PPEI.PEI_INFORMATION16) DECISION_DATE
,PAAF.ASSIGNMENT_ID
,PAAF.OBJECT_VERSION_NUMBER
,PAAF.SPECIAL_CEILING_STEP_ID
,PAAF.PEOPLE_GROUP_ID
,PAAF.GRADE_ID
,PAAF.ORGANIZATION_ID
FROM PER_ALL_ASSIGNMENTS_F PAAF
,PER_PERIODS_OF_SERVICE PPOS
,PER_PEOPLE_EXTRA_INFO PPEI
WHERE PAAF.PERSON_ID = P_PERSON_ID
AND PAAF.PERIOD_OF_SERVICE_ID = PPOS.PERIOD_OF_SERVICE_ID
AND P_EFFECTIVE_DATE BETWEEN PAAF.EFFECTIVE_START_DATE AND
PAAF.EFFECTIVE_END_DATE
AND PAAF.PRIMARY_FLAG = 'Y'
AND PAAF.PERSON_ID = PPEI.PERSON_ID
AND PPEI.INFORMATION_TYPE = 'XXX_HIRING_DECISION'
AND PPEI.PERSON_EXTRA_INFO_ID = P_PERSON_EXTRA_INFO_ID;
-----------------------------------------------------------------------------------
-------------------------
2) update assignment criteriea API:
HR_ASSIGNMENT_API.UPDATE_EMP_ASG_CRITERIA ( P_EFFECTIVE_DATE
=> EFFECTIVE_DATE
,P_DATETRACK_UPDATE_MODE
=> 'CORRECTION'
,P_ASSIGNMENT_ID
=> MY_HIRE_DATA_ASS.ASSIGNMENT_ID
,P_PAYROLL_ID
=> L_PAYROLL_ID -- DEFAULT PAYROLL ID
,P_PEOPLE_GROUP_ID
=> L_PEOPLE_GROUP_ID
,P_GRADE_ID
=> L_GRADE_ID
,P_OBJECT_VERSION_NUMBER
=> L_OBJECT_VERSION_NUMBER
,P_SPECIAL_CEILING_STEP_ID
=> L_SPECIAL_CEILING_STEP_ID
,P_GROUP_NAME
=> L_GROUP_NAME
,P_EFFECTIVE_START_DATE
=> L_EFFECTIVE_START_DATE
,P_EFFECTIVE_END_DATE
=> L_EFFECTIVE_END_DATE
,P_ORG_NOW_NO_MANAGER_WARNING
=> L_ORG_NOW_NO_MANAGER_WARNING
,P_OTHER_MANAGER_WARNING
=> L_OTHER_MANAGER_WARNING
,P_SPP_DELETE_WARNING
=> L_SPP_DELETE_WARNING
,P_ENTRIES_CHANGED_WARNING
=> L_ENTRIES_CHANGED_WARNING
,P_TAX_DISTRICT_CHANGED_WARNING
=> L_TAX_DISTRICT_CHANGED_WARNING
);
Any variable in the above API that dont't get in the cursor , just :
1-declare it in the variables declarations,
2- use it directly in the api
such as:L_OTHER_MANAGER_WARNING boolean,
L_EFFECTIVE_START_DATE date...........
:::::
NOTE:
::::The Function Below get the employment category of the
employee;i.e:20/30/47/85...etc:
XXX_HR_PACKAGE4.XXX_PERSON_INFO(MY_HIRE_DATA_ASS.PERSON_ID,0,EFFECTIVE_DATE,'PT_NAM
E') ;
><><><><><><><><><><<>>>>><<<>>><<<>>><<<>>>
And this function to determine the payroll type for the current categories based on
UDT:
L_PAYROLL_CALENDAR_TYPE :=
XXX_HR_PACKAGE2.XXX_GET_TABLE_VALUE( NVL(HR_GENERAL.GET_BUSINESS_GROUP_ID,0)
,'XXX_EMPL
OYEE_CLASS_PAYROLL'
,'PAYROLL_
CODE'
,L_EMP_CAT
EGORY
,EFFECTIVE
_DATE
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
.......................................................................
The Function Is Used To Return The Last Payroll Action Date For The Employee :
CURSOR LAST_PAYROLL_ACTION_DATE IS
SELECT MAX(PPA.EFFECTIVE_DATE) LAST_ACTION_DATE
FROM PAY_ASSIGNMENT_ACTIONS PAA
,PAY_PAYROLL_ACTIONS PPA
WHERE PAA.ASSIGNMENT_ID = P_ASSIGNMENT_ID
AND PAA.PAYROLL_ACTION_ID = PPA.PAYROLL_ACTION_ID
AND PPA.ACTION_TYPE IN ('R','U','H','P','M','Q','X','L')
;
L_ACTION_DATE DATE ;
BEGIN
--
OPEN LAST_PAYROLL_ACTION_DATE ;
FETCH LAST_PAYROLL_ACTION_DATE INTO L_ACTION_DATE ;
CLOSE LAST_PAYROLL_ACTION_DATE ;
--
RETURN L_ACTION_DATE ;
--
END XXX_LAST_PAYROLL_ACTION_DATE;
...................................................................................
...............
XXX_HR_PACKAGE3.XXX_ADD_HIRE_ALLOWANCES ( P_PERSON_EXTRA_INFO_ID ,
EFFECTIVE_DATE ) ;
...................................................................................
...............
<<������ ������� �������� ����>>
SELECT *
FROM PER_POSITION_EXTRA_INFO PPEIS
WHERE INFORMATION_TYPE ='PER_RESERVED'
-- and POEI_INFORMATION5 =34195
and POEI_INFORMATION5 = 26520
-----------------------------------------------------------------------------------
--------------
����� ������� ����� ��� �����
���� ��� ���� �������� ���� ��������:�� ������ ����� �� �� ��� ��� ��� ����� ���
���� �������� ���� ���� �� ��� ����� ���� ����� ������� ����� ����� ������� ������
�� �����
-----------------------------------------------------------------------------------
--------------------
<<PERSONALIZATION & PROFILE OPTION>>
1) take the name of the column which name : Competence :block and field and the
value
2)take the block name and field for the Date From And Date To
3)HELP>>DIAGONSTIC>>CUSTOM CODE>>> PERSONALIZE
4)PUT NEW SEQ. AND NAME IT _ANY NAME YOU CHOOSE_ AND AT LEVEL COLUMN
CHOOSE :FUNCTION
5)AT:CONDITION_REGION CHOOSE AT TRIGGER EVENT: WHEN_NEW_ITEM_INSTANCE
AND AT TRIGGER OBJECT >> CHOOSE BLOCK.FIELD FOR THE COMPETENCE NAME
AT THE CONDITION ; :CEL.PER_COMPETENCE_NAME='.English Language'
THE ':' MEANS MAKE PARAMETRE
6)MOVE TO THE ACTION TAB :
OBJECT TYPE:ITEM
TARGET OBJECT:BLOCK.FIELD FOR THE DATE FROM :CEL.PER_EFFECTIVE_DATE_FROM
PROPERTY NAME:UPDATE_ALLOWED
VALUE:FALSE>
7)PRESS : APPLY NOW BUTTON
8)F4
9)RE_ENTER TO THE FUNCTION
------------------------------------------------------------------------
SELECT PAPF.EMPLOYEE_NUMBER,
PAPF.FULL_NAME,
HAPF.POSITION_ID,
HAPF.NAME,
PJ.NAME
,PVG.ATTRIBUTE1 GRADE_CODE
,PG.NAME GRADE_NAME
FROM PER_ALL_PEOPLE_F PAPF,
PER_ALL_ASSIGNMENTS_F PAAF,
HR_ALL_POSITIONS_F HAPF,
PER_JOBS PJ
,PER_VALID_GRADES PVG
, PER_GRADES PG
WHERE PAPF.PERSON_ID=PAAF.PERSON_ID
AND PAAF.POSITION_ID=HAPF.POSITION_ID
AND PJ.JOB_ID=PAAF.JOB_ID
AND PJ.JOB_ID=PVG.JOB_ID
AND PVG.GRADE_ID=PG.GRADE_ID
AND PAPF.CURRENT_EMPLOYEE_FLAG='Y'
AND PAAF.PRIMARY_FLAG='Y'
AND PAAF.EMPLOYMENT_CATEGORY=70
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 SYSDATE BETWEEN HAPF.EFFECTIVE_START_DATE AND HAPF.EFFECTIVE_END_DATE
-----------------------------------------------------------------------------------
------------------------
SELECT PAPF.EMPLOYEE_NUMBER,PAPF.FULL_NAME
FROM PER_PEOPLE_EXTRA_INFO PPEI,
PER_ALL_ASSIGNMENTS_F PAAF,
PER_ALL_PEOPLE_F PAPF
WHERE PPEI.PERSON_ID = PAPF.PERSON_ID
AND PAPF.PERSON_ID = PAAF.PERSON_ID
AND PPEI.INFORMATION_TYPE = 'XXX_TEACH_ALW'
--AND PPEI.CREATION_DATE = TO_DATE ('3/03/2017', 'DD/MM/YYYY')
AND PAAF.PAYROLL_ID = 84
AND
FND_DATE.CANONICAL_TO_DATE(PPEI.PEI_INFORMATION16)=TO_DATE('27/07/2016','DD/MM/
YYYY')
AND PAPF.CURRENT_EMPLOYEE_FLAG='Y'
AND PAAF.PRIMARY_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
-----------------------------------------------------------------------------------
------------------------------
V_SUPAWARD VARCHAR2(100);
V_SUPAMT VARCHAR2(200);
V_SUPAMTVAL VARCHAR2(200);
V_SCHSDATE VARCHAR2(200);
V_SCHEDATE VARCHAR2(200);
CURSOR C_SCHSUP(P_PERSON_EXTRA_INFO_ID NUMBER) IS
SELECT PEI_INFORMATION3,PEI_INFORMATION3
FROM PER_PEOPLE_EXTRA_INFO
WHERE INFORMATION_TYPE ='XXX_SCH_PAYMENT'
AND PERSON_EXTRA_INFO_ID=P_PERSON_EXTRA_INFO_ID;
BEGIN
V_SUPAWARD:=
XXX_HR_PACKAGE1.XXX_GET_EIT_SEGMENT( 'XXX_SCH_PAYMENT',P_PERSON_EXTRA_INFO_ID, '22'
);
OPEN C_SCHSUP(P_PERSON_EXTRA_INFO_ID);
FETCH C_SCHSUP INTO V_SCHSDATE,V_SCHEDATE;
CLOSE C_SCHSUP;
IF V_SUPAWARD LIKE'Y%'THEN
V_SUPAMT:=SUBSTR(V_SUPAWARD,3);
V_SUPAMTVAL:=TRUNC((V_SUPAMT/100)
*XXX_HR_PACKAGE1.XXX_ALLOWANCE_IN_DATE( P_ASSID
,FND_DATE.CANONIC
AL_TO_DATE(V_SCHEDATE)
,'BASIC'
,1
,'ORIGINAL'
,'ONE' ));
END IF;
RETURN V_SUPAMTVAL;
EXCEPTION
WHEN NO_DATA_FOUND THEN RETURN NULL;
END XXX_HR_SUPAWARD ;
-----------------------------------------------------------------------------------
-------------
<<FUNCTION TO GET PRIMARY ASSIGNMENT_ID>>
L_ASSIGNMENT_ID :=
XXX_HR_PACKAGE1.XXX_GET_PRIMARY_ASG (P_PERSON_ID, L_DATE_START);
TO GET :
L_ASSIGNMENT_ID :=
XXX_HR_PACKAGE1.XXX_GET_PRIMARY_ASG (P_PERSON_ID, L_DATE_START);
L_NATIONALITY :=
XXX_HR_PACKAGE3.XXX_PERSON_NATIONALITY (P_PERSON_ID,
L_DATE_START);
L_PERSON_CATEGORY :=
XXX_HR_PACKAGE3.XXX_PERSON_TYPE (L_ASSIGNMENT_ID, L_DATE_START);
L_HIRE_DATE :=
FND_DATE.CANONICAL_TO_DATE (XXX_HR_PACKAGE4.XXX_PERSON_INFO (
P_PERSON_ID,
0,
L_DATE_START,
'CURR_HIR',
'US'));
-----------------------------------------------------------------------------------
-----------
<<������ ����� ���� ������� ��������� �� ��� 1438>>
SELECT PERSON_ID,SUM(ABSENCE_DAYS)
FROM PER_ABSENCE_ATTENDANCES_V
--WHERE PERSON_ID=1208
WHERE PERSON_ID IN('65020',
'249728',
'249654',
'249655'
)
OR********
SELECT PERSON_ID, SUM (ABSENCE_DAYS)
FROM PER_ABSENCE_ATTENDANCES_V
WHERE C_TYPE_DESC LIKE '%����� �������%'
AND DATE_START BETWEEN TO_DATE ('02/10/2016', 'DD/MM/YYYY')
AND TO_DATE ('21/09/2017', 'DD/MM/YYYY')
AND DATE_END BETWEEN TO_DATE ('02/10/2016', 'DD/MM/YYYY')
AND TO_DATE ('21/09/2017', 'DD/MM/YYYY')
AND PERSON_ID IN (SELECT PPX.PERSON_ID
FROM per_assignments_x pax, per_people_x ppx
WHERE PAX.PAYROLL_ID = 81
AND ppx.person_id = pax.person_id
AND pax.payroll_id IS NOT NULL
AND ppx.CURRENT_EMPLOYEE_FLAG = 'Y')
GROUP BY PERSON_ID,ABSENCE_DAYS
-----------------------------------------------------------------------------------
--------------------------------
FALSE : �����
-----------------------------------------------------------------------------------
--------------------------------
from dual
order by 3
-----------------------------------------------------------------------------------
--------------------------------
<<����� ���� ��� ����� ����� ���� ��� ���� ��� ���� ��� ����� ����� �� ���� �����
������ ���� ����� ���� ���� ������ ����� ���� ���� �� ��� ��� ������� ������
������� �������
����� ������� ������� ���� ����� ����� ���� ��� ���� ���� ���� ��� ���� ����� �����
�� �� �� ����� ���� ���� >>
CREATE OR REPLACE procedure APPS.XXX_CREATE_PAY_METH ( P_RETCODE OUT VARCHAR2
,P_ERRBUFF OUT VARCHAR2
)
IS
V_PERSONAL_PAYMENT_METHOD_ID NUMBER;
V_PERSON_EXTRA_INFO_ID NUMBER;
V_EXTERNAL_ACCOUNT_ID NUMBER;
V_OBJECT_VERSION_NUMBER NUMBER;
V_EFFECTIVE_START_DATE DATE;
V_EFFECTIVE_END_DATE DATE;
V_COMMENT_ID NUMBER;
V_DUMMY VARCHAR2 (100);
V_ERROR VARCHAR2 (2500);
XX_ERRORS VARCHAR2 (2500);
CURSOR C1 IS
SELECT PAPF1.PERSON_ID,
PAPF1.EMPLOYEE_NUMBER,PAPF2.SEGMENT1,PAPF2.SEGMENT4,PAAF1.ASSIGNMENT_ID
FROM PER_ALL_PEOPLE_F PAPF1
,PER_ALL_ASSIGNMENTS_F PAAF1
,(SELECT DISTINCT PAPF.PERSON_ID,EX.SEGMENT1,EX.SEGMENT4--
papf.person_id ,PAPF.EMPLOYEE_NUMBER
FROM PER_ALL_PEOPLE_F PAPF
,PER_ALL_ASSIGNMENTS_F PAAF
,PAY_PERSONAL_PAYMENT_METHODS_F PPM
, PAY_ORG_PAYMENT_METHODS_F OPM
, PAY_PAYMENT_TYPES PT
, PAY_EXTERNAL_ACCOUNTS EX
WHERE PAPF.PERSON_ID=PAAF.PERSON_ID
AND PAAF.ASSIGNMENT_ID=PPM.ASSIGNMENT_ID
AND PPM.ORG_PAYMENT_METHOD_ID=OPM.ORG_PAYMENT_METHOD_ID
AND OPM.PAYMENT_TYPE_ID=PT.PAYMENT_TYPE_ID
AND
PPM.EXTERNAL_ACCOUNT_ID=EX.EXTERNAL_ACCOUNT_ID
AND TRUNC(SYSDATE) BETWEEN
OPM.EFFECTIVE_START_DATE AND OPM.EFFECTIVE_END_DATE
AND PPM.EFFECTIVE_START_DATE=
(SELECT MAX(PPM2.EFFECTIVE_START_DATE)
FROM PAY_PERSONAL_PAYMENT_METHODS_F PPM2
WHERE
PPM2.PERSONAL_PAYMENT_METHOD_ID=PPM.PERSONAL_PAYMENT_METHOD_ID)
AND PPM.EFFECTIVE_START_DATE BETWEEN PAPF.EFFECTIVE_START_DATE AND
PAPF.EFFECTIVE_END_DATE
AND PPM.EFFECTIVE_START_DATE BETWEEN PAAF.EFFECTIVE_START_DATE AND
PAAF.EFFECTIVE_END_DATE
AND NOT EXISTS(
SELECT *
FROM PER_ALL_PEOPLE_F PAPF2
,PER_ALL_ASSIGNMENTS_F PAAF2
,PAY_PERSONAL_PAYMENT_METHODS_F PPM2
WHERE PAPF2.PERSON_ID=PAAF2.PERSON_ID
AND PAPF2.CURRENT_EMPLOYEE_FLAG='Y'
AND PAAF2.PRIMARY_FLAG='Y'
AND PAAF2.ASSIGNMENT_ID = PPM2.ASSIGNMENT_ID
AND TRUNC(SYSDATE) BETWEEN PAPF2.EFFECTIVE_START_DATE AND
PAPF2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PAAF2.EFFECTIVE_START_DATE AND
PAAF2.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE)BETWEEN PPM2.EFFECTIVE_START_DATE AND
PPM2.EFFECTIVE_END_DATE
AND PAPF2.PERSON_ID=PAPF.PERSON_ID) )PAPF2
WHERE PAPF1.PERSON_ID = PAPF2.PERSON_ID
AND PAPF1.PERSON_ID = PAAF1.PERSON_ID
AND PAAF1.PRIMARY_FLAG = 'Y'
AND PAAF1.PAYROLL_ID IS NOT NULL
-- and papf1.person_id in (209616,
--210731)
AND TRUNC(SYSDATE) BETWEEN PAAF1.EFFECTIVE_START_DATE AND
PAAF1.EFFECTIVE_END_DATE
AND PAPF1.CURRENT_EMPLOYEE_FLAG='Y'
AND TRUNC(SYSDATE) BETWEEN PAPF1.EFFECTIVE_START_DATE AND
PAPF1.EFFECTIVE_END_DATE ;
CURSOR C2 IS
SELECT EX.SEGMENT1
,EX.SEGMENT4
,fnd_date.date_to_canonical( PPM.EFFECTIVE_START_DATE)
EFFECTIVE_START_DATE
,PPM.PERSONAL_PAYMENT_METHOD_ID
,ASG.PERSON_ID
FROM PAY_PERSONAL_PAYMENT_METHODS_F PPM
, PAY_ORG_PAYMENT_METHODS_F OPM
, PAY_PAYMENT_TYPES PT
, PER_ALL_ASSIGNMENTS_F ASG
, PAY_EXTERNAL_ACCOUNTS EX
WHERE PPM.ORG_PAYMENT_METHOD_ID=OPM.ORG_PAYMENT_METHOD_ID
AND OPM.PAYMENT_TYPE_ID=PT.PAYMENT_TYPE_ID
AND PPM.ASSIGNMENT_ID=ASG.ASSIGNMENT_ID
AND PPM.EXTERNAL_ACCOUNT_ID=EX.EXTERNAL_ACCOUNT_ID
AND TRUNC(SYSDATE) BETWEEN OPM.EFFECTIVE_START_DATE AND
OPM.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN ASG.EFFECTIVE_START_DATE AND
ASG.EFFECTIVE_END_DATE
AND TRUNC(SYSDATE) BETWEEN PPM.EFFECTIVE_START_DATE AND
PPM.EFFECTIVE_END_DATE
AND ASG.PRIMARY_FLAG='Y'
AND PT.PAYMENT_TYPE_NAME='SA Direct Deposit SAR'
-- AND ASG.PERSON_ID in (200082,
--208742)
AND
NOT EXISTS (SELECT *
FROM PER_PEOPLE_EXTRA_INFO PPEI
WHERE
INFORMATION_TYPE='XXX_MANAGE_BANK_REFALAR'
AND PPEI.PERSON_ID=ASG.PERSON_ID
AND
PPEI.PEI_INFORMATION1=PPM.PERSONAL_PAYMENT_METHOD_ID);
BEGIN
fnd_global.apps_initialize(124629, 24178, 800);
FOR I IN C1 LOOP
BEGIN
V_PERSONAL_PAYMENT_METHOD_ID := NULL;
V_EXTERNAL_ACCOUNT_ID := NULL;
V_OBJECT_VERSION_NUMBER := NULL;
V_EFFECTIVE_START_DATE := NULL;
V_EFFECTIVE_END_DATE := NULL;
V_COMMENT_ID := NULL;
HR_PERSONAL_PAY_METHOD_API.CREATE_PERSONAL_PAY_METHOD
(
P_EFFECTIVE_DATE => TRUNC(SYSDATE)--TO_DATE('2016/05/08
00:00:00','rrrr/mm/dd HH24:MI:SS')--effective_start_date-
,P_ASSIGNMENT_ID => I.ASSIGNMENT_ID
,P_ORG_PAYMENT_METHOD_ID => 81
,P_PERCENTAGE => 100
,P_PRIORITY => 1
,P_SEGMENT1 => I.SEGMENT1
,P_SEGMENT4 => I.SEGMENT4
,P_TERRITORY_CODE => 'SA'
,P_PERSONAL_PAYMENT_METHOD_ID => V_PERSONAL_PAYMENT_METHOD_ID
,P_EXTERNAL_ACCOUNT_ID => V_EXTERNAL_ACCOUNT_ID
,P_OBJECT_VERSION_NUMBER => V_OBJECT_VERSION_NUMBER
,P_EFFECTIVE_START_DATE => V_EFFECTIVE_START_DATE
,P_EFFECTIVE_END_DATE => V_EFFECTIVE_END_DATE
,P_COMMENT_ID => V_COMMENT_ID
);
commit;
EXCEPTION
WHEN OTHERS THEN
V_ERROR := NULL;
V_ERROR := SUBSTR (SQLERRM, 1, 2000);
xx_errors := apps.xx_debug (' Error in Create Payment by Schduled Request for
Assignment_id = '|| I.ASSIGNMENT_ID|| ' While the Error is : '||V_ERROR);
END;
END LOOP;
FOR I IN C2
LOOP
BEGIN
FND_PROFILE.PUT ('PER_PERSON_ID', to_char( I.PERSON_ID));
V_DUMMY := TO_CHAR(trunc(sysdate),'yyyymmdd')||TO_CHAR(SYSDATE,'hh24miss')||
FND_PROFILE.VALUE('PER_PERSON_ID');
HR_PERSON_EXTRA_INFO_API.create_person_extra_info (
p_validate => FALSE,
p_person_id =>to_char( I.PERSON_ID),
p_information_type => 'XXX_MANAGE_BANK_REFALAR',
p_pei_information_category => 'XXX_MANAGE_BANK_REFALAR',
p_pei_information1 => I.PERSONAL_PAYMENT_METHOD_ID,
p_pei_information2 => I.EFFECTIVE_START_DATE,
P_PEI_INFORMATION27 => 'N',
P_PEI_INFORMATION28 => V_DUMMY,
p_person_extra_info_id => V_PERSON_EXTRA_INFO_ID,
p_object_version_number => V_OBJECT_VERSION_NUMBER);
EXCEPTION
WHEN OTHERS THEN
V_ERROR := NULL;
V_ERROR := SUBSTR (SQLERRM, 1, 2000);
xx_errors := apps.xx_debug (' Error in Create BANK REFALAR by Schduled Request for
Person_id = '|| I.PERSON_ID|| ' While the Error is : '||V_ERROR);
END;
END LOOP;
-----------------------------------------------------------------------------------
-----------------
���� ������� �� �� �� :
����� : �� ��� ������� ���� ��� ��� ���� : ����� ����� ���� �������
���� ��11 ����� ����� �� payroll action id
�� ����� ���� �� ������ ���������
�� ��� �� ��������
���� ���� ��� ���� ��� ����� ����� �������� �������
��� ��� �������� ��� ��� �������ʿ�
��� ��� �� ������� ���� �� �� ��� ���� ��� ����� ������ ���� ���� ��� ���� ��� ����
: ����� ����� ���� ������� ���� ����� ����� ��� �� ��� ��� ������ ���� �� ��
�������� �����
������ �� ���� ����� ����� ���� �������
��� ��� ��� ������� ��� ���� �� ���� ��� ����� ����� �������� ������