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

PRCOER1.m

Go to the documentation of this file.
PRCOER1 ;WISC/DJM-EDI REPORTS USING LIST MANAGER ; [8/31/98 2:26pm]
V ;;5.1;IFCAP;;Oct 20, 2000
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 ;
REPORTS ;  COME HERE TO ENTER THE REPORTS GENERATOR.
 ;
 N DIR,X,Y,LIST,Q1,Q2,PRCA,PRCB,PRCSA,I,PRCPOS,PRCLST,PRCBLST
 N POSI,POS,PRCC,%DT,DTOUT,START,END,FIRST,LAST,A
 D CLEAR^VALM1
 ;
R0 S LIST=""
 D LF
 S DIR("A")="Select PHA, RFQ or All: "
 S DIR("?")="^D WRONG^PRCOER1()"
 S DIR(0)="FAO^1:30"
 D ^DIR K DIR
 G R4:$D(DUOUT),R4:$D(DTOUT)
 I X="" D  G R4:X["^",R0
 . D LF
 . D PAUSE
 . D LF
 I X["-" G R2
 I X["," G R3
 I $L(X)>3 D WRONG(X) D PAUSE G R4:X["^",R0
 ;
R1 ; IS THIS ONE OF THE CORRECT INPUTS?
 S Y=""
 D CHECK(X,.Y)
 I Y>3,Y<7 D WRONG(X),PAUSE G R0
 I Y>0 S LIST=Y_"," G DATE
 D WRONG(X)
 D PAUSE
 G R4:X["^",R0
 ;
R2 K Q1,Q2
 S PRCA=$P(X,"-",1)
 S PRCB=$P(X,"-",2)
 I PRCA["," D  G:LIST["0" P2 G R2B
 .  S PRCSA=X
 .  S X=PRCA
 .  D P3
 .  S X=PRCSA
 .  I LIST["0" Q
 .  S I=1
 .  F  S:$P(LIST,",",I)]"" PRCPOS=$P(LIST,",",I) Q:$P(LIST,",",I)=""  S I=I+1
 .  S Q1=$E(LIST,PRCPOS)
 .  S PRCLST=LIST
 .  Q
 S Y=""
 D CHECK(PRCA,.Y)
 I Y>3,Y<7 D WRONG(X),PAUSE G R0
 I $G(Q1)="" S PRCLST=Y
 S Q1=Y
R2B S PRCBLST=PRCB
 I PRCB["," D  G:LIST["0" P2 G R2C
 .  S PRCSA=X
 .  S X=PRCB
 .  D P3
 .  S X=PRCSA
 .  I LIST["0" Q
 .  S Q2=$P(LIST,",")
 .  S PRCBLST=LIST
 .  Q
 D CHECK(PRCB,.Y)
 I Y>3,Y<7 D WRONG(X),PAUSE G R0
 I $G(Q2)="" S PRCBLST=Y
 S Q2=Y
 I Q1=0 D WRONG(PRCA) G P2
 I Q2=0 D WRONG(PRCB) G P2
 ;
R2C I $G(PRCLST)[7!($G(PRCBLST)[7) S LIST=7_"," G DATE
 S LIST=""
 I Q1>Q2 F I=Q2:1:Q1 S LIST=LIST_I_","
 I Q2>Q1 F I=Q1:1:Q2 S LIST=LIST_I_","
 S:$G(PRCLST)]"" LIST=LIST_PRCLST
 S:$G(PRCBLST)]"" LIST=LIST_PRCBLST
 F I=1:1 S POSI=$P(LIST,",",I) Q:POSI=""  S POS(POSI)=POSI
 S LIST=""
 F I=1:1:3 S:$G(POS(I))]"" LIST=LIST_POS(I)_","
 K POS
 G DATE
 ;
P2 D PAUSE
 G R4:X["^",R0
P3 S LIST=""
 F I=1:1 S PRCC=$P(X,",",I) Q:PRCC=""  D  Q:"70"[LIST
 .  S Y=""
 .  D CHECK(PRCC,.Y)
 .  I Y>3,Y<7 D WRONG(X) S LIST=0 Q
 .  I Y=0 D WRONG(PRCC) S LIST=0 Q
 .  I Y=7 S LIST=7_"," Q
 .  S LIST=LIST_Y_","
 .  Q
 Q
 ;
R3 D P3
 I LIST'["0" G DATE
 D PAUSE
 G R4:X["^",R0
 ;
R4 S VALMBCK="R"
 S VALMBG=1
 Q
 ;
DATE D RT  ; prompt user for from and to date range
 I $S('$G(PRCOBEG):1,'$G(PRCOSTOP):1,1:0) G RT1
 I LIST="" G P2
 G ^PRCOER3
 ;
IT ; SELECT ACCEPTED, REJECTED OR INCOMMING TRANSACTIONS WITH PROBLEMS.
 Q
 ;
RT1 D:$G(X)'="^" PAUSE
 G R4:X["^",R0
 ;
PO ; FIND OUT IF USER WANTS TO DISPLAY 'POA' RECORDS
 Q
 ;
WRONG(X) ; COME HERE IF THE USER'S INPUT IS WRONG.
 S A(1)=$S($G(X)]"":X_" ?? "_$C(7),1:"")
 S A(2)="  "
 S A(3)="Enter a selection, more than one selection separated with a ','"
 S A(4)="a range of selections seperated with a '-' or exclude an entry with a '."
 S A(5)="  "
 D EN^DDIOL(.A)
 Q
 ;
CHECK(X,Y) ;  COME HERE TO SEE IF INPUT IS ONE OF THE CORRECT ENTRIES.
 ;
 ;  RETURN A NUMBER THAT REPRESENTS THE INPUT.
 ;
 ;      PHA      1
 ;      RFQ      2
 ;      TXT      3
 ;      ACT      4
 ;      PRJ      5
 ;      POA      6
 ;      ALL      7
 ;     WRONG     0
 ;
 ;  THE RETURNED VALUE OF "0" MEANS THAT THE USER DID NOT ENTER ANY
 ;  CORRECT ENTRY.
 ;
 S X=$S(X["P":"PHA",X["R":"RFQ",X["A":"ALL",1:X)
 S Y=$S(X="PHA":1,X="RFQ":2,X="TXT":3,X="ACT":4,X="PRJ":5,X="POA":6,X="ALL":7,1:0)
 Q
 ;
RT ; Ask user from date.  Must be less than "NOW".
 ; returns PRCOBEG
 N AA
 K PRCOBEG,PRCOSTOP
 D LF
 D NOW^%DTC
 S AA=$E(X,1,3)-1
 S Y=AA_$E(X,4,7)
 D DD^%DT
 S DIR(0)="D^:-NOW:AET"
 S DIR("A")="Enter the DATE/TIME CREATED starting date"
 S DIR("B")=Y
 D ^DIR K DIR
 Q:$D(DIRUT)
 S PRCOBEG=$S(Y[".":Y,1:Y_".000001")
 ;
RT0 ; Ask user end date.  Date must be > BEG date and less
 ; than "NOW".
 ; returns PRCOSTOP
 Q:'$G(PRCOBEG)
 S DIR(0)="D^"_PRCOBEG_":-NOW:AET"
 S DIR("A")="Enter the DATE/TIME CREATED ending date"
 S DIR("B")="NOW"
 D LF
 D ^DIR K DIR
 Q:$D(DIRUT)
 S PRCOSTOP=Y
 I PRCOSTOP'["." D  ;if no time entered by user
 .  ;
 .  ; set end date to "NOW" if end date is "TODAY".
 .  ;
 .  I PRCOSTOP=$G(DT) S PRCOSTOP=$$NOW^XLFDT Q
 .  S PRCOSTOP=PRCOSTOP_".235959"  ;attach time for end of day
 ;
 K DUOUT,DIRUT,DTOUT
 Q
 ;
PAUSE ; Come here to allow user to read screen before continuing.
 N DIR,DIRUT,DUOUT,DTOUT
 S DIR(0)="E"
 D ^DIR
 Q
LF ; Line feed
 D EN^DDIOL("","","!")
 Q