| 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 | 
|---|