| 1 | PRCOE2 ;WISC/DJM-IFCAP SEGMENTS IT,DE ;12/26/02  18:18
 | 
|---|
| 2 | V ;;5.1;IFCAP;**63**;Oct 20, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;;
 | 
|---|
| 5 |  ;;THIS ROUTINE AT THE 'IT' ENTRY POINT CREATES ONE 'IT' SEGMENTS FOR EACH
 | 
|---|
| 6 |  ;;ITEM IN THE P.O. TRANSACTION.  IT ALSO CREATES ALL THE 'DE' SEGMENTS
 | 
|---|
| 7 |  ;;NEEDED FOR EACH 'IT' SEGMENT.  THE LAST THING DONE IN THIS ROUTINE IS
 | 
|---|
| 8 |  ;;TO UPDATE THE 'HE' SEGMENT AT FIELD NAME 'LINE COUNT' TO REFLECT THE
 | 
|---|
| 9 |  ;;NUMBER OF 'IT' SEGMENTS IN THIS TRANSACTION.
 | 
|---|
| 10 |  ;;
 | 
|---|
| 11 |  ;;THIS ROUTINE CREATES THE 'COMMENTS' SEGMENT AT THE 'CO' ENTRY POINT.
 | 
|---|
| 12 |  ;;ADDITIONALLY, THE 'HE' SEGMENT AT THE FIELD NAME 'COMMENT COUNT' IS
 | 
|---|
| 13 |  ;;UPDATED TO REFLECT THE NUMBER OF 'CO' SEGMENTS CREATED.
 | 
|---|
| 14 |  ;;
 | 
|---|
| 15 | IT(VAR1,VAR2,TOTAL) ;ITEMS INFORMATION SEGMENT
 | 
|---|
| 16 |  N AZ,B,C,CN,DC,DE,DELDT,DIS,DIWF,DIWL,DIWR,FOBPOINT,FSC,HAZM,I0,I2
 | 
|---|
| 17 |  N I4,INC,INN,ITEM,ITEMCNT,J,LI,LIN,LOT,LPRC,LPRC1,M,MPN,MPNO,N,N1L
 | 
|---|
| 18 |  N NSN,UC,UNIT,UP,UPN,VPN,X,TD,SKU,SKUF,SERNO,SEQU,SCH
 | 
|---|
| 19 |  N SCHX,RP,PDA,OS,OT,IT,ICNT
 | 
|---|
| 20 |  S (ITEM,ITEMCNT)=0
 | 
|---|
| 21 |  S OS=$P($G(^PRC(442,VAR1,7)),"^",1)+0 ; order status
 | 
|---|
| 22 |  S TOTAL=$P($G(^PRC(442,VAR1,2,0)),U,4)+7
 | 
|---|
| 23 |  F  S ITEM=$O(^PRC(442,VAR1,2,ITEM)) Q:ITEM'>0  S ITEMCNT=ITEMCNT+1 D  Q:VAR2]""
 | 
|---|
| 24 |  .S I0=$G(^PRC(442,VAR1,2,ITEM,0))
 | 
|---|
| 25 |  .S I2=$G(^PRC(442,VAR1,2,ITEM,2))
 | 
|---|
| 26 |  .I I2="" S VAR2="NI2N^"_ITEM Q
 | 
|---|
| 27 |  .S I4=$G(^PRC(442,VAR1,2,ITEM,4))
 | 
|---|
| 28 |  .S NSN=$P(I0,U,13)
 | 
|---|
| 29 |  .S FSC=$P(I2,U,3)
 | 
|---|
| 30 |  .S FSC=$S(FSC]"":$P($G(^PRC(441.2,FSC,0)),U),1:"")
 | 
|---|
| 31 |  .S NSN=$S(NSN]"":NSN,1:FSC)
 | 
|---|
| 32 |  .S B="IT^"_$P(I0,U)_"^"_NSN_"^" ; FIELDS 1, 2, 3
 | 
|---|
| 33 |  .S RP=$P(I0,U,5)
 | 
|---|
| 34 |  .S INN=""
 | 
|---|
| 35 |  .S:RP>0 INN=$G(^PRC(441,RP,0))
 | 
|---|
| 36 |  .S INC=$P(INN,U,12)
 | 
|---|
| 37 |  .I $P(I0,U,13)="",INC="" S INC=77777
 | 
|---|
| 38 |  .S B=B_INC_"^" ; FIELD 4
 | 
|---|
| 39 |  .S VPN=$P(I0,U,6)
 | 
|---|
| 40 |  .S:$E(VPN,1)="#" VPN=$E(VPN,2,99)
 | 
|---|
| 41 |  .S B=B_VPN_"^" ; FIELD 5
 | 
|---|
| 42 |  .;
 | 
|---|
| 43 | IT0 .S MPN=$S(RP>0:$G(^PRC(441,RP,3)),1:"")
 | 
|---|
| 44 |  .I MPN="" S B=B_"^" G IT1 ; FIELD 6 - CONDITION 1
 | 
|---|
| 45 |  .S MPNO=$P(MPN,U,5)
 | 
|---|
| 46 |  .S:$E(MPNO,1)="#" MPNO=$E(MPNO,2,99)
 | 
|---|
| 47 |  .S B=B_MPNO_"^" ; FIELD 6 - CONDITION 2
 | 
|---|
| 48 |  .;
 | 
|---|
| 49 | IT1 .S N=$P(I0,U,15)
 | 
|---|
| 50 |  .I N]"" S N=$TR($P(N,"-",1,3),"-")
 | 
|---|
| 51 |  .S B=B_N_"^" ; FIELD 7 (NDC)
 | 
|---|
| 52 |  .;
 | 
|---|
| 53 |  .S Q=$P(I0,U,2)
 | 
|---|
| 54 |  .I OS=45 S Q=0 ; zero for cancelled orders
 | 
|---|
| 55 |  .I Q="" S VAR2="NQTY^"_$P(I0,U) Q
 | 
|---|
| 56 |  .S Q=Q\1+(Q#1>0)_"00"
 | 
|---|
| 57 |  .S B=B_Q_"^" ; FIELD 8 (quantity)
 | 
|---|
| 58 |  .;
 | 
|---|
| 59 |  .S UP=$P(I0,U,3)
 | 
|---|
| 60 |  .I UP="" S VAR2="NUOP^"_$P(I0,U) Q
 | 
|---|
| 61 |  .S UPN=$G(^PRCD(420.5,UP,0))
 | 
|---|
| 62 |  .I UPN="" S VAR2="NUPN^"_$P(I0,U) Q
 | 
|---|
| 63 |  .S UNIT=$P(UPN,U)
 | 
|---|
| 64 |  .I UNIT="" S VAR2="NUNI^"_$P(I0,U) Q
 | 
|---|
| 65 |  .S B=B_UNIT_"^" ; FIELD 9
 | 
|---|
| 66 |  .;
 | 
|---|
| 67 |  .S UC=$P(I0,U,9)
 | 
|---|
| 68 |  .I UC="" S VAR2="NAUC^"_$P(I0,U) Q
 | 
|---|
| 69 |  .I UC="N/C"!(OS=45) S UC=0 ; no charge or canceled
 | 
|---|
| 70 |  .S UC=$TR($J(UC,11,4)," .","0") ; pad and strip decimal point
 | 
|---|
| 71 |  .;
 | 
|---|
| 72 | IT2 .S B=B_UC_"^^" ; FIELDS 10, 11
 | 
|---|
| 73 |  .S LIN=$P(I0,U)
 | 
|---|
| 74 |  .S (DIS,TD)=0
 | 
|---|
| 75 |  .F  S DIS=$O(^PRC(442,VAR1,3,DIS)) G:DIS'>0 IT3 D   Q:LIN=LI
 | 
|---|
| 76 |  . .S DC=$G(^PRC(442,VAR1,3,DIS,0))
 | 
|---|
| 77 |  . .S LI=$P(DC,U,6)
 | 
|---|
| 78 |  . .Q
 | 
|---|
| 79 |  .S TD=1
 | 
|---|
| 80 |  .S PDA=$P(DC,U,2)
 | 
|---|
| 81 |  .I $E(PDA,1)'="$" D  G IT3
 | 
|---|
| 82 |  . .S N=$TR($J(PDA,5,2)," .","0")
 | 
|---|
| 83 |  . .S B=B_N_"^^" ; FIELDS 12, 13 - CONDITION 1
 | 
|---|
| 84 |  .S PDA=$E(PDA,2,99)
 | 
|---|
| 85 |  .S N=$TR($J(PDA,10,2)," .","0")
 | 
|---|
| 86 |  .S B=B_"^"_N_"^" ; FIELDS 12, 13 - CONDITION 2
 | 
|---|
| 87 |  .;
 | 
|---|
| 88 | IT3 .S:'TD B=B_"^^" ; FIELDS 12, 13 - CONDITION 3
 | 
|---|
| 89 |  .I $P(I0,U,16)>0 D
 | 
|---|
| 90 |  . .S SKU=$P(I0,U,16)
 | 
|---|
| 91 |  . .S SKU=$G(^PRCD(420.5,SKU,0))
 | 
|---|
| 92 |  . .S SKUF=$S($P(I0,U,17)>0:$P(I0,U,17),1:1)
 | 
|---|
| 93 |  . .S SKU=$P(SKU,U)
 | 
|---|
| 94 |  . .S B=B_SKU_"^"_SKUF_"^" ; FIELDS 14, 15 - CONDITION 1
 | 
|---|
| 95 |  .I $P(I0,U,16)'>0 S B=B_UNIT_"^1^" ; FIELDS 14, 15 - CONDITION 2
 | 
|---|
| 96 |  .;
 | 
|---|
| 97 | IT4 .S B=B_"^"_$S($P(I4,U,15)]"":$P(I4,U,15),1:"N")_"^"_$S($P(I4,U,16)]"":$P(I4,U,16),1:"N")_"^" ; FIELDS 16, 17, 18
 | 
|---|
| 98 |  .S CN=$P(I2,U,2)
 | 
|---|
| 99 |  .S OT=$P(^PRC(442,VAR1,1),U,7)
 | 
|---|
| 100 |  .S OT=","_OT_","
 | 
|---|
| 101 |  .S OT=$S(",1,4,6,10,"[OT:"D",1:"")
 | 
|---|
| 102 |  .I OT="D",CN="" S VAR2="NCNO^"_$P(I0,U) Q:VAR2]""
 | 
|---|
| 103 |  .S B=B_CN_"^" ; FIELD 19
 | 
|---|
| 104 |  .S LPRC=$P($G(^PRC(442,VAR1,1)),U,19)
 | 
|---|
| 105 |  .S LPRC1=""
 | 
|---|
| 106 |  .I LPRC>0 S LPRC1=$P($G(^PRC(443.8,LPRC,0)),U)
 | 
|---|
| 107 |  .I LPRC>0 S:LPRC1=10 LPRC1="A"
 | 
|---|
| 108 |  .S B=B_LPRC1_"^" ; FIELD 20
 | 
|---|
| 109 |  .;
 | 
|---|
| 110 | IT5 .S (IT,ICNT)=0
 | 
|---|
| 111 |  .S AZ=$G(^PRC(442,VAR1,2,ITEM,1,0))
 | 
|---|
| 112 |  .G:$P(AZ,U,4)'>0 IT6
 | 
|---|
| 113 |  .S DIWR=70
 | 
|---|
| 114 |  .S DIWL=1
 | 
|---|
| 115 |  .S DIWF=""
 | 
|---|
| 116 |  .S DE=0
 | 
|---|
| 117 |  .K ^UTILITY($J,"W")
 | 
|---|
| 118 |  .F  S DE=$O(^PRC(442,VAR1,2,ITEM,1,DE)) Q:DE=""  D
 | 
|---|
| 119 |  . .S X=$G(^PRC(442,VAR1,2,ITEM,1,DE,0))
 | 
|---|
| 120 |  . .D DIWP^PRCUTL($G(DA))
 | 
|---|
| 121 |  .S J=$G(^UTILITY($J,"W",1))
 | 
|---|
| 122 |  .G:J="" IT6
 | 
|---|
| 123 |  .I J>900 S J=900
 | 
|---|
| 124 |  .S IT=1
 | 
|---|
| 125 |  .S ICNT=""
 | 
|---|
| 126 |  .F I=1:1:J D
 | 
|---|
| 127 |  . .S N=$G(^UTILITY($J,"W",1,I,0)) S:$L(N)=0 N=" " S N=$TR(N,"^")
 | 
|---|
| 128 |  . .S M="DE^"_$P(I0,U)_"^"_I_"^"_N_"^|" ; DE SEGMENT FIELDS 1, 2, 3, 4, 5
 | 
|---|
| 129 |  . .S ^TMP($J,"STRING",ITEMCNT+6+I)=M
 | 
|---|
| 130 |  . .S TOTAL=TOTAL+1
 | 
|---|
| 131 |  . .S ICNT=ICNT+1
 | 
|---|
| 132 |  .K ^UTILITY($J,"W")
 | 
|---|
| 133 |  .;
 | 
|---|
| 134 | IT6 .S B=B_$S(IT:ICNT,1:0)_"^^" ; FIELDS 21, 22
 | 
|---|
| 135 |  .;
 | 
|---|
| 136 | IT7 .S LOT=$P(I4,U,17)
 | 
|---|
| 137 |  .S SERNO=$P(I4,U,18)
 | 
|---|
| 138 |  .S HAZM=$P(I2,U,14)
 | 
|---|
| 139 |  .S B=B_LOT_"^"_SERNO_"^"_HAZM_"^^" ; FIELDS 23, 24, 25, 26
 | 
|---|
| 140 |  .;
 | 
|---|
| 141 | IT8 .S IT=0
 | 
|---|
| 142 |  .S AZ=$P(^PRC(442,VAR1,0),U)
 | 
|---|
| 143 |  .S SCH=0
 | 
|---|
| 144 |  .S SEQU=0
 | 
|---|
| 145 |  .F  S SCH=$O(^PRC(442.8,"AC",AZ,ITEM,SCH)) Q:SCH=""  D
 | 
|---|
| 146 |  .  .S SCHX=$G(^PRC(442.8,SCH,0))
 | 
|---|
| 147 |  .  .Q:SCHX=""
 | 
|---|
| 148 |  .  .S SEQU=SEQU+1
 | 
|---|
| 149 |  .  .S IT=1
 | 
|---|
| 150 |  .  .S X=$P(SCHX,U,3)
 | 
|---|
| 151 |  .  .D JD^PRCFDLN
 | 
|---|
| 152 |  .  .S DELDT=$E(X,1,3)+1700_$E(Y,1,3)
 | 
|---|
| 153 |  .  .S M="SC^"_$P(I0,U)_"^"_SEQU_"^"_($P(SCHX,U,5)*100)_"^"_UNIT_"^"_DELDT_"^|"
 | 
|---|
| 154 |  .  .S ^TMP($J,"STRING",ITEMCNT+6+ICNT+SEQU)=M
 | 
|---|
| 155 |  .  .S TOTAL=TOTAL+1
 | 
|---|
| 156 | IT9 .S B=B_$S(IT:SEQU,1:0)_"^"_$P(INN,U,15)_"^|" ;FIELDS 27, 28, 29
 | 
|---|
| 157 |  .S ^TMP($J,"STRING",ITEMCNT+6)=B
 | 
|---|
| 158 |  .S ITEMCNT=ITEMCNT+ICNT+SEQU
 | 
|---|
| 159 |  .S B=^TMP($J,"STRING",1) ;ADD 1 TO HE SEGMENT FIELD 12
 | 
|---|
| 160 |  .S $P(B,U,12)=$P(B,U,12)+1
 | 
|---|
| 161 |  .S ^TMP($J,"STRING",1)=B
 | 
|---|
| 162 |  Q
 | 
|---|