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
|
---|