1 | PRCPSFSV ;WOIFO/RFJ,LKG-create fms sv adjustment code sheet ;7/8/05 10:11
|
---|
2 | ;;5.1;IFCAP;**81,85**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;
|
---|
7 | SV(INVPT,TRANID,TRANDATE,STACKDA) ; create fms sv document for adjustment
|
---|
8 | ; tranid=transaction register id number
|
---|
9 | ; pass trandate for optional FMS acctg period, otherwise it uses the
|
---|
10 | ; transaction date
|
---|
11 | ; pass stackda for regeneration of document
|
---|
12 | ; loop transaction register for adjusted items
|
---|
13 | ; variables required:
|
---|
14 | ; prcpwbfy = whse beg fy ; prcpwfcp = whse fcp
|
---|
15 | ; prcpwsta = whse station #
|
---|
16 | N ACCT,BFY,DATA,EFY,FUND,GECSFMS,INVCOST,LINE,LINEDOC,PRCPFMS,PRCPSEC1,REASON,SIGN,TABLE,TOTAL,TRANDA,XPROG
|
---|
17 | K PRCPFMS
|
---|
18 | S (TRANDA,TOTAL)=0 F S TRANDA=$O(^PRCP(445.2,"T",INVPT,TRANID,TRANDA)) Q:'TRANDA S DATA=$G(^PRCP(445.2,TRANDA,0)) I DATA'="" D
|
---|
19 | . I '$P(DATA,"^",5) Q
|
---|
20 | . S INVCOST=$P(DATA,"^",22) I 'INVCOST Q
|
---|
21 | . I 'TRANDATE S TRANDATE=$P(DATA,"^",3)
|
---|
22 | . S ACCT=$$ACCT1^PRCPUX1($P($$NSN^PRCPUX1($P(DATA,"^",5)),"-"))
|
---|
23 | . S REASON=+$P(DATA,"^",10) I 'REASON S REASON=+$G(^PRCP(445.2,TRANDA,1))
|
---|
24 | . S TOTAL=TOTAL+INVCOST
|
---|
25 | . S PRCPFMS(ACCT,REASON)=$G(PRCPFMS(ACCT,REASON))+INVCOST
|
---|
26 | . I PRCPFMS(ACCT,REASON)=0 K PRCPFMS(ACCT,REASON)
|
---|
27 | I '$D(PRCPFMS) Q
|
---|
28 | ;
|
---|
29 | SVCOTS ;Entry point for SV from COTS inventory transaction
|
---|
30 | ; set up document variables
|
---|
31 | ; table=^^xprogram(fcp/prj)^^linefund^beginfy^endfy^^^job
|
---|
32 | S TABLE=$$ACC^PRC0C(PRCPWSTA,PRCPWFCP_"^"_$E(DT,2,3)_"^"_PRCPWBFY)
|
---|
33 | S XPROG=$P(TABLE,"^",3),FUND=$P(TABLE,"^",5),BFY=$E($P(TABLE,"^",6),3,4),EFY=$E($P(TABLE,"^",7),3,4)
|
---|
34 | I EFY=BFY S EFY=""
|
---|
35 | ;
|
---|
36 | ; build control segments in gcs
|
---|
37 | S PRCPSEC1=$$SEC1^PRC0C(PRCPWSTA) S:PRCPSEC1="" PRCPSEC1=10
|
---|
38 | I '$G(STACKDA) D CONTROL^GECSUFMS("I",PRCPWSTA,PRCPWSTA_TRANID,"SV",PRCPSEC1,0,"","Other adjustment tranid: "_TRANID)
|
---|
39 | I $G(STACKDA) D REBUILD^GECSUFM1(STACKDA,"I",PRCPSEC1,"","Rebuild of Other adjustment tranid: "_TRANID) S GECSFMS("DA")=STACKDA
|
---|
40 | D SETPARAM^GECSSDCT(GECSFMS("DA"),TRANID)
|
---|
41 | ;
|
---|
42 | ; build iv2 segment
|
---|
43 | S LINEDOC="SV2^"_$E(TRANDATE,2,3)_"^"_$E(TRANDATE,4,5)_"^"_$E(TRANDATE,6,7)
|
---|
44 | S $P(LINEDOC,"^",7)="E"
|
---|
45 | S $P(LINEDOC,"^",16)=$J($S(TOTAL<0:-TOTAL,1:TOTAL),0,2)
|
---|
46 | D SETCS^GECSSTAA(GECSFMS("DA"),LINEDOC_"^~")
|
---|
47 | ;
|
---|
48 | ; build line documents
|
---|
49 | S (ACCT,LINE)=0 F S ACCT=$O(PRCPFMS(ACCT)) Q:'ACCT S REASON="" F S REASON=$O(PRCPFMS(ACCT,REASON)) Q:REASON="" S INVCOST=PRCPFMS(ACCT,REASON) I INVCOST D
|
---|
50 | . S SIGN="I" I INVCOST<0 S INVCOST=-INVCOST,SIGN="D"
|
---|
51 | . S LINE=LINE+1
|
---|
52 | . S LINEDOC="LIN^~SVA^"_$E("000",$L(LINE)+1,3)_LINE_"^S"_$$TRANTYPE(REASON,ACCT)_"^"_BFY_"^"_EFY_"^"_FUND_"^^"_PRCPWSTA_"^^^^"_XPROG
|
---|
53 | . S $P(LINEDOC,"^",24)="220"
|
---|
54 | . S LINEDOC=LINEDOC_"^~SVB^"_$J(INVCOST,0,2)_"^"_SIGN_"^^G^~"
|
---|
55 | . D SETCS^GECSSTAA(GECSFMS("DA"),LINEDOC)
|
---|
56 | ;
|
---|
57 | D SETSTAT^GECSSTAA(GECSFMS("DA"),"Q")
|
---|
58 | D EN^DDIOL("FMS SV "_PRCPWSTA_TRANID_" document automatically "_$S($G(STACKDA):"RE-",1:"")_"transmitted.","","!?4")
|
---|
59 | Q
|
---|
60 | ;
|
---|
61 | ;
|
---|
62 | TRANTYPE(TYPE,ACCT) ; return transaction type based on type (1-7) and acct
|
---|
63 | ; type=1:transfer stock to VAMC whse
|
---|
64 | ; type=2:sale of stock to OGA
|
---|
65 | ; type=3:transfer excess stock to GSA
|
---|
66 | ; type=4:adjustment to stock valuation
|
---|
67 | ; type=5:writeoff damaged stock
|
---|
68 | ; type=6:transfer transportation to stock
|
---|
69 | ; type=7:inventory refund adjustment
|
---|
70 | I TYPE=1 Q $S(ACCT=1:"A",ACCT=2:"B",ACCT=3:"C",ACCT=8:"D",ACCT=6:"N",1:0)
|
---|
71 | I TYPE=2 Q $S(ACCT=1:"E",ACCT=2:"F",ACCT=3:"G",ACCT=8:"H",ACCT=6:"N",1:0)
|
---|
72 | I TYPE=3 Q $S(ACCT=1:"J",ACCT=2:"J",ACCT=3:"J",ACCT=8:"J",ACCT=6:"N",1:0)
|
---|
73 | I TYPE=4 Q $S(ACCT=1:"M",ACCT=2:"N",ACCT=3:"N",ACCT=8:"N",ACCT=6:"N",1:0)
|
---|
74 | I TYPE=5 Q $S(ACCT=1:"M",ACCT=2:"N",ACCT=3:"N",ACCT=8:"N",ACCT=6:"N",1:0)
|
---|
75 | I TYPE=6 Q $S(ACCT=1:"Q",ACCT=2:"Q",ACCT=3:"Q",ACCT=8:"Q",ACCT=6:"N",1:0)
|
---|
76 | I TYPE=7 Q $S(ACCT=1:"U",ACCT=2:"U",ACCT=3:"U",ACCT=8:"U",ACCT=6:"N",1:0)
|
---|
77 | Q 0
|
---|