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

ACRFPAY1.m

Go to the documentation of this file.
  1. ACRFPAY1 ;IHS/OIRM/DSD/THL,AEF - CERTIFY AND EXPORT PAYMENT BATCH; [ 06/30/2005 7:49 AM ]
  1. ;;2.1;ADMIN RESOURCE MGT SYSTEM;**5,16,17**;NOV 05, 2001
  1. ;;
  1. COMBINE ;EP;COMBINE BATCHES
  1. ;SELECT DESTINATION BATCH
  1. D BATCHL^ACRFPAY3
  1. K ACR
  1. D CSELECT
  1. I '$D(ACRDEST)!'$D(ACR("SOURCE")) K ACRQUIT Q
  1. D CDISPLAY
  1. D CCOMPLET^ACRFPAY8
  1. Q
  1. CDISPLAY ;DISPLAY DESTINATION AND SOURCE BATCHES TO BE COMBINED
  1. W @IOF
  1. W !!,"You have selected BATCH ",@ACRON,$P(ACRDEST,U,3),@ACROF," as the DESTINATION batch."
  1. W !!,"You have selected the following SOURCE Batch(es)"
  1. W !,"to be moved to the DESTINATION Batch."
  1. W !
  1. S ACRJ=0
  1. F S ACRJ=$O(ACR("SOURCE",ACRJ)) Q:'ACRJ D
  1. .W !?5,ACRJ,?10,$P(ACR("SOURCE",ACRJ),U,3)
  1. Q
  1. CSELECT K ACRDEST,ACRACH,ACRX
  1. S DIR("A")="Enter the number for the DESTINATION Batch"
  1. S DIR("?",1)="The DESTINATION Batch is the batch"
  1. S DIR("?")="to which the other batches will be moved."
  1. K ACRX
  1. W !
  1. D CS
  1. Q:'$D(ACRX)
  1. S ACRDEST=ACRX
  1. F ACRJ=1:1 D Q:'$D(ACRX)
  1. .S DIR("A")="Enter the number for "_$S(ACRJ=1:"First",1:"Next")_" SOURCE Batch"
  1. .S DIR("?",1)="The SOURCE Batch is the batch"
  1. .S DIR("?")="will be moved to another batch"
  1. .K ACRX
  1. .D CS
  1. .Q:'$D(ACRX)
  1. .S ACR("SOURCE",ACRJ)=ACRX
  1. Q
  1. CS I 'ACRMAX D Q
  1. .W !!,"There are no open batches to select."
  1. .D PAUSE^ACRFWARN
  1. W !
  1. S DIR(0)="NO^1:"_ACRMAX
  1. D DIR^ACRFDIC
  1. Q:'$D(^TMP("ACRPAY",$J,+Y))
  1. S ACRX=^TMP("ACRPAY",$J,+X)
  1. S:'$D(ACRACH) ACRACH=$E($P(ACRX,U,3))
  1. I $D(ACRDEST),$E($P(ACRX,U,3))'=ACRACH D G CS
  1. .;W !!,"The SOURCE Batch must be the same type (",$S("AD"[ACRACH:"ACH-Grouped","BE"[ACRACH:"ACH-NON-Grouped","CF"[ACRACH:"CHECK",ACRACH="G":"NO-Check",1:""),")" ;ACR*2.1*17.13 IM17827
  1. .W !!,"The SOURCE Batch must be the same type (",$S("BE"[ACRACH:"ACH-NON-Grouped","CF"[ACRACH:"CHECK",ACRACH="G":"NO-Check",1:""),")" ;ACR*2.1*17.13 IM17827
  1. .K ACRX
  1. .W !,"as the DESTINATION Batch."
  1. N ACRFYDA,ACRBATDA
  1. S ACRFYDA=$P(ACRX,U,2)
  1. S ACRBATDA=$P(ACRX,U)
  1. S ACRTOT=$G(ACRTOT)+$$COUNT^ACRFIV12(ACRFYDA,ACRBATDA)
  1. I ACRTOT>60 D
  1. .K ACRX
  1. .W !!,*7,*7,"You cannot combine batches containing more than 60 paymentts"
  1. .D PAUSE^ACRFWARN
  1. Q
  1. NONARMS ;EP;TO GATHER DATA TO CREATE NON-ARMS PAYMENT
  1. K ACRVDA,ACRCAN,ACRCANDA,ACRLOC,ACRLOCDA,ACRAPP,ACRAPPDA,ACRTCODE,ACROBJ,ACROBJDA,ACRDFYDA,ACRODDA,ACRLBDT,ACRFYFUN,ACRIVPAY,ACRREFDA,ACRDUZ,ACRDOCDA
  1. W !!?22,"Required Data for new Payment"
  1. D DOC
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D REF:'$G(ACRREFDA)
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D VENDOR^ACRFPAY8:ACRBTYP="V"
  1. D TRAVELER^ACRFPAY8:ACRBTYP="T"&'$G(ACRDUZ)
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. I ACRBTYP="T" D DATES^ACRFIV12
  1. Q:$D(ACRQUIT)!($D(ACROUT))
  1. 326 ;EP;TO ADD MULTIPLE CONTRACT PAYMENTS
  1. D CAN:'$G(ACRCANDA)!(ACRREF=326)!(ACRREF=371)
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D OCC:'$G(ACROBJDA)!(ACRREF=326)!(ACRREF=371)
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. I '$P($G(ACRLBDT),U,11) S:$G(ACRLOC)]"" DIC("B")=ACRLOC D LCOD^ACRFPAY8
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D CCT:'$P($G(ACRLBDT),U,15)
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. I $L($G(ACRFYFUN))'=2!(ACRREF=326)!(ACRREF=371) D FYFUN^ACRFPAY9
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D APP ;:'$P($G(ACRLBDT),U,4)
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. I '$G(ACRVDA)&'$G(ACRDUZ) D
  1. .D VENDOR^ACRFPAY8:ACRBTYP="V"
  1. .D TRAVELER^ACRFPAY8:ACRBTYP="T"
  1. . I ACRBTYP="T" D DATES^ACRFIV12
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D AMOUNT
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D PTYPE^ACRFPAY9
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D INVOICE:ACRBTYP="V"
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. I ACRBTYP="V" D
  1. .;ACRACHX TELLS BATCH TYPE SELECTION PROCESS TO RETAIN CURRENT BATCH
  1. .;TYPE
  1. .S ACRACHX=ACRACH
  1. .D ^ACRFIV4
  1. .K ACRACHX
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. D FINAL
  1. Q:$D(ACRQUIT)!$D(ACROUT)
  1. S:ACRTCODE=19114 ACRTCODE=$S(ACRFINAL=1:19114,1:18114)
  1. S ACRPAYDA=$P(^AFSLAFP(ACRFYDA,1,ACRBATDA,2),U,2)
  1. Q
  1. APP ;SELECT APPROPRIATION
  1. S DIC="^AUTTPRO("
  1. S DIC(0)="AEMQZ"
  1. S DIC("A")="APPROPRIATION.......: "
  1. I $P($G(ACRLBDT),U,4),$P($G(^AUTTPRO(+$P(ACRLBDT,U,4),0)),U)]"" S DIC("B")=$P(^(0),U) I DIC("B")?7N S DIC("B")=$E(DIC("B"),1,2)_$E(ACRFYFUN,4)_$E(DIC("B"),4,7)
  1. D DIC^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I $D(DTOUT)!($D(DUOUT)) S ACROUT="" Q
  1. I +Y<1 W !!,"APPROPRIATION REQUIRED",! G APP
  1. S $P(ACRLBDT,U,4)=+Y
  1. Q
  1. CAN ;SELECT CAN
  1. S DIC="^AUTTCAN("
  1. S DIC(0)="AEMQZ"
  1. S DIC("A")="CAN.................: "
  1. D DIC^ACRFDIC
  1. I $L($G(ACRCAN))=7 S DIC("B")=ACRCAN
  1. I X["^" S ACROUT="" Q
  1. I $D(DTOUT)!($D(DUOUT)) S ACROUT="" Q
  1. I +Y<1 W !!,"CAN NUMBER REQUIRED",! G CAN
  1. S ACRCANDA=+Y
  1. S ACRCAN=Y(0,0)
  1. S:$P(Y(0),U,3) $P(ACRLBDT,U,4)=$P(Y(0),U,3)
  1. S:$P(Y(0),U,6) $P(ACRLBDT,U,11)=$P(Y(0),U,6)
  1. S:$P(Y(0),U,15) $P(ACRLBDT,U,15)=$P(Y(0),U,15)
  1. Q
  1. OCC ;SELECT OBJECT CLASS CODE
  1. S DIC="^AUTTOBJC("
  1. S DIC(0)="AEMQZ"
  1. S DIC("A")="OBJECT CLASS CODE...: "
  1. I $L($G(ACROBJ))=4 S DIC("B")=ACROBJ
  1. D DIC^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I $D(DTOUT)!($D(DUOUT)) S ACROUT="" Q
  1. I +Y<1 W !!,"OBJECT CLASS CODE REQUIRED",! G OCC
  1. S ACROBJDA=+Y
  1. S ACROBJ=$P(Y(0),U)
  1. Q
  1. CCT ;SELECT COST CENTER
  1. S DIC="^AUTTCCT("
  1. S DIC(0)="AEMQZ"
  1. S DIC("A")="COST CENTER.........: "
  1. D DIC^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I $D(DTOUT)!($D(DUOUT)) S ACROUT="" Q
  1. I +Y<1 W !!,"COST CENTER CODE REQUIRED",! G CCT
  1. S $P(ACRLBDT,U,15)=+Y
  1. Q
  1. REF ;SELECT DOCUMENT REFERENCE CODE
  1. S DIC="^AUTTDOCR("
  1. S DIC(0)="AEMQZ"
  1. S DIC("A")="REFERENCE CODE......: "
  1. D DIC^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I $D(DTOUT)!($D(DUOUT)) S ACROUT="" Q
  1. I +Y<1 W !!,"REFERENCE CODE REQUIRED",! G REF
  1. S ACRREFDA=+Y
  1. S (ACRREF,ACRREFX)=$P(Y(0),U)
  1. Q
  1. DOC ;ENTER DOCUMENT NUMBER
  1. S DIR(0)="FO^10:10"
  1. S DIR("A")="DOCUMENT NUMBER....."
  1. S DIR("B")=$G(ACRTDOC) ;ACR*2.1*5.13
  1. D DIR^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I X'?10AN S ACRQUIT="" Q
  1. DOCX ;EP
  1. S (ACRDOC,ACRDOC2,ACRDOCX,ACRTDOC)=X ;ACR*2.1*5.13
  1. S ACRDFYDA=$O(^AFSLODOC("DOCNO",ACRDOC,0))
  1. S ACRODDA=$O(^AFSLODOC("DOCNO",ACRDOC,+ACRDFYDA,0))
  1. I ACRDFYDA,ACRODDA,$O(^AFSLODOC("DOCNO",ACRDOC,ACRDFYDA,ACRODDA)) D SOD Q:'$G(ACRODDA)
  1. I $D(^ACRDOC("B",ACRDOC))!$D(^ACRDOC("C",ACRDOC)) D
  1. .S ACRX=$O(^ACRDOC("B",ACRDOC,0))
  1. .S:'ACRX ACRX=$O(^ACRDOC("C",ACRDOC,0))
  1. .I ACRX,ACRBTYP="T",$P($G(^ACRDOC(ACRX,"TO")),U,9) S ACRDUZ=$P(^("TO"),U,9)
  1. .I ACRX,$P($G(^ACROBL(+ACRX,"APV")),U,8)'="A" D
  1. ..I $P($G(^ACROBL(+ACRX,"APV")),U)'="A",$P($G(^ACRDOC(+ACRX,0)),U,14)["CANCEL" D
  1. ...W !!,*7,*7,"This document has been cancelled."
  1. ...S DIR(0)="YO"
  1. ...S DIR("A")="Continue Payment Action anyway"
  1. ...S DIR("B")="NO"
  1. ...W !
  1. ...D DIR^ACRFDIC
  1. ...I Y=1 K ACRQUIT Q
  1. ...W !,"No payment action will be processed."
  1. ...D PAUSE^ACRFWARN
  1. ..I $P($G(^ACROBL(+ACRX,"APV")),U)="A" D
  1. ...W !!,*7,*7,"Final approval of this document has not been completed."
  1. ...D PAUSE^ACRFWARN
  1. I 'ACRDFYDA!'ACRODDA D W ! G DOC:$D(ACRQUIT)
  1. .W !!,"Document not found in the OPEN DOCUMENT file."
  1. .S DIR(0)="YO"
  1. .S DIR("A")="Create Payment anyway"
  1. .S DIR("B")="NO"
  1. .W !
  1. .D DIR^ACRFDIC
  1. .I +Y'=1 S ACRQUIT="" Q
  1. .K ACRQUIT
  1. I ACRDFYDA,ACRODDA D
  1. .K ACRCAN,ACRCANDA,ACROBJ,ACROBJDA,ACRREF,ACRREFDA,ACRVDA,ACRALW,ACRALWDA,ACRAPP,ACRAPPDA,ACRLOC,ACRLOCDA,ACRACPT,ACRFYFUN
  1. .N ACR0,ACR2,X,Y,Z
  1. .S X=$G(^AFSLODOC(ACRDFYDA,1,ACRODDA,0))
  1. .S Y=$G(^AFSLODOC(ACRDFYDA,1,ACRODDA,2))
  1. .S ACRFYFUN=$E(DT,2)_$P($G(^AFSLODOC(ACRDFYDA,0)),U)
  1. .S $P(ACRLBDT,U)=ACRFYFUN
  1. .S ACRCAN=$P(X,U,3)
  1. .S ACRCANDA=$S(ACRCAN]"":$O(^AUTTCAN("B",ACRCAN,0)),1:"")
  1. .S $P(ACRLBDT,U,11)=$P($G(^AUTTCAN(+ACRCANDA,0)),U,6)
  1. .S $P(ACRLBDT,U,15)=$P($G(^AUTTCAN(+ACRCANDA,0)),U,15)
  1. .S ACROBJ=$P(X,U,4)
  1. .S ACROBJDA=$O(^AUTTOBJC("B",(ACROBJ_" "),0))
  1. .I ACRBTYP="T",$D(ACRX) D ;ACR*2.1*16.06 IM15505
  1. ..S ACROBJDA=$P($G(^ACRDOC(+ACRX,"REQ")),U,6) ;ACR*2.1*16.06 IM15505
  1. ..S:ACROBJDA]"" ACROBJ=$P(^AUTTOBJC(ACROBJDA,0),U) ;ACR*2.1*16.06 IM15505
  1. .S (ACRREF,ACRREFX)=$P(Y,U)
  1. .S ACRREFDA=$S(ACRREF]"":$O(^AUTTDOCR("B",ACRREF,0)),1:"")
  1. .S ACRVDA=$P(Y,U,3)
  1. .S ACRALW=$P(Y,U,10)
  1. .S ACRALW=$TR(ACRALW," ","")
  1. .S ACRALWDA=$O(^AUTTALLW("B",+ACRALW,0))
  1. .S ACRAPP=$P(Y,U,11)
  1. .S ACRAPP=$TR(ACRAPP," ","")
  1. .S:ACRAPP]"" $P(ACRLBDT,U,4)=$O(^AUTTPRO("B",ACRAPP,0))
  1. .K ACRLOC,ACRLOCDA
  1. .S ACRLOC=$P(Y,U,12)
  1. .I ACRLOC]"" S ACRLOCDA=$O(^AUTTLCOD("B",ACRLOC,0))
  1. .I $G(ACRLOCDA),'$O(^AUTTLCOD("B",ACRLOC,ACRLOCDA)) S $P(ACRLBDT,U,11)=ACRLOCDA
  1. .S ACRACPT=$E(ACRCAN,2,3)
  1. .N ACRX,ACRY
  1. .S ACRX=0
  1. S:$G(ACRREFX)=326!($G(ACRREFX)=371) $P(^TMP("ACRINV",$J,1),U,2)=ACRDOC
  1. Q
  1. AMOUNT ;EP - ENTER PAYMENT AMOUNT
  1. S DIR(0)="NOA^0:99999999.99:2"
  1. ;S DIR("A")="PAYMENT AMOUNT......: " ;ACR*2.1*16.06 IM15505
  1. S:ACRBTYP="V" DIR("A")="INVOICE AMOUNT......: " ;ACR*2.1*16.06 IM15505
  1. S:ACRBTYP="T" DIR("A")="AMOUNT CLAIMED......: " ;ACR*2.1*16.06 IM15505
  1. I $G(ACRAMTX),$G(ACRREF)=618 S DIR("B")=ACRAMTX
  1. K ACRAMTX
  1. D DIR^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I $D(DTOUT)!($D(DIRUT)) S ACROUT="" Q
  1. ;I '+Y W !!,"PAYMENT AMOUNT REQUIRED",! G AMOUNT ;ACR*2.1*16.06 IM15505
  1. I '+Y D G AMOUNT ;ACR*2.1*16.06 IM15505
  1. .I ACRBTYP="V" D ;ACR*2.1*16.06 IM15505
  1. ..W !!,"REQUIRED: ENTER AMOUNT OF INVOICE, EXCLUSIVE OF DISCOUNTS" ;ACR*2.1*16.06 IM15505
  1. ..W " OR INTEREST PENALTIES",! ;ACR*2.1*16.06 IM15505
  1. .I ACRBTYP="T" D ;ACR*2.1*16.06 IM15505
  1. ..W !!,"REQUIRED: ENTER AMOUNT CLAIMED ON TRAVEL VOUCHER",! ;ACR*2.1*16.06 IM15505
  1. S (ACRIVTF,ACRIVT)=Y
  1. S ACRIVPAY(ACRCANDA,ACROBJDA)=Y
  1. Q
  1. INVOICE ;EP; ENTER INVOICE INFORMATION
  1. S DIR(0)="DO^::AE"
  1. S DIR("A")="RECEIVING DATE......: "
  1. S DIR("B")="TODAY"
  1. D DIR^ACRFDIC
  1. I 'Y S Y=DT
  1. S ACRRRDAT=+Y
  1. D EDIT^ACRFIVDX
  1. Q
  1. FINAL ;EP - FINAL OR PARTIAL PAYMENT
  1. S DIR(0)="SO^1:FINAL;2:PARTIAL"
  1. S DIR("A")="FINAL/PARTIAL......."
  1. D DIR^ACRFDIC
  1. I X["^" S ACROUT="" Q
  1. I Y<1 S ACRQUIT="" Q
  1. S ACRFINAL=Y
  1. Q
  1. SOD ;SELECT OPEN DOCUMENT
  1. K ACRODDA
  1. D SODH
  1. N J,ACRXX,ACRYY,ACRZ,ACRZ2
  1. S (J,ACRXX)=0
  1. F S ACRXX=$O(^AFSLODOC("DOCNO",ACRDOC,ACRXX)) Q:'ACRXX D
  1. .S ACRYY=0
  1. .F S ACRYY=$O(^AFSLODOC("DOCNO",ACRDOC,ACRXX,ACRYY)) Q:'ACRYY D
  1. ..S J=J+1
  1. ..S J(J)=ACRXX_U_ACRYY
  1. ..S ACRZ=$G(^AFSLODOC(ACRXX,1,ACRYY,0))
  1. ..S ACRZ2=$G(^AFSLODOC(ACRXX,1,ACRYY,2))
  1. ..S ACRAMTX=$P(ACRZ,U,10)/100
  1. ..W !?10,J,?15,$P(ACRZ,U),?27,$P(ACRZ,U,3),?36,$P(ACRZ,U,4),?42,$P(ACRZ2,U),?48,$P(^AFSLODOC(ACRXX,0),U),?52,$J($FN(ACRAMTX,"P,",2),14)
  1. ..I IOSL-4<$Y D PAUSE^ACRFWARN K ACRQUIT,ACROUT D SODH
  1. S DIR(0)="NO^1:"_J
  1. S DIR("A")="Which OPEN DOCUMENT"
  1. W !
  1. D DIR^ACRFDIC
  1. I 'Y S ACRQUIT="" Q
  1. I '$D(J(Y)) S ACRQUIT="" Q
  1. S ACRDFYDA=+J(Y)
  1. S ACRODDA=$P(J(Y),U,2)
  1. Q
  1. SODH ;HEADER
  1. W @IOF
  1. W !?15,"Select OPEN DOCUMENT"
  1. W !?36,"OBJ",?42,"REF"
  1. W !?10,"NO.",?15,"DOCUMENT",?27,"CAN",?36,"CODE",?42,"CODE",?48,"FY",?52,"OBLG AMT"
  1. W !?10,"---",?15,"----------",?27,"-------",?36,"----",?42,"----",?48,"--",?52,"-------------"
  1. Q