ORPR05 ; slc/dcm - When you are in the Service copies... ; 07 Dec 99  01:43PM
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**69**;Dec 17, 1997
SRV1 ;
 N ORTCNT,ORX,OR3,ORPK,ORTCNT,ORPKG,ORSNUM
 D GET^ORPR01(ORIFN)
 S ORPKG=$P(ORX,"^",14) I $D(OROPKG),(OROPKG'=ORPKG) S ORSNUM=1 D FOOT^ORPR01(ORFOOT) W @ORIOF
 D SRVSET
 I +ORFMT'>0,'+$G(OREND) W:$E(IOST)="C" $C(7),!!,"SERVICE COPY FORMAT is NOT defined for "_ORPKNM_".",!! H 1 Q
 Q:+$P(OR3,"^",9)>0
 D CPRINT^ORPR01(ORIFN)
 Q
SCSORT ; Sorts selected orders by package
 N ORPKG,ORI,ORJ,ORIFN,ORSORT
 F ORI=1:1:$L(ORNMBR,",") S ORJ=$P(ORNMBR,",",ORI) I ORJ S ORIFN=$G(^XTMP(ORXTMP,ORJ))  I ORIFN]"" D
 . S ORPKG=$P($G(^OR(100,+ORIFN,0)),U,14),ORSORT(ORPKG,ORJ)=""
 I $O(ORSORT(0)) D
 . S ORPKG=0,ORNMBR="" F  S ORPKG=$O(ORSORT(ORPKG)) Q:ORPKG'>0  D
 .. S ORI=0 F  S ORI=$O(ORSORT(ORPKG,ORI)) Q:ORI'>0  D
 ... S ORNMBR=ORNMBR_ORI_","
 Q
SRVSET ;Setup
 ;Input=PACKAGE
 ;Output=ORHEAD,ORFOOT
 I $S('$G(ORPKG):1,ORPKG=$G(OROPKG):1,1:0) Q
 S (OROFMT,ORFMT)=$$GET^XPAR("SYS","ORPF SERVICE COPY FORMAT",ORPKG,"I")
 S ORHEAD=$$GET^XPAR("SYS","ORPF SERVICE COPY HEADER",ORPKG,"I")
 S ORFOOT=$$GET^XPAR("SYS","ORPF SERVICE COPY FOOTER",ORPKG,"I")
 S ORPKNM=$P($G(^DIC(9.4,+ORPKG,0)),U),ORIOSL=IOSL
 I +ORFOOT,$D(^ORD(100.23,ORFOOT,0)) S ORBOT=$P(^(0),"^",2),ORIOSL=IOSL-ORBOT,OROPKG=ORPKG
 S ORIOF=IOF I +ORHEAD D PRINT^ORPR00(ORHEAD,1)
 S IOF="!" I +OROFMT S ORFMT=OROFMT
 Q
SRVCLN ;Cleanup
 G:+$G(OREND) SCCLEANX
 I $G(ORFOOT) S:IOF?1"!"."!" $P(IOF,"!",$S(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))="" D PRINT^ORPR00(ORFOOT,1)
SCCLEANX S:$D(ORIOF) IOF=ORIOF K ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORPKG
 K OROPKG,ORPKNM,ORPKNO
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HORPR05   1710     printed  Sep 23, 2025@20:08:58                                                                                                                                                                                                      Page 2
ORPR05    ; slc/dcm - When you are in the Service copies... ; 07 Dec 99  01:43PM
 +1       ;;3.0;ORDER ENTRY/RESULTS REPORTING;**69**;Dec 17, 1997
SRV1      ;
 +1        NEW ORTCNT,ORX,OR3,ORPK,ORTCNT,ORPKG,ORSNUM
 +2        DO GET^ORPR01(ORIFN)
 +3        SET ORPKG=$PIECE(ORX,"^",14)
           IF $DATA(OROPKG)
               IF (OROPKG'=ORPKG)
                   SET ORSNUM=1
                   DO FOOT^ORPR01(ORFOOT)
                   WRITE @ORIOF
 +4        DO SRVSET
 +5        IF +ORFMT'>0
               IF '+$GET(OREND)
                   if $EXTRACT(IOST)="C"
                       WRITE $CHAR(7),!!,"SERVICE COPY FORMAT is NOT defined for "_ORPKNM_".",!!
                   HANG 1
                   QUIT 
 +6        if +$PIECE(OR3,"^",9)>0
               QUIT 
 +7        DO CPRINT^ORPR01(ORIFN)
 +8        QUIT 
SCSORT    ; Sorts selected orders by package
 +1        NEW ORPKG,ORI,ORJ,ORIFN,ORSORT
 +2        FOR ORI=1:1:$LENGTH(ORNMBR,",")
               SET ORJ=$PIECE(ORNMBR,",",ORI)
               IF ORJ
                   SET ORIFN=$GET(^XTMP(ORXTMP,ORJ))
                   IF ORIFN]""
                       Begin DoDot:1
 +3                        SET ORPKG=$PIECE($GET(^OR(100,+ORIFN,0)),U,14)
                           SET ORSORT(ORPKG,ORJ)=""
                       End DoDot:1
 +4        IF $ORDER(ORSORT(0))
               Begin DoDot:1
 +5                SET ORPKG=0
                   SET ORNMBR=""
                   FOR 
                       SET ORPKG=$ORDER(ORSORT(ORPKG))
                       if ORPKG'>0
                           QUIT 
                       Begin DoDot:2
 +6                        SET ORI=0
                           FOR 
                               SET ORI=$ORDER(ORSORT(ORPKG,ORI))
                               if ORI'>0
                                   QUIT 
                               Begin DoDot:3
 +7                                SET ORNMBR=ORNMBR_ORI_","
                               End DoDot:3
                       End DoDot:2
               End DoDot:1
 +8        QUIT 
SRVSET    ;Setup
 +1       ;Input=PACKAGE
 +2       ;Output=ORHEAD,ORFOOT
 +3        IF $SELECT('$GET(ORPKG):1,ORPKG=$GET(OROPKG):1,1:0)
               QUIT 
 +4        SET (OROFMT,ORFMT)=$$GET^XPAR("SYS","ORPF SERVICE COPY FORMAT",ORPKG,"I")
 +5        SET ORHEAD=$$GET^XPAR("SYS","ORPF SERVICE COPY HEADER",ORPKG,"I")
 +6        SET ORFOOT=$$GET^XPAR("SYS","ORPF SERVICE COPY FOOTER",ORPKG,"I")
 +7        SET ORPKNM=$PIECE($GET(^DIC(9.4,+ORPKG,0)),U)
           SET ORIOSL=IOSL
 +8        IF +ORFOOT
               IF $DATA(^ORD(100.23,ORFOOT,0))
                   SET ORBOT=$PIECE(^(0),"^",2)
                   SET ORIOSL=IOSL-ORBOT
                   SET OROPKG=ORPKG
 +9        SET ORIOF=IOF
           IF +ORHEAD
               DO PRINT^ORPR00(ORHEAD,1)
 +10       SET IOF="!"
           IF +OROFMT
               SET ORFMT=OROFMT
 +11       QUIT 
SRVCLN    ;Cleanup
 +1        if +$GET(OREND)
               GOTO SCCLEANX
 +2        IF $GET(ORFOOT)
               if IOF?1"!"."!"
                   SET $PIECE(IOF,"!",$SELECT(ORIOSL>200:200,ORIOSL-$Y>1:ORIOSL-$Y,1:2))=""
               DO PRINT^ORPR00(ORFOOT,1)
SCCLEANX   if $DATA(ORIOF)
               SET IOF=ORIOF
           KILL ORHEAD,ORFOOT,OROFMT,ORFMT,ORIOF,ORBOT,ORIOSL,ORPKG
 +1        KILL OROPKG,ORPKNM,ORPKNO
 +2        QUIT