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

ACRFBPA.m

Go to the documentation of this file.
  1. ACRFBPA ;IHS/OIRM/DSD/THL,AEF - BPA MANAGEMENT; [ 10/27/2004 4:15 PM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**14**;NOV 05, 2001
  1. ;;MANAGE VARIOUS ASPECTS OF BLANKET PURCHASE AGREEMENTS
  1. CHOOSE ;EP;
  1. K ACRBPA,DIC,ACRDOC
  1. S DIC="^ACRDOC("
  1. S DIC(0)="AENMQZ"
  1. S DIC("A")="Which BLANKET PURCHASE AGREEMENT: "
  1. S DIC("S")="S ACRDOC0=$G(^ACRDOC(+Y,0)),ACRCDATE=$P($G(^(15)),U,11),ACRAPV=$G(^ACROBL(+Y,""APV""))"
  1. S DIC("S")=DIC("S")_" I '$P(ACRDOC0,U,15),$S($D(ACRBPASM):1,1:($D(^ACRDOC(+Y,6,""B"",DUZ))!$D(^ACRDOC(+Y,50,""B"",DUZ)))&$P(ACRDOC0,U,23)),$S(ACRCDATE&$D(ACRNEWOB):ACRCDATE>DT,1:1),$P(ACRDOC0,U,18)>0,$P(ACRDOC0,U,16),$P(ACRAPV,U,8)=""A"""
  1. S D="T"
  1. W !
  1. D DIC^ACRFDIC
  1. I +Y'>0 S ACRQUIT="" Q
  1. I $$LASTBPA^ACRFNEW1(+Y) D Q ; ACR*2.1*14.03 IM13538
  1. . W *7,*7,!!?10,"ALL CALL NUMBERS FOR THIS BPA HAVE BEEN USED!"
  1. . D PAUSE^ACRFWARN
  1. . S ACRQUIT=""
  1. S ACRBPA=+Y
  1. S ACRBPA0=^ACRDOC(+Y,0)
  1. S ACRBPAPO=^ACRDOC(+Y,"PO")
  1. S ACRBPAPA=^ACRDOC(+Y,"PA")
  1. S ACRBPAV=$P(ACRBPAPO,U,5)
  1. S ACRBPATX=$P(ACRBPA0,U,4)
  1. S ACRBPAPS=$P(ACRBPAPA,U,3)
  1. S ACRBPASP=$P(ACRBPA0,U,16)
  1. S ACRBPATO=$P(ACRBPAPO,U,6)
  1. S ACRBPAFO=$P(ACRBPAPO,U,9)
  1. S ACRPONUM=$P(ACRBPA0,U,2)
  1. I '$D(^ACRDOC(ACRBPA,3))!'$P($G(^ACRDOC(ACRBPA,3)),U,10) D Q
  1. .W !!,*7,*7,"BPA Call Limit not set for this BPA. Call Procurement for assistance."
  1. .D PAUSE^ACRFWARN
  1. .S ACRQUIT=""
  1. K ACRBPA0,ACRBPAPO,ACRBPAPA
  1. Q:$D(ACRBPASM)
  1. W !!,"Please hold for a moment while I determine the"
  1. W !,"total amount charged against this BPA to date."
  1. D BS
  1. S DIR(0)="DOA"
  1. S DIR("A")="ORDER DATE..........: "
  1. S DIR("B")="TODAY"
  1. D DIR^ACRFDIC
  1. I 'Y!$D(ACRQUIT)!$D(ACROUT) S ACRQUIT="" Q
  1. S (X1,ACROD)=Y
  1. S X2=45
  1. D C^%DTC
  1. S Y=X
  1. X ^DD("DD")
  1. S DIR("B")=Y
  1. S DIR(0)="DOA"
  1. S DIR("A")="DATE REQUIRED.......: "
  1. D DIR^ACRFDIC
  1. I 'Y!$D(ACRQUIT)!$D(ACROUT) S ACRQUIT="" Q
  1. S ACRRQDD=Y
  1. Q
  1. BPASUM ;EP;TO SUMMARIZE TOTAL DOLLARS OBLIGATED AGAINST A BPA
  1. D ^XBKVAR
  1. S ACRBPASM=""
  1. D CHOOSE
  1. Q:'$D(ACRBPA)
  1. Q:'ACRBPA
  1. S ACRDOCDA=ACRBPA
  1. S DIR(0)="YO"
  1. S DIR("A")="Print list of all Calls"
  1. S DIR("B")="NO"
  1. S DIR("?")="Enter 'Y' if you want a list of all calls against this BPA"
  1. W !
  1. D DIR^ACRFDIC
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. S ACRDOC=$S(Y=1:"YES",1:"")
  1. S ACRRTN="BS^ACRFBPA"
  1. S ZTDESC="BPA SUMMARY"
  1. D ^ACRFZIS
  1. Q
  1. BS ;EP;TO PRINT BPA SUMMARY
  1. N DATA
  1. K ^TMP("ACRF",$J,"ACRDOC")
  1. S (ACRDOCDA,ACRREQ,ACROBL,ACRSPT,ACRJ)=0
  1. K ACRBPASM
  1. F S ACRDOCDA=$O(^ACRDOC("BPA",ACRBPA,ACRDOCDA)) Q:'ACRDOCDA I $D(^ACRSS("J",ACRDOCDA)) D
  1. .S ACRJ=ACRJ+1
  1. .S ACRSPT=ACRSPT+$P(^ACROBL(ACRDOCDA,"DT"),U,2)
  1. .S ACRSSDA=0
  1. .F S ACRSSDA=$O(^ACRSS("J",ACRDOCDA,ACRSSDA)) Q:'ACRSSDA I $D(^ACRSS(ACRSSDA,0)),$D(^("DT")) S ACRSSDT=^("DT") D
  1. ..S ACRREQ=ACRREQ+$P(ACRSSDT,U,4)
  1. ..S ACROBL=ACROBL+$P(ACRSSDT,U,9)
  1. ..I $D(ACRDOC)#2,ACRDOC="YES" D
  1. ...S DATA=$G(^ACRDOC(ACRDOCDA,0))
  1. ...Q:'$P(DATA,U,2)
  1. ...S ^TMP("ACRF",$J,"ACRDOC"," "_$E($P(DATA,U,2),9,10),ACRJ)=$P(DATA,U)_U_ACRDOCDA_U_$P(DATA,U,2)
  1. S ACRBPAA=$P(^ACRDOC(ACRBPA,0),U,18)
  1. S ACRDOC=$P(^ACRDOC(ACRBPA,0),U,2)
  1. W:$E($G(IOST),1,2)="C-" @IOF
  1. W !!?10,"TOTAL DOLLARS COMMITTED AND OBLIGATED AGAINST BPA: ",ACRDOC
  1. W !?10,"------------------------------------------------------------------"
  1. W !?10,"TOTAL SET ASIDE:"
  1. W ?27,"TOTAL COMMITTED:"
  1. W ?44,"TOTAL OBLIGATED:"
  1. W ?62,"TOTAL SPENT"
  1. W !?10,"---------------"
  1. W ?27,"---------------"
  1. W ?44,"---------------"
  1. W ?62,"--------------"
  1. W !?10,$J($FN(ACRBPAA,"P,",2),14)
  1. W ?27,$J($FN(ACRREQ,"P,",2),14)
  1. W ?44,$J($FN(ACROBL,"P,",2),14)
  1. W ?62,$J($FN(ACRSPT,"P,",2),14)
  1. D PAUSE^ACRFWARN
  1. I $D(^TMP("ACRF",$J,"ACRDOC")) D
  1. .D PH
  1. .S ACR=""
  1. .F S ACR=$O(^TMP("ACRF",$J,"ACRDOC",ACR)) Q:ACR=""!$D(ACRQUIT) D
  1. ..S ACRJ=0
  1. ..F S ACRJ=$O(^TMP("ACRF",$J,"ACRDOC",ACR,ACRJ)) Q:'ACRJ!$D(ACRQUIT) D
  1. ...S DATA=^TMP("ACRF",$J,"ACRDOC",ACR,ACRJ)
  1. ...S ACRDOCDA=$P(DATA,U,2)
  1. ...S ACRDOCX=$O(^ACRDHR("E",ACRDOCDA,0))
  1. ...I ACRDOCX S ACRDOCX=$P($G(^ACRDHR(ACRDOCX,0)),U)
  1. ...W !?4,$P(DATA,U,2)
  1. ...W ?10,ACR
  1. ...W ?15,$P(DATA,U)
  1. ...W ?35,$P(DATA,U,3)
  1. ...I ACRDOCX'=$P(DATA,U,3) W ?55,ACRDOCX
  1. ...D P
  1. D PAUSE^ACRFWARN
  1. W @IOF
  1. K ^TMP("ACRF",$J,"ACRDOC")
  1. Q
  1. P ;
  1. I IOSL-4<$Y,$O(^TMP("ACRF",$J,"ACRDOC",ACR,ACRJ))]"" D
  1. .D PAUSE^ACRFWARN
  1. .W @IOF
  1. .D PH
  1. Q
  1. PH W !!?4,"ID.",?10,"CALL"
  1. W !?4,"NO."
  1. W ?10,"NO."
  1. W ?15,"REQUISITION NO."
  1. W ?35,"PURCHASE ORDER #"
  1. W ?55,"OBLIGATION DOC #"
  1. W !?4,"----- ---- ------------------"
  1. W ?35,"----------------"
  1. W ?55,"----------------"
  1. Q
  1. CALLIM ;EP;TO DETERMINE IF CALL AMOUNT EXCEEDS BPA PER CALL LIMIT
  1. S ACRBPA=$P(^ACRDOC(ACRDOCDA,0),U,19)
  1. S ACRBPA=$P(^ACRDOC(ACRBPA,3),U,10)
  1. K ACRQUIT
  1. N ACR,ACRSUM
  1. S (ACR,ACRSUM)=0
  1. F S ACR=$O(^ACRSS("J",ACRDOCDA,ACR)) Q:'ACR I $D(^ACRSS(ACR,"DT")) S ACRSUM=ACRSUM+$P(^("DT"),U,4)
  1. I ACRSUM>ACRBPA S ACRQUIT=""
  1. Q