1 | IBCEF51 ;ALB/TMP - MRA/EDI ACTIVATED UTILITIES CONTINUED ;06-FEB-96
|
---|
2 | ;;2.0;INTEGRATED BILLING;**137**;21-MAR-94
|
---|
3 | ;
|
---|
4 | BTYP(IBX,IBOK,IBASK) ; Select bill types to include/exclude
|
---|
5 | ; IBX(364.41,y,x) = passed by reference. Array containing bill type
|
---|
6 | ; restrictions data subscripted by x=field # in file 364.41
|
---|
7 | ; and y = sequential #
|
---|
8 | ; IBOK is passed by reference and is returned as 1 if action is
|
---|
9 | ; successful, 0 if not
|
---|
10 | ; IBASK = flag =1 to ask for all 3 fields (edit bill type)
|
---|
11 | ; =0 to ask for only bill type field (add rule)
|
---|
12 | ;
|
---|
13 | N IBABORT,IBCT,IBOUT,IBEXC,IBZ,DUOUT,DTOUT,Y,X,IBY,DA
|
---|
14 | S (IBOUT,IBEXC,IBOK,IBABORT)=0
|
---|
15 | S IBCT=$O(IBX(364.41,""),-1)
|
---|
16 | S Z=0 F S Z=$O(IBX(364.41,Z)) Q:'Z I $D(IBX(364.41,Z,.01)) S IBY(IBX(364.41,Z,.01))=""
|
---|
17 | F Q:IBOUT F IBZ=.01,.02,.03 I $S($G(IBASK):1,1:IBZ=.01) D Q:IBOUT
|
---|
18 | . I IBZ=.01 D Q:IBOUT
|
---|
19 | .. S DIR("A")=$S(IBCT:"NEXT ",1:"")_"BILL TYPE"_$S('IBEXC:"",1:" TO EXCLUDE")_": " W !
|
---|
20 | . S DIR(0)="364.41,"_IBZ_$S(IBZ=.01:"AO"_$S('IBEXC:"",1:"^^I $E(Y)=""-"""),1:"O")
|
---|
21 | . I $D(IBX),IBZ=.01 D
|
---|
22 | .. N Z,CT
|
---|
23 | .. S DIR("?",1)="Enter the bill types to include/exclude. To include, enter the"
|
---|
24 | .. S DIR("?",2)="3 digit bill type. To exclude, precede the 3 digit bill type with a minus (-)"
|
---|
25 | .. S DIR("?",3)="You may use 'X' as a wild card. Use XXX to include all bill types."
|
---|
26 | .. S DIR("?",4)="If XXX is entered, the rest of the entries must be bill type exclusions."
|
---|
27 | .. S CT=4
|
---|
28 | .. I $O(IBX(364.41,""))'="" S DIR("?",5)="The current bill types entered for this rule are:" D
|
---|
29 | ... S Z="",CT=5 F S Z=$O(IBY(Z)) Q:Z="" S CT=CT+1,DIR("?",CT)=$J("",5)_Z
|
---|
30 | .. S DIR("?")=DIR("?",CT) K DIR("?",CT)
|
---|
31 | . ;
|
---|
32 | . D ^DIR K DIR
|
---|
33 | . ;
|
---|
34 | . I $D(DUOUT)!$D(DTOUT)!(Y="") D Q
|
---|
35 | .. I Y'="" S Y="",IBOK=0,IBABORT=1 K IBX(364.41) ; Time out or '^'
|
---|
36 | .. S:$S(IBZ'=.01:0,1:Y="") IBOUT=1
|
---|
37 | . ;
|
---|
38 | . I IBZ'=.01 S IBX(364.41,IBCT,IBZ)=Y Q
|
---|
39 | . ;
|
---|
40 | . Q:Y=""
|
---|
41 | . I '$$BTOK(Y,.IBY,0) Q
|
---|
42 | . ;
|
---|
43 | . S IBCT=IBCT+1,IBY(Y)=""
|
---|
44 | . S IBX(364.41,IBCT,.01)=Y
|
---|
45 | . ;
|
---|
46 | . I Y="XXX" D S IBEXC=1
|
---|
47 | .. N IB
|
---|
48 | .. S IB=0 F S IB=$O(IBX(364.41,IB)) Q:'IB I $E($G(IBX(364.41,IB,.01)))'="-" K IBX(364.41,IB)
|
---|
49 | .. S IB="" F S IB=$O(IBY(IB),-1) Q:IB=""!($E(IB)="-") I IB'="XXX" K IBY(IB)
|
---|
50 | .. S IBX(364.41,IBCT,.01)="XXX"
|
---|
51 | .. W !," ALL BILL TYPES INCLUDED - ONLY EXCLUSIONS ALLOWED NOW",!
|
---|
52 | I 'IBABORT,'$G(IBCT) W !,"Warning ... this rule will not work unless you enter at least one bill type",! S IBOK=1
|
---|
53 | I IBABORT W !,"Timed out or '^' entered ... bill types not added",!
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | INSCO(IB,IBOK,IBDA1) ; Select insurance co option and, if
|
---|
57 | ; appropriate, the individual companies to include/exclude for the rule
|
---|
58 | ; IB = passed by reference
|
---|
59 | ; (.07) = Returned as the internal value selected for insurance co
|
---|
60 | ; option
|
---|
61 | ; (364.4*,x) = Array is returned containing ins co data subscripted
|
---|
62 | ; by x=field # in appropriate subfile
|
---|
63 | ; IBOK is passed by reference and is returned as 1 if action is
|
---|
64 | ; successful, 0 if not
|
---|
65 | ; IBDA1 = the ien of the rule being changed
|
---|
66 | ;
|
---|
67 | N IBCT,IBT,DIR,X,Y
|
---|
68 | S IBOK=1,IBCT=0
|
---|
69 | F D Q:'IBOK!(IBCT)
|
---|
70 | . N DA
|
---|
71 | . S Y=+$G(IB(.07)),DA=IBDA1
|
---|
72 | . S DIR(0)="364.4,.07A",DIR("A")="INSURANCE CO OPTION: "
|
---|
73 | . I '$G(IB(.07)) D ^DIR K DIR,DA
|
---|
74 | . I Y'>0 S IBOK=0 Q ; Required
|
---|
75 | . S IB(.07)=+Y,IBCT=0
|
---|
76 | . I IB(.07)=3 S IBCT=999 Q
|
---|
77 | . S IBT=$S(IB(.07)=1:364.43,1:364.42)
|
---|
78 | . ;Loop until all have been entered and null entry has been detected
|
---|
79 | . F S DIR(0)=IBT_",.01AO",DIR("A")="Select Insurance Co to "_$S(IBT["43":"in",1:"ex")_"clude for this rule: " D ^DIR K DIR Q:Y'>0 D
|
---|
80 | .. S IB(IBT,+Y)="",IBCT=IBCT+1
|
---|
81 | . I $D(DUOUT) W !,*7,"Entries deleted!",! K IB(IBT) S IBCT=0 Q
|
---|
82 | . I 'IBCT W !,*7,"Warning ... no insurance companies entered",! S IBCT=1
|
---|
83 | INSQ Q
|
---|
84 | ;
|
---|
85 | BTOK(Y,IBY,SUP) ; Check that bill type is valid for rule
|
---|
86 | ; Function returns 1 if OK, 0 if not
|
---|
87 | ;
|
---|
88 | ; Y = bill type being 'added' to subfile for bill type restrictions
|
---|
89 | ; IBY = array subscripted by bill types on file for rule
|
---|
90 | ; SUP = 0 if do not suppress messages
|
---|
91 | ; = 1 suppress messages
|
---|
92 | ;
|
---|
93 | S IBOK=1
|
---|
94 | I $S($D(IBY("XXX")):0,1:$E(Y)="-") D ; For exclude, must have included some of bill type first
|
---|
95 | . I Y?1"-"3N S Z=$E(Y,2)_"XX",Z0=$E(Y,2,3)_"X" Q:$D(IBY(Z))!$D(IBY(Z0)) D:'$G(SUP) INVAL(Y,1) S IBOK=0 Q
|
---|
96 | . I Y?1"-"2N1"X" S Z=$E(Y,2)_"XX" Q:$D(IBY(Z)) D:'$G(SUP) INVAL(Y,1) S IBOK=0 Q
|
---|
97 | ;
|
---|
98 | I 'IBOK G BTOKQ
|
---|
99 | ;
|
---|
100 | I $D(IBY("XXX")),$E(Y)'="-" D:'$G(SUP) INVAL(Y,2) S IBOK=0 G BTOKQ ; Can't include others with 'ALL'
|
---|
101 | I $D(IBY(Y)) D:'$G(SUP) INVAL(Y,3) S IBOK=0 G BTOKQ ;Bill type dup
|
---|
102 | ;
|
---|
103 | I $D(IBY("-"_Y)) D:'$G(SUP) INVAL(Y,4) S IBOK=0 ; Include/exclude for same bill type
|
---|
104 | ;
|
---|
105 | BTOKQ Q IBOK
|
---|
106 | ;
|
---|
107 | INVAL(Y,MES) ; Print invalid message
|
---|
108 | ; Y = the bill type in error
|
---|
109 | ; MES = the message # to print
|
---|
110 | W !,"Cannot add this bill type restrictions because:"
|
---|
111 | W !,?4
|
---|
112 | I MES=1 W "In order to exclude, you must include at least one bill type including the",!,?6," excluded bill type first"
|
---|
113 | I MES=2 W "You already have 'XXX' (all bill types) - can only EXCLUDE bill types now"
|
---|
114 | I MES=3 W "You have already entered this bill type"
|
---|
115 | I MES=4 W "You have included and excluded the same bill type"
|
---|
116 | W !
|
---|
117 | Q
|
---|
118 | ;
|
---|