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

ACRFNEW1.m

Go to the documentation of this file.
  1. ACRFNEW1 ;IHS/OIRM/DSD/THL,AEF - CREATE NEW DOCUMENT - UTILITY; [ 10/27/2004 4:15 PM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**14**;NOV 05, 2001
  1. ;;UTILITY ROUTINE TO CREATE NEW DOCUMENTS
  1. ;CALLNUM ;EP;CALCULATE CALL NUMBER ;OLD CODE ACR*2.1*14.03 IM13538
  1. ;N ACRTCALL
  1. ;L +^ACRDOC(ACRBPA,0):4
  1. ;S ACRCALL=$P(^ACRDOC(ACRBPA,0),U,20)
  1. ;D NUM
  1. ;I ACRCALL>ACRTCALL S ACRTCALL=ACRCALL
  1. ;I ACRTCALL<100 S ACRCALL=ACRTCALL+1
  1. ;E I ACRTCALL>99,ACRCALL'?1U1N&(ACRCALL'?2U) S ACRCALL="A1"
  1. ;E I $E(ACRCALL)?1U D C1
  1. C ;S $P(^ACRDOC(ACRBPA,0),U,20)=ACRCALL
  1. ;L -^ACRDOC(ACRBPA,0):0
  1. ;Q
  1. ;C1 I ACRCALL="ZZ" S ACRCALL="A0" Q ;OLD CODE ACR*2.1*14.03 IM13538
  1. ;N X1,X2
  1. ;S X1=$E(ACRCALL)
  1. ;S X2=$E(ACRCALL,2)
  1. ;I X2?1N,X2<9 S X2=X2+1
  1. ;E I X2=9 S X2="A"
  1. ;E I $A(X2)<90 S X2=$C($S($A(X2)>64:$A(X2),1:64)+1)
  1. ;E S X2=0
  1. ;I X2=0 S X1=$C($A(X1)+1)
  1. ;S ACRCALL=X1_X2
  1. ;Q
  1. ;NUM ;CALCULATE NUMBER OF CALLS TO DATE ;OLD CODE ACR*2.1*14.03 IM13538
  1. ;N I
  1. ;S (I,ACRTCALL)=0
  1. ;F S I=$O(^ACRDOC("BPA",ACRBPA,I)) Q:'I S ACRTCALL=ACRTCALL+1
  1. ;Q
  1. CALLNUM(ACRBPA) ;EP; EXTRINSIC FUNCTION TO CALCULATE CALL NUMBER ACR*2.1*14.03 IM13538
  1. ; Enter with FMS Document ien for BPA
  1. ; Returns next extension for call number
  1. ;
  1. N ACRTCALL
  1. S ACRCALL=""
  1. L +^ACRDOC(ACRBPA,0):4 I '$T Q ACRCALL
  1. S ACRCALL=$P(^ACRDOC(ACRBPA,0),U,20) ;LAST CALL NUMBER
  1. S ACRTCALL=$$NUM^ACRFNEW1(ACRBPA) ;NEXT CALL NUMBER
  1. S $P(^ACRDOC(ACRBPA,0),U,20)=$$C1(ACRTCALL,.ACRCALL)
  1. L -^ACRDOC(ACRBPA,0):0
  1. Q ACRCALL
  1. ;
  1. C1(ACRTCALL,ACRCALL) ; LOCAL ENTRY; EXTRINSIC FUNCTION TO CALCULATE BPA EXTENSION; ACR*2.1*14.03 IM13538
  1. ; --------ENTERS
  1. ; ACRTCALL=NEXT CALL NUMBER
  1. ; ACRCALL= LAST CALL NUMBER
  1. ;
  1. ; RETURNS:
  1. ; ACRCALL = CALL NUMBER TO USE
  1. ;
  1. I ACRCALL>ACRTCALL S ACRTCALL=ACRCALL
  1. I ACRTCALL<98,$E(ACRCALL)'?1U S ACRCALL=ACRTCALL+1 Q ACRCALL ; NUMBER
  1. I ACRTCALL>98,$E(ACRCALL)'?1U S ACRCALL="A1" Q ACRCALL
  1. N X1,X2
  1. S X1=$E(ACRCALL)
  1. S X2=$E(ACRCALL,2)
  1. D
  1. .I X2?1N,X2<9 S X2=X2+1 Q
  1. .I X2=9 S X2="A" Q
  1. .I $A(X2)<90 S X2=$C($S($A(X2)>64:$A(X2),1:64)+1) Q
  1. .S X2=0 Q
  1. I X2=0 S X1=$C($A(X1)+1)
  1. S ACRCALL=X1_X2
  1. Q ACRCALL
  1. ;
  1. NUM(ACRBPA) ;LOCAL ENTRY; EXTRINSIC FUNCTION TO CALCULATE NUMBER OF CALLS TO DATE; ACR*2.1*14.03 IM13538
  1. ; RETURNS NUMBER OF CALL DOCUMENTS IN BPA CROSS-REFERENCE
  1. N I
  1. S (I,ACRTCALL)=0
  1. F S I=$O(^ACRDOC("BPA",ACRBPA,I)) Q:'I S ACRTCALL=ACRTCALL+1
  1. Q ACRTCALL ; ACR*2.1*14.03 IM13538
  1. ;
  1. LASTBPA(X) ;EP
  1. ;----- EXTRINSIC FUNCTION - DETERMINES IF ALL BPA CALL NUMBERS HAVE
  1. ; BEEN USED
  1. ;
  1. ; INPUT:
  1. ; X = DOCUMENT INTERNAL ENTRY NUMBER
  1. ;
  1. ; RETURNS:
  1. ; 1 IF ALL NUMBERS HAVE BEEN USED
  1. ; 0 IF ALL NUMBERS HAVE NOT BEEN USED
  1. ;
  1. N Z
  1. S Z=$P(^ACRDOC(X,0),U,2)
  1. I Z']"" Q 1
  1. S Z=$E(Z,1,8)_"ZZ"
  1. I $D(^ACRDOC("C",Z)) Q 1
  1. Q 0
  1. ;
  1. AMEND(Y) ;EP; ; ACR*2.1*14.02 IM13539
  1. ; - DETERMINES IF DOCUMENT HAS ALREADY BEEN AMENDED
  1. ; - AND DISALLOWS THE AMENDING OF AMENDMENTS
  1. ;
  1. ; INPUT:
  1. ; Y = DOCUMENT INTERNAL ENTRY NUMBER
  1. ;
  1. ; RETURNS:
  1. ; 1 IF NOT AN AMENDED DOCUMENT
  1. ; 0 IF ALREADY AN AMENDED DOCUMENT
  1. ;
  1. N ACRDOC,ACRDOC0,ACRAPV,ACRREF
  1. S ACRDOC0=^ACRDOC(+Y,0)
  1. I $P(ACRDOC0,U,15) Q 0 ; Doc Amended field
  1. S ACRDOC=$P(ACRDOC0,U,1)
  1. I ACRDOC["-",$L($P(ACRDOC,"-",4))>4 Q 0 ; Amended request
  1. I $L($P(ACRDOC0,U,2))>10 Q 0 ; Amended PO
  1. S ACRAPV=$G(^ACROBL(+Y,"APV")) ; Doc is approved
  1. I $P(ACRAPV,U)="A" Q 1
  1. Q 0