Skip to content

pk80001_legalnet

Overview

Field Value
Schema WCIS_DBA
Type Package
Database Oracle
Calling libraries SAIF.Application.Claim.Legal
Calling classes LegalManagerBase, clsLegalData, clsScheduleManager

The retrieved Oracle source declares PACKAGE Pk80001_Legalnet. This library references the same package as both pk80001_LEGALNET and pk80001_legalNet; Oracle identifier casing does not change package resolution.

Purpose

Pk80001_Legalnet centralizes LegalNet database behavior for legal-case retrieval and maintenance, including schedules, appeals, case notes, letter requests, and attorney/staff lookups. For this library, the relevant entry points create LETTER_REQUEST rows, resolve the manager email for the attorney attached to a case's most recent hearing, and expose the case-header values used to populate the application's current legal-case context*.

Procedures / Methods

insertLetterRequest

Field Value
Returns requestNum IN OUT NUMBER
Called by LegalManagerBase.insertLetterRequest

Description: Allocates LETTER_REQUEST_SEQ.NEXTVAL, inserts a LETTER_REQUEST row, and stamps CREATE_DATE = SYSDATE. The retrieved body accepts aClaimId but does not reference it during the insert.

Parameters

Parameter Direction Type Default Description
letterTypeCode IN VARCHAR2 — Letter type to queue, such as the DEF or recon-request letter code.
aLegalCaseNum IN NUMBER — Legal case sequence number written to LETTER_REQUEST.LEGAL_CASE_SEQ_NUM.
holdDate IN DATE — Hold or mail date stored on the request row.
aClaimId IN NUMBER — Claim identifier accepted by the signature but unused in the retrieved body.
createUser IN VARCHAR2 — User ID written to LETTER_REQUEST.CREATE_USER.
requestNum IN OUT NUMBER — Output sequence populated from LETTER_REQUEST_SEQ.NEXTVAL.

getHeader inferred mapping

Field Value
Returns REF CURSOR header row contract observed in clsLegalData*
Called by clsLegalData.New

Description: This library calls pk80001_legalNet.getHeader, but the retrieved WCIS_DBA.Pk80001_Legalnet source does not contain an exact getHeader declaration. The closest retrieved header-producing routines are getLegalCase, get_case_num, get_asgn_atty, and get_hearing_date, which collectively expose the same case-number, attorney, and hearing-date concepts that clsLegalData reads*.

Parameters

Parameter Direction Type Default Description
aLegalCaseNum IN NUMBER — Legal case sequence number supplied by clsLegalData.
recordset OUT REF CURSOR — Cursor contract expected by clsLegalData for header values*

Relevant retrieved routines

Routine Type Relevant behavior
getLegalCase Procedure Returns the core LEGAL_CASE row and computes CASE_NUM with get_case_num.
get_case_num Function Chooses the first populated identifier in WCB → DCBS → OWCP → OALJ → BRB order.
get_asgn_atty Function Resolves attorney display text from the latest appeal attorney, then the most recent hearing attorney, then the outside counsel firm.
get_hearing_date Function Returns the latest hearing date, including consolidated-case hearing lookup logic.

get_atty_mngr_email

Field Value
Returns VARCHAR2
Called by clsScheduleManager.getAttyMngrEmail

Description: Resolves the manager email for the attorney tied to the case's most recent hearing. If the assigned-attorney lookup fails, the function falls back to the OUTSIDECNCL attorney profile when an outside-firm assignment exists; if neither path resolves, it returns NONE.

Parameters

Parameter Direction Type Default Description
aLegalCaseNum IN NUMBER — Legal case sequence number used to locate the most recent hearing and assigned attorney context.

Business Rules

Rules extracted from this package's logic:

Rule ID Rule Condition Action
BR-LGL-018 Letter requests use a database sequence and Oracle server timestamp. insertLetterRequest is invoked from the DEF or recon-letter flows. The package assigns LETTER_REQUEST_SEQ.NEXTVAL, inserts the request row, and sets CREATE_DATE = SYSDATE.
BR-LGL-019 Manager-email lookup falls back from assigned attorney to outside counsel. get_atty_mngr_email cannot find a manager email for the most recent hearing's assigned attorney. The package retries against the OUTSIDECNCL profile when ASGN_OTHER_FIRM_SEQ_NUM is present, then returns NONE if no email is found.
BR-LGL-020 Header case number prefers WCB, then DCBS, OWCP, OALJ, and BRB* This library's getHeader call is matched to the retrieved get_case_num helper* The first populated identifier in that precedence order is returned for display*
BR-LGL-021 Header attorney display prefers appeal attorney, then hearing attorney, then outside counsel* This library's getHeader call is matched to the retrieved get_asgn_atty helper* The first available attorney or firm display value in that order is returned*
BR-LGL-022 Header hearing date uses the latest hearing and consolidation context* This library's getHeader call is matched to the retrieved get_hearing_date helper* The latest applicable hearing date is returned for the case or its consolidated primary-case context*

Operations

Operations and processes implemented in this package for this library:

Operation Description Trigger
Record letter request Inserts a LETTER_REQUEST row and returns the generated request sequence. LegalManagerBase.insertLetterRequest runs from DEF or recon-request flows.
Resolve attorney manager email Looks up the assigned attorney manager email for the most recent hearing, with outside-counsel fallback. clsScheduleManager.SendDEFEmail calls getAttyMngrEmail.
Assemble legal case header* Supplies case-number, attorney, and hearing-date header values through retrieved header helper routines* clsLegalData.New calls pk80001_legalNet.getHeader*

Source Code

Package specification excerpt
PACKAGE                   Pk80001_Legalnet AS

TYPE ref_cursor IS REF CURSOR;

FUNCTION get_hearing_date (in_case_seq IN LEGAL_CASE.legal_case_seq_num%TYPE)
  RETURN DATE;

FUNCTION get_asgn_atty(IN_case_Seq_num IN LEGAL_CASE.legal_case_seq_num%TYPE)
  RETURN VARCHAR2;

FUNCTION get_atty_mngr_email(aLegalCaseNum IN NUMBER) RETURN VARCHAR2;

FUNCTION get_case_num(aLegalCaseNum IN NUMBER) RETURN VARCHAR2;

PROCEDURE getLegalCase(LegalCaseSeqNum IN NUMBER,
       ClaimId in Number,
       recordset IN OUT ref_cursor);

PROCEDURE insertLetterRequest(
         letterTypeCode  IN VARCHAR2,
         aLegalCaseNum   IN NUMBER,
         holdDate        IN DATE,
         aClaimId        IN NUMBER,
         createUser      IN VARCHAR2,
         requestNum      IN OUT NUMBER);
END;
insertLetterRequest body
PROCEDURE insertLetterRequest(
         letterTypeCode  IN VARCHAR2,
         aLegalCaseNum   IN NUMBER,
         holdDate        IN DATE,
         aClaimId        IN NUMBER,
         createUser      IN VARCHAR2,
         requestNum      IN OUT NUMBER)
  AS
   v_send     VARCHAR2(3);
   BEGIN

   v_send := 'YES';

  SELECT letter_request_seq.NEXTVAL
    INTO requestNum
    FROM dual;

  INSERT INTO LETTER_REQUEST
   (letter_request_Seq_num,
    LETTER_TYPE_CODE,
    legal_case_seq_num,
    hold_date,
    create_user,
    create_date)
  VALUES(requestNum,
    letterTypeCode,
    aLegalCaseNum,
    holdDate,
    createUser,
    sysdate);

  END insertLetterRequest;
get_atty_mngr_email body
FUNCTION get_atty_mngr_email(aLegalCaseNum IN NUMBER)
 RETURN VARCHAR2 AS
       v_email VARCHAR2(50);
   BEGIN
    BEGIN
        SELECT EMAIL_ADDRESS INTO v_email
          FROM LEGAL_CASE cas,
               SCHEDULE sch,
               adp_employee emp,
               ATTORNEY_PROFILE P
         WHERE cas.legal_case_seq_num = aLegalCaseNum
           AND cas.most_recent_hearing_seq_num = sch.schedule_seq_num
           AND P.profile_emplid = sch.asgn_attorney_emplid
           AND P.manager_emplid = emp.emplid;
  EXCEPTION
      WHEN NO_DATA_FOUND THEN
         BEGIN
        SELECT EMAIL_ADDRESS INTO v_email
          FROM LEGAL_CASE cas,
               SCHEDULE sch,
               adp_employee emp,
               ATTORNEY_PROFILE P
         WHERE cas.legal_case_seq_num = aLegalCaseNum
           AND cas.most_recent_hearing_seq_num = sch.schedule_seq_num
           AND P.profile_emplid = 'OUTSIDECNCL'
           AND sch.asgn_other_firm_seq_num IS NOT NULL
           AND P.manager_emplid = emp.emplid;
     EXCEPTION
        WHEN NO_DATA_FOUND THEN
          v_email := 'NONE';
     END;
  END;
RETURN v_email;

 END get_atty_mngr_email;
Header-related body excerpts
FUNCTION get_hearing_date (in_case_seq IN LEGAL_CASE.legal_case_seq_num%TYPE)
  RETURN DATE AS
         v_hear_date DATE;
BEGIN
BEGIN
   SELECT MAX(sch.schedule_date)
     INTO v_hear_date
     FROM LEGAL_CASE cas,
          SCHEDULE sch,
          CONSOLIDATED_CASE c
   WHERE cas.LEGAL_CASE_SEQ_NUM = in_case_seq
    AND sch.schedule_seq_num =
             (SELECT MAX(schedule_seq_num)
              FROM SCHEDULE sch2, CONSOLIDATED_CASE c2
             WHERE ((sch2.LEGAL_CASE_SEQ_NUM = cas.LEGAL_CASE_SEQ_NUM)
                OR (c2.secondary_case_seq_num = in_case_seq
               AND sch2.legal_case_seq_num = c2.primary_case_seq_num))
               AND sch2.SCHEDULE_TYPE_CODE = 'HEAR');
EXCEPTION
    WHEN NO_DATA_FOUND THEN
       NULL;
   END;

 RETURN v_hear_Date;
END get_hearing_date;

FUNCTION get_case_num(aLegalCaseNum IN NUMBER)
 RETURN VARCHAR2 AS
       v_num VARCHAR2(15) := ' ';
   BEGIN
    BEGIN
    SELECT wcb_num INTO v_num
      FROM LEGAL_CASE
     WHERE legal_case_seq_num = aLegalCaseNum
       AND wcb_num IS NOT NULL
 UNION
    SELECT dcbs_num
      FROM LEGAL_CASE
     WHERE legal_case_seq_num = aLegalCaseNum
       AND wcb_num IS NULL
       AND dcbs_num IS NOT NULL
 UNION
    SELECT owcp_num
      FROM LEGAL_CASE
     WHERE legal_case_seq_num = aLegalCaseNum
       AND wcb_num IS NULL
       AND dcbs_num IS NULL
       AND owcp_num IS NOT NULL
 UNION
    SELECT oalj_num
      FROM LEGAL_CASE
     WHERE legal_case_seq_num = aLegalCaseNum
       AND wcb_num IS NULL
       AND dcbs_num IS NULL
       AND owcp_num IS NULL
       AND oalj_num IS NOT NULL
 UNION
    SELECT brb_num
      FROM LEGAL_CASE
     WHERE legal_case_seq_num = aLegalCaseNum
       AND wcb_num IS NULL
       AND dcbs_num IS NULL
       AND owcp_num IS NULL
       AND oalj_num IS NULL
       AND brb_num IS NOT NULL;
  EXCEPTION
      WHEN NO_DATA_FOUND THEN
          v_num := ' ';
  END;
  RETURN v_num;

 END get_case_num;

FUNCTION get_asgn_atty(IN_case_Seq_num IN LEGAL_CASE.legal_case_seq_num%TYPE)
         RETURN VARCHAR2 AS
         v_atty VARCHAR2(50);
   BEGIN
    BEGIN
    SELECT LAST_NAME || ', ' || DECODE(preferred_name, ' ', FIRST_NAME,preferred_name)
      INTO v_atty
         FROM LEGAL_CASE cas,
               APPEAL app,
               adp_employee emp
         WHERE cas.legal_case_seq_num = in_case_Seq_num
            AND app.legal_case_seq_num = cas.legal_case_seq_num
            AND app.appeal_seq_num =
                (SELECT MAX(appeal_seq_num)
                   FROM APPEAL a2
                  WHERE a2.legal_case_Seq_num = cas.legal_case_seq_num)
             AND emp.emplid = app.atty_emplid;
     EXCEPTION
      WHEN NO_DATA_FOUND THEN
      BEGIN
    SELECT LAST_NAME || ', ' || DECODE(preferred_name, ' ', FIRST_NAME,preferred_name)
          INTO v_atty
          FROM LEGAL_CASE cas,
               SCHEDULE sch,
               adp_employee emp
         WHERE cas.legal_case_seq_num = in_case_Seq_num
           AND emp.emplid = sch.asgn_attorney_emplid
           AND cas.most_recent_hearing_seq_num = sch.schedule_seq_num;
  EXCEPTION
      WHEN NO_DATA_FOUND THEN
      BEGIN
      SELECT FIRM_NAME INTO v_atty
        FROM LEGAL_CASE cas,
               SCHEDULE sch,
               OTHER_FIRM frm
         WHERE cas.legal_case_seq_num = in_case_Seq_num
           AND frm.other_firm_seq_num = sch.asgn_other_firm_Seq_num
            AND cas.most_recent_hearing_seq_num = sch.schedule_seq_num;

      EXCEPTION
          WHEN NO_DATA_FOUND THEN
               v_atty := '';
      END;
     END;
    END;
  RETURN v_atty;
END get_asgn_atty;

PROCEDURE getLegalCase(LegalCaseSeqNum IN NUMBER,
       ClaimId in Number,
       recordset IN OUT ref_cursor)

   AS BEGIN OPEN recordset FOR
      SELECT LEGAL_CASE_SEQ_NUM LegalCaseSeqNum,
      CASE_TYPE_CODE CaseTypeCode,
      REQUEST_TYPE_CODE RequestTypeCode,
      WCB_NUM WcbNum,
      get_case_num(LegalCaseSeqNum) AS CASE_NUM,
      DCBS_NUM DcbsNum,
      CASE_STATUS_CODE CaseStatusCode,
      CLAIM_ID ClaimID,
      REQUEST_DATE RequestDate,
      WORKER_ATTY_FIRM_PROV_LOC_ID WorkerAttyFirmProvLocID,
      WORKER_ATTY_PROV_LOC_ID WorkerAttyProvLocID,
      OAR_DUE_DATE OarDueDate,
      OAR_MAILED_DATE OarMailedDate,
      LEGAL_FILE_CREATE_DATE LegalFileCreateDate,
      CASE_WEIGHT_VALUE CaseWeightValue,
      ACKNOWLEDGE_DATE AcknowledgeDate,
      REQUEST_NEW_WCB_NUM_FLAG RequestNewWcbNumFlag,
      REQUESTED_BY_CODE RequestedBYCode,
      REQUEST_RECEIPT_DATE RequestReceiptDate,
      REQUEST_POSTMARK_DATE RequestPostmarkDate,
      REQUEST_ALL_DAY_HEARING_FLAG RequestAllDayHearingFlag,
      STRESS_CLAIM_FLAG StressClaimFlag,
      RECON_PACKET_RECEIVED_DATE ReconPacketReceivedDate,
      DISMISSAL_DATE DismissalDate,
      SETTLEMENT_DATE SettlementDate,
      SEND_DEF_FLAG SendDefFlag,
      RECON_LETTER_MAILED_DATE ReconLetterMailedDate,
      DEF_SENT_DATE DefSentDate,
      EMPLOYER_EVALUATION_NUM EmployerEvaluationNum,
      CONSOLIDATE_CASE_FLAG ConsolidateCaseFlag,
      OWCP_NUM OwcpNum,
      OALJ_NUM OaljNum,
      BRB_NUM BrbNum,
      CREATE_DATE CreateDate,
      CREATE_USER CreateUser,
      UPDATE_DATE UpdateDate,
      UPDATE_USER UpdateUser,
      MOST_RECENT_HEARING_SEQ_NUM as MostRecentHearingSeqNum,
      CLAIM_IMAGE_ALERTS_FLAG ClaimImageAlertsFlag,
      getClaimImageAlertsUpdateDate(LegalCaseSeqNum) AS ClaimImageAlertsUpdateDate
      FROM LEGAL_CASE C
      WHERE (legal_case_seq_num = LegalCaseSeqNum  and ClaimId = 0)
         OR (LegalCaseSeqNum = 0 and Claim_id = ClaimId);
END getLegalCase;

Calling Code References

Class Method Source File
LegalManagerBase insertLetterRequest SAIF.Application.Claim.Legal\LegalManagerBase.vb
clsLegalData New / RetrieveSQL (pk80001_legalNet.getHeader) SAIF.Application.Claim.Legal\clsLegalData.vb
clsScheduleManager getAttyMngrEmail SAIF.Application.Claim.Legal\LegalNet\clsScheduleManager.vb

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

Sources

  • Oracle source retrieval: C:\Users\chrfre\AppData\Local\Temp\oracle-sources\pk80001_legalnet.json
  • SAIF.Application.Claim.Legal\LegalManagerBase.vb
  • SAIF.Application.Claim.Legal\clsLegalData.vb
  • SAIF.Application.Claim.Legal\LegalNet\clsScheduleManager.vb