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

APCLFY.m

Go to the documentation of this file.
  1. APCLFY ; IHS/CMI/LAB - FISCAL YEAR process routine ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;CMI/TUCSON/LAB - patch 3 Y2K and fixed FY prompting
  1. ;
  1. START ;beginning of routine
  1. ;beginning Y2K. This entire routine has been modified.
  1. ;It was not properly handling FY's that begin in a month other
  1. ;than October or January. This really isn't related to the Year
  1. ;2000. Years were being handled properly, it is the calculating
  1. ;of the beginning and ending dates of the FY that was not
  1. ;working right. CMI/TUCSON/LAB 11/4/1998
  1. ;Y2000
  1. K APCL
  1. I $P($G(^APCCCTRL(DUZ(2),0)),U,8)]"" D MONTH
  1. E S APCL("FY MONTH")=10
  1. GETFY ;get FY
  1. K %DT S %DT="AE",%DT("A")="Enter FISCAL YEAR: ",%DT("B")=(1700+$E(DT,1,3)) D ^%DT K %DT
  1. I Y=-1 S APCL("FY")=-1 D XIT Q
  1. S APCL("FY")=1700+$E(Y,1,3) ;external year (e.g. 1998, 2000)
  1. S APCL("FY YEAR")=Y
  1. I APCL("FY MONTH")'=10 D GETDATES,XIT Q ;if a beginning month other than 10 or 1 get beginning and ending dates from user
  1. S APCL("FY BEG DATE")=($E(APCL("FY YEAR"),1,3)-1)_1001
  1. S APCL("FY WORKING DT")=$$FMADD^XLFDT(APCL("FY BEG DATE"),-1)
  1. S APCL("FY END DATE")=$E(APCL("FY BEG DATE"),1,3)+1_$E(APCL("FY WORKING DT"),4,7)
  1. D XIT
  1. Q
  1. ;
  1. GETDATES ;new subroutine
  1. W !!!,"The PCC Master Control file indicates that your FY begins in a month other",!,"than October so you must indicate the beginning and ending dates",!,"for your FY ",APCL("FY"),".",!
  1. B ;get beginning date
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning date of FY "_APCL("FY") D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) S APCL("FY")=-1 D XIT Q
  1. S APCL("FY BEG DATE")=Y
  1. E ;get ending date
  1. W ! S DIR(0)="D^"_APCL("FY BEG DATE")_"::EP",DIR("A")="Enter ending Date of FY "_APCL("FY") D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G B
  1. S APCL("FY END DATE")=Y
  1. S X1=APCL("FY BEG DATE"),X2=-1 D C^%DTC S APCL("FY WORKING DT")=X
  1. D XIT
  1. Q
  1. ;Y2000
  1. ;end Y2K
  1. ;K APCL
  1. ;I $D(^APCCCTRL(DUZ(2))),($P(^(DUZ(2),0),U,8)]"") D MONTH
  1. ;E S APCL("FY MONTH")=10
  1. ;S Y=DT D DD^%DT S APCL("FY TODAY")=Y
  1. FYYEAR ;process FISCAL YEAR
  1. ;S %DT="AE",%DT("A")="Enter FISCAL YEAR: ",%DT("B")=$E(DT,2,3) D ^%DT K %DT
  1. ;G:Y=-1 XIT
  1. ;S APCL("FY")=X
  1. ;I $E(APCL("FY MONTH"),1)=1 S APCL("FY YEAR")=$E(Y,1,3),APCL("FY YEAR")=APCL("FY YEAR")-1
  1. ;S:'$D(APCL("FY YEAR")) APCL("FY YEAR")=$E(Y,1,3)
  1. FYDATE ;process beginning DATE for fiscal year
  1. ;S APCL("FY BEG DATE")=APCL("FY YEAR")_APCL("FY MONTH")_"01"
  1. ;S Y=APCL("FY BEG DATE") X ^DD("DD")
  1. ;S APCL("FY PRINTABLE BDATE")=Y
  1. WORKDATE ;setup WORKING start day
  1. ;S X1=APCL("FY BEG DATE"),X2=-1 D C^%DTC
  1. ;S APCL("FY WORKING DT")=X_".9999"
  1. FYEND ;set up END date for fiscal year
  1. ;S APCL("FY YR ADD")=$E(APCL("FY WORKING DT"),1,3)+1
  1. ;S APCL("FY END DATE")=APCL("FY YR ADD")_$E(APCL("FY WORKING DT"),4,7)
  1. ;S Y=APCL("FY END DATE") X ^DD("DD")
  1. ;S APCL("FY PRINTABLE EDATE")=Y
  1. XIT ;end of routine
  1. K %DT
  1. Q
  1. ;---------------------------------------------------------------------
  1. MONTH ;setup MONTH for process
  1. S APCL("FY MONTH")=$P(^APCCCTRL(DUZ(2),0),U,8)
  1. S APCL("FY MONTH NAME")=$$EXTSET^XBFUNC(9001000,.08,APCL("FY MONTH"))
  1. S:$L(APCL("FY MONTH"))'=2 APCL("FY MONTH")=0_APCL("FY MONTH")
  1. Q
  1. FYENDDT ;set up END date for fiscal year
  1. S APCL("FY YR ADD")=$E(APCL("FY WORKING DT"),1,3)+1
  1. S APCL("FY END DATE")=APCL("FY YR ADD")_$E(APCL("FY WORKING DT"),4,7)
  1. S Y=APCL("FY END DATE") X ^DD("DD")
  1. S APCL("FY PRINTABLE EDATE")=Y
  1. Q
  1. ENDDATE ;if FLAG=1
  1. D:APCL("FYEND FLAG")=1 FYENDDT