1 | PRCHDAR ;WISC/CR - DELINQUENT APPROVALS REPORT ; 1/19/99 14:47
|
---|
2 | ;;5.1;IFCAP;**8**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | W !
|
---|
6 | START K ^TMP($J),^TMP("RECDATE")
|
---|
7 | S PRCF("X")="S" D ^PRCFSITE Q:'$D(PRC("SITE")) Q:$G(X)="^"
|
---|
8 | S DIC="^VA(200,",DIC("A")="START WITH CARD HOLDER: ",DIC(0)="AEMQ" D ^DIC K DIC Q:'$D(^VA(200,+Y)) S FPERSN=Y K Y
|
---|
9 | S DIC="^VA(200,",DIC("A")="GO TO CARD HOLDER: ",DIC(0)="AEMQ" D ^DIC K DIC Q:'$D(^VA(200,+Y)) S SPERSN=Y K Y
|
---|
10 | ;
|
---|
11 | ; Get the last name of first and second card holder entered.
|
---|
12 | S FPERSNL=$P($P(FPERSN,"^",2),",",1),SPERSNL=$P($P(SPERSN,"^",2),",",1)
|
---|
13 | ;
|
---|
14 | ; Get the first name of first and second card holder entered.
|
---|
15 | S FPERSNF=$P(FPERSN,",",2),SPERSNF=$P(SPERSN,",",2)
|
---|
16 | ;
|
---|
17 | I FPERSNL]SPERSNL W !,$C(7),"Less than 'FROM' value.",! K FPERSN,SPERSN,Y G START
|
---|
18 | I (FPERSNL=SPERSNL)&(FPERSNF]SPERSNF) W !,$C(7),"Less than 'FROM' value.",! K FPERSN,SPERSN,Y G START
|
---|
19 | W !
|
---|
20 | ;
|
---|
21 | DATE S DIR("A")="START WITH APPROVAL DATE",DIR("?")="Enter the first date for which you wish to see records."
|
---|
22 | S DIR(0)="D^^" D ^DIR K DIR Q:+Y<1 S FDATE=+Y W " ",Y(0)
|
---|
23 | S DIR("A")="GO TO APPROVAL DATE",DIR("?")="Enter the last date for which you want to see records."
|
---|
24 | S DIR(0)="D^^" D ^DIR K DIR Q:+Y<1 S EDATE=+Y W " ",Y(0)
|
---|
25 | I EDATE<FDATE W !,$C(7),"Less than 'FROM' value.",! K EDATE,FDATE G DATE
|
---|
26 | W !!,$C(7),?5,"This report should be queued. It may be very large and"
|
---|
27 | W !,?4,"take a long time to generate to the printer. We suggest you"
|
---|
28 | W !,?4,"run it during off hours.",! H 2
|
---|
29 | S %ZIS("B")="",%ZIS="MQ" D ^%ZIS Q:POP
|
---|
30 | I $D(IO("Q")) S ZTRTN="DETAIL^PRCHDAR",ZTSAVE("*")="" D ^%ZTLOAD,^%ZISC Q
|
---|
31 | D DETAIL,^%ZISC
|
---|
32 | Q
|
---|
33 | ;
|
---|
34 | DETAIL ;
|
---|
35 | D STAT
|
---|
36 | D WRITE
|
---|
37 | CLEAN ;
|
---|
38 | K ^TMP($J),^TMP("RECDATE"),APDATE,C1,C2,C3,CARDOFF,EDATE,EX,FDATE
|
---|
39 | K FINALDEL,FPARTIAL,FPERSNF,FPERSN,FPERSNL,GETDATE,I,LINE1,OFFPT
|
---|
40 | K OIEN,ORECD0,ORECD1,ORECD5,P,PARTIAL,PO,PRCHDUZ,RECAPP,RECDATE,RECREQ
|
---|
41 | K SPERSNF,SPERSN,SPERSNL,TIMDATE,USER,USERFN,USERLN
|
---|
42 | K X,X1,XXZ,Y,Z1,ZP
|
---|
43 | Q
|
---|
44 | ;
|
---|
45 | STAT ; Get appropriate records from file # 440.6
|
---|
46 | S ZP="" F S ZP=$O(^PRCH(440.6,"PO",ZP)) Q:ZP="" D
|
---|
47 | .S Z1=$G(^PRC(442,ZP,0)),PO=$P(Z1,"^",1) Q:PO=""
|
---|
48 | .I $D(PRC("SITE")) Q:$P(Z1,"-",1)'=PRC("SITE")
|
---|
49 | .;
|
---|
50 | .; Get the receiving required code and the IEN of the Oracle record.
|
---|
51 | .S RECREQ=$P($G(^PRC(442,ZP,23)),"^",15)
|
---|
52 | .S OIEN="" F S OIEN=$O(^PRCH(440.6,"PO",ZP,OIEN)) Q:OIEN="" D
|
---|
53 | ..S ORECD0=$G(^PRCH(440.6,OIEN,0))
|
---|
54 | ..S ORECD1=$G(^PRCH(440.6,OIEN,1))
|
---|
55 | ..S ORECD5=$G(^PRCH(440.6,OIEN,5))
|
---|
56 | ..S PRCHDUZ=+$P(ORECD1,"^",5),USER=$P($G(^VA(200,PRCHDUZ,0)),"^"),USERLN=$P(USER,",",1),USERFN=$P(USER,",",2)
|
---|
57 | ..S OFFPT=+$P(ORECD5,"^",7),CARDOFF=$P($G(^VA(200,OFFPT,0)),"^") I CARDOFF="" S CARDOFF="OFFICIAL NOT ASSIGNED"
|
---|
58 | ..Q:(USER="")!(OFFPT="")
|
---|
59 | ..;
|
---|
60 | ..; Check that user found is within range specified at the beginning.
|
---|
61 | ..I (FPERSNL]USERLN) Q
|
---|
62 | ..I (USERLN]SPERSNL) Q
|
---|
63 | ..I (USERLN=SPERSNL)&(USERFN]SPERSNF) Q
|
---|
64 | ..;
|
---|
65 | ..; Ignore orders not reconciled, without final charge, and not fully
|
---|
66 | ..; received.
|
---|
67 | ..Q:$P(ORECD0,"^",16)'["R"
|
---|
68 | ..Q:$P(ORECD1,"^",4)'["Y"
|
---|
69 | ..Q:$P(ORECD1,"^",3)'["Y"
|
---|
70 | ..;
|
---|
71 | ..; RECAPP=reconciliation interval, CARDOFF=card official.
|
---|
72 | ..; APDATE=approval date by official.
|
---|
73 | ..; RECDATE=reconciliation date by card holder.
|
---|
74 | ..;
|
---|
75 | ..S RECDATE=$P(ORECD1,"^",6) Q:RECDATE=""
|
---|
76 | ..S APDATE=$P(ORECD5,"^",6) Q:APDATE=""
|
---|
77 | ..Q:APDATE<FDATE
|
---|
78 | ..Q:APDATE>EDATE
|
---|
79 | ..Q:APDATE=RECDATE
|
---|
80 | ..;
|
---|
81 | ..; Check if receiving is required and date/time of last partial delivery.
|
---|
82 | ..I RECREQ["Y" D
|
---|
83 | ...S PARTIAL=+$P($G(^PRC(442,ZP,11,0)),"^",3)
|
---|
84 | ...I PARTIAL>0 S FPARTIAL=$G(^PRC(442,ZP,11,PARTIAL,0))
|
---|
85 | ...S GETDATE=$P($G(FPARTIAL),"^",1),FINALDEL=$P($G(FPARTIAL),"^",9)
|
---|
86 | ...I FINALDEL["F"&(GETDATE]"")&(GETDATE>RECDATE) S RECDATE=GETDATE
|
---|
87 | ..;
|
---|
88 | ..Q:RECDATE>EDATE
|
---|
89 | ..S X=RECDATE,X1=APDATE D ^XUWORKDY S RECAPP=X
|
---|
90 | ..S Y=RECDATE D DD^%DT S RECDATE=Y I RECDATE["@" S ^TMP("RECDATE",$J)=1
|
---|
91 | ..S Y=APDATE D DD^%DT S APDATE=Y
|
---|
92 | ..;
|
---|
93 | ..; Get those orders with more than 15 days elapsed from date of final
|
---|
94 | ..; reconciliation by the card holder to approval by the approving official.
|
---|
95 | ..;
|
---|
96 | ..I RECAPP>15 D
|
---|
97 | ...S ^TMP($J,USER,OFFPT,ZP)=USER_"^"_PO_"^"_RECDATE_"^"_APDATE_"^"_RECAPP_"^"_CARDOFF
|
---|
98 | Q
|
---|
99 | ;
|
---|
100 | WRITE ; Let's print out what we have.
|
---|
101 | ;
|
---|
102 | S X=DT D NOW^%DTC,YX^%DTC S TIMDATE=Y
|
---|
103 | U IO S U="^",(EX,P)=1
|
---|
104 | I '$D(^TMP($J)) S C1="" D HEADER W !!!!,?10,"*** NO RECORDS TO PRINT ***" Q
|
---|
105 | ;
|
---|
106 | S C1="" F S C1=$O(^TMP($J,C1)) Q:C1="" Q:EX[U D
|
---|
107 | .D HEADER
|
---|
108 | .S C2="" F S C2=$O(^TMP($J,C1,C2)) Q:C2="" Q:EX[U D
|
---|
109 | ..S C3="" F S C3=$O(^TMP($J,C1,C2,C3)) Q:C3="" Q:EX[U D
|
---|
110 | ...S LINE1=^TMP($J,C1,C2,C3) D
|
---|
111 | ....W $P(LINE1,"^",2),?14,$E($P(LINE1,"^",3),1,18),?34,$P(LINE1,"^",4),?52,$P(LINE1,"^",5),?59,$E($P(LINE1,"^",6),1,21),!
|
---|
112 | ....I (IOSL-$Y)<2 D HOLD
|
---|
113 | .I $E(IOST,1,2)'="P-",EX'[U W !,"Press return to continue, '^' to exit: " R XXZ:DTIME S:XXZ[U EX=U S:'$T EX=U W !
|
---|
114 | I $G(^TMP("RECDATE",$J))=1 W !?2,"'@' - This symbol indicates the final Date/Time of receipt",!,?8,"of the PC order by the user or the Warehouse if applicable.",!
|
---|
115 | Q
|
---|
116 | ;
|
---|
117 | HOLD G HEADER:$E(IOST,1,2)="P-"!(IO'=IO(0)) W !,"Press return to continue, '^' to exit: " R XXZ:DTIME S:XXZ[U EX=U S:'$T EX=U D:EX'=U HEADER
|
---|
118 | Q
|
---|
119 | ;
|
---|
120 | HEADER ;
|
---|
121 | W @IOF
|
---|
122 | W !,"DELINQUENT APPROVALS EXCEPTION LISTING",?45,TIMDATE,?69,"PAGE ",P,!
|
---|
123 | W !,"PURCHASE",?14,"FINAL RECONCILE",?34,"APPROVAL",?47,"RECON TO",!
|
---|
124 | W "ORDER",?14,"DATE",?34,"DATE",?47,"APPR INTER",?59,"CARD OFFICIAL"
|
---|
125 | ;
|
---|
126 | W ! F I=1:1:10 W "--------"
|
---|
127 | W !
|
---|
128 | W !,?10,"CARD HOLDER: ",C1,!
|
---|
129 | S P=P+1
|
---|
130 | Q
|
---|