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

PRCFFU22.m

Go to the documentation of this file.
  1. PRCFFU22 ;WISC/SJG-FMS MO4, MO5 SEGMENTS ;11/26/93 15:35
  1. V ;;5.1;IFCAP;;Oct 20, 2000
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. ;
  1. MO4 ;Build 'MO4' Segment
  1. ; 9.2 - PROMPT PAYMENT TERMS (442.06)
  1. ; .01 - PROMPT PAYMENT PERCENT
  1. ; 1 - DAYS (TERM)
  1. ; Don't send if NET/30; exceptions only
  1. MO4A I TYCODE="M" Q:'PRCFA("PPT")
  1. N SEG,DISCPER,DISCDAY,PER,DAY,DAYX,AUTOACC,PROXDAY,HIGH
  1. S TMPLINE=TMPLINE+1,SEG=""
  1. K PRCTMP N DA S DIC=442,DA=+PO,DIQ="PRCTMP(",DIQ(0)="IE",DR="9.2"
  1. S DR(442.06)=".01;1",(HIGH,DA(442.06))=$$HIGH(.RET) D EN^DIQ1 K DIC,DIQ,DR
  1. S (AUTOACC,DISCPER,DISCDAY,PROXDAY)=""
  1. MO4B I TRCODE="SO"&((PRCFA("MP")=21)!(PRCFA("MP")=2)) S AUTOACC=PRCFA("AUTOACC")
  1. S DAY=$G(PRCTMP(442.06,HIGH,1,"E"))
  1. S DAYX=$E(DAY,$L(DAY)-1,$L(DAY))
  1. I "^st^ST^nd^ND^rd^RD^th^TH^"[DAYX S PROXDAY=+DAY
  1. I PROXDAY="" S DISCDAY=+DAY
  1. S PER=$G(PRCTMP(442.06,HIGH,.01,"E"))
  1. S DISCPER=$G(PRCTMP(442.06,HIGH,.01,"E"))
  1. I DISCPER="NET" S (DISCPER,DISCDAY)=""
  1. I DISCPER]"" S DISCPER=$FN(DISCPER,"",3)
  1. I (DISCPER="")&(DISCDAY="")&(AUTOACC="") S TMPLINE=TMPLINE-1 Q
  1. S $P(SEG,U,1)=DISCDAY,$P(SEG,U,2)=DISCPER
  1. MO4C I TRCODE="SO"&((PRCFA("MP")=21)!(PRCFA("MP")=2)) S $P(SEG,U,7)=AUTOACC
  1. I +$G(PROXDAY) S $P(SEG,U,8)=PROXDAY
  1. S ^TMP($J,"PRCMO",INT,TMPLINE)="MO4^^"_SEG_"^~"
  1. Q
  1. MO5 ; Build 'MO5' Segment
  1. N SEG
  1. S TMPLINE=TMPLINE+1,SEG=""
  1. S ^TMP($J,"PRCMO",INT,TMPLINE)="MO5^~"
  1. I SEG S ^TMP($J,"PRCMO",INT,TMPLINE)="MO5^"_SEG_"^~"
  1. Q
  1. HIGH(RET) ; Determine largest Prompt Payment Terms
  1. N LOOP,LOOP1,PPT,PPTVAL,PPTIEN
  1. S LOOP=0,LOOP1="",PPTIEN=1
  1. F S LOOP=$O(^PRC(442,+PO,5,LOOP)) Q:'LOOP D
  1. .S PPTVAL=^PRC(442,+PO,5,LOOP,0)
  1. .I +PPTVAL>0 S PPT(100-PPTVAL)=+PPTVAL_"^"_LOOP
  1. .Q
  1. I $D(PPT) S LOOP1=$O(PPT(LOOP1)),PPTIEN=$P(PPT(LOOP1),U,2)
  1. Q PPTIEN