$TXT Created by HUA,PATRICK at MNTVLL.FO-ALBANY.MED.VA.GOV (KIDS) on Thursday, 08/19/04 at 12:21 ============================================================================= Run Date: NOV 03, 2004 Designation: EAS*1*54 Package : EAS - ENROLLMENT APPLICATION SYSTEM Priority: Mandatory Version : 1 SEQ #48 Status: Released Compliance Date: DEC 04, 2004 ============================================================================= Associated patches: (v)EAS*1*22 <<= must be installed BEFORE `EAS*1*54' (v)EAS*1*25 <<= must be installed BEFORE `EAS*1*54' (v)EAS*1*28 <<= must be installed BEFORE `EAS*1*54' Subject: FIX LEAP YR MT LETTERS Category: - Routine Description: ============ IMPORTANT NOTE: =============== Prior to the install of patch EAS*1.0*54, the 60-Day Letters were printed one day early. Because of this, with the correction in the calculation of the due date for the letter to be sent, the day following the install of this patch, there will be no 60-Day Letters required to be printed. During a leap year, starting on February 29th, the EAS MEANS TEST Zero-Day, 30-Day, and 60-Day Letters are generated and dated one day before the veterans' Centralized Anniversary Date (CAD). This is due to a leap year having an extra day (366 days instead of 365) which is not handled correctly in the current EAS Means Test Letter process. The process in which the anniversary date is calculated during a leap year for the Income Test is working correctly. This patch, EAS*1.0*54, is adding a leap year check to the EAS Means Test Letter process. It will correctly calculate the expiration date of the Means Test to allow for 366 day (leap) year. This patch addresses the following New Service Request (NSR): ------------------------------------------------------------- There is no NSR associated with this patch. This patch addresses the following NOIS message(s): --------------------------------------------------- WIM-0304-21846 - Means Test Question Overview of NOIS Message(s): --------------------------- WIM-0304-21846 - Means Test Question PROBLEM: Some Means Tests letters are generated with the Anniversary Date being one day earlier for certain income years. RESOLUTION: 365 days is being hard-coded into the added value during calculation of the Anniversary Date. It does not take into account the additional day in any leap year. The algorithm will be fixed to correctly calculate the Anniversary Date instead of just adding 365 days to the test date. Test Sites: ----------- Puget Sound Salisbury West LA Wilmington ================INSTALLATION INSTRUCTIONS ================= This patch can be loaded with users on the system, however, it should be installed during period of minimum usage. If installed during the normal workday, it is recommended that the following selections in the OPTION (#19) file and all of their descendants be disabled to prevent possible conflicts while running the KIDS Install. Other VISTA users will not be affected. [EAS MT 0 DAY LETTER PRINT] Zero Day Letters Print [EAS MT 30 DAY LETTER PRINT] Thirty Day Letters Print [EAS MT 60 DAY LETTER PRINT] Sixty Day Letters Print [EAS MT AUTO LETTERS MENU] Automated Means Test Letter Menu [EAS MT CLEAR IN USE FLAG] Clear Letter Search In-Use flag [EAS MT LETTERS BG PRINT] Background print job for EAS MT Letters [EAS MT LETTERS BG SEARCH] Background search for MT Anniversary dates [EAS MT LETTERS EDIT] Edit Final Section of Letters [EAS MT LETTERS SEARCH] Search For MT Anniversary Dates [EAS MT PRINT MENU] Letters Print Menu [EAS MT PROHIBIT EDIT] Prohibit MT Letters Add/Edit [EAS MT REPORT OF CONTACT] Print Report of Contact [EAS MT REPRINT LETTERS] Reprint Letters by Processing Date [EAS MT REPRINT SINGLE LETTER] Reprint Single Letter [EAS MT RETURNED] Veteran MT Return Edit [EAS MT TEST LETTER] Print a Test Letter (EAS MT) Install Time - 5 MINUTES 1. LOAD TRANSPORT GLOBAL --------------------- Choose the PackMan message containing this patch and invoke the INSTALL/CHECK MESSAGE PackMan option. 2. DISABLE ROUTINE MAPPING (DSM for Open VMS sites only) ----------------------- Disable routine mapping on all systems for the routines listed in step 3 below. NOTE: If the routines included in this patch are not currently in your mapped routine set, please skip this step. 3. COMPONENTS SENT WITH PATCH ------------------------ The following is a list of the routines included in this patch. The second line of each of these routines now looks like: ;;1.0;ENROLLMENT APPLICATION SYSTEM;**[patch list]**;MAR 15,2001 CHECK^XTSUMBLD results Routine name Before Patch After Patch Patch List ============ ============ =========== ========== EASMTL1 7261553 6833005 3,12,20,54 EASMTL6 11283265 11288846 3,14,15,29,25 22,54 EASMTL6A 6024675 6056516 3,14,15,29,28 54 EASMTL8 5784758 5798475 3,54 EASMTUTL 8220967 8567485 3,14,15,29,22 54 Total number of routines - 5 4. START UP KIDS ------------- Start up the Kernel Installation and Distribution System Menu [XPD MAIN]: Edits and Distribution ... Utilities ... Installation ... Select Kernel Installation & Distribution System Option: INStallation --- Load a Distribution Print Transport Global Compare Transport Global to Current System Verify Checksums in Transport Global Install Package(s) Restart Install of Package(s) Unload a Distribution Backup a Transport Global Select Installation Option: 5. Select Installation Option: -------------------------- NOTE: The following are OPTIONAL - (When prompted for the INSTALL NAME, enter EAS*1.0*54): a. Backup a Transport Global - This option will create a backup message of any routines exported with this patch. It will not backup any other changes such as DD's or templates. b. Compare Transport Global to Current System - This option will allow you to view all changes that will be made when this patch is installed. It compares all components of this patch (routines, DD's, templates, etc.). c. Verify Checksums in Transport Global - This option will allow you to ensure the integrity of the routines that are in the transport global. 6. Select Installation Option: Install Package(s) ---------------- **This is the step to start the installation of this KIDS patch: a. Choose the Install Package(s) option to start the patch install. b. When prompted 'Want KIDS to INHIBIT LOGONs during the install? YES//' answer NO c. When prompted 'Want to DISABLE Scheduled Options, Menu Options, and Protocols? YES//' answer YES d. When prompted 'Enter options you wish to mark as 'Out Of Order':' Enter the following options: [EAS MT 0 DAY LETTER PRINT] Zero Day Letters Print [EAS MT 30 DAY LETTER PRINT] Thirty Day Letters Print [EAS MT 60 DAY LETTER PRINT] Sixty Day Letters Print [EAS MT AUTO LETTERS MENU] Automated Means Test Letter Menu [EAS MT CLEAR IN USE FLAG] Clear Letter Search In-Use flag [EAS MT LETTERS BG PRINT] Background print job for EAS MT Letters [EAS MT LETTERS BG SEARCH] Background search for MT Anniversary dates [EAS MT LETTERS EDIT] Edit Final Section of Letters [EAS MT LETTERS SEARCH] Search For MT Anniversary Dates [EAS MT PRINT MENU] Letters Print Menu [EAS MT PROHIBIT EDIT] Prohibit MT Letters Add/Edit [EAS MT REPORT OF CONTACT] Print Report of Contact [EAS MT REPRINT LETTERS] Reprint Letters by Processing Date [EAS MT REPRINT SINGLE LETTER] Reprint Single Letter [EAS MT RETURNED] Veteran MT Return Edit [EAS MT TEST LETTER] Print a Test Letter (EAS MT) e. When prompted 'Enter protocols you wish to mark as 'Out Of Order':' press . 7. REBUILD MAPPED ROUTINE(S) (DSM for Open VMS sites only) ------------------------- Optional - Include the routines distributed with this patch in the mapped routine set. NOTE: This step is only necessary if you performed step 2 or if you wish to include the routines in your mapped set. Routine Information: ==================== Routine Name: - EASMTL1 Original Code: . ; Anniversary date is processing date minus one year plus sixty days . ; Since this is intended as an interim solution, and that the date . ; conversion utilities only handle days, to stay within Y2K, 365 days . ; will be used to subtract one year. . ; . S EASDT("ANV")=$$FMADD^XLFDT(EASPRCDT,-305) ; Anv date: 365 days - 60 days Modified Code: . ; Anniversary date is processing date minus one year plus sixty days . ; . S EASDT("ANV")=$$FMADD^XLFDT($$SUBLEAP^EASMTUTL(EASPRCDT),60) ; Anv date: 1 Year - 60 days Routine Checksum: Routine Name: - EASMTL6 Original Code: S RSLT=1 Q:'$G(EATYP) S THRESH=$S(EATYP=1:60,EATYP=2:30,1:0) S MTDT=$$GET1^DIQ(713.2,EASIEN,3,"I") S ANVDT=$$FMADD^XLFDT(MTDT,365) S DIFF=$$FMDIFF^XLFDT(ANVDT,$$DT^XLFDT) I DIFF>THRESH S RSLT=0 Q RSLT Modified Code: S RSLT=1 Q:'$G(EATYP) S THRESH=$S(EATYP=1:60,EATYP=2:30,1:0) S MTDT=$$GET1^DIQ(713.2,EASIEN,3,"I") S ANVDT=$$ADDLEAP^EASMTUTL(MTDT) S DIFF=$$FMDIFF^XLFDT(ANVDT,$$DT^XLFDT) I DIFF>THRESH S RSLT=0 Q RSLT Routine Checksum: Routine Name: - EASMTL6A Original Code: ; S EASANV=$$GET1^DIQ(713.2,EASN,3,"I") W !!!!,?TAB,"MEANS TEST ANNIVERSARY DATE: ",$$FMTE^XLFDT($$FMADD^ XLFDT(EASANV,365)) ; ; W ! F S EALNE=$O(^EAS(713.3,EASLIEN,1,EALNE)) Q:'EALNE D . S LINE=^EAS(713.3,EASLIEN,1,EALNE,0) . I LINE["|ANNVDT|" W !?TAB,$P(LINE,"|ANNVDT|",1),$$FMTE^XLFDT( $$FMADD^XLFDT(EASANV,365)),$P(LINE,"|ANNVDT|",2) Q . W !?TAB,LINE ; Modified Code: ; S EASANV=$$GET1^DIQ(713.2,EASN,3,"I") W !!!!,?TAB,"MEANS TEST ANNIVERSARY DATE: ",$$FMTE^XLFDT($$ADDLEAP^ EASMTUTL(EASANV)) ; ; W ! F S EALNE=$O(^EAS(713.3,EASLIEN,1,EALNE)) Q:'EALNE D . S LINE=^EAS(713.3,EASLIEN,1,EALNE,0) . I LINE["|ANNVDT|" W !?TAB,$P(LINE,"|ANNVDT|",1),$$FMTE^XLFDT( $$ADDLEAP^EASMTUTL(EASANV)),$P(LINE,"|ANNVDT|",2) Q . W !?TAB,LINE ; Routine Checksum: Routine Name: - EASMTL8 Original Code: ; D HDR(.EASHDR) ; W !?5,"Means Test Anniversary Date: ",$$FMTE^XLFDT($$FMADD^XLFDT( EASANV,365),"D") ; Modified Code: ; D HDR(.EASHDR) ; W !?5,"Means Test Anniversary Date: ",$$FMTE^XLFDT($$ADDLEAP^EASMTUTL (EASANV),"D") ; Routine Checksum: Routine Name: - EASMTUTL Original Code: ZTEST ; D LETTER^EASMTL6A(EASIEN,EATYP) Q Modified Code: ZTEST ; D LETTER^EASMTL6A(EASIEN,EATYP) Q ADDLEAP(DATE) ; Adding a year with Leap Year checking ; Input: ; DATE - Date passed in. ; ; Output: ; Date passed in plus one year (with leap year ck/adj). ; N YEAR S YEAR=$E($$FMTHL7^XLFDT(DATE),1,4) I $E(DATE,4,7)="0229",'$$LEAP^XLFDT3(YEAR+1) D .S DATE=$$FMADD^XLFDT(DATE,-1) Q $E(DATE,1,3)+1_$E(DATE,4,7) ; SUBLEAP(DATE) ; Subtracting a year with Leap Year checking ; Input: ; DATE - Date passed in. ; ; Output: ; Date passed in minus one year (with leap year ck/adj). ; N YEAR S YEAR=$E($$FMTHL7^XLFDT(DATE),1,4) I $E(DATE,4,7)="0229",'$$LEAP^XLFDT3(YEAR-1) D .S DATE=$$FMADD^XLFDT(DATE,-1) Q $E(DATE,1,3)-1_$E(DATE,4,7) Routine Checksum: ============================================================================= User Information: Entered By : MULLER,RICHARD Date Entered : JUN 16, 2004 Completed By: HUA,PATRICK Date Completed: OCT 29, 2004 Released By : GROOMS,ANTHONY E Date Released : NOV 03, 2004 ============================================================================= Packman Mail Message: ===================== $END TXT