| 1 | PRCHDPO ;WOIFO/CR - DELINQUENT DELIVERY LISTING PA OPTION ; 2/20/01  12:55 PM
 | 
|---|
| 2 |  ;;5.1;IFCAP;**8**;Oct 20, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | A1 ;
 | 
|---|
| 5 |  D CLEAN
 | 
|---|
| 6 | DATE S DIR("A")="START WITH DELIVERY DATE",DIR(0)="D^^" D ^DIR K DIR Q:Y["^"!(Y<1)
 | 
|---|
| 7 |  S FDATE=+Y W "  ",Y(0)
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  S DIR("A")="GO TO DELIVERY DATE",DIR(0)="D^^" D ^DIR K DIR Q:Y["^"!(Y<1)
 | 
|---|
| 10 |  S EDATE=+Y W "  ",Y(0)
 | 
|---|
| 11 |  I EDATE<FDATE W !,$C(7),"Less than 'FROM' value.",! K EDATE,FDATE G DATE
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  S %ZIS("B")="",%ZIS="MQ" D ^%ZIS Q:POP
 | 
|---|
| 14 |  I $D(IO("Q")) S ZTRTN="STAT^PRCHDPO",ZTSAVE("*")="" D ^%ZTLOAD,^%ZISC Q
 | 
|---|
| 15 |  D STAT
 | 
|---|
| 16 |  D ^%ZISC
 | 
|---|
| 17 |  Q
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | FRMDT ; Make the current date for the header easier to read.
 | 
|---|
| 20 |  D NOW^%DTC S Y=% D DD^%DT
 | 
|---|
| 21 |  S X1=$P(Y,"@",1),X2=$P(X1,",",1)_","_$P(X1,", ",2)
 | 
|---|
| 22 |  S X3=$P($P(Y,"@",2),":",1,2)
 | 
|---|
| 23 |  S DATE=X2_"  "_X3
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | FRMDT1 ; Compress the delivery date display.
 | 
|---|
| 27 |  S X1=$P(Y,",",1)_","_$P(Y,", ",2)
 | 
|---|
| 28 |  Q
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | STAT ; Gather all the statistics
 | 
|---|
| 31 |  S (GTOT,AMT1)=0,(VENTOT,SUBUSER)="",P=1
 | 
|---|
| 32 |  S I="" F  S I=$O(^PRC(442,"B",I)) Q:I=""  D
 | 
|---|
| 33 |  .S ZP="" F  S ZP=$O(^PRC(442,"B",I,ZP)) Q:ZP=""  D
 | 
|---|
| 34 |  ..S ZP0=$G(^PRC(442,ZP,0)),DELDT=$P(ZP0,"^",10)
 | 
|---|
| 35 |  ..S PONUM=$P(ZP0,"^",1),MOP=$P(ZP0,"^",2)
 | 
|---|
| 36 |  ..; Check all possible methods of processing
 | 
|---|
| 37 |  ..Q:"^1^2^3^4^7^8^9^21^22^23^25^26^"'[("^"_MOP_"^")
 | 
|---|
| 38 |  ..S ZP1=$G(^PRC(442,ZP,1))
 | 
|---|
| 39 |  ..Q:ZP1=""
 | 
|---|
| 40 |  ..Q:DELDT<FDATE
 | 
|---|
| 41 |  ..Q:DELDT>EDATE
 | 
|---|
| 42 |  ..S Y=DELDT D DD^%DT,FRMDT1 S DELDT=X1 ; Show a human-readable date
 | 
|---|
| 43 |  ..S VENPTR=$P(ZP1,"^",1)
 | 
|---|
| 44 |  ..Q:VENPTR=""!(VENPTR=0)!(VENPTR'>0)
 | 
|---|
| 45 |  ..S VENDOR=$P(^PRC(440,VENPTR,0),"^",1)
 | 
|---|
| 46 |  ..S PHONE=$P($G(^PRC(440,VENPTR,0)),"^",10)
 | 
|---|
| 47 |  ..S PRCHPA=+$P(ZP1,"^",10) Q:PRCHPA=""!(PRCHPA=0)
 | 
|---|
| 48 |  ..I $D(^VA(200,PRCHPA,0)) S USER=$P(^VA(200,PRCHPA,0),"^")
 | 
|---|
| 49 |  ..S:$D(^PRC(442,ZP,7)) ZP7=^PRC(442,ZP,7)
 | 
|---|
| 50 |  ..S SUPT=+$P(ZP7,"^",1)
 | 
|---|
| 51 |  ..S PRCSTAT=$P($G(^PRCD(442.3,SUPT,0)),"^")
 | 
|---|
| 52 |  ..S SUPORD=$P(ZP7,"^",2)
 | 
|---|
| 53 |  ..Q:"^20^21^22^23^24^25^26^27^28^29^32^34^39^44^46^47^"'[("^"_SUPORD_"^")
 | 
|---|
| 54 |  ..S TOTAMT=$P(ZP0,"^",15),LIQAMT=$P(ZP0,"^",17)
 | 
|---|
| 55 |  ..I LIQAMT<0,(TOTAMT-LIQAMT)>TOTAMT S COSOUT=0
 | 
|---|
| 56 |  ..E  S COSOUT=TOTAMT-LIQAMT I COSOUT<0 S COSOUT=0
 | 
|---|
| 57 |  ..S ^TMP($J,USER,VENDOR,PONUM)=PONUM_"^"_PRCSTAT_"^"_COSOUT_"^"_VENDOR_"^"_PHONE_"^"_DELDT
 | 
|---|
| 58 |  ; 
 | 
|---|
| 59 | PRINT ; Let's print the outstanding orders and dollar amounts.
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  U IO
 | 
|---|
| 62 |  D FRMDT
 | 
|---|
| 63 |  S (P,EX)=1,(TOT,AMT1)=0
 | 
|---|
| 64 |  I '$D(^TMP($J)) S P=1,(Q,Q1)="" D HEADER W !!!!,?10,"*** NO RECORDS TO PRINT ***" Q
 | 
|---|
| 65 |  S Q="" F  S Q=$O(^TMP($J,Q)) Q:Q=""  Q:EX="^"  D
 | 
|---|
| 66 |  .D HEADER S (VENTOT,SUBUSER)=""
 | 
|---|
| 67 |  .S Q1="" F  S Q1=$O(^TMP($J,Q,Q1)) Q:Q1=""  Q:EX="^"  D
 | 
|---|
| 68 |  ..W:Q1]"" !,?18,"VENDOR: ",Q1
 | 
|---|
| 69 |  ..S Q2="" F  S Q2=$O(^TMP($J,Q,Q1,Q2)) Q:Q2=""  Q:EX="^"  D
 | 
|---|
| 70 |  ...S AMT1=0
 | 
|---|
| 71 |  ...S STR3=^TMP($J,Q,Q1,Q2)
 | 
|---|
| 72 |  ...W !,$P(STR3,"^",1),?15,$P(STR3,"^",2),?60,$J($P(STR3,"^",3),10,2)
 | 
|---|
| 73 |  ...W !,?3,$P(STR3,"^",6),?17,$P(STR3,"^",5)
 | 
|---|
| 74 |  ...I (IOSL-$Y)<8 D HOLD Q:EX="^"
 | 
|---|
| 75 |  ...S AMT1=$P(STR3,"^",3),TOT=AMT1+$G(TOT),VENTOT(USER,VENPTR)=TOT
 | 
|---|
| 76 |  ..W !,?60,"----------"
 | 
|---|
| 77 |  ..W !,"SUBTOTAL",?60,$J(VENTOT(USER,VENPTR),10,2),!
 | 
|---|
| 78 |  ..S GTOT=$G(GTOT)+VENTOT(USER,VENPTR),SUBUSER(USER)=VENTOT(USER,VENPTR)+$G(SUBUSER(USER))
 | 
|---|
| 79 |  ..S TOT=0
 | 
|---|
| 80 |  .I $E(IOST,1,2)="C-",EX'["^" W !,"Press return to continue, '^' to exit: " R XXZ:DTIME S:XXZ="^" EX="^" S:'$T EX="^"
 | 
|---|
| 81 |  .I $G(Q2)="" D
 | 
|---|
| 82 |  ..W ?60,"----------"
 | 
|---|
| 83 |  ..W !,"SUBTOTAL",?60,$J(SUBUSER(USER),10,2) S SUBUSER(USER)=""
 | 
|---|
| 84 |  ..; This is the subtotal for the user including all the vendors used.
 | 
|---|
| 85 |  W !,?60,"----------"
 | 
|---|
| 86 |  W !,"TOTAL",?55,$J(GTOT,15,2)
 | 
|---|
| 87 |  D CLEAN
 | 
|---|
| 88 |  Q
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | HOLD G HEADER:$E(IOST,1,2)'="C-"!(IO'=IO(0)) W !,"Press return to continue, '^' to exit: " R XXZ:DTIME S:XXZ["^" EX="^" S:'$T EX="^" I EX'="^",$G(Q2)'="" D HEADER
 | 
|---|
| 91 |  Q
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 | HEADER ;
 | 
|---|
| 94 |  W @IOF
 | 
|---|
| 95 |  W !,"DELINQUENT PURCHASE ORDERS",?42,DATE,?68,"PAGE ",P,!
 | 
|---|
| 96 |  W !,"PO NUMBER",?15,"SUPPLY STATUS",?63,"COST",!
 | 
|---|
| 97 |  W ?3,"DELIVERY",?17,"PHONE",?60,"OUTSTANDING",!
 | 
|---|
| 98 |  W ?3,"DATE",?17,"NUMBER",?45,"(QTY*UNIT COST FOR ITEMS NOT REC'D)",!
 | 
|---|
| 99 |  F I=1:1:10 W "--------"
 | 
|---|
| 100 |  W !!,?15,"PA/PPM/AUTHORIZED BUYER: ",Q,!
 | 
|---|
| 101 |  S P=P+1
 | 
|---|
| 102 |  Q
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 | CLEAN K AMT1,COSOUT,DATE,DELDT,EDATE,FDATE,PRCHPA,PRCSTAT,Q,Q1,Q2,^TMP($J)
 | 
|---|
| 105 |  K SUPT,TOT,TOTAMT,VENDOR,VENPTR,VENTOT,X,X1,X2,X3,XXZ,Y,ZP,ZP0,ZP1,ZP7
 | 
|---|
| 106 |  K EX,ENTOT,GTOT,I,LIQAMT,MOP,P,PHONE,PONUM,STR3,SUBUSER,SUPORD,USER
 | 
|---|
| 107 |  Q
 | 
|---|