1 | RMPR4C2 ;;HINES-OI/HNC - PURCHASE CARD VERIFY PC# FOR RECONCILIATION;10/29/2001
|
---|
2 | ;;3.0;PROSTHETICS;**67**;Feb 09, 1996
|
---|
3 | ;
|
---|
4 | ;Match on Visa Level II, Old Card, New Card, Card Holder
|
---|
5 | ;HNC 11-6-01
|
---|
6 | ;
|
---|
7 | ;IFCAP Integration Agreement for file #442: DBIA282-H, ref #803
|
---|
8 | ;IFCAP Integration Agreement for file #440.6: ref #3427
|
---|
9 | ;
|
---|
10 | Q
|
---|
11 | EN ;Entry Point
|
---|
12 | W !,?5,"Verify and Repair Purchase Card Number Associated with the"
|
---|
13 | W !,?5,"ORACLE Document for Reconciliation"
|
---|
14 | W !,?5,"You Must Be the Card Holder of both OLD and NEW Cards!",!!
|
---|
15 | K ^TMP($J) D DIV4^RMPRSIT G:$D(X) EXIT
|
---|
16 | D HOME^%ZIS
|
---|
17 | S RMPRCOUN=0
|
---|
18 | S %DT("A")="Starting Date: ",%DT="AEPX" D ^%DT
|
---|
19 | S RMPRBDT=Y G:Y<0 EXIT
|
---|
20 | S %DT("A")="Ending Date: ",%DT="AEX" D ^%DT G:Y<0 EXIT
|
---|
21 | S RMPREDT=Y
|
---|
22 | I RMPRBDT>RMPREDT W !,$C(7),"Invalid Date Range Selection!!" G EN
|
---|
23 | ;
|
---|
24 | S Y=RMPRBDT D DD^%DT S RMPRX=Y,Y=RMPREDT D DD^%DT S RMPRY=Y
|
---|
25 | PCRD ;ask purchase card number
|
---|
26 | K DIR S DIR(0)="FO",DIR("A")="Enter OLD Purchase Card Number"
|
---|
27 | S DIR("?")="Enter the 16-Digit Purchase Card #, no dashes or spaces."
|
---|
28 | D ^DIR K DIR
|
---|
29 | I $D(DTOUT)!($D(DUOUT)) W !,$C(7),$C(7),"Try Later!" G EXIT
|
---|
30 | I $L(X)>16!($L(X)<16)!(X'?.N) W !,"Must be 16-Digit Number." G PCRD
|
---|
31 | S RMPRPCRD=Y
|
---|
32 | PCRDN K DIR S DIR(0)="FO",DIR("A")="Enter NEW Purchase Card Number"
|
---|
33 | S DIR("?")="Enter the NEW 16-Digit Purchase Card #, no dashes or spaces."
|
---|
34 | D ^DIR K DIR
|
---|
35 | I $D(DTOUT)!($D(DUOUT)) W !,$C(7),$C(7),"Try Later!" G EXIT
|
---|
36 | I $L(X)>16!($L(X)<16)!(X'?.N) W !,"Must be 16-Digit Number." G PCRDN
|
---|
37 | S RMPRPCNW=Y
|
---|
38 | ;
|
---|
39 | ;taskman
|
---|
40 | S %ZIS="MQ" K IOP D ^%ZIS G:POP EXIT
|
---|
41 | I '$D(IO("Q")) U IO G PRINT
|
---|
42 | K IO("Q")
|
---|
43 | S ZTDESC="PURCHASE CARD VERIFY",ZTRTN="PRINT^RMPR4C2"
|
---|
44 | S ZTSAVE("RMPRBDT")="",ZTSAVE("RMPREDT")=""
|
---|
45 | S ZTSAVE("RMPRY")="",ZTSAVE("RMPR(")="",ZTSAVE("RMPRPCRD")=""
|
---|
46 | S ZTSAVE("RMPRX")="",ZTSAVE("RMPRPCNW")="",ZTIO=ION
|
---|
47 | D ^%ZTLOAD W:$D(ZTSK) !,"REQUEST QUEUED!" H 1 G EXIT
|
---|
48 | ;
|
---|
49 | PRINT S X1=RMPRBDT,X2=-1 D C^%DTC S PAGE=1,RMPREND="",RMPRFLG=""
|
---|
50 | I $E(IOST)["C" W @IOF
|
---|
51 | S RO=RMPRBDT-1
|
---|
52 | F S RO=$O(^RMPR(664,"B",RO)) Q:RO'>0 Q:RO>RMPREDT S RP=0 F S RP=$O(^RMPR(664,"B",RO,RP)) Q:RP'>0 D CK
|
---|
53 | S RMPRFLG="",RMPREND=""
|
---|
54 | D HDR,ST
|
---|
55 | G EXIT
|
---|
56 | CK ;set tmp of list to compare with 440.6
|
---|
57 | Q:'$D(^RMPR(664,RP,0))
|
---|
58 | ;Vendor must not be null,PC number not null,no cancellation date
|
---|
59 | ;and station must be station selected
|
---|
60 | ;must have no close out date
|
---|
61 | ;
|
---|
62 | Q:$P(^RMPR(664,RP,0),U,4)=""!($P($G(^(4)),U,1)="")!($P(^(0),U,5)'="")
|
---|
63 | Q:$P(^RMPR(664,RP,0),U,14)'=""&($P(^(0),U,14)'=RMPR("STA"))
|
---|
64 | ;close out date
|
---|
65 | Q:$P(^RMPR(664,RP,0),U,8)'=""
|
---|
66 | ;decrypt PC number - rmprobl is decrypted card number, rmprpcrd what
|
---|
67 | ;user typed as 16 dig number
|
---|
68 | S ROBL=$P($G(^RMPR(664,RP,4)),U,1)
|
---|
69 | S RMPROBL=$$DEC^RMPR4LI($P(^RMPR(664,RP,4),U,1),$P(^RMPR(664,RP,0),U,9),RP)
|
---|
70 | Q:RMPROBL'=RMPRPCRD
|
---|
71 | S RMPRODR=$P($G(^RMPR(664,RP,4)),U,6)
|
---|
72 | Q:RMPRODR=""
|
---|
73 | S ^TMP($J,RMPRODR,RMPROBL,RP)=""
|
---|
74 | Q
|
---|
75 | ;
|
---|
76 | COMP ;Enter RETURN to continue or '^' to exit:
|
---|
77 | ;
|
---|
78 | S RMPRFLG=1
|
---|
79 | I $Y>(IOSL-6) S RMPRFLG=""
|
---|
80 | ;
|
---|
81 | Q
|
---|
82 | ST ;continue if user didn't want out, or time out
|
---|
83 | ;
|
---|
84 | I '$D(^TMP($J)) W !!,"*** NO DATA TO PRINT ***",!! Q
|
---|
85 | S PO=0
|
---|
86 | F S PO=$O(^TMP($J,PO)) Q:PO'>0 Q:RMPREND=1 D
|
---|
87 | .S POE=$P($G(^PRC(442,PO,0)),U,1)
|
---|
88 | .Q:POE=""
|
---|
89 | .;I ($X>14)&($X<65) W ?63,"|"
|
---|
90 | .;PSPC is psas card number
|
---|
91 | .S PSPC=0
|
---|
92 | .F S PSPC=$O(^TMP($J,PO,PSPC)) Q:PSPC'>0 Q:RMPREND=1 D
|
---|
93 | . .S RD=0,VISA2=""
|
---|
94 | . .F S RD=$O(^TMP($J,PO,PSPC,RD)) Q:RD'>0 Q:RMPREND=1 D
|
---|
95 | . . .S ORDATE=$$DAT1^RMPRUTL1($P(^RMPR(664,RD,0),U,1))
|
---|
96 | . . .W !,ORDATE
|
---|
97 | . . .W ?14,POE,?28,"|"
|
---|
98 | . . .S BDT=RMPRBDT
|
---|
99 | . . .F S BDT=$O(^PRCH(440.6,"D",BDT)) Q:BDT'>0 D
|
---|
100 | . . . .S (REC440,RCNT)=0
|
---|
101 | . . . .F S REC440=$O(^PRCH(440.6,"D",BDT,REC440)) Q:REC440'>0 Q:RMPREND=1 D
|
---|
102 | . . . . .;only look at current users records
|
---|
103 | . . . . .I $P(^PRCH(440.6,REC440,0),U,17)'=DUZ Q
|
---|
104 | . . . . .K RM440 S RM440="",RECIEN40=REC440_","
|
---|
105 | . . . . .D GETS^DIQ(440.6,RECIEN40,"**","","RM440")
|
---|
106 | . . . . .S PC=RM440(440.6,RECIEN40,3),IFST=RM440(440.6,RECIEN40,14),VISA2=RM440(440.6,RECIEN40,20)
|
---|
107 | . . . . .;S PC=$P(^PRCH(440.6,REC440,0),U,4),IFST=$P(^(0),U,15),VISA2=$P(^(0),U,21)
|
---|
108 | . . . . .S VISA2=$TR(VISA2,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTVWXYZ")
|
---|
109 | . . . . .;W ?50,$S(IFST="R":"Reconciled",IFST="N":"None",IFST="D":"Disputed",1:""),?63,"|"
|
---|
110 | . . . . .S PSASV2=$P(POE,"-",2)
|
---|
111 | . . . . .;match on visa 2 string from vendor
|
---|
112 | . . . . .I VISA2'[PSASV2 Q
|
---|
113 | . . . . .S RCNT=RCNT+1
|
---|
114 | . . . . .W:RCNT>1 !,?28,"|"
|
---|
115 | . . . . .W ?30,PC
|
---|
116 | . . . . .W ?50,VISA2,?63,"|"
|
---|
117 | . . . . .;verify both files same
|
---|
118 | . . . . .I PC=PSPC W ?65,"Okay"
|
---|
119 | . . . . .I $E(IOST,1,2)["C-"&($Y>(IOSL-6)) S DIR(0)="E" D ^DIR S:(Y<1)!($D(DTOUT)) RMPREND=1 Q:$G(RMPREND) D HDR
|
---|
120 | . . . . .I $E(IOST,1,2)'="C-"&($Y>(IOSL-6)) D HDR
|
---|
121 | . . . . .I PC=PSPC Q
|
---|
122 | . . . . .;check to make sure it is the new card number
|
---|
123 | . . . . .I PC'=RMPRPCNW W ?65,"Diff Card #" Q
|
---|
124 | . . . . .;update prosthetic file 664
|
---|
125 | . . . . .S $P(^RMPR(664,RD,4),U,7)=PC,$P(^(4),U,8)=REC440,$P(^(4),U,9)=DT
|
---|
126 | . . . . .;
|
---|
127 | . . . . .;update file 440.6 with original PC number
|
---|
128 | . . . . .S DIE="^PRCH(440.6,",DR="3////^S X=PSPC",DA=REC440
|
---|
129 | . . . . .L +^PRCH(440.6,DA,0):2 I '$T W !,"Record in use by another user. Try Later!" K DIE S RMPREND=1 Q
|
---|
130 | . . . . .D ^DIE
|
---|
131 | . . . . .L -^PRCH(440.6,DA,0)
|
---|
132 | . . . . .K DA,DIE,DR
|
---|
133 | . . . . .W ?65,"Repaired"
|
---|
134 | Q
|
---|
135 | ;
|
---|
136 | HDR ;header
|
---|
137 | I RMPREND=1 Q
|
---|
138 | I PAGE'=1 W @IOF
|
---|
139 | W !,RMPRX_"-",RMPRY," Verify PC# "_RMPRPCRD_" STA "_$$STA^RMPRUTIL,?72,"PAGE ",PAGE,!
|
---|
140 | S PAGE=PAGE+1
|
---|
141 | W !,"Order Date",?14,"Order Number",?28,"|",?30,"ORACLE PC #",?50,"VISA II",?63,"|",?65,"Record Status",!,RMPR("L")
|
---|
142 | Q
|
---|
143 | EXIT ;Common Exit
|
---|
144 | I $E(IOST)["C",'$G(RMPREND),$D(^TMP($J)) W ! S DIR(0)="E" D ^DIR
|
---|
145 | D ^%ZISC N RMPR,RMPRSITE
|
---|
146 | D KILL^XUSCLEAN K ^TMP($J)
|
---|
147 | Q
|
---|