Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PRCHDPO

PRCHDPO.m

Go to the documentation of this file.
  1. PRCHDPO ;WOIFO/CR - DELINQUENT DELIVERY LISTING PA OPTION ; 2/20/01 12:55 PM
  1. ;;5.1;IFCAP;**8,133**;Oct 20, 2000;Build 5
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. A1 ;
  1. D CLEAN
  1. TYPE K Y,SELECT S SELECTW="" W !!
  1. S DIR("?")=" ",DIR("?",1)="Enter the Supply Employee code desired."
  1. S DIR("?",2)="Enter multiple codes if needed, ex. 1,3 or 2-4"
  1. S DIR("?",3)="Normal run has been for 6-ALL"
  1. S DIR(0)="L^1:6:0"
  1. S DIR("A",1)="Supply Employee type selection: ",DIR("A",2)="",DIR("A",3)="1:WAREHOUSE",DIR("A",4)="2:PPM ACCOUNTABLE OFFICER"
  1. S DIR("A",5)="3:PURCHASING AGENT",DIR("A",6)="4:MANAGER",DIR("A",7)="5:PURCHASE CARD HOLDER"
  1. S DIR("A",8)="6:ALL OF THE ABOVE",DIR("A",9)=""
  1. S DIR("A")="By Type of Supply Employee: ",DIR("B")="6" D ^DIR
  1. Q:$D(DIRUT)!($D(DTOUT))
  1. S SELECT=Y I SELECT[6 S SELECTW="<All Supply Employee types>",SELECT="6,"
  1. E F I=1:1 S X=$P(SELECT,",",I) Q:X="" I X>0 S:SELECTW'="" SELECTW=SELECTW_"," S SELECTW=SELECTW_$P("WAREHOUSE,PPM ACCT OFFICER,PURCHASING AGENT,MANAGER,PURCHASE CARD HOLDER",",",X)
  1. W !!,"SELECTED: ",$E(SELECT,1,($L(SELECT)-1))," / ",SELECTW,!
  1. K DR,DIR,X,Y,DIRUT,DTOUT
  1. DATE S DIR("A")="START WITH DELIVERY DATE",DIR(0)="D^^" D ^DIR K DIR Q:Y["^"!(Y<1)
  1. S FDATE=+Y W " ",Y(0)
  1. ;
  1. S DIR("A")="GO TO DELIVERY DATE",DIR(0)="D^^" D ^DIR K DIR Q:Y["^"!(Y<1)
  1. S EDATE=+Y W " ",Y(0)
  1. I EDATE<FDATE W !,$C(7),"Less than 'FROM' value.",! K EDATE,FDATE G DATE
  1. ;
  1. S %ZIS("B")="",%ZIS="MQ" D ^%ZIS Q:POP
  1. I $D(IO("Q")) S ZTRTN="STAT^PRCHDPO",ZTSAVE("*")="" D ^%ZTLOAD,^%ZISC Q
  1. D STAT
  1. D ^%ZISC
  1. Q
  1. ;
  1. FRMDT ; Make the current date for the header easier to read.
  1. D NOW^%DTC S Y=% D DD^%DT
  1. S X1=$P(Y,"@",1),X2=$P(X1,",",1)_","_$P(X1,", ",2)
  1. S X3=$P($P(Y,"@",2),":",1,2)
  1. S DATE=X2_" "_X3
  1. Q
  1. ;
  1. FRMDT1 ; Compress the delivery date display.
  1. S X1=$P(Y,",",1)_","_$P(Y,", ",2)
  1. Q
  1. ;
  1. STAT ; Gather all the statistics
  1. S (GTOT,AMT1)=0,(VENTOT,SUBUSER)="",P=1
  1. S I="" F S I=$O(^PRC(442,"B",I)) Q:I="" D
  1. .S ZP="" F S ZP=$O(^PRC(442,"B",I,ZP)) Q:ZP="" D
  1. ..S ZP0=$G(^PRC(442,ZP,0)),DELDT=$P(ZP0,"^",10)
  1. ..S PONUM=$P(ZP0,"^",1),MOP=$P(ZP0,"^",2)
  1. ..; Check all possible methods of processing
  1. ..Q:"^1^2^3^4^7^8^9^21^22^23^25^26^"'[("^"_MOP_"^")
  1. ..S ZP1=$G(^PRC(442,ZP,1))
  1. ..Q:ZP1=""
  1. ..Q:DELDT<FDATE
  1. ..Q:DELDT>EDATE
  1. ..S Y=DELDT D DD^%DT,FRMDT1 S DELDT=X1 ; Show a human-readable date
  1. ..S VENPTR=$P(ZP1,"^",1)
  1. ..Q:VENPTR=""!(VENPTR=0)!(VENPTR'>0)
  1. ..S VENDOR=$P(^PRC(440,VENPTR,0),"^",1)
  1. ..S PHONE=$P($G(^PRC(440,VENPTR,0)),"^",10)
  1. ..S PRCHPA=+$P(ZP1,"^",10) Q:PRCHPA=""!(PRCHPA=0)
  1. ..I $D(^VA(200,PRCHPA,0)) S USER=$P(^VA(200,PRCHPA,0),"^")_">"_PRCHPA
  1. ..I SELECT'[6 Q:+$G(^VA(200,PRCHPA,400))=0&(SELECT'[5) Q:+$G(^VA(200,PRCHPA,400))>0&(SELECT'[+$G(^VA(200,PRCHPA,400)))
  1. ..S:$D(^PRC(442,ZP,7)) ZP7=^PRC(442,ZP,7)
  1. ..S SUPT=+$P(ZP7,"^",1)
  1. ..S PRCSTAT=$P($G(^PRCD(442.3,SUPT,0)),"^")
  1. ..S SUPORD=$P(ZP7,"^",2)
  1. ..Q:"^20^21^22^23^24^25^26^27^28^29^32^34^39^44^46^47^"'[("^"_SUPORD_"^")
  1. ..S TOTAMT=$P(ZP0,"^",15),LIQAMT=$P(ZP0,"^",17)
  1. ..I LIQAMT<0,(TOTAMT-LIQAMT)>TOTAMT S COSOUT=0
  1. ..E S COSOUT=TOTAMT-LIQAMT I COSOUT<0 S COSOUT=0
  1. ..S ^TMP($J,USER,VENDOR,PONUM)=PONUM_"^"_PRCSTAT_"^"_COSOUT_"^"_VENDOR_"^"_PHONE_"^"_DELDT
  1. ;
  1. PRINT ; Let's print the outstanding orders and dollar amounts.
  1. ;
  1. U IO
  1. D FRMDT
  1. S (P,EX)=1,(TOT,AMT1)=0
  1. I '$D(^TMP($J)) S P=1,(Q,Q1)="" D HEADER W !!!!,?10,"*** NO RECORDS TO PRINT ***" Q
  1. S Q="" F S Q=$O(^TMP($J,Q)) Q:Q="" Q:EX="^" D
  1. .D HEADER S (VENTOT,SUBUSER)=""
  1. .S Q1="" F S Q1=$O(^TMP($J,Q,Q1)) Q:Q1="" Q:EX="^" D
  1. ..W:Q1]"" !,?18,"VENDOR: ",Q1
  1. ..S Q2="" F S Q2=$O(^TMP($J,Q,Q1,Q2)) Q:Q2="" Q:EX="^" D
  1. ...S AMT1=0
  1. ...S STR3=^TMP($J,Q,Q1,Q2)
  1. ...W !,$P(STR3,"^",1),?15,$P(STR3,"^",2),?60,$J($P(STR3,"^",3),10,2)
  1. ...W !,?3,$P(STR3,"^",6),?17,$P(STR3,"^",5)
  1. ...I (IOSL-$Y)<8 D HOLD Q:EX="^"
  1. ...S AMT1=$P(STR3,"^",3),TOT=AMT1+$G(TOT),VENTOT(USER,VENPTR)=TOT
  1. ..W !,?60,"----------"
  1. ..W !,"SUBTOTAL",?60,$J(VENTOT(USER,VENPTR),10,2),!
  1. ..S GTOT=$G(GTOT)+VENTOT(USER,VENPTR),SUBUSER(USER)=VENTOT(USER,VENPTR)+$G(SUBUSER(USER))
  1. ..S TOT=0
  1. .I $E(IOST,1,2)="C-",EX'["^" W !,"Press return to continue, '^' to exit: " R XXZ:DTIME S:XXZ="^" EX="^" S:'$T EX="^"
  1. .I $G(Q2)="" D
  1. ..W ?60,"----------"
  1. ..W !,"SUBTOTAL",?60,$J(SUBUSER(USER),10,2) S SUBUSER(USER)=""
  1. ..; This is the subtotal for the user including all the vendors used.
  1. W !,?60,"----------"
  1. W !,"TOTAL",?55,$J(GTOT,15,2)
  1. D CLEAN
  1. Q
  1. ;
  1. 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
  1. Q
  1. ;
  1. W @IOF
  1. W !,"DELINQUENT PURCHASE ORDERS",?42,DATE,?68,"PAGE ",P,!
  1. W "** FOR SUPPLY EMPLOYEE: ",SELECTW,!
  1. W !,"PO NUMBER",?15,"SUPPLY STATUS",?63,"COST",!
  1. W ?3,"DELIVERY",?17,"PHONE",?60,"OUTSTANDING",!
  1. W ?3,"DATE",?17,"NUMBER",?45,"(QTY*UNIT COST FOR ITEMS NOT REC'D)",!
  1. F I=1:1:10 W "--------"
  1. W !!,?15,"PA/PPM/AUTHORIZED BUYER: ",$P(Q,">"),!
  1. S P=P+1
  1. Q
  1. ;
  1. CLEAN K AMT1,COSOUT,DATE,DELDT,EDATE,FDATE,PRCHPA,PRCSTAT,Q,Q1,Q2,^TMP($J)
  1. K SUPT,TOT,TOTAMT,VENDOR,VENPTR,VENTOT,X,X1,X2,X3,XXZ,Y,ZP,ZP0,ZP1,ZP7
  1. K EX,ENTOT,GTOT,I,LIQAMT,MOP,P,PHONE,PONUM,STR3,SUBUSER,SUPORD,USER
  1. K SELECT,SELECTW
  1. Q