| 1 | PRCHSF2 ;WISC/DJM-UPDATES OR PLACES BOCS & AMOUNTS INTO PO FILE AFTER AMENDMENT ;2/23/95 1:12 PM
|
---|
| 2 | V ;;5.1;IFCAP;;Oct 20, 2000
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | ;CONTINUATION OF 'PRCHSF1'
|
---|
| 5 | DUPS ;CREAT ARRAY TO PREVENT DUPLICATES FROM BOC MULTIPLE IN CHANGES
|
---|
| 6 | ;MULTIPLE.
|
---|
| 7 | S C1=0 K ^TMP($J)
|
---|
| 8 | F S C1=$O(^PRC(442,PRCHPO,6,PRCHAM,3,C1)) Q:C1'>0 D
|
---|
| 9 | .S C2=$G(^PRC(442,PRCHPO,6,PRCHAM,3,C1,0)) Q:C2=""
|
---|
| 10 | .S RECORD=$P(C2,U,4)
|
---|
| 11 | .S FF=$P(C2,U,3)
|
---|
| 12 | .S ^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,C1)=""
|
---|
| 13 | .Q
|
---|
| 14 | CHANGES ;ANY DIFFERENCES IN THE BOC MULTIPLE NEED TO BE ADDED INTO 'CHANGES'
|
---|
| 15 | S BOC=0 S:$D(DA(1)) PRCHDA1=DA(1) S PRCHDA=DA
|
---|
| 16 | F S BOC=$O(^PRC(442,PRCHPO,22,BOC)) Q:BOC'>0 S OBOC=0 D
|
---|
| 17 | .S BOC1=$G(^PRC(442,PRCHPO,22,BOC,0))
|
---|
| 18 | .S DA(2)=PRCHPO,DA(1)=PRCHAM,LINO=$P(BOC1,U,3)
|
---|
| 19 | C0 .I LINO=991 S OBOC=$G(^PRC(443.6,PRCHPO,22,BOC,0))
|
---|
| 20 | .I LINO'=991 S OBOC=$O(^PRC(443.6,PRCHPO,22,"B",+$P(BOC1,U),OBOC))
|
---|
| 21 | .I OBOC=""!(LINO=991) D Q
|
---|
| 22 | ..S RECORD=BOC
|
---|
| 23 | ..S FF=".01;442.041:41"
|
---|
| 24 | ..S C1=$O(^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,0)) G:C1>0 CX
|
---|
| 25 | ..S OLD=$S(LINO=991:$P(OBOC,U),1:0)
|
---|
| 26 | ..I LINO=991,OLD=$P(BOC1,U) G CX
|
---|
| 27 | ..S NEXT=$G(^PRC(442,PRCHPO,6,PRCHAM,3,0)),NEXT=$P(NEXT,U,3)
|
---|
| 28 | C1 ..S NEXT=NEXT+1,TEST=$G(^PRC(442,PRCHPO,6,PRCHAM,3,NEXT,0)) G:TEST]"" C1
|
---|
| 29 | ..K DD,DO,DR S X=NEXT,DIC="^PRC(442,"_DA(2)_",6,"_DA(1)_",3,",DIC(0)="L" D FILE^DICN Q:+Y'>0 S DA=+Y,DIE=DIC
|
---|
| 30 | ..S DR="2////^S X=FF;3///^S X=OLD;4///^S X=RECORD"
|
---|
| 31 | ..D ^DIE
|
---|
| 32 | ..S ^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,DA)=""
|
---|
| 33 | CX ..S NEXT=$G(^PRC(442,PRCHPO,6,PRCHAM,3,0)),NEXT=$P(NEXT,U,3)
|
---|
| 34 | ..S FF="1;442.041:41"
|
---|
| 35 | ..S RECORD=BOC
|
---|
| 36 | ..S C1=$O(^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,0)) G:C1>0 CY
|
---|
| 37 | ..S OLD=$S(LINO=991:$P(OBOC,U,2),1:0)
|
---|
| 38 | ..I LINO=991,OLD=$P(BOC1,U,2) G CY
|
---|
| 39 | C1A ..S NEXT=NEXT+1,TEST=$G(^PRC(442,PRCHPO,6,PRCHAM,3,NEXT,0)) G:TEST]"" C1A
|
---|
| 40 | ..K DD,DO,DR S X=NEXT,DIC="^PRC(442,"_DA(2)_",6,"_DA(1)_",3,",DIC(0)="L" D FILE^DICN Q:+Y'>0 S DA=+Y,DIE=DIC
|
---|
| 41 | ..S DR="2////^S X=FF;3///^S X=OLD;4///^S X=RECORD"
|
---|
| 42 | ..D ^DIE
|
---|
| 43 | ..S ^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,DA)=""
|
---|
| 44 | CY ..S NEXT=$G(^PRC(442,PRCHPO,6,PRCHAM,3,0)),NEXT=$P(NEXT,U,3)
|
---|
| 45 | ..Q:LINO=991
|
---|
| 46 | ..S RECORD=BOC
|
---|
| 47 | ..S FF="2;442.041:41"
|
---|
| 48 | ..S C1=$O(^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,0)) Q:C1>0
|
---|
| 49 | C1B ..S NEXT=NEXT+1,TEST=$G(^PRC(442,PRCHPO,6,PRCHAM,3,NEXT,0)) G:TEST]"" C1B
|
---|
| 50 | ..K DD,DO,DR S X=NEXT,DIC="^PRC(442,"_DA(2)_",6,"_DA(1)_",3,",DIC(0)="L" D FILE^DICN Q:+Y'>0 S DA=+Y
|
---|
| 51 | ..S OLD=0,DIE=DIC
|
---|
| 52 | ..S DR="2////^S X=FF;3///^S X=OLD;4///^S X=RECORD"
|
---|
| 53 | ..D ^DIE
|
---|
| 54 | ..S ^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,DA)=""
|
---|
| 55 | ..Q
|
---|
| 56 | CZ .S OBOC1=$G(^PRC(443.6,PRCHPO,22,OBOC,0)),OLINO=$P(OBOC1,U,3) G:OLINO'=LINO C0
|
---|
| 57 | .S OLD=$P(OBOC1,U,2),FF="1;442.041:41",RECORD=BOC Q:OLD=$P(BOC1,U,2)
|
---|
| 58 | .S C1=$O(^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,0)) Q:C1>0
|
---|
| 59 | .S NEXT=$G(^PRC(442,PRCHPO,6,PRCHAM,3,0)),NEXT=$P(NEXT,U,3)
|
---|
| 60 | C2 .S NEXT=NEXT+1,TEST=$G(^PRC(442,PRCHPO,6,PRCHAM,3,NEXT,0)) G:TEST]"" C2
|
---|
| 61 | .K DD,DO,DR S X=NEXT,DIC="^PRC(442,"_DA(2)_",6,"_DA(1)_",3,",DIC(0)="L" D FILE^DICN Q:+Y'>0 S DA=+Y,DIE=DIC
|
---|
| 62 | .S DR="2////^S X=FF;3///^S X=OLD;4///^S X=RECORD"
|
---|
| 63 | .D ^DIE
|
---|
| 64 | .S ^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,DA)=""
|
---|
| 65 | .Q
|
---|
| 66 | ;LOOP THROUGH AGAIN, CHECKING FOR BOC AMOUNT = 0
|
---|
| 67 | S BOC=0 F S BOC=$O(^PRC(442,PRCHPO,22,BOC)) Q:BOC'>0 D
|
---|
| 68 | .S BOC1=$G(^PRC(442,PRCHPO,22,BOC,0)),AMNT=$P(BOC1,U,2),FMSNO=$P(BOC1,U,3)
|
---|
| 69 | .I AMNT=0 D
|
---|
| 70 | ..S OBOC=$O(^PRC(443.6,PRCHPO,22,"B",+$P(BOC1,U),0)) Q:OBOC'>0
|
---|
| 71 | ..S OBOC1=$G(^PRC(443.6,PRCHPO,22,OBOC,0))
|
---|
| 72 | ..S OLD=$P(OBOC1,U,2),FF="1;442.041:41",RECORD=BOC
|
---|
| 73 | ..Q:OLD=AMNT
|
---|
| 74 | ..S C1=$O(^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,0)) Q:C1>0
|
---|
| 75 | ..S NEXT=$G(^PRC(442,PRCHPO,6,PRCHAM,3,0)),NEXT=$P(NEXT,U,3)
|
---|
| 76 | C3 ..S NEXT=NEXT+1,TEST=$G(^PRC(442,PRCHPO,6,PRCHAM,3,NEXT,0)) G:TEST]"" C3
|
---|
| 77 | ..K DD,DO,DR S X=NEXT,DIC="^PRC(442,"_DA(2)_",6,"_DA(1)_",3,",DIC(0)="L" D FILE^DICN Q:+Y'>0 S DA=+Y
|
---|
| 78 | ..S DIE=DIC,DR="2////^S X=FF;3///^S X=OLD;4///^S X=RECORD"
|
---|
| 79 | ..D ^DIE
|
---|
| 80 | ..S ^TMP($J,"SF1",PRCHPO,PRCHAM,FF,RECORD,DA)=""
|
---|
| 81 | ..Q
|
---|
| 82 | .Q
|
---|
| 83 | ;
|
---|
| 84 | Q L -^PRC(442,PRCHPO) K PRCHS,I,J,CNT,CTR,M,PTM
|
---|
| 85 | K ^TMP($J)
|
---|
| 86 | S:$D(PRCHDA1) DA(1)=PRCHDA1 S DA=PRCHDA K PRCHDA1,PRCHDA
|
---|
| 87 | Q
|
---|