| [613] | 1 | PRCFOOR2 ;WISC@ALTOONA/CTB-UPDATE FCP BALANCES ;9/29/94  8:41 AM
 | 
|---|
 | 2 | V ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;PROGRAM TO UPDATE BALANCES FROM AUSTIN
 | 
|---|
 | 5 |  ;READ MESSAGE INTO FILE 420.97
 | 
|---|
 | 6 |  ;PROCESS EXISTING CONTROL POINTS USING 420.99 AS SOURCE
 | 
|---|
 | 7 |  ;BUILDING LIST OF EXCEPTIONS ON THE FLY ^TMP("NOT IN AUSTIN",SITE,CP)
 | 
|---|
 | 8 |  ;BUILD LIST OF CP FROM AUSTIN NOT FOUND IN 420.99 ^TMP("NOT IN IFCAP,SITE,CP)
 | 
|---|
 | 9 |  ;PRINT EXCEPTION LISTS
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 |  ;READ MESSAGE HEADER
 | 
|---|
 | 12 |  Q:'$D(PRCDA)
 | 
|---|
 | 13 |  S OUT=0,(FCP,SITE)=""
 | 
|---|
 | 14 |  D NOW^%DTC S RDATE=%,XDA=PRCDA
 | 
|---|
 | 15 |  S NODE=$G(^PRCF(423.6,XDA,1,10000,0)) I NODE="" D ERRMSG(4) QUIT
 | 
|---|
 | 16 |  ; 1,2 is this the right type of transaction
 | 
|---|
 | 17 |  S CHECK=$P(NODE,"^",3) I CHECK'["IFC" D ERRMSG(1) QUIT
 | 
|---|
 | 18 |  S CHECK=$P(NODE,"^",5) I CHECK'["CCP" D ERRMSG(2) QUIT
 | 
|---|
 | 19 |  ; 3 is site correct
 | 
|---|
 | 20 |  S SITE=$P(NODE,"^",4) I SITE="" D ERRMSG(3) QUIT
 | 
|---|
 | 21 |  I '$D(^PRC(420,SITE)) D ERRMSG(3) QUIT
 | 
|---|
 | 22 |  ;MOVE MESSAGE INTO 420.97
 | 
|---|
 | 23 |  S LINE=10000 F  S LINE=$O(^PRCF(423.6,XDA,1,LINE)) Q:'LINE  I $D(^(LINE,0)),$E(^(0))'="{" D FILE(XDA,LINE)
 | 
|---|
 | 24 |  ;VALIDATE DATA, PROCESS UPDATE ADJUSTMENTS
 | 
|---|
 | 25 |  S DA=0 F  S DA=$O(^PRCU(420.97,DA)) Q:'DA  D UPDATE(DA)
 | 
|---|
 | 26 |  S NEXT="" F  S NEXT=$O(^PRCU(420.99,"AB",NEXT)) Q:NEXT=""  I '$D(^PRCU(420.97,"B",NEXT)) D ADDERR(3,$P(NEXT,"-"),$P(NEXT,"-",2))
 | 
|---|
 | 27 |  D FCPBULL^PRCFOOR4(PRCDA)
 | 
|---|
 | 28 |  QUIT
 | 
|---|
 | 29 | REPORT ;GENERATE REPORTS OF CCP MESSAGES
 | 
|---|
 | 30 |  S DIC="^PRCU(420.99,",L=0,(BY,FLDS)="[PRCF FMS ADJUSTMENTS]" D EN1^DIP
 | 
|---|
 | 31 |  S DIC="^PRCU(420.98,",L=0,(BY,FLDS)="[PRCF FMS ADJUSTMENTS]" D EN1^DIP
 | 
|---|
 | 32 |  QUIT
 | 
|---|
 | 33 | ERRMSG(X) S X=$P($T(MSG+X),";",3,99) D MSG^PRCFQ W ! QUIT
 | 
|---|
 | 34 | MSG ;
 | 
|---|
 | 35 |  ;;Invalid Message Destination
 | 
|---|
 | 36 |  ;;Invalid Message Type/Segment
 | 
|---|
 | 37 |  ;;Station Number is Missing from Message
 | 
|---|
 | 38 |  ;;Message Contains No Data Lines
 | 
|---|
 | 39 |  ;;Unable to extract Fund Control Point from Data line
 | 
|---|
 | 40 | FILE(XDA,LINE) ;  check each transmission line sent and file in 420.97
 | 
|---|
 | 41 |  NEW BBFY,FUND,AO,ACC,NODE,BALANCE,OUT,FCP,VIFCAPCP,VSNAPCP,SNAPDA,SNAPSHOT,VARIANCE
 | 
|---|
 | 42 |  S NODE=$G(^PRCF(423.6,XDA,1,LINE,0))
 | 
|---|
 | 43 |  I $E(NODE)="{" S DONE="" QUIT
 | 
|---|
 | 44 |  S BALANCE=$P(NODE,"^",12)
 | 
|---|
 | 45 |  ;  4  was data sent in the transmission
 | 
|---|
 | 46 |  I '$D(^PRCF(423.6,XDA,1,LINE,0)) D ERRMSG(4) Q
 | 
|---|
 | 47 |  S SITE=$P(NODE,"^",6),FCP=$P(NODE,"^",11)
 | 
|---|
 | 48 |  IF SITE=""!(FCP="") QUIT  ;
 | 
|---|
 | 49 |  S BBFY=$P(NODE,"^",2),FUND=$P(NODE,"^",4),AO=$P(NODE,"^",5),ACC=$P(NODE,"^",8)
 | 
|---|
 | 50 |  S STRIP=SITE_","_BBFY_","_FUND_","_AO_","_ACC
 | 
|---|
 | 51 |  D ADD(SITE,FCP,BALANCE,STRIP)
 | 
|---|
 | 52 |  QUIT
 | 
|---|
 | 53 | ADD(SITE,FCP,BAL,STRIP) ;
 | 
|---|
 | 54 |  NEW DIC,DIE,X,Y,DA,DR,DLAYGO
 | 
|---|
 | 55 |  S (DIC,DLAYGO)=420.97,DIC(0)="LNX",X=SITE_"-"_+FCP D ^DIC
 | 
|---|
 | 56 |  S DA=+Y,DIE=DIC
 | 
|---|
 | 57 |  S DR="1///"_SITE_";2///"_STRIP_";3////"_BAL S:FCP]"" DR=DR_";2.5///"_FCP
 | 
|---|
 | 58 |  D ^DIE
 | 
|---|
 | 59 |  QUIT
 | 
|---|
 | 60 | UPDATE(DA) ;
 | 
|---|
 | 61 |  NEW RECORD,SITE,FCP,BAL
 | 
|---|
 | 62 |  S RECORD=^PRCU(420.97,DA,0)
 | 
|---|
 | 63 |  S SITE=$P(RECORD,"^",2),FCP=$P(RECORD,"^",5),BAL=$P(RECORD,"^",4)
 | 
|---|
 | 64 |  S VIFCAPCP=$$VALIDCP(SITE,FCP)
 | 
|---|
 | 65 |  S VSNAPCP=0 I $D(^PRCU(420.99,"AB",SITE_"-"_+FCP)) S VSNAPCP=1
 | 
|---|
 | 66 |  S SNAPDA=$O(^PRCU(420.99,"AB",SITE_"-"_+FCP,0))
 | 
|---|
 | 67 |  I 'VIFCAPCP D ADDERR(1,SITE,FCP) QUIT  ;FMS CP NOT IN IFCAP
 | 
|---|
 | 68 |  I 'VSNAPCP D ADDERR(2,SITE,FCP) QUIT  ;FMS CP NOT IN SNAPSHOT FILE
 | 
|---|
 | 69 |  S SNAPSHOT=$P(^PRCU(420.99,SNAPDA,0),"^",3),ID=$P(^(0),"^"),DONE=$P(^(0),"^",10)
 | 
|---|
 | 70 |  I DONE D ADDERR(4,SITE,FCP) QUIT  ;ALREADY ADJUSTED
 | 
|---|
 | 71 |  S VARIANCE=SNAPSHOT-BAL
 | 
|---|
 | 72 |  D CONV^PRCSREC2(ID,VARIANCE,"FMS FCP CONVERSION ADJUSTMENT")
 | 
|---|
 | 73 |  S $P(^PRCU(420.99,SNAPDA,0),"^",8,10)=BAL_"^"_VARIANCE_"^1"
 | 
|---|
 | 74 |  QUIT
 | 
|---|
 | 75 | ADDERR(A,B,C) NEW DIC,DIE,X,Y,DA,DR,DLAYGO
 | 
|---|
 | 76 |  S (DIC,DLAYGO)=420.98,DIC(0)="LN",X="+" D ^DIC
 | 
|---|
 | 77 |  S DIE=DIC,DR="1////"_B_";2////"_A_";3////"_C,DA=+Y D ^DIE
 | 
|---|
 | 78 |  QUIT
 | 
|---|
 | 79 | VALIDCP(SITE,CP) ;VALIDATE FUND CONTROL POINT NUMBER
 | 
|---|
 | 80 |  I $D(^PRC(420,+SITE,1,+CP,0)) Q 1
 | 
|---|
 | 81 |  Q 0
 | 
|---|
 | 82 | NEXT ;
 | 
|---|
 | 83 |  I $E(X)'="+" Q
 | 
|---|
 | 84 |  N A
 | 
|---|
 | 85 |  S A="S X=$P("_DIC_"0),U,3)" X A S A="S X=X+1 L +"_DIC_"0)" F  X A Q:'$D(@(DIC_X_")"))  L @("-"_DIC_"0)")
 | 
|---|
 | 86 |  I X=+X S DINUM=X QUIT
 | 
|---|
 | 87 |  S X="" QUIT
 | 
|---|