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

ASU2RUPD.m

Go to the documentation of this file.
  1. ASU2RUPD ; IHS/ITSC/LMH -POST RECEIPTS ;
  1. ;;4.2T2;Supply Accounting Mgmt. System;;JUN 30, 2000
  1. ;;This routine posts Receipt transaction data to SAMS masters.
  1. ;;It is invoked after the transaction is saved in Screenman.
  1. ;; Requires local arrays ASUT, ASUS and ASUM
  1. S:$G(DDSREFT)']"" DDSREFT=$G(ASUV("DDSREFT"))
  1. I $G(ASUS("PO#"))']"" N Z S Z=$G(ASUT(ASUT,"PON")) D POCK(.Z) Q:$G(DDSERROR)
  1. ;I ASUT(ASUT,"FPN")="P"!(ASUT("TRCD")="26") D:$G(ASUS("QVP"))="" POM I $G(DDSERROR) D QTY^ASUJCLER Q
  1. S ASUS("PO#")=$G(ASUS("PO#")),ASUS("PO#")=+ASUS("PO#")
  1. I ASUS("PO#")>0 D
  1. .I ASUS("PO#")=2 D
  1. ..S ASUMS("D/I","QTY",ASUV("PO#"))=""
  1. ..S ASUMS("D/I","VAL",ASUV("PO#"))=""
  1. ..S ASUMS("D/I","PO#",ASUV("PO#"))=""
  1. ..S ASUMS("D/I","DT",ASUV("PO#"))=""
  1. ..S ASUMS("D/I","SSA",ASUV("PO#"))=""
  1. ..S ASUMS("D/I","DTR72",ASUV("PO#"))=""
  1. .E D
  1. ..S ASUMS("D/I","QTY",ASUV("PO#"))=ASUMS("D/I","QTY",ASUV("PO#"))-ASUT(ASUT,"QTY")
  1. ..S ASUMS("D/I","VAL",ASUV("PO#"))=ASUMS("D/I","VAL",ASUV("PO#"))-ASUT(ASUT,"VAL")
  1. I $E(ASUT("TRCD"),2)?1A D Q:$G(ASUF("ERR"))>0
  1. .I ASUMS("QTY","O/H")<ASUT(ASUT,"QTY") D Q
  1. ..S ASUF("ERR")=1,DDSERROR=1,Z="Not enough Quantity On Hand - Receipt reversal of "_ASUT(ASUT,"QTY")_" would cause credit balance"
  1. ..S ASUT(ASUT,"QTY")=0 S:$G(DIE)']"" DIE=$G(ASUJ("GLOB"))
  1. ..D MSG^ASUJHELP(Z),QTY^ASUJSAVE(ASUT(ASUT,"QTY"))
  1. .I ASUMS("VAL","O/H")<ASUT(ASUT,"VAL") D Q
  1. ..S ASUF("ERR")=1,DDSERROR=1,Z="Not enough Value On Hand - Receipt reversal of "_ASUT(ASUT,"VAL")_" would cause credit balance"
  1. ..S ASUT(ASUT,"VAL")=0 S:$G(DIE)']"" DIE=$G(ASUJ("GLOB"))
  1. ..D MSG^ASUJHELP(Z),VAL^ASUJSAVE(ASUT(ASUT,"VAL"))
  1. S ASUMS("VAL","O/H")=ASUMS("VAL","O/H")+(ASUT(ASUT,"VAL")*ASUT(ASUT,"SIGN"))
  1. S ASUMS("QTY","O/H")=ASUMS("QTY","O/H")+(ASUT(ASUT,"QTY")*ASUT(ASUT,"SIGN"))
  1. I ASUT("TRCD")=22,ASUT(ASUT,"SRC")=ASUMS("SRC") D
  1. .I +ASUT(ASUT,"QTY")>0,+ASUT(ASUT,"VAL")>0 D
  1. ..S ASUMS("LPP")=$FN((ASUT(ASUT,"VAL")/ASUT(ASUT,"QTY")),"-",2)
  1. S ASUF("SV")=2 D ^ASUJHIST ;Move transaction to History file
  1. I ASUMS("QTY","O/H")>0,ASUMS("D/O","QTY")>0 D
  1. .D EN^ASU3BKOR(ASUMS("E#","IDX"))
  1. S ASUS("ADD")=0 D ^ASUMSTWR
  1. K ASUV("PO#"),ASUS("PO#")
  1. Q
  1. POCK(X) ;EP; PO# Check
  1. Q:ASUT(ASUT,"FPN")']"" Q:X']""
  1. S:'$L($G(ASUS("PO#"))) ASUS("PO#")=0
  1. Q:X=$G(ASUV("PON")) S ASUV("PON")=X
  1. D POCK^ASUJHELP
  1. I ASUT(ASUT,"FPN")="F" D
  1. .F ASUV("PO#")=1:1:3 D
  1. ..I ASUMS("D/I","PO#",ASUV("PO#"))=X D
  1. ...D POMATCH^ASUJHELP
  1. ...S ASUS("PO#")=2
  1. ...S ASUT(ASUT,"D/IF")=ASUMS("D/I","QTY",ASUV("PO#"))*-1
  1. ...I ASUT("TRCD")'=26 D POM
  1. E D
  1. .F ASUV("PO#")=1:1:3 D
  1. ..I ASUMS("D/I","PO#",ASUV("PO#"))=X D
  1. ...D POMATCH^ASUJHELP
  1. ...S ASUT(ASUT,"D/IF")=0
  1. ...I ASUT("TRCD")'=26 D POM
  1. D PLSCONT^ASUJHELP
  1. Q
  1. POM ;Purchase order match
  1. I (ASUT(ASUT,"QTY")'="")&(ASUT(ASUT,"VAL")'="") D ;any valu & any valu
  1. .S ASUS("QVP")=1
  1. .I ASUMS("D/I","QTY",ASUV("PO#"))-ASUT(ASUT,"QTY")>0&((ASUMS("D/I","VAL",ASUV("PO#"))-ASUT(ASUT,"VAL"))>0) D ;Value
  1. ..S ASUT(ASUT,"D/IF")=0
  1. ..I ASUMS("D/I","QTY",ASUV("PO#"))-ASUT(ASUT,"QTY")=0 D ;Qty
  1. ...S ASUS("PO#")=2
  1. ..E D
  1. ...S ASUS("PO#")=1
  1. .E D
  1. ..D RECQTY^ASUJHELP,QTY^ASUJCLER,VAL^ASUJCLER
  1. Q