| [613] | 1 | PRCUFCU1 ;WISC/SJG-OBLIGATION CONVERSION UTILITIES CONT ;7/6/94  14:57
 | 
|---|
 | 2 |  ;;5.1;IFCAP;;Oct 20, 2000
 | 
|---|
 | 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
 | 4 |  ;
 | 
|---|
 | 5 |  QUIT
 | 
|---|
 | 6 |  ; No top level entry
 | 
|---|
 | 7 | DET ; Step 3 - Determine total amts on FMS lines
 | 
|---|
 | 8 |  ; Set in array PRCFA("BOCTOT")
 | 
|---|
 | 9 |  N LOOP3,LOOP4 S LOOP3=0
 | 
|---|
 | 10 |  F  S LOOP3=$O(^PRC(442,LOOP,22,"B",LOOP3)) Q:LOOP3=""!(LOOP3'>0)  D
 | 
|---|
 | 11 |  .S LOOP4=0 F  S LOOP4=$O(^PRC(442,LOOP,22,"B",LOOP3,LOOP4)) Q:LOOP4=""!(LOOP4'>0)  D
 | 
|---|
 | 12 |  ..S NODET=^PRC(442,LOOP,22,LOOP4,0)
 | 
|---|
 | 13 |  ..S BOC=$P(NODET,U),AMTTOT=$P(NODET,U,2),FMSLIN=$P(NODET,U,3)
 | 
|---|
 | 14 |  ..I FMSLIN=991&(AMTTOT=0) Q
 | 
|---|
 | 15 |  ..S PRCFA("BOCTOT",BOC,FMSLIN)=BOC_U_AMTTOT_U_FMSLIN_U_"I"
 | 
|---|
 | 16 |  ..K NODET,BOC,AMTTOT,FMSLIN
 | 
|---|
 | 17 |  ..Q
 | 
|---|
 | 18 |  .Q
 | 
|---|
 | 19 |  QUIT
 | 
|---|
 | 20 | RECD ; Step 4 - Calculate receiving line BOCS for FMS lines
 | 
|---|
 | 21 |  ; Set in array PRCFA("BOCREC")
 | 
|---|
 | 22 |  N LINE S LINE=0,PRCFA("LIQ")=0
 | 
|---|
 | 23 |  F  S LINE=$O(^PRC(442,LOOP,2,LINE)) Q:LINE=""!(LINE'>0)  D
 | 
|---|
 | 24 |  .S PRCFA("TEMP")=^(LINE,0)
 | 
|---|
 | 25 |  .S BOC=+$P(PRCFA("TEMP"),U,4)
 | 
|---|
 | 26 |  .I '$D(PRCFA("BOCREC",BOC)) S PRCFA("BOCREC",BOC)=BOC,$P(PRCFA("BOCREC",BOC),U,2)=0
 | 
|---|
 | 27 |  .I $D(^PRC(442,LOOP,2,LINE,3)) D
 | 
|---|
 | 28 |  ..K PRCFA("TEMP") S PRCFA("RECLINE")=0
 | 
|---|
 | 29 |  ..S RECLINE=0 F  S RECLINE=$O(^PRC(442,LOOP,2,LINE,3,RECLINE)) Q:RECLINE=""!(RECLINE'>0)  D
 | 
|---|
 | 30 |  ...S PRCFA("REC")=^(RECLINE,0)
 | 
|---|
 | 31 |  ...S RECAMT=$P(PRCFA("REC"),U,3)
 | 
|---|
 | 32 |  ...S PRCFA("RECLINE")=PRCFA("RECLINE")+RECAMT
 | 
|---|
 | 33 |  ...Q
 | 
|---|
 | 34 |  ..S TOTREC=$P(PRCFA("BOCREC",BOC),U,2),TOTREC=TOTREC+PRCFA("RECLINE")
 | 
|---|
 | 35 |  ..S $P(PRCFA("BOCREC",BOC),U,2)=TOTREC
 | 
|---|
 | 36 |  ..S PRCFA("LIQ")=PRCFA("LIQ")+PRCFA("RECLINE")
 | 
|---|
 | 37 |  ..K PRCFA("REC"),PRCFA("RECLINE"),RECAMT,BOC,TOTREC
 | 
|---|
 | 38 |  ..Q
 | 
|---|
 | 39 |  .K PRCFA("TEMP")
 | 
|---|
 | 40 |  .Q
 | 
|---|
 | 41 |  D ESH,SETA,SETB
 | 
|---|
 | 42 |  KILL RECAMT,RECLINE,LINE,BOC
 | 
|---|
 | 43 |  QUIT
 | 
|---|
 | 44 | ESH ; Estimated shipping/handling
 | 
|---|
 | 45 |  N ESHAMT,ESHBOC,ESHLIN
 | 
|---|
 | 46 |  D GENDIQ^PRCFFU7(442,LOOP,"13:13.05","IE","")
 | 
|---|
 | 47 |  S ESHAMT=$G(PRCTMP(442,LOOP,13,"I"))
 | 
|---|
 | 48 |  I ESHAMT]"" D  Q
 | 
|---|
 | 49 |  .N AMTREC
 | 
|---|
 | 50 |  .S ESHBOC=+$G(PRCTMP(442,LOOP,13.05,"I"))
 | 
|---|
 | 51 |  .I $P(PRCFA("MOD"),U)="M" S PRCFA("BOCREC",ESHBOC,991)=ESHBOC_U_ESHAMT
 | 
|---|
 | 52 |  .I $P(PRCFA("MOD"),U)="E" S PRCFA("BOCREC",ESHBOC,991)=ESHBOC_U_"0"
 | 
|---|
 | 53 |  .S PRCFA("LIQ")=PRCFA("LIQ")+ESHAMT
 | 
|---|
 | 54 |  .S PRCFA("BOCREC","ESH")=ESHBOC_U_ESHAMT_"^991^I"
 | 
|---|
 | 55 |  .Q
 | 
|---|
 | 56 | SETA ; 
 | 
|---|
 | 57 |  N LOOP5,LINE S LOOP5=0
 | 
|---|
 | 58 |  F  S LOOP5=$O(PRCFA("BOCTOT",LOOP5)) Q:LOOP5=""!(LOOP5'>0)  D
 | 
|---|
 | 59 |  .S LINE=0
 | 
|---|
 | 60 |  .S LINE=$O(PRCFA("BOCTOT",LOOP5,LINE))
 | 
|---|
 | 61 |  .S PRCFA("BOC",LOOP5,LINE)=LOOP5_U_U_LINE_U_"I"
 | 
|---|
 | 62 |  .Q
 | 
|---|
 | 63 |  QUIT
 | 
|---|
 | 64 | SETB ;
 | 
|---|
 | 65 |  N LOOP5,LINE S LOOP5=0
 | 
|---|
 | 66 |  F  S LOOP5=$O(PRCFA("BOCTOT",LOOP5)) Q:LOOP5=""!(LOOP5'>0)  D
 | 
|---|
 | 67 |  .S LINE=0
 | 
|---|
 | 68 |  .S LINE=$O(PRCFA("BOCTOT",LOOP5,LINE))
 | 
|---|
 | 69 |  .Q:LINE=991
 | 
|---|
 | 70 |  .S PRCFA("BOCREC",LOOP5,LINE)=PRCFA("BOCREC",LOOP5)
 | 
|---|
 | 71 |  .Q
 | 
|---|
 | 72 |  QUIT
 | 
|---|
 | 73 | CALC ; Step 5 - Calculate amts not yet received to be sent to FMS
 | 
|---|
 | 74 |  ; Set into array PRCFA("BOC")
 | 
|---|
 | 75 |  N ESHAMT,ESHBOC,ESHLIN
 | 
|---|
 | 76 |  I $D(PRCFA("BOCREC","ESH")) D
 | 
|---|
 | 77 |  .S ESHBOC=$P(PRCFA("BOCREC","ESH"),U),ESHAMT=$P(PRCFA("BOCREC","ESH"),U,2),ESHLIN=$P(PRCFA("BOCREC","ESH"),U,3)
 | 
|---|
 | 78 |  .Q
 | 
|---|
 | 79 |  N LOOP6 S LOOP6=0,PRCFCHG("BOC","TOT")=0
 | 
|---|
 | 80 |  F  S LOOP6=$O(PRCFA("BOCTOT",LOOP6)) Q:LOOP6=""!(LOOP6'>0)  D
 | 
|---|
 | 81 |  .S LOOP7=0
 | 
|---|
 | 82 |  .F  S LOOP7=$O(PRCFA("BOCTOT",LOOP6,LOOP7)) Q:LOOP7=""!(LOOP7'>0)  D
 | 
|---|
 | 83 |  ..S TOTAMT=$P(PRCFA("BOCTOT",LOOP6,LOOP7),U,2)
 | 
|---|
 | 84 |  ..S RECAMT=$P(PRCFA("BOCREC",LOOP6,LOOP7),U,2)
 | 
|---|
 | 85 |  ..S FMSAMT=TOTAMT-RECAMT
 | 
|---|
 | 86 |  ..I FMSAMT>0 D
 | 
|---|
 | 87 |  ...I $D(PRCFA("BOCREC","ESH")) I (ESHBOC=LOOP6)&(ESHAMT=RECAMT)&(ESHLIN=LOOP7) Q
 | 
|---|
 | 88 |  ...S PRCFCHG("BOC",LOOP6,LOOP7)=LOOP6_U_FMSAMT_U_LOOP7_"^I"
 | 
|---|
 | 89 |  ...S PRCFCHG("BOC","TOT")=PRCFCHG("BOC","TOT")+FMSAMT
 | 
|---|
 | 90 |  ...S $P(PRCFA("BOC",LOOP6,LOOP7),U,2)=FMSAMT
 | 
|---|
 | 91 |  ..Q
 | 
|---|
 | 92 |  S TOTAMT=PRCFCHG("BOC","TOT")
 | 
|---|
 | 93 |  D CLEAN
 | 
|---|
 | 94 |  KILL LOOP7,FMSAMT,RECAMT
 | 
|---|
 | 95 |  QUIT
 | 
|---|
 | 96 | CLEAN ; Clean up arrays
 | 
|---|
 | 97 |  I $D(PRCFA("BOCREC","ESH")),$P(PRCFA("MOD"),U)="M" D
 | 
|---|
 | 98 |  .N ESHBOC,ESHLIN
 | 
|---|
 | 99 |  .S ESHBOC=$P(PRCFA("BOCREC","ESH"),U)
 | 
|---|
 | 100 |  .S ESHLIN=$P(PRCFA("BOCREC","ESH"),U,3)
 | 
|---|
 | 101 |  .K PRCFA("BOCTOT",ESHBOC,ESHLIN)
 | 
|---|
 | 102 |  .K PRCFA("BOC",ESHBOC,ESHLIN)
 | 
|---|
 | 103 |  .K PRCFA("BOCREC",ESHBOC,ESHLIN)
 | 
|---|
 | 104 |  .K PRCFA("BOCREC","ESH")
 | 
|---|
 | 105 |  .Q
 | 
|---|
 | 106 |  N LOOP8,LOOP9,TMP S LOOP8=0
 | 
|---|
 | 107 |  F  S LOOP8=$O(PRCFA("BOC",LOOP8)) Q:LOOP8=""!(LOOP8'>0)  D
 | 
|---|
 | 108 |  .S LOOP9=0
 | 
|---|
 | 109 |  .F  S LOOP9=$O(PRCFA("BOC",LOOP8,LOOP9)) Q:LOOP9=""!(LOOP9'>0)  D
 | 
|---|
 | 110 |  ..S TMP=$P(PRCFA("BOC",LOOP8,LOOP9),U,2)
 | 
|---|
 | 111 |  ..I TMP="" D
 | 
|---|
 | 112 |  ...K PRCFA("BOC",LOOP8,LOOP9)
 | 
|---|
 | 113 |  ...K PRCFA("BOCREC",LOOP8)
 | 
|---|
 | 114 |  ...K PRCFA("BOCTOT",LOOP8,LOOP9)
 | 
|---|
 | 115 |  ...Q
 | 
|---|
 | 116 |  ..Q
 | 
|---|
 | 117 |  .Q
 | 
|---|
 | 118 |  QUIT
 | 
|---|