DGMTU22 ;ALB/CAW - COPY PRIOR YEAR INCOME INFORMATION; 6/18/92
 ;;5.3;Registration;**33,45,624**;Aug 13, 1993
 ;
COPY(DFN,DGDT,DGMTI) ;
 ;  Input:
 ;        DFN - Patient IFN
 ;       DGDT - Date passed in where you want the prior years
 ;              income data to be copied into the last year
 ;              Ex.  If DGDT is 6/30/92 the income from 1990 can
 ;                   be optionally copied into 1991 if available.
 ;      DGMTI - Current MT IEN (optional)
 ;  Output:
 ;          Y - 0 not copied
 ;              1 copied
 ;             -1 timed out or ^
 N DGIN1,DGMT,DGPRI,DGFL,DGLY,DGLST,DGPY,DGI,DGINI,DGIRI,DGERR,DGREL,DGINC,DGINR,DGDEP,DEP,DGMTS,DGMTD
 D INIT I Y'>0 W !,"Cannot copy information.  Either there is no prior year income",!,"or there is income already on file for this year." H 2 G COPYQ
 D ASK I Y'>0 W !,"Cannot copy information.  Either there is no prior year income",!,"or there is income already on file for this year." H 2 G COPYQ
 D STUFF
COPYQ ;
 K DTOUT Q
INIT ; Init
 D NEW^DGRPEIS1 I DGPRI'>0 S Y=0 G INITQ ; obtain pt's relation IEN
 S DGLY=$$LYR^DGMTSCU1(DGDT),DGPY=$$LYR^DGMTSCU1(DGLY)
 S DGLST=$$LST^DGMTU(DFN,DGDT-1) I DGLST']"" S Y=1 G INITQ
 F DGI=4,5,15 I $P(^DGMT(408.31,+DGLST,0),U,DGI)["-" W !,"Previous year data contains a negative amount.  Data cannot be copied." H 3 S Y=0 G INITQ
 S Y=1
INITQ Q
ASK ; Can user copy?
 N DGINR S Y=1
 I '$D(^DGMT(408.21,"AI",+DGPRI,-DGPY)) S Y=0 Q
 I $D(^DGMT(408.21,"AI",+DGPRI,-DGLY)) D
 .S Y=$$NOBUCKS(DFN,DGDT)
 Q
 ;
STUFF ; Copy infomation into last year
 ;
 ; Get prior year info IENs
 I $G(DGMTI) N DGMT S DGMT=$$LST^DGMTU(DFN,$P(^DGMT(408.31,DGMTI,0),U)),DGMT=+$$LST^DGMTU(DFN,($P(DGMT,U,2)-1))
 N Y D ALL^DGMTU21(DFN,"VSD",DGLY,"IPR",$G(DGMT))
 ; Save prior year info
 N DGCNT,DGPRTY
 S DGCNT=0 F DGPRTY="V","S","D" I $D(DGREL(DGPRTY)) D
 .I "D"[DGPRTY F  S DGCNT=$O(DGREL(DGPRTY,DGCNT)) Q:'DGCNT  D SET(DFN,DGDT,+DGREL(DGPRTY,DGCNT),+$G(DGINC(DGPRTY,DGCNT)),+$G(DGINR(DGPRTY,DGCNT)),$G(DGMTI))
 .I "SV"[DGPRTY D SET(DFN,DGDT,+DGREL(DGPRTY),+$G(DGINC(DGPRTY)),+$G(DGINR(DGPRTY)),+$G(DGMTI))
 Q
SET(DFN,DGDT,DGPRI,DGPINI,DGPINR,DGMTI) ; Create last year IENs
 ;
 N DGERR,DGINI,DGIRI,DGMT,I,DGGRS
 F I=0:1:2 S DGMT(I)=$G(^DGMT(408.21,DGPINI,I))
 S DGMT(3)=$G(^DGMT(408.22,DGPINR,0))
 D GETIENS^DGMTU2(DFN,DGPRI,DGDT) G SETQ:DGERR
 ; Set info into global and index
 S $P(^DGMT(408.22,+DGIRI,0),U,3,99)=$P(DGMT(3),U,3,99)
 I $G(DGMTI) S ^DGMT(408.22,+DGIRI,"MT")=+DGMTI
 S DIK="^DGMT(408.22,",DA=DGIRI D IX^DIK K DA,DIK
 S $P(^DGMT(408.21,+DGINI,0),U,3,99)=$P(DGMT(0),U,3,99)
 F I=1:1:2 I DGMT(I)'="" S ^DGMT(408.21,+DGINI,I)=DGMT(I)
 S DGGRS=$P(DGMT(1),U,12) ;dg624 - preserve gross from 'AGME101' xref
 S DIK="^DGMT(408.21,",DA=DGINI D IX^DIK K DA,DIK
 D:+DGGRS  ;dg624 - if gross, restore it & force recalc of adjusted
 . S $P(^DGMT(408.21,+DGINI,1),U,12)=DGGRS
 . S $P(^DGMT(408.21,+DGINI,1),U,1)=""
SETQ Q
NOBUCKS(DFN,DGDT) ; Used by Income Screen Checks if BOTH
 ;  NO meaningful Income Data for Prior Year
 ;  AND there is data for Year before Prior Year
 ;  2=YES (but some edit/entry in 408.22),1=YES & 0=NO
 ;  ** REQUIRES DGINR("V")
 N DGCURR,DGPRIEN,DGPRIOR,DGPY,DGLY,DGIAI,DGIR,DGY,DGINP
 I $G(DGNOCOPY) S DGY=0 G QTNB
 S:'$D(DGDT) DGDT=DT
 S DGLY=$E(DGDT,1,3)_"0000"-10000,DGPY=DGLY-10000
 S (DGPRIOR,DGCURR)=0
 F DGPRIEN=0:0 S DGPRIEN=$O(^DGPR(408.12,"B",DFN,DGPRIEN)) Q:'DGPRIEN  D
 .S:$D(^DGMT(408.21,"AI",+DGPRIEN,-DGPY)) DGPRIOR=DGPRIOR+1
 .S DGIAI=$$IAI^DGMTU3(+DGPRIEN,DGLY)
 .I DGIAI]"" D
 ..S DGCURR=DGCURR+$S($P($G(^DGMT(408.21,DGIAI,0)),U,8,18)'?."^":1,($P($G(^(1)),U,1,3)]""):1,($P($G(^(2)),U,1,5)]""):1,1:0)
 ..;S DGINP=$O(^DGMT(408.22,"AIND",+DGIAI,"")) I $P($G(^DGMT(408.22,+DGINP,"MT")),U) S DGCURR=DGCURR+1
 I 'DGPRIOR!DGCURR S DGY=0 G QTNB
 S DGIR=$G(^DGMT(408.22,+$G(DGINR("V")),0))
 S DGY=$S($P(DGIR,U,5)]"":2,($P(DGIR,U,13)]""):2,1:1)
QTNB Q DGY
