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

DGREGCP1.m

Go to the documentation of this file.
  1. DGREGCP1 ;ALB/CLT,ARF - ADDRESS COPY UTILITIES ; 18 May 2017 2:54 PM
  1. ;;5.3;Registration;**941,1010,1040,1056**;Aug 13, 1993;Build 18
  1. ;
  1. RESDISP(DFN) ;DISPLAY THE RESIDENTIAL ADDRESS
  1. N DGA1,DGA2,DGA3,DGA4,DGA9,DGA10,DGA1315,DGZIP
  1. N DGE,DGXX,DGFORGN,X,Y,DGCIEN,DGST,DGCNTRY,DGCNTY
  1. ;DG*5.3*1056 remove Permanent from the message following displayed message
  1. W !,"Residential Address to copy to the Mailing Address:",!
  1. I $G(^DPT(DFN,.115))="" D Q
  1. .W !?5,"NO RESIDENTIAL ADDRESS"
  1. ;DISPLAY THE CURRENT RESIDENTIAL ADDRESS
  1. S DGXX=^DPT(DFN,.115),DGA1=$P(DGXX,"^",1),DGA2=$P(DGXX,"^",2),DGA3=$P(DGXX,"^",3),DGA4=$P(DGXX,"^",4)
  1. S DGA9=$P(DGXX,"^",9)
  1. S DGA10=$P(DGXX,"^",10) S:'DGA10 DGA10=""
  1. S DGCNTRY=$E($$CNTRYI^DGADDUTL(DGA10),1,25),DGFORGN=$$FORIEN^DGADDUTL(DGA10)
  1. I DGCNTRY=-1 S DGCNTRY="UNKNOWN COUNTRY"
  1. W:DGA1'="" !?3,DGA1 W:$G(DGA2)'="" !?3,DGA2 W:$G(DGA3)'="" !?3,DGA3
  1. ;FORDISP ;DISPLAY FOREIGN ADDRESS
  1. I DGA1="" W !
  1. I 'DGFORGN D
  1. . W ?43,"County: "
  1. . I $P(DGXX,U,5)=""!($P(DGXX,U,7)="") W "UNKNOWN" Q
  1. . I $P(DGXX,U,7)'="" I $D(^DIC(5,$P(DGXX,U,5),1,$P(DGXX,U,7),0)) D
  1. .. S DGST=$P(DGXX,U,5),DGCIEN=$P(DGXX,U,7)
  1. .. S DGCNTY=$$CNTY^DGREGAZL(DGST,DGCIEN) W $P(DGCNTY,"^",1),"(",$P(DGCNTY,"^",3),")"
  1. E D
  1. . W ?43,"Province: "
  1. . W $S($P(DGXX,U,8)'="":$P(DGXX,U,8),1:"UNKNOWN")
  1. ;I DGFORGN W !?3,DGA9_" "_DGA4 ;DG*1010 comment out
  1. I DGFORGN W !?3,DGA4_" "_DGA9 ;DG*1010 - display postal code last
  1. I 'DGFORGN W !?3,DGA4 D
  1. . I $D(^DIC(5,+$P(^DPT(DFN,.115),"^",5),0)) W ",",$P(^DIC(5,+$P(^DPT(DFN,.115),"^",5),0),"^",2)
  1. . S DGZIP=$P(^DPT(DFN,.115),"^",6) I $L(DGZIP)>5 S DGZIP=$E(DGZIP,1,5)_"-"_$E(DGZIP,6,12)
  1. . W " ",DGZIP
  1. W !?3,DGCNTRY,!
  1. Q
  1. ;
  1. PERMDISP(DFN) ;DISPLAY MAILING ADDRESS
  1. N DGA1,DGA9,DGA10,DGA1315,DGA2,DGA3,DGA4,DGZIP
  1. N DGE,DGXX,DGFORGN,X,Y,DGCIEN,DGST,DGCNTRY,DGCNTY
  1. ;DG*5.3*1056 remove Permanent from the message following display messages and comment
  1. W !,"Mailing Address to copy to Residential Address:",!
  1. I $G(^DPT(DFN,.11))="" D Q
  1. .W !?5,"NO MAILING ADDRESS"
  1. ;DISPLAY THE CURRENT MAILING ADDRESS
  1. S DGXX=^DPT(DFN,.11),DGA1=$P(DGXX,"^",1),DGA2=$P(DGXX,"^",2),DGA3=$P(DGXX,"^",3),DGA4=$P(DGXX,"^",4)
  1. S DGA9=$P(DGXX,"^",9)
  1. S DGA10=$P(DGXX,"^",10) S:'DGA10 DGA10=""
  1. S DGCNTRY=$E($$CNTRYI^DGADDUTL(DGA10),1,25),DGFORGN=$$FORIEN^DGADDUTL(DGA10)
  1. I DGCNTRY=-1 S DGCNTRY="UNKNOWN COUNTRY"
  1. W:DGA1'="" !?3,DGA1 W:$G(DGA2)'="" !?3,DGA2 W:$G(DGA3)'="" !?3,DGA3
  1. ;FORGNCHK ;CHECK FOR FOREIGN ADDRESS
  1. I DGA1="" W !
  1. I 'DGFORGN D
  1. . W ?43,"County: "
  1. . I $P(DGXX,U,5)=""!($P(DGXX,U,7)="") W "UNKNOWN" Q
  1. . I $P(DGXX,U,7)'="" I $D(^DIC(5,$P(DGXX,U,5),1,$P(DGXX,U,7),0)) D
  1. .. S DGST=$P(DGXX,U,5),DGCIEN=$P(DGXX,U,7)
  1. .. S DGCNTY=$$CNTY^DGREGAZL(DGST,DGCIEN) W $P(DGCNTY,"^",1),"(",$P(DGCNTY,"^",3),")"
  1. E D
  1. . W ?43,"Province: "
  1. . W $S($P(DGXX,U,8)'="":$P(DGXX,U,8),1:"UNKNOWN")
  1. ;I DGFORGN W !?3,DGA9_" "_DGA4 ;DG*1010 comment out
  1. I DGFORGN W !?3,DGA4_" "_DGA9 ;DG*1010 - display postal code last
  1. I 'DGFORGN W !?3,DGA4 D
  1. . I $D(^DIC(5,+$P(^DPT(DFN,.11),"^",5),0)) W ",",$P(^DIC(5,+$P(^DPT(DFN,.11),"^",5),0),"^",2)
  1. . S DGZIP=$P(^DPT(DFN,.11),"^",6) I $L(DGZIP)>5 S DGZIP=$E(DGZIP,1,5)_"-"_$E(DGZIP,6,12)
  1. . W " ",DGZIP
  1. W !?3,DGCNTRY,!
  1. Q
  1. ;
  1. RESMVQ(DFN) ;DISPLAY RESIDENTIAL ADDRESS AND QUESTION IF COPY TO PERM IS DESIRED
  1. I $G(^DPT(DFN,.115))="" Q
  1. N DIR,X,Y,DTOUT,DUOUT
  1. ;DG*5.3*1056 remove Permanent from the message following displayed prompts
  1. S DIR(0)="Y",DIR("A")="Copy the Residential Address to the Mailing Address",DIR("B")="NO"
  1. S DIR("?",1)="Enter 'YES' to copy the Residential Address ",DIR("?")="to the Mailing Address."
  1. D ^DIR
  1. ; DG*5.3*1040 - Check for timeout of the Copy prompt
  1. I $D(DTOUT) S DGTMOT=1 Q
  1. I $G(Y)=1 D
  1. . W !
  1. . D RESDISP(DFN)
  1. . S DIR(0)="Y",DIR("A")="Are you sure you want to copy",DIR("B")=""
  1. . S DIR("?",1)="If you answer 'YES' the current Residential Address will be copied",DIR("?")="to the Permanent Mailing Address."
  1. . D ^DIR
  1. . ; DG*5.3*1040 - Set variable DGTMOT=1, if timeout
  1. . I $D(DTOUT) S DGTMOT=1 Q
  1. . ; DG*5.3*1040 - QUIT if variable Y = 0
  1. . Q:$G(Y)=0
  1. . I $D(DUOUT)!$D(DIROUT) Q
  1. . D R2P^DGREGCOP(DFN)
  1. . W !,"Copy completed."
  1. . D EOP
  1. Q
  1. ;
  1. PERMMVQ(DFN) ;DISPLAY MAILING ADDRESS AND QUESTION IF COPY TO RESIDENTIAL IS DESIRED
  1. ; First check for a valid Mailing Address that can be copied to residential address
  1. N DGXX,DGA10,DFORGN
  1. S DGXX=$G(^DPT(DFN,.11))
  1. ; Quit if nothing in Perm address line 1 field
  1. I $P(DGXX,"^",1)="" Q
  1. ; Quit if nothing in Perm address City field
  1. I $P(DGXX,"^",4)="" Q
  1. ; Quit if no Perm address zipcode defined for a domestic address
  1. S DGA10=$P(DGXX,"^",10) S:'DGA10 DGA10=""
  1. S DGFORGN=$$FORIEN^DGADDUTL(DGA10)
  1. I 'DGFORGN&($P(DGXX,"^",6)="") Q
  1. ; required address fields exist for copying to Residential address
  1. ; now check for PO Box or General Delivery address and notify user if not valid address and quit
  1. N DGADD,DIR,X,Y,DGRESADD,DGRESX
  1. K DIRUT
  1. I $$POBOXPM^DGREGCP2(DFN) D Q
  1. . W !!?3,*7,"P.O. Box and GENERAL DELIVERY cannot be used in residential address." W !
  1. . ;DG*5.3*1056 remove Permanent from the following message displayed messages
  1. . W !,"Because the Mailing Address line 1 contains P.O. Box"
  1. . W " or General",!,"Delivery the Mailing Address cannot be copied to"
  1. . W !,"the Residential Address."
  1. . D EOP
  1. . ; DG*5.3*1040 - Check for timeout
  1. . Q:+$G(DGTMOT)
  1. ; Perm address is valid for use as a Residential address
  1. ASK ;
  1. W !
  1. ;DG*5.3*1056 remove Permanent from the following message displayed message and prompt
  1. S DIR(0)="Y",DIR("A")="Copy the Mailing Address to the Residential Address"
  1. S DIR("?",1)="Answer 'YES' or 'NO'. 'YES' will copy the current Mailing Address",DIR("?")="to the Residential Address."
  1. D ^DIR
  1. I X="Y"!(X="YES") S Y=1,Y(0)="YES"
  1. ; DG*5.3*1040 - Set variable DGTMOT=1, if timeout
  1. I $D(DTOUT) S DGTMOT=1 Q
  1. ; DG*5.3*1040 - QUIT if Y = 0
  1. Q:$G(Y)=0
  1. I $D(DUOUT)!$D(DIROUT) Q
  1. I $D(DIRUT) G ASK
  1. I Y=1 D
  1. . W !
  1. . D PERMDISP(DFN) ;; W !! D RESDISP(DFN) W !
  1. . S DIR(0)="Y",DIR("A")="Are you sure you want to copy",DIR("B")=""
  1. . ;DG*5.3*1056 remove Permanent from the following message displayed prompt
  1. . S DIR("?",1)="If you answer 'YES' the current Mailing Address will be copied",DIR("?")="to the Residential Address."
  1. . D ^DIR
  1. . ; DG*5.3*1040 - Set variable DGTMOT=1, if timeout
  1. . I $D(DTOUT) S DGTMOT=1 Q
  1. . ; DG*5.3*1040 - QUIT if Y = 0
  1. . Q:$G(Y)=0
  1. . I $D(DUOUT)!$D(DIROUT) Q
  1. . D P2R^DGREGCOP(DFN)
  1. . W !,"Copy completed."
  1. . D EOP
  1. ; DG*5.3*1040 - Check for timeout
  1. Q:+$G(DGTMOT)
  1. Q
  1. EOP ;End of page prompt
  1. N DIR,DTOUT,DUOUT,DIROUT,X,Y
  1. S DIR(0)="E"
  1. S DIR("A")="Press ENTER to continue"
  1. D ^DIR
  1. ; DG*5.3*1040 - Set variable DGTMOT=1 to track timeout
  1. I $D(DTOUT) S DGTMOT=1 Q
  1. Q