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

SDEC24.m

Go to the documentation of this file.
  1. SDEC24 ;ALB/SAT - VISTA SCHEDULING RPCS ;JAN 15, 2016
  1. ;;5.3;Scheduling;**627**;Aug 13, 1993;Build 249
  1. ;
  1. Q
  1. ;
  1. SEARCHAV(SDECY,SDECRES,SDECSTRT,SDECEND,SDECTYPES,SDECAMPM,SDECWKDY) ;Searches availability database
  1. ;SEARCHAV(SDECY,SDECRES,SDECSTRT,SDECEND,SDECTYPES,SDECAMPM,SDECWKDY) external parameter tag is in SDEC
  1. ;Searches availability database for availability blocks between
  1. ; SDECSTRT and SDECEND for each of the resources in SDECRES.
  1. ;The av blocks must be one of the types in SDECTYPES, must be
  1. ;AM or PM depending on value in SDECAMPM and
  1. ;must be on one of the weekdays listed in SDECWKDY.
  1. ;
  1. ;Return recordset containing the start times of availability blocks
  1. ;meeting the search criteria.
  1. ;
  1. ;Variables:
  1. ;SDECRES |-Delimited list of resource names
  1. ;SDECSTRT FM-formatted beginning date of search
  1. ;SDECEND FM-Formatted ending date of search
  1. ;SDECTYPES |-Delimited list of access type IENs
  1. ;SDECAMPM "AM" for am-only, "PM" for pm-only, "BOTH" for both
  1. ;SDECWKDY "" if any weekday, else |-delimited list of weekdays
  1. ;
  1. ;NOTE: If SDECEND="" Then:
  1. ; either ONE record is returned matching the first available block
  1. ; -or- NO record is returned indicating no available block exists
  1. ;
  1. N %DT,SDEC,X,Y
  1. S X=SDECSTRT,%DT="X" D ^%DT S SDECSTRT=$P(Y,".")
  1. S:+SDECSTRT<0 SDECSTRT=DT
  1. S X=SDECEND,%DT="X" D ^%DT S SDECEND=$P(Y,".")
  1. S:+SDECEND<0 SDECEND=9990101
  1. S SDECEND=SDECEND_".99"
  1. N SDECRESN,SDECRESD,SDECDATE,SDECI,SDECABD,SDECNOD,SDECATD,SDECATN
  1. N SDAB,SDECTYPE
  1. S SDAB="^TMP("_$J_",""SDEC"",""BLKS"")"
  1. K @SDAB
  1. ;
  1. ;Set up access types array
  1. F SDEC=1:1:$L(SDECTYPES,"|") D
  1. . S SDECATD=$P(SDECTYPES,"|",SDEC)
  1. . S:+SDECATD SDEC(409.823,SDECATD)=""
  1. ;
  1. S SDECI=0
  1. S SDECY="^TMP(""SDEC"","_$J_")"
  1. K @SDECY
  1. S ^TMP("SDEC",$J,0)="T00030RESOURCENAME^D00030DATE^T00030ACCESSTYPE^T00030COMMENT"_$C(30)
  1. F SDEC=1:1:$L(SDECRES,"|") S SDECRESN=$P(SDECRES,"|",SDEC) D
  1. . Q:'$D(^SDEC(409.831,"B",SDECRESN))
  1. . S SDECRESD=$O(^SDEC(409.831,"B",SDECRESN,0))
  1. . Q:'+SDECRESD
  1. . Q:'$D(^SDEC(409.831,SDECRESD,0))
  1. . D GETSLOTS^SDEC04(SDAB,SDECRESD,SDECSTRT,SDECEND)
  1. . Q:'$O(@SDAB@(0)) ;$D(^SDEC(409.821,"ARSCT",SDECRESD))
  1. . S SDECNOD=@SDAB@(1)
  1. . S SDECDATE=$P(SDECNOD,U,2) ;$O(^SDEC(409.821,"ARSCT",SDECRESD,SDECSTRT))
  1. . Q:SDECDATE=""
  1. . Q:SDECDATE>SDECEND
  1. . ;TODO: Screen for AMPM
  1. . ;TODO: Screen for Weekday
  1. . ;
  1. . S SDECI=SDECI+1
  1. . ;S SDECABD=$O(^SDEC(409.821,"ARSCT",SDECRESD,SDECDATE,0))
  1. . ;S SDECNOD=$G(^SDEC(409.821,SDECABD,0))
  1. . Q:SDECNOD=""
  1. . S Y=$P(SDECDATE,".")
  1. . D DD^%DT
  1. . S SDECATD=$P(SDECNOD,U,5) ;ACCESS TYPE POINTER
  1. . S SDECATD=$G(^SDEC(409.823,+SDECATD,0))
  1. . S SDECATN=$P(SDECATD,U)
  1. . I +SDECATD,SDECTYPES]"" Q:'$D(SDEC(409.823,SDECATD))
  1. . ;TODO: Screen for TYPE ----DONE!
  1. . ;TODO: Comment
  1. . S ^TMP("SDEC",$J,SDECI)=SDECRESN_U_Y_U_SDECATN_U_$C(30)
  1. S SDECI=SDECI+1
  1. S ^TMP("SDEC",$J,SDECI)=$C(31)
  1. Q