1 | DGBTCSL ;ALB/MRY- Local Vendor additions (COREFLS) ; 07/15/02@0900 AM
|
---|
2 | ;;1.0;Beneficiary Travel;**2,3**;September 25, 2001
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | CSLASK() ; ask CoreFLS query
|
---|
6 | ; output: Y ( 1 := "YES", 0 := "NO", <1 := ABORT )
|
---|
7 | N DIR,Y
|
---|
8 | S DIR("A")="DO YOU WANT TO QUERY CoreFLS FOR A VENDOR"
|
---|
9 | S DIR(0)="Y",DIR("B")="NO"
|
---|
10 | D ^DIR Q:$D(DIRUT) -1
|
---|
11 | Q +Y
|
---|
12 | ;
|
---|
13 | CSLIEN() ; make CoreFLS query call returning IEN
|
---|
14 | ; output: Y ( <1 := invalid IEN, >0 := IEN )
|
---|
15 | N OUT,DGBTI,DGBTLINE,DGBTFLD,DIERR
|
---|
16 | ASK S OUT=""
|
---|
17 | D VENQ^CSLVQ(.OUT)
|
---|
18 | I OUT="",$O(OUT(""))="" Q -1 ; assuming ^abort response
|
---|
19 | I $D(OUT("ERROR")) K OUT G ASK
|
---|
20 | I $G(OUT("NAME"))=""!($G(OUT("NUMBER"))="")!($G(OUT("SITE_CODE"))="") G BAD
|
---|
21 | D FLDBLD
|
---|
22 | ; verify KEY fields sent in OUT array
|
---|
23 | N FDA,FDAIEN F DGBTI="NUMBER","SITE_CODE" D
|
---|
24 | . S FDA(392.31,"+1,",DGBTFLD(DGBTI))=$G(OUT(DGBTI))
|
---|
25 | S Y=$$KEYVAL^DIE("","FDA","DIERR")
|
---|
26 | ; only process new entries or edit duplicate entries
|
---|
27 | I 'Y,(DIERR("DIERR",1)'=740) G BAD
|
---|
28 | D CLEAN^DILF
|
---|
29 | NEW ; process new entries
|
---|
30 | I Y D G:$D(DIERR) BAD Q +FDAIEN(1)
|
---|
31 | . S DGBTI="" F S DGBTI=$O(DGBTFLD(DGBTI)) Q:DGBTI="" D
|
---|
32 | . . S FDA(392.31,"+1,",DGBTFLD(DGBTI))=$G(OUT(DGBTI))
|
---|
33 | . D UPDATE^DIE("EK","FDA","FDAIEN","DIERR")
|
---|
34 | EDIT ; edit existing entries
|
---|
35 | N VAL
|
---|
36 | ;S VAL(1)=FDA(392.31,"+1,",.01)
|
---|
37 | S VAL(1)=FDA(392.31,"+1,",.03)
|
---|
38 | S VAL(2)=FDA(392.31,"+1,",.02)
|
---|
39 | S Y=$$FIND1^DIC(392.31,"","KQ",.VAL,"","","")
|
---|
40 | I Y<1 G BAD
|
---|
41 | K VAL S DGBTI="" F S DGBTI=$O(DGBTFLD(DGBTI)) Q:DGBTI="" D
|
---|
42 | . S VAL(392.31,+Y_",",DGBTFLD(DGBTI))=$G(OUT(DGBTI))
|
---|
43 | D FILE^DIE("","VAL","DIERR")
|
---|
44 | I $D(DIERR) G BAD
|
---|
45 | Q +Y
|
---|
46 | ;
|
---|
47 | FLDBLD ; build helpful field array DGBTFLD(field name) = field number
|
---|
48 | F DGBTI=1:1 S DGBTLINE=$T(FLDS+DGBTI) Q:$P(DGBTLINE,";",3)="END" D
|
---|
49 | . S DGBTFLD($P(DGBTLINE,";",3))=$P(DGBTLINE,";",4)
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | STAND ; Standalone Query call
|
---|
53 | N Y,X
|
---|
54 | S X="CSLVQ" X ^%ZOSF("TEST") I '$T D Q
|
---|
55 | . W !,"** COMMUNICATIONS SERVICE LIBRARY (CSL) PACKAGE NOT INSTALLED **"
|
---|
56 | W !!,"** CoreFLS national database query **"
|
---|
57 | ASKS S Y=$$CSLIEN W ! Q:Y<1
|
---|
58 | I +Y>0 W !,"** LOCAL VENDOR (#392.31) File updated. **"
|
---|
59 | G ASKS
|
---|
60 | ;
|
---|
61 | FLDS ;
|
---|
62 | ;;NAME;.01
|
---|
63 | ;;NUMBER;.02
|
---|
64 | ;;SITE_CODE;.03
|
---|
65 | ;;TAXID;.04
|
---|
66 | ;;AREA_CODE;.05
|
---|
67 | ;;PHONE;.06
|
---|
68 | ;;FAX_AREA_CODE;.07
|
---|
69 | ;;FAX;.08
|
---|
70 | ;;ADDRESS1;1.01
|
---|
71 | ;;ADDRESS2;1.02
|
---|
72 | ;;ADDRESS3;1.03
|
---|
73 | ;;CITY;2.01
|
---|
74 | ;;STATE;2.02
|
---|
75 | ;;ZIP;2.03
|
---|
76 | ;;SITE_CODE;.03
|
---|
77 | ;;LAST_UPDATED;3.01
|
---|
78 | ;;INACTIVE;3.02
|
---|
79 | ;;END
|
---|
80 | ;
|
---|
81 | BAD ; unsuccessful query
|
---|
82 | W !,"Unsuccessful Query!"
|
---|
83 | D CLEAN^DILF
|
---|
84 | Q -1
|
---|
85 | ;
|
---|
86 | ;-----------------------------------------------
|
---|
87 | ;
|
---|
88 | PREV(Y) ; called from OUTPUT TRANSFORM
|
---|
89 | ; input: Y := internal value
|
---|
90 | ; output: Y ;= converted to external value
|
---|
91 | ; DGBTV:= internal value
|
---|
92 | N DGBTV
|
---|
93 | I '$D(^DGBT(392.31,+Y,0)) Q -1
|
---|
94 | S DGBTV=Y,Y=$P(^DGBT(392.31,+Y,0),U)
|
---|
95 | Q +DGBTV
|
---|
96 | ;
|
---|
97 | AFTER(FILE,IEN,DGBTX,DGBTV) ; called from template, or DR string
|
---|
98 | ; input: IEN := Dzero variable
|
---|
99 | ; DGBTX := entered response (X) from call
|
---|
100 | ; DGBTV := previous value of entry
|
---|
101 | ; output: -1 := no success with entry
|
---|
102 | ; >0 := vendor updated
|
---|
103 | I DGBTX'=DGBTV Q 1 ; change was made, don't prompt for CoreFLS query
|
---|
104 | N DIR,Y,X,FDATA,DIERR
|
---|
105 | ; if equal, null, or vendor wasn't in local vendor file, prompt for CoreFLS query
|
---|
106 | ASK2 S Y=$$CSLASK()
|
---|
107 | I DGBTX,(DGBTX=DGBTV),'Y Q 1
|
---|
108 | Q:Y<1 +Y
|
---|
109 | ;
|
---|
110 | ; make CoreFLS query call
|
---|
111 | W !,"** CoreFLS Query **"
|
---|
112 | S Y=$$CSLIEN() I +Y<1 G ASK2
|
---|
113 | Q:+Y<1 +Y
|
---|
114 | ;
|
---|
115 | ; Y = IEN of vendor, file vendor in Bene Travel field
|
---|
116 | ;
|
---|
117 | I FILE=392 D
|
---|
118 | . S FDATA(392,IEN_",",14)=+Y
|
---|
119 | I FILE=680 D
|
---|
120 | . S FDATA(680,IEN_",",2.6)=+Y
|
---|
121 | I FILE="680.6" D
|
---|
122 | . S FDATA(680.6,IEN_",",.09)=+Y
|
---|
123 | I FILE=681 D
|
---|
124 | . S FDATA(681,IEN_",",3.01)=+Y
|
---|
125 | D FILE^DIE("","FDATA","DIERR")
|
---|
126 | I '$D(DIERR) W !,"** LOCAL VENDOR (#392.31) File updated. **" Q +Y
|
---|
127 | Q -1
|
---|
128 | ;
|
---|
129 | ADD ; Standalone query
|
---|
130 | I '$P($G(^DG(43,1,"BT")),"^",4) D Q
|
---|
131 | . W !,"**COREFLS Vendor interface is not active."
|
---|
132 | D STAND
|
---|
133 | Q
|
---|