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

BARUFCAS.m

Go to the documentation of this file.
  1. BARUFCAS ; IHS/SD/TPF - CASHIERING FUNCTIONS FOR UFMS ;04/09/2008
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**3,4,23**;OCT 26, 2005
  1. Q
  1. ;
  1. VIEW ;EP - VIEW UFMS SESSIONS
  1. D INIT
  1. D SHOW("") ;SHOW SESSIONS
  1. Q
  1. ;
  1. VIEWHDR(STATUS) ;EP - HEADER FOR VIEWING SESSIONS
  1. W !?6,"SESSION ID",?20,"CASHIER"
  1. W ?36,"DATE "_$S(STATUS="ALL STATUSES":"STATUS CHANGED",STATUS="OPEN":"OPENED",1:STATUS)
  1. W ?62,$S(STATUS="ALL STATUSES":"STATUS",1:""),?73,"ERA\PST"
  1. W !,DASH
  1. Q
  1. ;
  1. ALLSTAT(LIST,STATUS) ;EP - CHANGE THE STATUS OF ALL THE SESSIONS IN ARRAY 'LIST' TO STATUS
  1. N UDUZ,SESSID,RC,ERASTAT,POSTING
  1. ;
  1. I STATUS="RT"!(STATUS="T") S UDUZ="" D TRANSMIT^BARUFUT(UDUZ,.LIST,STATUS) Q ;IF 'T' OR 'RT' THEN TRANSMIT
  1. ;
  1. S REC=""
  1. F S REC=$O(LIST(REC)) Q:'REC D
  1. .S UDUZ=$P(LIST(REC),U)
  1. .S SESSID=$P(LIST(REC),U,2)
  1. .S ERASTAT=$P(LIST(REC),U,3)
  1. .I '$O(^BARSESS(DUZ(2),UDUZ,11,SESSID,2,0)) D Q
  1. ..W !!,"CANNOT RECONCILE SESSION ",SESSID
  1. ..W !,"THE SESSION HAS NO POSTING ACTIVITY"
  1. ..D ASKFORRT^BARUFUT
  1. .I ERASTAT="YES" D Q
  1. ..W !!,"CANNOT RECONCILE SESSION ",SESSID
  1. ..W !,"THE CASHIER IS ERA POSTING"
  1. ..D ASKFORRT^BARUFUT
  1. .;
  1. .S POSTING=$$STILPOST^BARUFUT1(UDUZ)
  1. .I +POSTING=1 D Q ;IS THE USER STILL LOGGED ON OR POSTING?
  1. ..W !!,"CANNOT RECONCILE SESSION ",SESSID
  1. ..W !,"THE CASHIER IS ",$P(POSTING,U,2)
  1. ..D ASKFORRT^BARUFUT
  1. .I +POSTING=2 D Q:'$G(Y)!($D(DTOUT))!($D(DUOUT))
  1. ..W !!,"RECONCILING SESSION ",SESSID
  1. ..W !,"THE CASHIER IS ",$P(POSTING,U,2)
  1. ..K DIR
  1. ..S DIR(0)="Y"
  1. ..S DIR("B")="Y"
  1. ..S DIR("A")="Continue Anyway?"
  1. ..D ^DIR
  1. .S RC=$$SETSESS^BARUFUT(UDUZ,SESSID,STATUS)
  1. Q
  1. ;
  1. RESEND ;EP - RESEND A FILE
  1. D RESENDF^BARUFUT1()
  1. Q
  1. ;
  1. INIT ;EP - INIT COMMON VARIABLES
  1. S $P(DASH,"-",81)=""
  1. Q
  1. ;
  1. SHOW(STATUS) ;EP - GENERIC SESSION LISTER
  1. AGAIN ;EP -
  1. D ^BARBAN
  1. S:$G(STATUS)="" STATUS="OPEN"
  1. W !!,"UFMS DISPLAY DATE LIMIT: ",$S($$GETDISLM^BARUFUT1("E")'="":$$GETDISLM^BARUFUT1("E"),1:"NONE SET")
  1. W " ("_$$GET1^DIQ(90052.06,DUZ(2)_",",1504,"I")_")"
  1. W !!,"The following SESSIONS are currently ",STATUS," =>"
  1. D VIEWHDR(STATUS)
  1. I STATUS'="ALL STATUSES",('$D(^BARSESS(DUZ(2),"C",STATUS))) D G ASKSTAT
  1. .W !!!,"THERE ARE NO "_STATUS_" CASHIER SESSIONS"
  1. .D ASKFORRT^BARUFUT
  1. I '$D(^BARSESS(DUZ(2),"C")),(STATUS="ALL STATUSES") D G ASKSTAT
  1. .W !!!,"THERE ARE NO CASHIER SESSIONS WITH A STATUS"
  1. .D ASKFORRT^BARUFUT
  1. S UDUZ=DUZ
  1. K LIST
  1. I STATUS="ALL STATUSES" D G ASK
  1. .S LINE=0
  1. .S TSTATUS=""
  1. .F S TSTATUS=$O(^BARSESS(DUZ(2),"C",TSTATUS)) Q:TSTATUS="" D
  1. ..D LOOP(UDUZ,TSTATUS,.LINE,.LIST,STATUS)
  1. S LINE=0
  1. D LOOP(UDUZ,STATUS,.LINE,.LIST,STATUS)
  1. ;
  1. I LINE=0 D G ASKSTAT
  1. .W !!!,"THERE ARE NO "_STATUS_" CASHIER SESSIONS"
  1. ;
  1. ASK ;EP - ASK FOR ACTION
  1. W !,$G(DASH)
  1. W !
  1. K DIR
  1. S (OPTIONST,VALIDCHK)=""
  1. S DIR("?")="Enter a session number"
  1. I STATUS'="ALL STATUSES",(STATUS="OPEN") D
  1. .S OPTIONST=" or RC/Reconcile all listed sessions"
  1. .S DIR("?")="Enter a session number or an action."
  1. S VALIDCHK="I CHOICE'?1""RC"".E"
  1. S VALIDCHK=VALIDCHK_",(CHOICE'?1""RC""1""@"".E),(STATUS'=""OPEN"")"
  1. S DIR("A")="Select Session Number to View"_OPTIONST
  1. S DIR("?")=DIR("?")_", or press return to choose a different status and/or Quit"
  1. S DIR(0)="FO"
  1. S DIR("?")=DIR("?")_" (Note: You can also choose a range from the displayed list. Separate the range from the Action by an @ sign e.g. RC@1,3,5,10-15 or RC@1-5,7,8,9"
  1. S DIR("A")=DIR("A")_" or Q/Quit"
  1. W !,"Press <RETURN> to change statuses being displayed or,"
  1. D ^DIR
  1. Q:($D(DTOUT))!($D(DUOUT))
  1. Q:(U_"Q"_U_"q"_U)[(U_Y_U)
  1. G ASKSTAT:Y=""
  1. I +Y=Y D G AGAIN
  1. .S CHOICE=+Y
  1. .I '$D(LIST(CHOICE)) W !,"Invalid choice!" H 3 Q
  1. .S UDUZ=$P(LIST(CHOICE),U)
  1. .S SESSID=$P(LIST(CHOICE),U,2)
  1. .S ERASTAT=$P(LIST(CHOICE),U,3)
  1. .D DISPLAYT^BARUFLOG(UDUZ,SESSID,"CASHIER",ERASTAT)
  1. ;
  1. S CHOICE=$$UPC^BARUTL(Y)
  1. I CHOICE'="",(STATUS="ALL STATUSES") D G AGAIN
  1. .W !,"INVALID CHOICE!" H 3
  1. I CHOICE'="",(STATUS'="ALL STATUSES") D G AGAIN
  1. .X VALIDCHK I $T W !,"INVALID CHOICE!" H 3 Q
  1. .S RANGE=$P(CHOICE,"@",2)
  1. .S:RANGE'="" RANGE=$$RANGE^BARUFUT1(RANGE)
  1. .D:RANGE'="" EXCLLST^BARUFUT1(RANGE,.LIST)
  1. .S CHOICE=$P(CHOICE,"@")
  1. .D ALLSTAT(.LIST,CHOICE) ;CHANGE ALL THE STATUSES WITHIN THE 'LIST' ARRAY
  1. ;
  1. ASKSTAT ;EP - ASK STATUS TO VIEW
  1. N CNTS
  1. K STATCNTS
  1. ;D CNTSTATS^BARUFUT1(.STATCNTS)
  1. D CNTSTATS^BARUFUT1(.STATCNTS,DUZ) ;BAR*1.8*4 IM26064
  1. K DIR
  1. S DIR("A")="View which session status"
  1. S DIR(0)="SO^O:OPEN" I $G(STATCNTS("OPEN"))'="" S DIR(0)=DIR(0)_" ("_$G(STATCNTS("OPEN"))_")"
  1. S DIR(0)=DIR(0)_";RC:RECONCILED" I $G(STATCNTS("RECONCILED"))'="" S DIR(0)=DIR(0)_" ("_$G(STATCNTS("RECONCILED"))_")"
  1. S DIR(0)=DIR(0)_";RV:REVIEWED/APPROVED" I $G(STATCNTS("REVIEWED/APPROVED"))'="" S DIR(0)=DIR(0)_" ("_$G(STATCNTS("REVIEWED/APPROVED"))_")"
  1. S DIR(0)=DIR(0)_";T:TRANSMITTED" I $G(STATCNTS("TRANSMITTED"))'="" S DIR(0)=DIR(0)_" ("_$G(STATCNTS("TRANSMITTED"))_")"
  1. S DIR(0)=DIR(0)_";RT:RETRANSMITTED" I $G(STATCNTS("RETRANSMITTED"))'="" S DIR(0)=DIR(0)_" ("_$G(STATCNTS("RETRANSMITTED"))_")"
  1. S DIR(0)=DIR(0)_";ALL:ALL STATUSES" I $G(STATCNTS("ALL STATUSES"))'="" S DIR(0)=DIR(0)_" ("_$G(STATCNTS("ALL STATUSES"))_")"
  1. S DIR(0)=DIR(0)_";Q:QUIT"
  1. K STATCNTS
  1. D ^DIR
  1. G:Y="" AGAIN
  1. I $D(DIRUT)!($D(DTOUT))!($D(DIRUT))!(Y="Q") Q
  1. I Y(0)'[("ALL") S STATUS=$P(Y(0)," ")
  1. E S STATUS=$P(Y(0)," ",1,2)
  1. G AGAIN
  1. Q
  1. ;
  1. LOOP(UDUZ,STAT,LINE,LIST,PRTSTAT) ;EP - GET DATA FROM SESSION LEVEL
  1. N SESSID,CNT,ERASTAT,RTCOUNT,CURSTAT
  1. S SESSID=$$GETDISLM^BARUFUT1("I")-.01
  1. F CNT=1:1 S SESSID=$O(^BARSESS(DUZ(2),"C",STAT,UDUZ,SESSID)) Q:SESSID="" D
  1. .S LINE=LINE+1
  1. .S IENS=SESSID_","_UDUZ_","
  1. .S CURSTAT=$$GET1^DIQ(90057.11,IENS,.02,"E")
  1. .S STATDATE=$$GET1^DIQ(90057.11,IENS,.03,"E")
  1. .S ERASTAT=$E($$GET1^DIQ(90057.11,IENS,.04,"E"))
  1. .S POSTING=$$STILPOST^BARUFUT1(UDUZ)
  1. .S Y=STATDATE X ^DD("DD") S STATDATE=Y
  1. .S CASHIER=$P($G(^VA(200,UDUZ,0)),U)
  1. .I STAT="RETRANSMITTED" S RTCOUNT=$$RTCOUNT^BARUFUT1(UDUZ,SESSID)
  1. .S LIST(LINE)=UDUZ_U_SESSID_U_ERASTAT
  1. .I $P(SESSID,".")=$$GETDISLM^BARUFUT1("I"),(CURSTAT="OPEN") D EN^XBVIDEO("RVN")
  1. .W !,LINE,"."
  1. .W ?3,SESSID,?20,$E(CASHIER,1,15),?36,STATDATE
  1. .D EN^XBVIDEO("RVF")
  1. .W:STAT="RETRANSMITTED" "(",RTCOUNT,")"
  1. .W ?58,$S(PRTSTAT="ALL STATUSES":$E(STAT,1,14),1:""),?72,$S(+POSTING&(STAT="OPEN"):"*",1:""),?75,ERASTAT,?76,"\",?77,$S(+POSTING=1&(CURSTAT="OPEN"):"Y",1:"")
  1. Q