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

VIAAPAR.m

Go to the documentation of this file.
  1. VIAAPAR ;ALB/CR - RTLS Set Par Levels in GIP ;4/20/16 10:10 pm
  1. ;;1.0;RTLS;**4**;April 22, 2013;Build 21
  1. ;
  1. Q
  1. ; Access to file #445 covered by IA #5923
  1. ; Get unique handle ID string for ^XTMP covered by IA #4770
  1. ;
  1. ;-- get par levels (stock levels) from WaveMark and set them in a GIP IP
  1. ;
  1. SETPAR(RETSTA,IPNAME,ITEM,PAR1,PAR2,PAR3,PAR4,PAR5) ;
  1. ; RPC: [VIAA SET PAR LEVELS IN GIP]
  1. ;
  1. ; -- input parameters:
  1. ; retsta - return array that carries the call result, required
  1. ; inventory point name (IP) - required
  1. ; item master # - required
  1. ; par levels - not all required and any can be zero or null but
  1. ; not less than zero.
  1. ; -- output result:
  1. ; stored in ^XTMP("VIAAPAR",$J,0) and passed forward via RETSTA;
  1. ; contains a short message to indicate success. For a failure,
  1. ; the following format is used:
  1. ; "-###^"_failure_message, where '###' is a 3-digit http status
  1. ; code.
  1. ;
  1. N A,FDA,ERR,VIAA,IPIEN,PAR9,PAR10,PAR11,PAR23,TIMDATE,X,Y
  1. ; clean up ^TMP of old data and ^XTMP if found
  1. S A="" F S A=$O(^TMP(A)) Q:A="" I $E(A,1,7)["VIAAPAR" K ^TMP(A),^XTMP(A)
  1. ;
  1. S VIAA=$$HANDLE^XUSRB4("VIAAPAR") ; get handle, prepare for entry in ^XTMP
  1. S $P(^XTMP(VIAA,0),U,3)="Par Levels Set up for GIP"
  1. S X=DT D NOW^%DTC,YX^%DTC S TIMDATE=Y ; current date/time
  1. S ^TMP(VIAA,"Received_Data_From_WaveMark",TIMDATE)=IPNAME_U_ITEM_U_PAR1_U_PAR2_U_PAR3_U_PAR4_U_PAR5
  1. ;
  1. I $G(IPNAME)="" S ^XTMP(VIAA,$J,0)="-400^Inventory Point name not specified" D EXIT Q
  1. S IPIEN=+$O(^PRCP(445,"B",IPNAME,""))
  1. I 'IPIEN S ^XTMP(VIAA,$J,0)="-404^"_IPNAME_" is an invalid Inventory Point" D EXIT Q
  1. I ITEM=""!(+ITEM=0) S ^XTMP(VIAA,$J,0)="-400^Item Master # not specified" D EXIT Q
  1. I +ITEM'=ITEM S ^XTMP(VIAA,$J,0)="-400^Item Master #"_ITEM_" not found in Inventory Point "_IPNAME D EXIT Q
  1. ;
  1. I '$D(^PRCP(445,IPIEN,1,ITEM,0)) S ^XTMP(VIAA,$J,0)="-400^Item Master #"_ITEM_" not found in Inventory Point "_IPNAME D EXIT Q
  1. ;
  1. I (PAR1<0)!(PAR2<0)!(PAR3<0)!(PAR4<0)!(PAR5<0) S ^XTMP(VIAA,$J,0)="-400^A par level cannot be negative" D EXIT Q
  1. I (PAR1'?.N)!(PAR2'?.N)!(PAR3'?.N)!(PAR4'?.N)!(PAR5'?.N) S ^XTMP(VIAA,$J,0)="-400^Illegal par level detected - only null, zero, or a number greater than zero are allowed" D EXIT Q
  1. ;
  1. ;-- update the par levels in GIP: number designates the global piece
  1. ; set during the update; translation order: par9=par1, par11=par2, ; par10=par3, par4=par4, par23=par5
  1. ;
  1. S PAR9=PAR1,PAR11=PAR2,PAR10=PAR3,PAR23=PAR5
  1. ;
  1. S X=DT D NOW^%DTC,YX^%DTC S TIMDATE=Y ; current date/time
  1. L +^PRCP(445,IPIEN,1,ITEM,0):1 I '$T S ^XTMP(VIAA,$J,0)="-423^The resource that is being accessed is locked - cannot complete par levels processing for Item Master #"_ITEM_", on "_TIMDATE D EXIT Q
  1. S FDA(445.01,ITEM_","_IPIEN_",",10.3)=PAR4 ; optional reorder level
  1. S FDA(445.01,ITEM_","_IPIEN_",",9)=PAR9 ; normal stock level
  1. S FDA(445.01,ITEM_","_IPIEN_",",10)=PAR10 ; std reorder level
  1. S FDA(445.01,ITEM_","_IPIEN_",",11)=PAR11 ; emergency stock level
  1. S FDA(445.01,ITEM_","_IPIEN_",",9.5)=PAR23 ; temp stock level
  1. D FILE^DIE("","FDA","ERR")
  1. L -^PRCP(445,IPIEN,1,ITEM,0)
  1. I $D(ERR) S ^XTMP(VIAA,$J,0)="-400^GIP par levels update not filed" D EXIT Q
  1. S ^XTMP(VIAA,$J,0)="1^GIP par levels update completed for IP "_IPNAME_" and Item Master #"_ITEM_" on "_TIMDATE
  1. ;
  1. EXIT S RETSTA=$NA(^XTMP(VIAA,$J))
  1. ; save whatever we processed and answer sent to the calling app
  1. M ^TMP(VIAA,"Saved_Transaction_Header")=^XTMP(VIAA,0)
  1. M ^TMP(VIAA,"Saved_Transaction_Type: Par Levels Set up")=^XTMP(VIAA,$J)
  1. L -^XTMP(VIAA) ; release lock for $$HANDLE^XUSRB4 call
  1. Q