-- Actual PL/SQL body retrieved from Oracle via Legends CLI-- Source: DBA_SOURCE / ALL_SOURCE for WCIS_DBA.sp82286_statutoryweeklywageproceduresp82286_statutoryweeklywage(inInjuryDateINVarchar2,inWagesINNumber,inPayPeriodINVarchar2,inHoursWorkedPerDayINNumber,inDaysWorkedPerWeekINNumber,recordsetINOUTsys_refcursor)/*****************************************************************Procedure Title : Calcuate Statutory Weekly Wage**Name : sp82286_statutoryweeklywagecalculation*Called by :.Net object clsStatutoryWeeklyWageCalculation******************************************************************PROGRAMMER ANALYST DATE MOD #*TONBUS 06/22/2007*Description: Process determines the statutory weekly wage depending on the* parameters that are passed in and makes the results available* to the .net object clsStatutoryWeeklyWageCalculation******************************************************************/Isv_StatutoryWeeklyWageNumber(11,2);v_ErrorMessageVarchar2(100);v_WeeksPerMonthNumber(5,4);v_DaysWorkedPerWeekNumber;procedureSelectStatutoryWeeklyWageisbeginOPENrecordsetFORSELECTv_StatutoryWeeklyWageasStatutoryWeeklyWage,v_ErrorMessageasErrorMessageFROMdual;endSelectStatutoryWeeklyWage;-- ------------------------------------------------------------ M a i n P r o c e d u r e-- ----------------------------------------------------------BEGINv_ErrorMessage:='';v_StatutoryWeeklyWage:=0.00;v_DaysWorkedPerWeek:=inDaysWorkedPerWeek;--check for injury dateIfto_date(inInjuryDate,'MM/DD/YYYY')<=to_date('01-jan-1900','dd-mon-yyyy')thenv_ErrorMessage:='Invalid injury date';SelectStatutoryWeeklyWage;Return;EndIf;--check for wagesIfinWages<=0Thenv_errormessage:='Invalid wages at time of injury';SelectStatutoryWeeklyWage;Return;EndIf;--check for valid pay periodIfinPayPeriod!='H'andinPayPeriod!='D'andinPayPeriod!='W'andinPayPeriod!='M'andinPayPeriod!='A'Thenv_errormessage:='Invalid pay period';SelectStatutoryWeeklyWage;Return;EndIf;--check for valid hours for an hourly pay periodIfinPayPeriod='H'andinHoursWorkedPerDay=0Thenv_errormessage:='Invalid hours worked per day for a hourly pay period';SelectStatutoryWeeklyWage;Return;EndIf;--check for valid days for an hourly or daily pay periodIf(inPayPeriod='H'orinPayPeriod='D')andinDaysWorkedPerWeek=0Thenv_errormessage:='Invalid days worked per week for a hourly or daily pay period';SelectStatutoryWeeklyWage;Return;EndIf;--If the injury date is before 10/01/1973 then the weeks per month is 4.3452 else it is 4.35Ifto_date(inInjuryDate,'MM/DD/YYYY')<to_date('01-oct-1973','dd-mon-yyyy')thenv_WeeksPerMonth:=4.3452;Elsev_WeeksPerMonth:=4.35;EndIf;--If the injury date is before 10/07/1995 and hourly or daily then the minimul days worked per week is threeIf(inPayPeriod='H'orinPayPeriod='D')andto_date(inInjuryDate,'MM/DD/YYYY')<to_date('07-jun-1995','dd-mon-yyyy')andinDaysWorkedPerWeek<3Thenv_DaysWorkedPerWeek:=3;EndIf;--Calculate the statutory weekly wagev_StatutoryWeeklyWage:=CaseinPayPeriodWhen'H'TheninWages*inHoursWorkedPerDay*v_DaysWorkedPerWeekWhen'D'TheninWages*v_DaysWorkedPerWeekWhen'W'TheninWagesWhen'M'TheninWages/v_WeeksPerMonthWhen'A'TheninWages/52--When 'A' Then (inWages / 12) / v_WeeksPerMonthElse0.00End;SelectStatutoryWeeklyWage;Return;ENDsp82286_statutoryweeklywage;