ENTIRA	;WOIFO/SAB - IT EQUIPMENT RESPONSIBILITY ASSIGN ;2/4/2008
	;;7.0;ENGINEERING;**87**;Aug 17, 1993;Build 16
	;
	N ENC,ENDA,ENIA,ENPER,ENSM,ENSMV,ENSRT,ENX,ENY
	N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
	;
GETEQ	; get equipment
	W !!,"Selecting accountable IT equipment to be assigned..."
	;   ask method of selection
	S ENX=$$ASKEQSM^ENTIUTL2("ECULS","E")
	S ENSM=$P(ENX,U),ENSMV=$P(ENX,U,2)
	G:"^E^C^U^L^S^"'[(U_ENSM_U) EXIT
	;
	;   ask if already assigned equipment should be included
	I ENSM="E" S ENIA="1"
	E  S ENIA=$$ASKIAEQ^ENTIUTL2()
	G:ENIA="" EXIT
	;
	;   select equipment using method
	S ENSRT="E" ; set sort method = E
	D GETEQ^ENTIUTL2(ENSM,ENSMV,ENSRT,ENIA)
	;
	; display count of selected equipment
	S ENY=$G(^TMP($J,"ENITEQ",0))
	W !!,+ENY," equipment item(s) selected."
	;
	I ENY'>0 D  G:Y GETEQ G EXIT
	. W !!
	. S DIR(0)="Y"
	. S DIR("A")="No equipment was selected. Do you want to try again"
	. S DIR("B")="YES"
	. D ^DIR K DIR
	;
	; ask if detailed report desired
	S DIR(0)="Y"
	S DIR("A")="Do you want to print a list of the equipment"
	S DIR("B")="YES"
	D ^DIR K DIR G:$D(DIRUT) EXIT
	I Y D AEN^ENTIRRE
	;
GETPE	; get people that will be assigned the equipment
	W !!,"Selecting person(s) to be assigned responsibility..."
	D SELPER
	;
	; display count of selected persons
	S ENY=$G(^TMP($J,"ENITPE",0))
	W !!,+ENY," person(s) selected."
	I ENY'>0 D  G:Y GETPE G EXIT
	. W !!
	. S DIR(0)="Y"
	. S DIR("A")="No responsible person selected. Do you want to try again"
	. S DIR("B")="YES"
	. D ^DIR K DIR
	;
	; confirm
	S DIR(0)="Y"
	S DIR("A")="OK to create assignments"
	S DIR("B")="YES"
	D ^DIR K DIR G:'Y EXIT
	;
	; make assignments
	K ENC
	;  loop thru equipment list
	S ENDA=0 F  S ENDA=$O(^TMP($J,"ENITEQ","NA",ENDA)) Q:'ENDA  D
	. ; loop thru person list
	. S ENPER=0 F  S ENPER=$O(^TMP($J,"ENITPE",ENPER)) Q:'ENPER  D
	. . ; create assignment
	. . S ENX=$$ASGN^ENTIUTL1(ENDA,ENPER)
	. . I ENX S ENC(1)=$G(ENC(1))+1
	. . I ENX=0 W !,"  Equipment # ",ENDA," is already assigned to ",$$GET1^DIQ(200,ENPER,.01) S ENC(0)=$G(ENC(0))+1
	. . I ENX="E" W !,"  ERROR. Equipment ",ENDA," was not assigned to ",$$GET1^DIQ(200,ENPER,.01) S ENC("E")=$G(ENC("E"))+1
	;
	; display totals
	W !!,+$G(ENC(1))," equipment assignment(s) created."
	W:$G(ENC(0)) !,ENC(0)," equipment assignment(s) already in place."
	W:$G(ENC("E")) !,ENC("E")," assignment(s) not created due to an error."
	;
EXIT	;
	K ^TMP($J,"ENITEQ"),^TMP($J,"ENITPE")
	Q
	;
SELPER	; Select Person(s)
	; output
	;   ^TMP($J,"ENITPE",0)=count
	;   ^TMP($J,"ENITPE",ien)="" list of persons by internal entry number
	;
	N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y
	N ENCNT,END,ENDA,ENNAME
	S ENCNT=0,END=0
	K ^TMP($J,"ENITPE")
	;
	; ask person in loop
	F  D  Q:END
	. S DIC="^VA(200,"
	. S DIC(0)="AQEM"
	. I ENCNT>0 S DIC("A")="Select Another NEW PERSON NAME: "
	. W !
	. D ^DIC K DIC  I Y<1 S END=1 Q
	. S ENDA=+Y
	. S ENNAME=$P(Y,U,2)
	. S DIR(0)="Y",DIR("A")="Assign responsibility to "_ENNAME
	. D ^DIR I $D(DIRUT) S END=1 Q
	. I 'Y Q
	. ; user confirmed
	. S ENCNT=ENCNT+1
	. S ^TMP($J,"ENITPE",ENDA)=""
	;
	; set output header node
	S ^TMP($J,"ENITPE",0)=ENCNT
	;
	;ENTIRA
