Use this tab to define and manage your own functions. These functions are available for use in wage code calculation formulas. SQL knowledge is required to use the tab efficiently.
In the syntax of a user-defined function, the following variables are available:
result_ NUMBER;
company_id_ VARCHAR2(20);
emp_no_ VARCHAR2(11);
payroll_list_id_ VARCHAR2(16);
payroll_acc_date_from_ DATE;
payroll_acc_date_to_ DATE;
valid_date_ DATE;
wage_code_id_ VARCHAR2(10);
wc_valid_from_ DATE;
wc_valid_to_ DATE;
wc_acc_period_ DATE;
wc_tax_period_ DATE;
period_date_from_ DATE;
period_date_to_ DATE;
accounting_valid_from_ DATE;
accounting_date_to_ DATE;
agreement_no_ VARCHAR2(10);
agreem_valid_date_ DATE;
agreem_param_id_ VARCHAR2(10);
payroll_name_ VARCHAR2(2000);
payroll_tax_period_ VARCHAR2(8);
payroll_accounting_period_ VARCHAR2(8);
payroll_remark_ VARCHAR2(200);
payroll_validation_date_ DATE;
payroll_voucher_no_ NUMBER;
payroll_voucher_type_ VARCHAR2(3);
payroll_date_from_ DATE;
payroll_date_to_ DATE;
payroll_period_no_ NUMBER;
payroll_year_ NUMBER;
payroll_pl_period_type_ VARCHAR2(20);
Intended function use is presented in brackets. The returned value must be assigned to the result_ variable.
Available parameters are:
param1_ VARCHAR2(2000);
param2_ VARCHAR2(2000);
param3_ VARCHAR2(2000);
param4_ VARCHAR2(2000);
param5_ VARCHAR2(2000);
param6_ VARCHAR2(2000);
param7_ VARCHAR2(2000);
param8_ VARCHAR2(2000);
param9_ VARCHAR2(2000);
Example:
DECLARE
person_id_ VARCHAR2(100);
date_to_ DATE;
date_of_birth_ DATE;
CURSOR get_attr IS
SELECT date_of_birth
FROM PERS_TAB
WHERE person_id = person_id_;
BEGIN
person_id_ := Company_Person_API.Get_Person_Id(company_id_, emp_no_ );
OPEN get_attr;
FETCH get_attr INTO date_of_birth_;
CLOSE get_attr;
date_to_ := to_date(period_date_from_, Payroll_Util_Api.Get_Date_format());
IF param1_ = '1' THEN
result_ := MONTHS_BETWEEN(date_to_, date_of_birth_);
ELSE
result_ := MONTHS_BETWEEN(date_to_, date_of_birth_) / 12;
END IF;
END;