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

USRRULA.m

Go to the documentation of this file.
  1. USRRULA ; SLC/JER - Rule Browser actions ;2/6/98 17:12
  1. ;;1.0;AUTHORIZATION/SUBSCRIPTION;**3,28,29**;Jun 20, 1997;Build 7
  1. EDIT ; Edit an existing rule
  1. N DUP,REDIT,USRDA,USRI,DIROUT,USRCHNG,USRLST,USRRBLD,SAVEDATA
  1. I '$D(VALMY) D EN^VALM2(XQORNOD(0))
  1. S (USRCHNG,USRI)=0
  1. F S USRI=$O(VALMY(USRI)) Q:+USRI'>0 D Q:$D(DIROUT)
  1. . S USRDA=+$O(^TMP("USRRUL",$J,"INDEX",USRI,0)) Q:+USRDA'>0
  1. . W !!,"Editing #",+USRI,!
  1. . S SAVEDATA=$G(^USR(8930.1,USRDA,0))
  1. . D EDIT1
  1. . I +$G(USRCHNG) S USRLST=$S($L($G(USRLST)):$G(USRLST)_", ",1:"")_USRI
  1. I $G(DUP) D
  1. . S ^USR(8930.1,USRDA,0)=$G(SAVEDATA)
  1. . S VALMSG="** Item Not Edited - Duplicate of Another Rule **"
  1. W !,"Refreshing the list."
  1. I $L($G(USRLST)) D
  1. . S USRRBLD=$P($G(@VALMAR@(0)),U,1,4) D INIT^USRRUL,HDR^USRRUL
  1. K VALMY S VALMBCK="R"
  1. I $G(DUP) Q
  1. I '$G(REDIT) S VALMSG="** "_$S($L($G(USRLST)):"Item"_$S($L($G(USRLST),",")>1:"s ",1:" ")_$G(USRLST),1:"Nothing")_" Edited **"
  1. Q
  1. EDIT1 ; Single record edit
  1. ; Receives USRDA
  1. N DA,DIE,DR
  1. I '+$G(USRDA) W !,"No Classes selected." H 2 S USRCHNG=0 Q
  1. S DIE="^USR(8930.1,",DA=USRDA,DR="[USR DEFINE AUTHORIZATIONS]"
  1. D FULL^VALM1,^DIE S USRCHNG=1
  1. I '$D(DA) W !!,"<Business Rule DELETED>" H 3 Q
  1. S XUSRQ=^USR(8930.1,+DA,0),REDIT=0
  1. I $P(XUSRQ,"^",1)=""!($P(XUSRQ,"^",2)="")!($P(XUSRQ,"^",3)="")!(($P(XUSRQ,"^",4)="")&($P(XUSRQ,"^",6)="")) D Q
  1. . S ^USR(8930.1,USRDA,0)=$G(SAVEDATA)
  1. . S VALMSG="** Item Not Edited - Required Fields Missing **" S REDIT=1 Q
  1. I $P(XUSRQ,"^",5)'="" D
  1. . I $P(XUSRQ,"^",4)="" D Q
  1. . . S ($P(XUSRQ,"^",5),$P(^USR(8930.1,+DA,0),"^",5))=""
  1. . . S VALMSG="**USER CLASS REQ with AND FLAG -AND FLAG Removed**" S REDIT=1 Q
  1. . I $P(XUSRQ,"^",6)="" D Q
  1. . . S ($P(XUSRQ,"^",5),$P(^USR(8930.1,+DA,0),"^",5))=""
  1. . . S VALMSG="**USER ROLE REQ with AND FLAG -AND FLAG Removed**" S REDIT=1 Q
  1. S DUP=$$DUP
  1. Q
  1. ADD ; Add a member to the class
  1. N DA,DR,DIC,DIK,DLAYGO,DUP,X,Y,USRRBLD,USRCNT,XUSRQ D FULL^VALM1
  1. W !,"Please Enter a New Business Rule:",!
  1. S (DIC,DLAYGO)=8930.1,DIC(0)="NL",X=$$DOCPICK
  1. Q:+X'>0
  1. S X=""""_"`"_+X_""""
  1. D ^DIC K DLAYGO Q:+Y'>0 S DA=+Y
  1. S DIE=8930.1,DR="[USR DEFINE AUTHORIZATIONS]"
  1. D ^DIE
  1. I '$D(DA) S VALMSG="<Business Rule DELETED>" Q
  1. S DIK="^USR(8930.1,"
  1. S XUSRQ=^USR(8930.1,+DA,0)
  1. I $P(XUSRQ,"^",1)=""!($P(XUSRQ,"^",2)="")!($P(XUSRQ,"^",3)="")!(($P(XUSRQ,"^",4)="")&($P(XUSRQ,"^",6)="")) D Q
  1. . S VALMSG="** Item Deleted - Required Fields Missing **"
  1. . D ^DIK
  1. K DIK
  1. S DUP=$$DUP
  1. S USRCNT=+$P($G(@VALMAR@(0)),U,5)
  1. I +USRCNT D
  1. . I 'DUP D ADD^USRRUL(DA)
  1. . S $P(@VALMAR@(0),U,5)=+USRCNT D HDR^USRRUL I 1
  1. E S USRRBLD=$P($G(@VALMAR@(0)),U,1,4) D INIT^USRRUL,HDR^USRRUL
  1. S USRCNT=+$P($G(@VALMAR@(0)),U,5)
  1. S $P(@VALMAR@("#"),":",2)=+USRCNT
  1. S USRCHNG=1,VALMBCK="R"
  1. I $G(DUP) D Q
  1. . S DIK="^USR(8930.1,"
  1. . D ^DIK
  1. . K DIK
  1. . S VALMSG="** Item Deleted - Duplicate Rule **" Q
  1. S VALMSG="** Item "_+USRCNT_" Added **"
  1. Q
  1. DOCPICK() ; Function to pick a document for which rule will be created
  1. N DIC,X,Y
  1. ; I +$G(^TMP("USRRUL",$J,0))
  1. S DIC=8925.1,DIC(0)="AEMQ",DIC("A")="Select DOCUMENT DEFINITION: "
  1. S DIC("S")="I +$$CANPICK^TIULP(+Y),$S($P($G(^TIU(8925.1,+Y,0)),U,4)=""CO"":0,$P($G(^TIU(8925.1,+Y,0)),U,4)=""O"":0,$P($G(^TIU(8925.1,+Y,0)),U)[""ADDENDUM"":0,1:1)"
  1. D ^DIC K DIC("S")
  1. Q Y
  1. ;
  1. DUP() ; Function to determine if new or edited rule is a duplicate of an existing rule
  1. N DHIT,XDA,XDATA,DIK
  1. S (DHIT,XDA)=0 F S XDA=$O(^USR(8930.1,XDA)) Q:XDA="" Q:+XDA'>0 D Q:DHIT
  1. . I XDA=+DA Q
  1. . S XDATA=$G(^USR(8930.1,XDA,0))
  1. . I $P($G(^USR(8930.1,+DA,0)),"^",1,4)=$P($G(XDATA),"^",1,4)&($P($G(^USR(8930.1,+DA,0)),"^",6)=$P($G(XDATA),"^",6)) D
  1. . . I $P($G(^USR(8930.1,+DA,0)),"^",5)=$P($G(XDATA),"^",5) S DHIT=1 Q
  1. . . I $P($G(^USR(8930.1,+DA,0)),"^",5)="",$P($G(XDATA),"^",5)="!" S DHIT=1 Q
  1. . . I $P($G(^USR(8930.1,+DA,0)),"^",5)="!",$P($G(XDATA),"^",5)="" S DHIT=1 Q
  1. Q DHIT
  1. ;
  1. DELETE ; Delete a member to the class
  1. N USRDA,USRCHNG,USRI,USRLST,DIE,X,Y,USRRBLD K DIROUT
  1. D FULL^VALM1
  1. I '$D(VALMY) D EN^VALM2(XQORNOD(0))
  1. S USRI=0
  1. F S USRI=$O(VALMY(USRI)) Q:+USRI'>0 D Q:$D(DIROUT)
  1. . S USRDA=+$O(^TMP("USRRUL",$J,"INDEX",USRI,0)) Q:+USRDA'>0
  1. . W !!,"Deleting #",+USRI,!
  1. . D DELETE1(USRDA)
  1. . S:+USRCHNG USRLST=$S(+$G(USRLST):USRLST_", ",1:"")_+USRI
  1. I +$G(USRLST) D
  1. . S USRRBLD=$P($G(@VALMAR@(0)),U,1,4) D INIT^USRRUL,HDR^USRRUL
  1. K VALMY S VALMBCK="R"
  1. S VALMSG="** "_$S($L($G(USRLST)):"Item"_$S($L($G(USRLST),",")>1:"s ",1:" ")_$G(USRLST),1:"Nothing")_" deleted **"
  1. Q
  1. DELETE1(DA) ; Delete one member from a class
  1. N DIE,DR,USRI,USRULE D XLATE^USRAEDT(.USRULE,+DA)
  1. I $G(USRULE)']"" W !,"Record #",DA," NOT FOUND!" Q
  1. W !,"Removing the rule:",!
  1. F USRI=1:1:$L(USRULE,"|") W !,$P(USRULE,"|",USRI)
  1. W !
  1. I '$$READ^USRU("Y","Are you SURE","NO") S USRCHNG=0 W !,"Business Rule NOT Removed." Q
  1. W !,"Deleting Business Rule"
  1. S USRCHNG=1
  1. S DIK="^USR(8930.1," D ^DIK K DIK W "."
  1. Q