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

ASUMSOLR.m

Go to the documentation of this file.
  1. ASUMSOLR ; IHS/ITSC/LMH - ONLINE STATION MASTER REVIEW ;
  1. ;;4.2T2;Supply Accounting Mgmt. System;;JUN 30, 2000
  1. ;;Y2K/OK AEF/2970626
  1. ;
  1. ;This routine allows display of the Station Master file.
  1. ;
  1. ; Program variables:
  1. ; ASUAR = area internal number
  1. ; ASUIDX = index internal number
  1. ; ASUL( = array containing area and station data
  1. ; ASUMS( = array containing station master data
  1. ; ASUMX( = array containing index master data
  1. ; ASUOUT = escape controller
  1. ; ASUSTA = station internal number
  1. ; ASUTXT = holds text to be printed
  1. ; ASUY = holds user input
  1. ;
  1. EN1 ;EP -- MAIN ENTRY POINT FOR DATA DISPLAY
  1. ;
  1. N ASUEP
  1. S ASUEP=1
  1. D START(ASUEP)
  1. D QUIT
  1. Q
  1. EN2 ;EP -- ENTRY POINT TO EDIT PURCHASE ORDER DUE IN DATES
  1. ;
  1. N ASUEP
  1. S ASUEP=2
  1. D START(ASUEP)
  1. D QUIT
  1. Q
  1. ;
  1. START(ASUEP) ;
  1. ;----- START THE PROGRAM
  1. ;
  1. N ASUOUT
  1. F D Q:$G(ASUOUT)
  1. . N ASUAR,ASUF,ASUK,ASUMX,ASUMS,ASUS,ASUSTA,ASUV,X,Y,ZTSAVE
  1. . S ASUSTA=ASUL(2,"STA","E#")
  1. . D ^XBKVAR,HOME^%ZIS
  1. . K ^TMP("ASU",$J,"IDX")
  1. . D SETUP(.ASUL,.ASUAR,.ASUOUT) Q:$G(ASUOUT)
  1. . D IDX(ASUAR,ASUSTA)
  1. . I '$D(^TMP("ASU",$J,"IDX")) S ASUOUT=1 Q
  1. . I $G(ASUEP)=2 D Q
  1. . . D DISP(ASUSTA,ASUEP)
  1. . . H 2
  1. . S ZTSAVE("^TMP(""ASU"",$J,""IDX"",")="",(ZTSAVE("ASUEP"),ZTSAVE("ASUSTA"))=""
  1. . D QUE^ASUUTIL("DQ^ASUMSOLR",.ZTSAVE,"SAMS - ONLINE STATION MASTER REVIEW")
  1. Q
  1. ;
  1. SETUP(ASUL,ASUAR,ASUOUT) ;
  1. ;----- GET ACCOUNTING POINT OR AREA INTERNAL NUMBER
  1. ;
  1. W @IOF
  1. W !?5,"S.A.M.S S.T.A.T.I.O.N M.A.S.T.E.R O.N.L.I.N.E R.E.V.I.E.W",!!
  1. I $G(ASUL(1,"AR","E#"))']"" D ^ASUVAR I $D(DTOUT)!($D(DUOUT))!($D(DIROUT)) Q
  1. I $G(ASUL(1,"AR","E#"))']"" W !,"UNABLE TO FIND ACCOUNTING POINT" S ASUOUT=1 Q
  1. S ASUAR=ASUL(1,"AR","E#")
  1. Q
  1. IDX(ASUAR,ASUSTA) ;
  1. ;----- GETS INDEX NUMBERS
  1. ;
  1. N ASUOUT
  1. F D Q:$G(ASUOUT)
  1. . N ASUY
  1. . K ^TMP("ASU",$J,"IDX")
  1. . D GET(.ASUY,.ASUOUT)
  1. . Q:$G(ASUOUT)
  1. . D BLD(ASUY,ASUAR,ASUSTA)
  1. . I $D(^TMP("ASU",$J,"IDX")) S ASUOUT=1 Q
  1. . W !!,"You have not selected any valid items for this station.",!
  1. Q
  1. GET(ASUY,ASUOUT) ;
  1. ;----- PROMPTS USER FOR INDEX NUMBERS
  1. ;
  1. N DIR,X,Y
  1. S DIR(0)="FA"
  1. S DIR("A")="Enter INDEX(S): "
  1. S DIR("?")="Enter ONE index, a RANGE using '-', or ANY NUMBER of index numbers separated by ','"
  1. D ^DIR
  1. I Y["^"!($D(DUOUT))!($D(DTOUT)) S ASUOUT=1 Q
  1. S ASUY=Y
  1. Q
  1. BLD(ASUY,ASUAR,ASUSTA) ;
  1. ;----- BUILDS INDEX NUMBER ARRAY
  1. ;
  1. ; Stores index numbers in ^TMP("ASU",$J,"IDX") global
  1. ;
  1. N ASUX,I
  1. F I=1:1:$L(ASUY,",") D
  1. . S ASUX=$P(ASUY,",",I)
  1. . I ASUX["-" D RANGE($P(ASUX,"-"),$P(ASUX,"-",2),ASUAR,ASUSTA) Q
  1. . S ASUX=$$PAD(ASUX,6)
  1. . I $L(ASUX)<8 S ASUX=ASUAR_ASUX
  1. . Q:$E(ASUX,1,2)'=ASUAR
  1. . I $D(^ASUMX(ASUX)),$D(^ASUMS(ASUSTA,1,ASUX)) S ^TMP("ASU",$J,"IDX",ASUX)=""
  1. Q
  1. RANGE(X,Y,ASUAR,ASUSTA) ;
  1. ;----- BUILDS ARRAY CONTAINING RANGE OF INDEX NUMBERS
  1. ;
  1. ; X = starting number
  1. ; Y = ending number
  1. ;
  1. Q:X>Y
  1. S X=$$PAD(X,6),Y=$$PAD(Y,6)
  1. I $L(X)<8 S X=ASUAR_X
  1. I $L(Y)<8 S Y=ASUAR_Y
  1. Q:$E(X,1,2)'=ASUAR
  1. S X=X-1 F S X=$O(^ASUMX(X)) Q:X']"" Q:X>Y Q:$E(X,1,2)'=ASUAR D
  1. . I $D(^ASUMS(ASUSTA,1,X)) S ^TMP("ASU",$J,"IDX",X)=""
  1. Q
  1. ;
  1. DQ ;EP -- QUEUED JOB STARTS HERE
  1. ;
  1. D DISP(ASUSTA,ASUEP)
  1. D QUIT
  1. Q
  1. DISP(ASUSTA,ASUEP) ;
  1. ;----- DISPLAYS INDEX ITEM DATA
  1. ;
  1. N ASUIDX,ASUMS,ASUMX,ASUOUT
  1. D ^ASUVAR I $D(DTOUT)!($D(DUOUT))!($D(DIROUT)) Q ;DFM P1 9/3/98
  1. S ASUIDX=0 F S ASUIDX=$O(^TMP("ASU",$J,"IDX",ASUIDX)) Q:'ASUIDX D WRITE(ASUSTA,ASUIDX,.ASUMS,ASUEP,.ASUOUT) Q:$G(ASUOUT)
  1. Q
  1. WRITE(ASUSTA,ASUIDX,ASUMS,ASUEP,ASUOUT) ;
  1. ;----- WRITES OUTPUT
  1. ;
  1. N DIR,X,Y
  1. D SEGS(ASUSTA,ASUIDX,ASUEP)
  1. I $G(ASUEP)=2 D EDIT(ASUSTA,ASUIDX,.ASUMS,ASUEP)
  1. I $E(IOST)="C" S DIR(0)="E" D ^DIR I 'Y S ASUOUT=1
  1. Q
  1. SEGS(ASUSTA,ASUIDX,ASUEP) ;
  1. ;----- WRITES DATA SEGMENTS
  1. ;
  1. S ASUMS("E#","STA")=ASUSTA
  1. S (ASUMS("E#","IDX"),ASUMX("E#","IDX"))=ASUIDX
  1. D ^ASUMXDIO,^ASUMSTRD I ASUMS("E#","IDX")[999999 W @(IOF) W !,"INDEX ",$G(ASUMX("DELIX"))," FOR ",$G(ASUMX("DELDS"))," DELETED ",$E($G(ASUMX("DELDT")),2,3),"-",$E($G(ASUMS("DELDT")),4,5) Q
  1. D HDR(ASUSTA),ID(.ASUMX),SS(.ASUMS,ASUEP),OV(.ASUMS,ASUEP),DI(.ASUMS),DD(.ASUMS,ASUEP)
  1. Q
  1. HDR(ASUSTA) ;
  1. ;----- WRITES HEADER
  1. ;
  1. W @IOF
  1. N ASUTXT
  1. ;D STA^ASULARST(ASUSTA)
  1. W !,"*****"
  1. S ASUTXT="S T A T I O N M A S T E R E N T R Y F O R"
  1. W ?(IOM-$L(ASUTXT))/2,ASUTXT
  1. W ?IOM-5,"*****"
  1. W !,"*****"
  1. S ASUTXT=$G(ASUL(2,"STA","CD"))_" - "_$G(ASUL(2,"STA","NM"))
  1. W ?(IOM-$L(ASUTXT))/2,ASUTXT
  1. W ?IOM-5,"*****"
  1. Q
  1. ID(ASUMX) ;
  1. ;----- WRITES INDEX ITEM DATA
  1. ;
  1. W !?(IOM-46)/2,"************** INDEX ITEM DATA ***************"
  1. W !,"DESCR:",?9,$G(ASUMX("DESC",1)),?41,$G(ASUMX("DESC",2))
  1. W !,"INDEX:" I $G(ASUMX("IDX"))]"" W ?9,$E(ASUMX("IDX"),1,5)_"."_$E(ASUMX("IDX"),6)
  1. W ?19,"ACCOUNT:",?29,$G(ASUMX("ACC"))
  1. W ?34,"DTESTB:" I $G(ASUMX("ESTB"))]"" W ?42,$E(ASUMX("ESTB"),2,3)_"/"_$E(ASUMX("ESTB"),4,5)
  1. W ?49,"OBJSUB:" I $G(ASUMX("SOBJ"))]"" W ?57,$S(ASUMX("SOBJ")[".":ASUMX("SOBJ"),1:$E(ASUMX("SOBJ"),1,2)_"."_$E(ASUMX("SOBJ"),3,4))
  1. W ?64,"CATGRY:",?74,$G(ASUMX("CAT"))
  1. W !,"NSN:" I $G(ASUMX("NSN"))]"" W ?9,$S($L(ASUMX("NSN"))=13:$E(ASUMX("NSN"),1,4)_"-"_$E(ASUMX("NSN"),5,6)_"-"_$E(ASUMX("NSN"),7,9)_"-"_$E(ASUMX("NSN"),10,13),1:ASUMX("NSN"))
  1. W ?34,"STA U/I:",?44,$G(ASUMX("AR U/I"))
  1. Q
  1. SS(ASUMS,ASUEP) ;
  1. ;----- WRITES STATION STATISTICS
  1. ;
  1. Q:$G(ASUEP)=2
  1. W !?(IOM-46)/2,"************* STATION STATISTICS *************"
  1. W !,"QTY OH:" I $G(ASUMS("QTY","O/H"))]"" W ?8,$J(ASUMS("QTY","O/H"),7)
  1. W ?19,"VALUE:" I $G(ASUMS("VAL","O/H"))]"" W ?25,$J(ASUMS("VAL","O/H"),12,2)
  1. W ?39,"LSTISS:" I $G(ASUMS("LSTISS")) W ?47,$E(ASUMS("LSTISS"),2,3)_"/"_$E(ASUMS("LSTISS"),4,5)
  1. W ?54,"DUEOUT:" I $G(ASUMS("D/O","QTY"))]"" W ?64,$J(ASUMS("D/O","QTY"),7)
  1. W ?72,"SLC:",?78,$G(ASUMS("SLC"))
  1. Q
  1. OV(ASUMS,ASUEP) ;
  1. ;----- WRITES ORDER/VENDOR DATA
  1. ;
  1. Q:$G(ASUEP)=2
  1. W !?(IOM-46)/2,"************ ORDER / VENDOR DATA *************"
  1. W !,"VENDOR:",?9,$G(ASUMS("VENAM"))
  1. W ?39,"ORDER#:",?49,$G(ASUMS("ORD#"))
  1. W !,"PAMIQ:" I $G(ASUMS("PMIQ")) W ?8,$J(ASUMS("PMIQ"),7)
  1. W ?19,"CUR RPQ:" I $G(ASUMS("RPQ")) W ?29,$J(ASUMS("RPQ"),7)
  1. W ?39,"OLD RPQ:" I $G(ASUMS("RPQ-O")) W ?49,$J(ASUMS("RPQ-O"),7)
  1. W ?61,"SOURCE:",?69,$G(ASUMS("SRC"))
  1. W !,"LASTPP:" I $G(ASUMS("LPP")) W ?7,$J(ASUMS("LPP"),10,2)
  1. W ?19,"LEADTIM:",?29,$J($G(ASUMS("LTM")),3,1)
  1. W ?39,"STDPACK:" I $G(ASUMS("SPQ")) W ?49,$J(ASUMS("SPQ"),7)
  1. W ?61,"VEN U/I:",?71,$G(ASUMS("VENUI"))
  1. W !,"EOQ TYP:",?9,$G(ASUMS("EOQ","TP"))
  1. W ?11,"EOQ TBL:" I $G(ASUMS("EOQ","TB")) W ?19,$J(ASUMS("EOQ","TB"),4)
  1. W ?24,"MOS MOD:",?34,$G(ASUMS("EOQ","MM"))
  1. W ?39,"QTY MOD:" I $G(ASUMS("EOQ","QM")) W ?48,$J(ASUMS("EOQ","QM"),7)
  1. W ?61,"ACT MOD:" I $G(ASUMS("EOQ","AM")) W ?69,$J(ASUMS("EOQ","AM"),7)
  1. Q
  1. DI(ASUMS) ;
  1. ;----- WRITES DUE IN DATA
  1. ;
  1. N I
  1. W !?(IOM-46)/2,"**************** DUE IN DATA *****************"
  1. F I=1:1:3 D
  1. . W !,"DUEIN "_I_" PO:",?12,$G(ASUMS("D/I","PO#",I))
  1. . W ?21,"DT:" I $G(ASUMS("D/I","DT",I)) W ?26,$E(ASUMS("D/I","DT",I),4,7),$E(ASUMS("D/I","DT",I),2,3)
  1. . W ?34,"QTY:" I $G(ASUMS("D/I","QTY",I)) W ?39,$J(ASUMS("D/I","QTY",I),7)
  1. . W ?49,"VAL:" I $G(ASUMS("D/I","VAL",I)) W ?54,$J(ASUMS("D/I","VAL",I),10,2)
  1. . W ?67,"ON72:" I $G(ASUMS("D/I","DTR72",I)) W ?73,$E(ASUMS("D/I","DTR72",I),4,7),$E(ASUMS("D/I","DTR72",I),2,3)
  1. Q
  1. DD(ASUMS,ASUEP) ;
  1. ;----- WRITES DEMAND DATA
  1. ;
  1. Q:$G(ASUEP)=2
  1. N ASUTOT,I,J
  1. W !?((IOM-46)/2),"***** DEMAND DATA (CALLS & QTY BY MONTH) *****"
  1. W !?5,"JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC TOT"
  1. W !,"CA"
  1. S ASUTOT=0
  1. F I=1:1:12 S J=(I*6)-4 S ASUTOT=ASUTOT+$G(ASUMS("DMD","CALL",I)) W ?J,$J($G(ASUMS("DMD","CALL",I)),6,0)
  1. W ?74,$J(ASUTOT,6,0)
  1. W !,"QT"
  1. S ASUTOT=0
  1. F I=1:1:12 S J=(I*6)-4 S ASUTOT=ASUTOT+$G(ASUMS("DMD","QTY",I)) W ?J,$J($G(ASUMS("DMD","QTY",I)),6,0)
  1. W ?74,$J(ASUTOT,6,0),!
  1. Q
  1. EDIT(ASUSTA,ASUIDX,ASUMS,ASUEP) ;
  1. ;----- EDITS PO DUE IN DATE
  1. ;
  1. Q:$G(ASUEP)'=2
  1. N ASUDATA,ASUDTFLD,ASUPOFLD,ASUOUT,DA,DIE,DIR,DR,X,Y
  1. S ASUPOFLD="19^24^29"
  1. S ASUDTFLD="20^25^30"
  1. F D Q:$G(ASUOUT) D SEGS(ASUSTA,ASUIDX,ASUEP)
  1. . S ASUDATA=^ASUMS(ASUSTA,1,ASUIDX,0)
  1. . I $P(ASUDATA,U,20)']""&($P(ASUDATA,U,25)']"")&($P(ASUDATA,U,30)']"") S ASUOUT=1 Q
  1. . S DIR(0)="NO^1:3:0"
  1. . S DIR("A")="Which Purchase Order Due In Date do you wish to change"
  1. . D ^DIR K DIR
  1. . I Y'>0!($D(DUOUT))!($D(DTOUT)) S ASUOUT=1 Q
  1. . I $P(ASUDATA,U,$P(ASUPOFLD,U,Y))']"" W !!,"NO PURCHASE ORDER IN THIS FIELD",! H 2 Q
  1. . S DIE="^ASUMS("_ASUSTA_",1,"
  1. . S DA=ASUIDX
  1. . S DA(1)=ASUSTA
  1. . S DR=$P(ASUDTFLD,U,Y)
  1. . D ^DIE K DA,DIE,DR
  1. . S DIR(0)="YO"
  1. . S DIR("A")="Do you wish to edit another Purchase Order Due In Date for this Index"
  1. . S DIR("B")="NO"
  1. . D ^DIR K DIR
  1. . I 'Y S ASUOUT=1
  1. Q
  1. ;
  1. PAD(X,Y) ;----- EXTRINSIC FUNCTION TO PAD NUMBER WITH LEADING ZEROS
  1. ;
  1. ; X = number to be padded with zeros
  1. ; Y = target length of number
  1. ;
  1. F Q:$L(X)>(Y-1) S X="0"_X
  1. Q X
  1. QUIT ;----- CLEAN UP VARIABLES, CLOSE DEVICES, QUIT
  1. ;
  1. K ^TMP("ASU",$J,"IDX")
  1. D ^%ZISC
  1. Q