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