Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRSXP105

PRSXP105.m

Go to the documentation of this file.
PRSXP105 ;WCIOFO/RRG-CORRECT VCS ALLOTMENT ;11/18/2005
 ;;4.0;PAID;**105**;Sep 21, 1995
 ;
 ;
 Q
 ;
 ;
READ ; This module will run as a post install for *105
 ; It will update the read access value and the 
 ; 'Date Last Updated' for 4 fields in #450
 ; 
 F I=758,759,760,761 S ^DD(450,I,8)="FP",^DD(450,I,"DT")=DT
 Q
 ;
 ;
 ; The remainder of this program will correct the formatting
 ;  for the following fields:
 ;
 ; PAID EMPLOYEE (#450)
 ;   #586.1 - VCS ALLOTMENT AMT
 ;
 ; PAID PAYRUN DATA (#459)
 ;   #171 - VCS ALLOTMENT AMT
 ;
DEVICE ;Ask device or queue
 ;
 ;
 W ! K IOP,%ZIS
 S %ZIS("A")="Select Device: ",%ZIS="MQ"
 D ^%ZIS K %ZIS,IOP
 Q:POP
 ;
 I $D(IO("Q")) D  Q
 . S PRSAPGM="START^PRSXP105",XQY0="CORRECT VCS ALLOTTMENT FIELDS",PRSALST=""
 . D QUE^PRSAUTL
 . K PRSAPGM,XQY0,PRSALST,POP
 ;
 ;
START ; Main Driver
 ;
 D 450
 D 459
 I $D(^TMP($J,"LOCKED","P105")) D WARN
 Q
 ;
450 ; Correct data in the PAID EMPLOYEE (#450) file
 ;
 N CNT,DA,DATA,DIE,DR,EMP,LCNT,LINE,LINE2,MESS,MSG,MSG1,LKCNT
 N NAME,PVAL,STANUM,STATUS,TIME,TNAME,U,UCIX,FILE
 S U="^",LCNT=1,$P(LINE,"-",80)="",$P(LINE2,"=",80)="",STATUS="OK"
 K ^TMP($J)
 S MESS="PAID EMPLOYEE (#450)",MSG1=" beginning at "
 D TIME
 D STAUCI
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S MESS="Correcting the VCS ALLOTMENT AMT (#586.1) field."
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)=LINE2,LCNT=LCNT+1
 S MESS="                            CURRENT    CORRECTED"
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 S MESS="PAID EMPLOYEE (#450)          VALUE    VALUE"
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)=LINE,LCNT=LCNT+1
 ;
 ;
 S (EMP,CNT)=0,LKCNT=1,FILE=450
 F  S EMP=$O(^PRSPC(EMP)) Q:'EMP  D
 . S DATA=$$GET1^DIQ(450,EMP,586.1)
 . Q:DATA=""  ; Quit if they don't have any VCS Allotment
 . ; Quit if the value has already been formatted by another download
 . Q:DATA["."
 . D NAME
 . L +^PRSPC(EMP):0
 . I '$T D LOCKED  Q
 . S PVAL=DATA ; Previous value
 . D DD^PRSDUTIL
 . S DR="586.1///^S X=DATA",DA=EMP,DIE=450
 . D ^DIE
 . L -^PRSPC(EMP)
 . S CNT=CNT+1
 . S MESS=NAME,$E(MESS,31,35)=PVAL,$E(MESS,40,46)=DATA
 . S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)=LINE,LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S MESS=$S(CNT>0:CNT_" employee(s) corrected.",1:"No records to correct")
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 I STATUS="Check" D
 . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)=LKCNT_" Employee record(s) were locked."
 . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S MESS="PAID EMPLOYEE (#450)",MSG1=" ending at "
 D TIME
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S STATUS="OK",MSG=MSG_"450 "_STATUS
 D XMT
 Q
 ;
 ;
459 ; Correct data in the PAID PAYRUN DATA (#459) file
 ;
 N CNT,DATA,EMP,I,IENS,LCNT,LINE,MESS,MSG
 N NAME,PPE,PPI,PPIEN,PRSFDA,PVAL,STANUM,STATUS,TIME,TNAME,U,UCIX,FILE
 S U="^",LCNT=1,$P(LINE,"-",80)="",$P(LINE2,"=",80)="",STATUS="OK",FILE=459
 K ^TMP($J,"P105")
 S MESS="PAID PAYRUN DATA (#459)",MSG1=" beginning at "
 D TIME
 D STAUCI
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S MESS="Correcting the VCS ALLOTMENT AMT (#171) field of the"
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 S MESS="EMPLOYEE (#459.01) multiple."
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S PPI="03-10"
 F  S PPIEN="",PPI=$O(^PRST(459,"B",PPI)) Q:'PPI!(PPI>"07-20")  D
 . S PPIEN=$O(^PRST(459,"B",PPI,0)) Q:'PPIEN
 . S PPE=$P(^PRST(459,PPIEN,0),"^")
 . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)="Pay Period "_PPE,LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)=LINE2,LCNT=LCNT+1
 . S MESS="                             CURRENT   CORRECTED"
 . S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 . S MESS="PAID PAYRUN DATA (#459)        VALUE   VALUE"
 . S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)=LINE,LCNT=LCNT+1
 . S (CNT,EMP)=0
 . F  S EMP=$O(^PRST(459,PPIEN,"P",EMP)) Q:'EMP  D
 . . S IENS=EMP_","_PPIEN_","
 . . S DATA=$$GET1^DIQ(459.01,IENS,171)
 . . Q:DATA=""  ; Quit if they don't have any VCS Allotment
 . . ; Quit if the value has already been formatted by another download
 . . Q:DATA["."
 . . D NAME
 . . L +^PRST(459,PPIEN,"P",EMP):0
 . . I '$T D LOCKED Q
 . . S PVAL=DATA
 . . D DD^PRSDUTIL
 . . S IENS=EMP_","_PPIEN_",",PRSFDA(459.01,IENS,171)=DATA
 . . D FILE^DIE("","PRSFDA") ; Correct data
 . . S CNT=CNT+1
 . . L -^PRST(459,PPIEN,"P",EMP)
 . . S $E(NAME,1,$L(TNAME))=TNAME,$E(NAME,31,35)=PVAL,$E(NAME,40,46)=DATA
 . . S ^TMP($J,"P105",LCNT)=NAME,LCNT=LCNT+1
 . S MESS=$S(CNT>0:CNT_" employee(s) corrected.",1:"No records to correct")
 . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 . I STATUS="Check" D
 . . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 . . S ^TMP($J,"P105",LCNT)=LKCNT_" Employee record(s) were locked."
 . . S ^TMP($J,"P105",LCNT)="",LCNT=LCNT+1
 S MESS="PAID PAYRUN DATA (#459)",MSG1=" ending at "
 D TIME
 S STATUS="OK",MSG=MSG_"459 "_STATUS
 D XMT
 Q
 ;
XMT ; Send status via mail message
 ;
 I $D(^TMP($J,"P105")) D
 . N DIFROM,XMDUZ,XMSUB,XMTEXT,XMY
 . S XMDUZ=.5
 . S XMSUB=MSG
 . S XMTEXT="^TMP($J,""P105"","
 . S XMY(DUZ)=""
 . S XMY("G.PAD@"_^XMB("NETNAME"))=""
 . D ^XMD
 ;
 K ^TMP($J,"P105"),Y,%
 Q
 ;
TIME ; Get current Time
 ;
 D NOW^%DTC
 S Y=%
 D DD^%DT
 S TIME=Y
 S MESS=MESS_" clean up routine"_MSG1_TIME_"."
 S ^TMP($J,"P105",LCNT)=MESS,LCNT=LCNT+1
 Q
 ;
 ; Get Station Number
 ;
STAUCI S STANUM=$$KSP^XUPARAM("INST")_","
 S STANUM=$$GET1^DIQ(4,STANUM,99)
 S MSG=STANUM_" - "
 ;
 ; Check for UCI,VOL
 ;
 X ^%ZOSF("UCI")
 S UCIX=$G(Y)
 I UCIX="" S UCIX="??????"
 S MSG=MSG_UCIX_" - "
 Q
 ;
NAME ; Format name
 ;
 S NAME="",$P(NAME," ",30)=""
 S TNAME=$$GET1^DIQ(450,EMP,.01)
 I TNAME="" S TNAME=EMP
 S $E(NAME,1,$L(TNAME))=TNAME
 Q
 ;
LOCKED ; Message for locked records
 ;
 S MESS=NAME_" record was locked in file # "_FILE
 S ^TMP($J,"LOCKED","P105",LKCNT)=MESS,LKCNT=LKCNT+1
 S STATUS="Check"
 Q
 ;
WARN ; Warning message if records were locked
 ;
 S ^TMP($J,"LOCKED","P105",LKCNT)="",LKCNT=LKCNT+1
 S ^TMP($J,"LOCKED","P105",LKCNT)="These records were locked.",LKCNT=LKCNT+1
 S ^TMP($J,"LOCKED","P105",LKCNT)="Contact NVS @ 888-596-4357",LKCNT=LKCNT+1
 ;
 I $D(^TMP($J,"LOCKED","P105")) D
 . N DIFROM,XMDUZ,XMSUB,XMTEXT,XMY
 . S XMDUZ=.5
 . S XMSUB="Locked records - PRS*4*105"
 . S XMTEXT="^TMP($J,""LOCKED"",""P105"","
 . S XMY(DUZ)=""
 . S XMY("G.PAD@"_^XMB("NETNAME"))=""
 . D ^XMD
 ;
 K ^TMP($J,"LOCKED","P105"),Y,%
 Q
 ;