| 1 | RCDPUDEP ;WISC/RFJ-deposit utilities ;1 Jun 99
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**114,173**;Mar 20, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | ADDDEPT(DEPOSIT,DEPDATE) ;  if the deposit is not entered, add it
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;  if deposit date is missing, do not add the deposit
 | 
|---|
| 10 |  I 'DEPDATE Q 0
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;  already in file, deposit number and deposit date match
 | 
|---|
| 13 |  N DA,RCDPFLAG
 | 
|---|
| 14 |  S DA=0 F  S DA=$O(^RCY(344.1,"B",DEPOSIT,DA)) Q:'DA  I $P($G(^RCY(344.1,DA,0)),"^",3)=DEPDATE S RCDPFLAG=1 Q
 | 
|---|
| 15 |  I $G(RCDPFLAG) Q DA
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ;  add it
 | 
|---|
| 18 |  N %,%DT,D0,DA,DD,DI,DIC,DIE,DLAYGO,DO,DQ,DR,X,Y
 | 
|---|
| 19 |  S DIC="^RCY(344.1,",DIC(0)="L",DLAYGO=344.1
 | 
|---|
| 20 |  ;  .03 = deposit date               .06 = opened by
 | 
|---|
| 21 |  ;  .07 = date/time opened           .12 = status (set to 1:open)
 | 
|---|
| 22 |  S DIC("DR")=".03////"_DEPDATE_";.06////"_DUZ_";.07///NOW;.12////1;"
 | 
|---|
| 23 |  S X=DEPOSIT
 | 
|---|
| 24 |  D FILE^DICN
 | 
|---|
| 25 |  I Y>0 Q +Y
 | 
|---|
| 26 |  Q 0
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | SELDEPT(ADDNEW) ;  select a deposit
 | 
|---|
| 30 |  ;  if $g(addnew) allow adding a new deposit
 | 
|---|
| 31 |  ;  returns -1 for timeout or ^, 0 for no selection, or ien of deposit
 | 
|---|
| 32 |  N %,%T,%Y,C,D0,DA,DIC,DIE,DLAYGO,DQ,DR,DTOUT,DUOUT,RCDEFLUP,X,Y
 | 
|---|
| 33 |  S DIC="^RCY(344.1,",DIC(0)="QEAM",DIC("A")="Select DEPOSIT: "
 | 
|---|
| 34 |  S DIC("W")="D DICW^RCDPUDEP"
 | 
|---|
| 35 |  ;  use special lookup on input
 | 
|---|
| 36 |  S RCDEFLUP=1
 | 
|---|
| 37 |  I $G(ADDNEW) S DIC(0)="QEALM",DLAYGO=344.1,DIC("DR")=".03///TODAY;.06////"_DUZ_";.07///NOW;.12////1;"
 | 
|---|
| 38 |  D ^DIC
 | 
|---|
| 39 |  I Y<0,'$G(DUOUT),'$G(DTOUT) S Y=0
 | 
|---|
| 40 |  Q +Y
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 | DICW ;  write identifier code for receipt lookup
 | 
|---|
| 44 |  N DATA
 | 
|---|
| 45 |  S DATA=$G(^RCY(344.1,Y,0)) I DATA="" Q
 | 
|---|
| 46 |  ;  opened by
 | 
|---|
| 47 |  W ?13,"by: ",$E($P($G(^VA(200,+$P(DATA,"^",6),0)),"^"),1,15)
 | 
|---|
| 48 |  ;  date opened
 | 
|---|
| 49 |  I '$P(DATA,"^",7) S $P(DATA,"^",7)="???????"
 | 
|---|
| 50 |  W ?35," on: ",$E($P(DATA,"^",7),4,5),"/",$E($P(DATA,"^",7),6,7),"/",$E($P(DATA,"^",7),2,3)
 | 
|---|
| 51 |  ;  total dollars
 | 
|---|
| 52 |  W ?50," amt: $",$J($P(DATA,"^",4),9,2)
 | 
|---|
| 53 |  ;  status
 | 
|---|
| 54 |  W ?69," ",$P("N/A^OPEN^DEPOSITED^CONFIRMED^PROCESSED^VOID","^",+$P(DATA,"^",12)+1)
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | LOOKUP ;  special lookup on deposits, called from ^dd(344.1,.01,7.5)
 | 
|---|
| 59 |  ;  if rcdeflup flag not set, do not use special lookup
 | 
|---|
| 60 |  I '$D(RCDEFLUP) Q
 | 
|---|
| 61 |  ;  1:OPEN;3:CONFIRMED
 | 
|---|
| 62 |  ;  user entered O.? for lookup on open deposits
 | 
|---|
| 63 |  I X["O."!(X["o.") S DIC("S")="I $P(^(0),U,12)=1" S X="?" Q
 | 
|---|
| 64 |  ;  user entered C.? for lookup on confirmed deposits
 | 
|---|
| 65 |  I X["C."!(X["c.") S DIC("S")="I $P(^(0),U,12)=3" S X="?" Q
 | 
|---|
| 66 |  ;  deposit ticket # manually entered is for electronic ticket only
 | 
|---|
| 67 |  I $G(DIC(0))["L",$$AUTODEP(X) D EN^DDIOL(" ** Deposit #'s starting with "_$E(X,1,3)_" can only be used by automatic deposits",,"!") S X=""
 | 
|---|
| 68 |  K DIC("S")
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | EDITDEP(DA,ASKDATE) ;  edit the deposit
 | 
|---|
| 73 |  ;  if $g(askdate) ask only the deposit date
 | 
|---|
| 74 |  N %,D,D0,DI,DIC,DIE,DQ,DR,J,X,Y
 | 
|---|
| 75 |  S (DIC,DIE)="^RCY(344.1,",DR=""
 | 
|---|
| 76 |  ;  deposit date(.03), do not allow edit if closed or either lockbox
 | 
|---|
| 77 |  I $$CHECKDEP^RCDPDPLU(DA) S DR=".03BANK DEPOSIT DATE//TODAY;"
 | 
|---|
| 78 |  ;  bank(.13)
 | 
|---|
| 79 |  S DR=DR_".13//"_$P($G(^RC(342.1,+$O(^RC(342.1,"AC",9,0)),0)),"^")_";"
 | 
|---|
| 80 |  ;  bank trace(.05)
 | 
|---|
| 81 |  S DR=DR_".05;"
 | 
|---|
| 82 |  ;  agency title(.17)
 | 
|---|
| 83 |  S DR=DR_".17//"_$P($G(^RC(342.1,+$O(^RC(342.1,"AC",10,0)),0)),"^")_";"
 | 
|---|
| 84 |  ;  agency location code(.14), comments(1)
 | 
|---|
| 85 |  S DR=DR_".14//"_$P(^RC(342,1,0),"^",7)_";1;"
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 |  ;  only ask deposit date
 | 
|---|
| 88 |  I $G(ASKDATE) S DR=".03BANK DEPOSIT DATE//TODAY;"
 | 
|---|
| 89 |  D ^DIE
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 | CONFIRM(DA) ;  confirm the deposit
 | 
|---|
| 94 |  N %DT,D,D0,DI,DIC,DIE,DQ,DR,X,Y
 | 
|---|
| 95 |  S (DIC,DIE)="^RCY(344.1,"
 | 
|---|
| 96 |  S DR=".04///"_$$TOTAL(DA)_";.12////3;.1////"_DUZ_";.11///NOW;"
 | 
|---|
| 97 |  D ^DIE
 | 
|---|
| 98 |  Q
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 | TOTAL(RCDEPTDA) ;  compute total dollars for all receipts on the deposit
 | 
|---|
| 102 |  N RCRECTDA,RCTRANDA,TOTAL
 | 
|---|
| 103 |  S RCRECTDA=0
 | 
|---|
| 104 |  F  S RCRECTDA=$O(^RCY(344,"AD",RCDEPTDA,RCRECTDA)) Q:'RCRECTDA  D
 | 
|---|
| 105 |  .   S RCTRANDA=0
 | 
|---|
| 106 |  .   F  S RCTRANDA=$O(^RCY(344,RCRECTDA,1,RCTRANDA)) Q:'RCTRANDA  D
 | 
|---|
| 107 |  .   .   S TOTAL=$G(TOTAL)+$P($G(^RCY(344,RCRECTDA,1,RCTRANDA,0)),"^",4)
 | 
|---|
| 108 |  Q +$G(TOTAL)
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 | AUTODEP(X) ; Function returns 1 if the deposit ticket # in X is in the auto
 | 
|---|
| 111 |  ; deposit number space 269xxx, 369xxx, 469xxx, 569xxx
 | 
|---|
| 112 |  N Y
 | 
|---|
| 113 |  S Y=0
 | 
|---|
| 114 |  I $L(X)=6,$E(X,2,3)="69","2345"[$E(X),'$D(^RCY(344.1,"B",X)) S Y=1
 | 
|---|
| 115 |  Q Y
 | 
|---|
| 116 |  ;
 | 
|---|