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

ASU0TRWR.m

Go to the documentation of this file.
  1. ASU0TRWR ; IHS/ITSC/LMH -WRITE HIST OR TRANS ;
  1. ;;4.2T2;Supply Accounting Mgmt. System;;JUN 30, 2000
  1. ;;This routine provides entry point 'WRITE' data into SAMS
  1. ;;trans or hist files from an array.
  1. WRITE(X,Z) ;EP ;Write hist or trans
  1. ; X - Record entry number
  1. ; Z - 'H' for hist, 1-7 for trans
  1. ; Requires local array ASUT
  1. S ASUHDA=X,ASUT("FIL")=$G(Z),ASUF("NEW")=1 N W F W=0:1:5 S ASUT(W)=""
  1. I ASUT("FIL")="H" D
  1. .S ASUT("GLOB")="^ASUH("
  1. E D
  1. .S ASUT("GLOB")="^ASUT("_ASUT("FIL")_",",ASUT("GBL0")="^ASUT("
  1. S ASUV("NODE")=ASUT("GLOB")_"ASUHDA)"
  1. I $D(@ASUV("NODE")) D
  1. .S ASUF("NEW")=0,DA=ASUHDA,DIK=ASUT("GLOB")
  1. .D ^DIK ;Delete old record and xrefs
  1. S $P(ASUT(0),U)=ASUT(ASUT,"TRKY"),$P(ASUT(1),U)=ASUT("TRCD")
  1. S ASUT(ASUT,"PT","AR")=$G(ASUT(ASUT,"PT","AR"))
  1. S ASUT(ASUT,"AR")=$G(ASUT(ASUT,"AR"))
  1. D PAR
  1. S $P(ASUT(0),U,2)=ASUT(ASUT,"PT","AR"),$P(ASUT(1),U,2)=ASUT(ASUT,"AR")
  1. S ASUT(ASUT,"PT","STA")=$G(ASUT(ASUT,"PT","STA"))
  1. D PSTA
  1. S $P(ASUT(0),U,3)=ASUT(ASUT,"PT","STA"),$P(ASUT(1),U,3)=ASUT(ASUT,"STA")
  1. S ASUT(ASUT,"PT","ACC")=$G(ASUT(ASUT,"PT","ACC"))
  1. S ASUT(ASUT,"ACC")=$G(ASUT(ASUT,"ACC"))
  1. D PTF("ACC")
  1. S $P(ASUT(0),U,4)=ASUT(ASUT,"PT","ACC"),$P(ASUT(1),U,4)=ASUT(ASUT,"ACC")
  1. S ASUT(ASUT,"PT","IDX")=$G(ASUT(ASUT,"PT","IDX"))
  1. S ASUT(ASUT,"IDX")=$G(ASUT(ASUT,"IDX"))
  1. D PIDX
  1. S $P(ASUT(0),U,5)=ASUT(ASUT,"PT","IDX"),$P(ASUT(1),U,5)=ASUT(ASUT,"IDX")
  1. S:$G(ASUT(ASUT,"ENTR BY"))']"" ASUT(ASUT,"ENTR BY")=$P(ASUT(ASUT,"TRKY"),".",3) S $P(ASUT(0),U,6)=ASUT(ASUT,"ENTR BY")
  1. S:$G(ASUT(ASUT,"DTE"))']"" ASUT(ASUT,"DTE")=$P(ASUT(ASUT,"TRKY"),".")
  1. S $P(ASUT(0),U,7)=ASUT(ASUT,"DTE")
  1. S $P(ASUT(0),U,8)=ASUT(ASUT,"DTP"),$P(ASUT(0),U,9)=ASUT(ASUT,"DTW")
  1. ;The following line may be a problem and probably should be changed
  1. ;S $P(ASUT(0),U,10)="Y" ;CSC 1-99
  1. S $P(ASUT(0),U,10)=ASUT(ASUT,"STATUS") ;IHS/DSD/JLG 4/26/99
  1. ;S $P(ASUT(0),U,7)=ASUT(ASUT,"DTE"),$P(ASUT(0),U,8)=ASUT(ASUT,"DTP"),$P(ASUT(0),U,9)=ASUT(ASUT,"DTW"),$P(ASUT(0),U,10)=ASUT(ASUT,"STATUS")
  1. S ASUT(ASUT,"PT","SSA")=$G(ASUT(ASUT,"PT","SSA"))
  1. S ASUT(ASUT,"SSA")=$G(ASUT(ASUT,"SSA"))
  1. D PTR("SSA")
  1. ;In file 9002036.6 and maybe others, this is putting values into
  1. ;that are not defined in the DD!!
  1. S $P(ASUT(0),U,11)=$G(ASUT(ASUT,"PT","SSA"))
  1. S $P(ASUT(1),U,11)=$G(ASUT(ASUT,"SSA"))
  1. I ASUT("TRCD")=12 S ASUJT("SSA")=ASUT(ASUT,"SSA") ;WAR 5/13/99
  1. S ASUT(ASUT,"PT","SRC")=$G(ASUT(ASUT,"PT","SRC"))
  1. S ASUT(ASUT,"SRC")=$G(ASUT(ASUT,"SRC"))
  1. D PTF("SRC")
  1. S $P(ASUT(0),U,12)=ASUT(ASUT,"PT","SRC"),$P(ASUT(1),U,12)=ASUT(ASUT,"SRC")
  1. S ASUT(ASUT,"PT","SST")=$G(ASUT(ASUT,"PT","SST"))
  1. S ASUT(ASUT,"SST")=$G(ASUT(ASUT,"SST"))
  1. D PTR("SST")
  1. S $P(ASUT(0),U,13)=ASUT(ASUT,"PT","SST"),$P(ASUT(1),U,13)=ASUT(ASUT,"SST")
  1. S ASUT(ASUT,"PT","USR")=$G(ASUT(ASUT,"PT","USR"))
  1. S ASUT(ASUT,"USR")=$G(ASUT(ASUT,"USR"))
  1. D PTR("USR")
  1. S $P(ASUT(0),U,14)=ASUT(ASUT,"PT","USR"),$P(ASUT(1),U,14)=ASUT(ASUT,"USR")
  1. S ASUT(ASUT,"PT","REQ")=$G(ASUT(ASUT,"PT","REQ"))
  1. D PTR("REQ")
  1. S $P(ASUT(0),U,15)=ASUT(ASUT,"PT","REQ")
  1. S $P(ASUT(0),U,16)=$G(ASUT(ASUT,"PT","EOQ TYP"))
  1. S $P(ASUT(1),U,16)=$G(ASUT(ASUT,"EOQ TYP"))
  1. S ASUT(ASUT,"PT","SOBJ")=$G(ASUT(ASUT,"PT","SOBJ"))
  1. S ASUT(ASUT,"SOBJ")=$G(ASUT(ASUT,"SOBJ"))
  1. D PTF("SOBJ")
  1. S $P(ASUT(0),U,17)=$G(ASUT(ASUT,"PT","SOBJ"))
  1. S $P(ASUT(1),U,17)=ASUT(ASUT,"SOBJ"),$P(ASUT(1),U,19)=$G(ASUT(ASUT,"D/IF"))
  1. S $P(ASUT(0),U,20)=$G(ASUT(ASUT,"CALCED"))
  1. S:$G(ASUT(ASUT,"MST","QTY"))']"" ASUT(ASUT,"MST","QTY")=$G(ASUMS("QTY","O/H")) S $P(ASUT(0),U,21)=ASUT(ASUT,"MST","QTY")
  1. S:$G(ASUT(ASUT,"MST","VAL"))']"" ASUT(ASUT,"MST","VAL")=$G(ASUMS("VAL","O/H")) S $P(ASUT(0),U,22)=ASUT(ASUT,"MST","VAL")
  1. S:$G(ASUT(ASUT,"MST","D/I"))']"" ASUT(ASUT,"MST","D/I")=$G(ASUMS("D/I","QTY-TOT")) S $P(ASUT(0),U,23)=ASUT(ASUT,"MST","D/I")
  1. ;**Next 2 lines if no sign field. ;IHS/ITSC/LMH 6/23/00
  1. I $G(ASUT(ASUT,"SIGN"))="" D
  1. .S ASUT(ASUT,"SIGN")=$P(^ASUL(11,ASUL(11,"TRN","E#"),0),U,5) ;LMH 6/16/00
  1. S $P(ASUT(0),U,24)=ASUT(ASUT,"SIGN")
  1. S $P(ASUT(0),U,25)=$G(ASUT(ASUT,"RMK"))
  1. I Z="H" S $P(ASUT(0),U,30)=ASUT("TYPE") ;IHS/DSD/JLG 5/17/99
  1. S $P(ASUT(1),U,6)=$G(ASUT(ASUT,"QTY"))
  1. S $P(ASUT(1),U,7)=$G(ASUT(ASUT,"VAL"))
  1. S $P(ASUT(1),U,8)=$G(ASUT(ASUT,"VOU"))
  1. S $P(ASUT(1),U,9)=$G(ASUT(ASUT,"PON"))
  1. I ASUT("TRCD")=12 S ASUJT("PON")=ASUT(ASUT,"PON") ;WAR 5/13/99
  1. S $P(ASUT(1),U,10)=$G(ASUT(ASUT,"DTS"))
  1. ;$G added to each of the following lines IHS/DSD/JLG 5/17/99
  1. I $G(ASUT("TYPE"))=1 S $P(ASUT(1),U,10)=$G(ASUT(ASUT,"DTD"))
  1. I $G(ASUT("TYPE"))=2 S $P(ASUT(1),U,10)=ASUT(ASUT,"DTX")
  1. I $G(ASUT("TYPE"))=3 D
  1. .S $P(ASUT(1),U,6)=ASUT(ASUT,"QTY","REQ")
  1. .S $P(ASUT(1),U,10)=$G(ASUT(ASUT,"DTR"))
  1. .S $P(ASUT(3),U)=$G(ASUT(ASUT,"PST"))
  1. .S $P(ASUT(3),U,2)=$G(ASUT(ASUT,"ISSTY"))
  1. .S $P(ASUT(3),U,3)=$G(ASUT(ASUT,"REQ TYP"))
  1. .S $P(ASUT(3),U,4)=$G(ASUT(ASUT,"RQN"))
  1. .S $P(ASUT(3),U,5)=$G(ASUT(ASUT,"CTG"))
  1. .S $P(ASUT(3),U,6)=$G(ASUT(ASUT,"QTY","ISS"))
  1. .I ASUT(ASUT,"PST")="I",$G(ASUT(ASUT,"QTY","ISS"))']0 D
  1. ..S ASUT(ASUT,"QTY","ISS")=ASUT(ASUT,"QTY","REQ")
  1. .S $P(ASUT(3),U,7)=$G(ASUT(ASUT,"B/O"))
  1. .S $P(ASUT(3),U,8)=$G(ASUT(ASUT,"QTY","ADJ"))
  1. I $G(ASUT("TYPE"))=4 D
  1. .I '$G(ASUT(ASUT,"BCD")) S ASUT(ASUT,"BCD")="" ;CSC THINK ITS BARCODE
  1. .S ASUT(ASUT,"PT","CAT")=$G(ASUT(ASUT,"PT","CAT"))
  1. .S ASUT(ASUT,"CAT")=$G(ASUT(ASUT,"CAT"))
  1. .D PTF("CAT")
  1. .S $P(ASUT(0),U,19)=$G(ASUT(ASUT,"PT","CAT"))
  1. .S $P(ASUT(4),U,4)=ASUT(ASUT,"CAT")
  1. .S $P(ASUT(4),U)=$G(ASUT(ASUT,"DESC"))
  1. .S $P(ASUT(4),U,2)=ASUT(ASUT,"AR U/I")
  1. .S $P(ASUT(4),U,3)=ASUT(ASUT,"NSN"),$P(ASUT(4),U,5)=ASUT(ASUT,"BCD")
  1. I $G(ASUT("TYPE"))=5 D
  1. .S $P(ASUT(5),U,2)=ASUT(ASUT,"EOQ MM")
  1. .S $P(ASUT(5),U,3)=ASUT(ASUT,"EOQ QM")
  1. .S $P(ASUT(5),U,4)=ASUT(ASUT,"EOQ AM")
  1. .S $P(ASUT(1),U,9)=ASUT(ASUT,"ORD#")
  1. .S $P(ASUT(0),U,18)=ASUT(ASUT,"PT","VEN")
  1. .S $P(ASUT(5),U,8)=ASUT(ASUT,"VEN NM")
  1. .S $P(ASUT(0),U,19)=ASUT(ASUT,"PT","SLC")
  1. .S $P(ASUT(5),U)=ASUT(ASUT,"SLC")
  1. .S $P(ASUT(5),U,5)=ASUT(ASUT,"LTM")
  1. .I ASUT(ASUT,"LTM")?2N D
  1. ..S ASUT(ASUT,"LTM")=ASUT(ASUT,"LTM")*.1
  1. .S $P(ASUT(5),U,6)=ASUT(ASUT,"RPQ")
  1. .S $P(ASUT(5),U,7)=ASUT(ASUT,"UCS")
  1. .S $P(ASUT(5),U,9)=ASUT(ASUT,"SUI")
  1. .S $P(ASUT(5),U,10)=ASUT(ASUT,"ULVQTY")
  1. .S $P(ASUT(5),U,11)=ASUT(ASUT,"SPQ")
  1. S $P(ASUT(1),U,15)=$G(ASUT(ASUT,"CAN"))
  1. S $P(ASUT(1),U,18)=$G(ASUT(ASUT,"FPN"))
  1. S ASUT("FND")=$S(ASUT("FIL")?1N:ASUT("FIL"),1:$G(ASUJV))
  1. F W=0,1,ASUT("FND") S ASUV("NODE")=ASUT("GLOB")_ASUHDA_","_W_")" S:$G(ASUT(W))]"" @ASUV("NODE")=ASUT(W)
  1. K D0,DA,DIC,DIR,DIU,W,X
  1. S DA=ASUHDA,DIK=ASUT("GLOB")
  1. D IX^DIK ;Re xref new record
  1. I ASUF("NEW") D
  1. .S ASUVN0=ASUT("GLOB")_"0)",$P(@ASUVN0,U,4)=$P(@ASUVN0,U,4)+1
  1. .K ASUF("NEW")
  1. I $G(ASUF("SV")) K:ASUF("SV")=1 ASUF("SV") Q
  1. K ASUT(ASUT)
  1. Q
  1. RETURN ;
  1. S Y=0,X=ASUHDA Q
  1. ERR ;
  1. S Y=-1 Q
  1. PACC ;EP ;account
  1. I ASUT(ASUT,"PT","ACC")]"" D
  1. .D ACC^ASULDIRF(ASUT(ASUT,"PT","ACC"))
  1. E D
  1. .I ASUT(ASUT,"ACC")]"" D ACC^ASULDIRF(ASUT(ASUT,"ACC"))
  1. S:ASUT(ASUT,"PT","ACC")']"" ASUT(ASUT,"PT","ACC")=$G(ASUMX("ACC"))
  1. S:ASUT(ASUT,"ACC")']"" ASUT(ASUT,"ACC")=$G(ASUMX("ACC"))
  1. Q
  1. PAR ;EP ;area
  1. I ASUT(ASUT,"AR")]"" S:ASUT(ASUT,"PT","AR")']"" ASUT(ASUT,"PT","AR")=ASUT(ASUT,"AR")
  1. ;Following line modified ihs/pimc/JLG 9/10/99
  1. I ASUT("TRCD")="4A"!(ASUT("TRCD")="4C")!(ASUT("TRCD")="4D") D
  1. .S ASUT(ASUT,"PT","STA")=ASUL(1,"AR","STA1")
  1. .S ASUT(ASUT,"STA")="" ;CSC 4A HAS NO STATION CODE
  1. Q:ASUL(1,"AR","AP")=91 Q:ASUL(1,"AR","AP")=ASUT(ASUT,"PT","AR")
  1. S Y=-2 Q
  1. ;
  1. PSTA ;EP ;sta
  1. I ASUT(ASUT,"PT","STA")?5N D
  1. .D STA^ASULARST(ASUT(ASUT,"PT","STA"))
  1. E D
  1. .I ASUT(ASUT,"STA")]"" D STA^ASULARST(ASUT(ASUT,"STA"))
  1. S:ASUT(ASUT,"PT","STA")']"" ASUT(ASUT,"PT","STA")=$G(ASUL(2,"STA","E#"))
  1. S:ASUT(ASUT,"STA")']"" ASUT(ASUT,"STA")=$G(ASUL(2,"STA","CD"))
  1. Q
  1. PIDX ;EP ;idx
  1. ;The following IF is always true in its original form. Changed to
  1. ;reflect hopefully the correct logic.
  1. ;I ASUT(ASUT,"IDX")["" D
  1. I ASUT(ASUT,"IDX")="" D ;IHS/DSD/JLG 4/22/99
  1. .I ASUT("TYPE")=0 D
  1. ..S ASUT(ASUT,"IDX")=999998
  1. ..S ASUT(ASUT,"PT","IDX")=ASUL(1,"AR","AP")_999998 Q
  1. .I ASUT(ASUT,"PT","IDX")']"",$P(ASUT(1),U,5)]"" D
  1. ..S ASUT(ASUT,"PT","IDX")=ASUT(ASUT,"PT","AR")_$P(ASUT(1),U,5)
  1. D IDX^ASUMXDIO(ASUT(ASUT,"PT","IDX"))
  1. Q
  1. PTRR(X,Y) ;
  1. S ASUT(ASUT,"PT",X)=$P(ASUT(0),U,Y)
  1. S ASUT(ASUT,X)=$P(ASUT(1),U,Y)
  1. D PTR(.X) Q
  1. PTR(X) ;
  1. N Z S Z="D "_X_"^ASULDIRR(ASUT(ASUT,",Z(0)="X))",Z(1)=Z_Z(0),Z(2)=Z_"""PT"","_Z(0),Z(3)=$S(X="SSA":17,X="SST":18,X="USR":19,X="REQ":20)
  1. I ASUT(ASUT,"PT",X)]"" D
  1. .X Z(2)
  1. E D
  1. .I $G(ASUT(ASUT,X))]"" X Z(1)
  1. S:$G(ASUT(ASUT,"PT",X))']"" ASUT(ASUT,"PT",X)=$G(ASUL(Z(3),X,"E#"))
  1. S:$G(ASUT(ASUT,X))']"" ASUT(ASUT,X)=$G(ASUL(Z(3),X))
  1. Q
  1. PTFR(X,Y) ;
  1. S ASUT(ASUT,"PT",X)=$P(ASUT(0),U,Y)
  1. S ASUT(ASUT,X)=$P(ASUT(1),U,Y)
  1. D PTF(.X) Q
  1. PTF(X) ;
  1. N Z S Z="D "_X_"^ASULDIRF(ASUT(ASUT,",Z(0)="X))",Z(1)=Z_Z(0),Z(2)=Z_"""PT"","_Z(0),Z(3)=$S(X="ACC":9,X="SRC":5,X="SOBJ":3,X="CAT":7)
  1. I ASUT(ASUT,"PT",X)]"" D
  1. .X Z(2)
  1. E D
  1. .I ASUT(ASUT,X)]"" X Z(1)
  1. S:ASUT(ASUT,"PT",X)']"" ASUT(ASUT,"PT",X)=$G(ASUL(Z(3),X,"E#"))
  1. S:ASUT(ASUT,X)']"" ASUT(ASUT,X)=$G(ASUL(Z(3),X))
  1. Q