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

PRCHDP6.m

Go to the documentation of this file.
  1. PRCHDP6 ;WISC/DJM-PRINT AMENDMENT, ROUTINE #2 ;9/15/95 11:41 AM
  1. V ;;5.1;IFCAP;**21,131,221**;Oct 20, 2000;Build 14
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ;PRC*5.1*221 Modify an item description display to skip '|' logic
  1. ; if description contains a undefined display command
  1. ; like '| IN '.
  1. ; Also, the check for an existing amendment on an
  1. ; item being displayed. This intial check will allow
  1. ; for further determination whether the LATEST amendment
  1. ; has a pricing effect on the order printed.
  1. ;
  1. E22 ;LINE ITEM Delete PRINT
  1. N FIELD,CHANGE,CHANGES,OLD,ITEM,ITEM0,ITEM1,ITEM2,LCNT,DATA,I,UOP
  1. S FIELD=0 K ITEM D LCNT^PRCHDP9(.LCNT)
  1. F S FIELD=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",AMEND,FIELD)) Q:FIELD'>0 D
  1. .S CHANGE=0 F S CHANGE=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",AMEND,FIELD,CHANGE)) Q:CHANGE'>0 D
  1. ..S CHANGES=^PRC(442,PRCHPO,6,PRCHAM,3,CHANGE,0),OLD=^PRC(442,PRCHPO,6,PRCHAM,3,CHANGE,1,1,0)
  1. ..S ITEM=$P(CHANGES,U,4) Q:$D(ITEM(ITEM)) S ITEM(ITEM)=1
  1. ..S ITEM0=$G(^PRC(442,PRCHPO,2,ITEM,0))
  1. ..I ITEM0="" Q
  1. ..S ITEM1=$G(^PRC(442,PRCHPO,2,ITEM,1,1,0))
  1. ..D LINE^PRCHDP9(.LCNT,2) S DATA="The following line item has been cancelled:" D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S DATA="Item No. "_$P(ITEM0,U)_" Item Master File No. "
  1. ..S DATA=DATA_$P(ITEM0,U,5)_" BOC: "_+$P(ITEM0,U,4)
  1. ..S DATA=DATA_" CONTRACT: "_$P($G(^PRC(442,PRCHPO,2,ITEM,2)),U,2)
  1. ..D DATA^PRCHDP9(.LCNT,DATA)
  1. ..D NEW^PRCHDP7
  1. ..S UOP=$S($P(ITEM0,U,3)>0:$P($G(^PRCD(420.5,$P(ITEM0,U,3),0)),U),1:"")
  1. ..S DATA=" Items per "_UOP_": "_$P(ITEM0,U,12)
  1. ..F I=1:1:26-$L(DATA) S DATA=DATA_" "
  1. ..S DATA=DATA_"NSN: "_$P(ITEM0,U,13) D DATA^PRCHDP9(.LCNT,DATA)
  1. ..I $P(ITEM0,U,6)]"" S DATA=" STK#: "_$P(ITEM0,U,6) D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S QTY=$$FETCH(2,ITEM)
  1. ..S AUC=$$FETCH(5,ITEM)
  1. ..S UOP=$S($P(ITEM0,U,3)>0:$P($G(^PRCD(420.5,$P(ITEM0,U,3),0)),U),1:"")
  1. ..S DATA=" "_QTY_" "_UOP_" at $"_$J(AUC,12,4)_" = $"_$J(QTY*AUC,9,2) D DATA^PRCHDP9(.LCNT,DATA),LCNT1^PRCHDP9(LCNT)
  1. Q
  1. ;
  1. E23 ;LINE ITEM Edit PRINT
  1. N FIELD,CHANGE,CHANGES,IMF,BOC,OLD,ITEM,ITEM0,ITEM1,ITEMZ,QTY,AUC,UOP,UOP1,NSN,UCF,LCNT,DATA,DES,VAL,PRCHLN,ABC,VSN,CONOLD,CON442
  1. S FIELD=0 K ITEM D LCNT^PRCHDP9(.LCNT)
  1. F S FIELD=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",AMEND,FIELD)) Q:FIELD'>0 D
  1. .S CHANGE=0 F S CHANGE=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",AMEND,FIELD,CHANGE)) Q:CHANGE'>0 D
  1. ..S CHANGES=^PRC(442,PRCHPO,6,PRCHAM,3,CHANGE,0),OLD=^PRC(442,PRCHPO,6,PRCHAM,3,CHANGE,1,1,0)
  1. ..S ITEM=$P(CHANGES,U,4) Q:$D(ITEM(ITEM)) S ITEM(ITEM)=1
  1. ..S ITEM0=$G(^PRC(442,PRCHPO,2,ITEM,0))
  1. ..I ITEM0="" Q
  1. ..I $P(ITEM0,U,2)=0,$P(ITEM0,U,9)=0 Q
  1. ..S ITEM1=$G(^PRC(442,PRCHPO,2,ITEM,1,1,0))
  1. ..S (ABC,DES)=$$FETCH(1,ITEM) S PRCHLN=VAL
  1. ..S IMF=$$FETCH(1.5,ITEM) I IMF'>0 S IMF=$P(ITEM0,U,5)
  1. ..S BOC=+$$FETCH(3.5,ITEM) I BOC'>0 S BOC=+$P(ITEM0,U,4)
  1. ..S QTY=$$FETCH(2,ITEM) I QTY'>0 S QTY=$P(ITEM0,U,2)
  1. ..S AUC=$$FETCH(5,ITEM) I AUC="" S AUC=$P(ITEM0,U,9)
  1. ..S UOP=$$FETCH(3,ITEM) I UOP'>0 S UOP=$P(ITEM0,U,3)
  1. ..S NSN=$$FETCH(9.5,ITEM) I NSN="" S NSN=$P(ITEM0,U,13)
  1. ..S UCF=$$FETCH(3.1,ITEM) I UCF'>0 S UCF=$P(ITEM0,U,12)
  1. ..S VSN=$$FETCH(9,ITEM) I VSN="" S VSN=$P(ITEM0,U,6)
  1. ..S CONOLD=$$FETCH(4,ITEM)
  1. ..S CON442=$P($G(^PRC(442,PRCHPO,2,ITEM,2)),U,2)
  1. ..I CONOLD="",CON442'="" S CONOLD=CON442
  1. ..D LINE^PRCHDP9(.LCNT,2) S DATA="**Currently:"
  1. ..D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S DATA="Item No. "_$P(ITEM0,U)_" Item Master File No. "_IMF
  1. ..S DATA=DATA_" BOC: "_BOC_" CONTRACT: "_CONOLD
  1. ..D DATA^PRCHDP9(.LCNT,DATA)
  1. ..I $L(ABC)>0 D OLD^PRCHDP7
  1. ..I $L(ABC)'>0 S ITEMZ=ITEM1 D NEW^PRCHDP7
  1. ..S UOP1=$S($L(UOP)>0:$P($G(^PRCD(420.5,UOP,0)),U),1:"")
  1. ..S DATA=" Items per "_UOP1_": "_UCF
  1. ..F I=1:1:26-$L(DATA) S DATA=DATA_" "
  1. ..S DATA=DATA_"NSN: "_NSN D DATA^PRCHDP9(.LCNT,DATA)
  1. ..I $L(VSN)>0 S DATA=" STK#: "_$P(ITEM0,U,6) D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S UOP1=$S($L(UOP)>0:$P($G(^PRCD(420.5,UOP,0)),U),1:"")
  1. ..S AMDQTY=QTY,AMDVAL=AUC D NXTAMD
  1. ..S DATA=" "_AMDQTY_" "_UOP1_" at $"_$J(AMDVAL,12,2)_" = $"_$J(AMDQTY*AMDVAL,9,2) D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S DATA=" "
  1. ..D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S DATA=" **Will now be AMENDED to read:" D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S DATA="Item No. "_$P(ITEM0,U)_" Item Master File No. "
  1. ..S DATA=DATA_$P(ITEM0,U,5)_" BOC: "_+$P(ITEM0,U,4)
  1. ..S DATA=DATA_" CONTRACT: "_CON442
  1. ..D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S:$D(ITEMZ) ITEM1=ITEMZ D NEW^PRCHDP7
  1. ..S UOP1=$S($P(ITEM0,U,3)>0:$P($G(^PRCD(420.5,$P(ITEM0,U,3),0)),U),1:"")
  1. ..S DATA=" Items per "_UOP1_": "_$P(ITEM0,U,12)
  1. ..F I=1:1:26-$L(DATA) S DATA=DATA_" "
  1. ..S DATA=DATA_"NSN: "_$P(ITEM0,U,13) D DATA^PRCHDP9(.LCNT,DATA)
  1. ..I $P(ITEM0,U,6)]"" S DATA=" STK#: "_$P(ITEM0,U,6) D DATA^PRCHDP9(.LCNT,DATA)
  1. ..S UOP1=$S($P(ITEM0,U,3)>0:$P($G(^PRCD(420.5,$P(ITEM0,U,3),0)),U),1:"")
  1. ..S AMDQTY=$P(ITEM0,U,2),AMDVAL=$P(ITEM0,U,9) D NXTAMD1
  1. ..S DATA=" "_AMDQTY_" "_UOP1_" at $"_$J(AMDVAL,12,4)_" = $"_$J(AMDQTY*AMDVAL,9,2)
  1. ..K AMDQTY,AMDVAL
  1. ..D DATA^PRCHDP9(.LCNT,DATA),LCNT1^PRCHDP9(LCNT)
  1. Q
  1. ;
  1. FETCH(FIELD,ITEM) ;EXTRINSIC FUNCTION TO RETURN THE 'VALUE' FOR A FIELD FROM 'LINE ITEM
  1. ;AMENDMENT' OPTIONS.
  1. N VAL1
  1. S VAL=0 F S VAL=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",21,FIELD,VAL)) Q:VAL'>0 S VAL1=$P(^PRC(442,PRCHPO,6,PRCHAM,3,VAL,0),U,4) I VAL1=ITEM S VAL1=0 G EXIT
  1. S VAL=0 F S VAL=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",22,FIELD,VAL)) Q:VAL'>0 S VAL1=$P(^PRC(442,PRCHPO,6,PRCHAM,3,VAL,0),U,4) I VAL1=ITEM D G EXIT
  1. .S VAL1=^PRC(442,PRCHPO,6,PRCHAM,3,VAL,1,1,0)
  1. .Q
  1. S VAL=0 F S VAL=$O(^PRC(442,PRCHPO,6,PRCHAM,3,"AC",23,FIELD,VAL)) Q:VAL'>0 S VAL1=$P(^PRC(442,PRCHPO,6,PRCHAM,3,VAL,0),U,4) I VAL1=ITEM D G EXIT
  1. .S VAL1=^PRC(442,PRCHPO,6,PRCHAM,3,VAL,1,1,0)
  1. .Q
  1. S VAL1=""
  1. EXIT Q VAL1
  1. NXTAMD ;FIND PREVIOUS CURRENT QTY/COST WHEN MORE THAN 1 AMENDMENT
  1. Q:'$D(^TMP($J,"PRCHDP6"))
  1. N TMPREC
  1. I +$G(PRCHAMNT),$P(^PRC(442,PRCHPO,6,0),U,3)>PRCHAMCT,'$D(^TMP($J,"PRCHDP6",ITEM,PRCHAM)) S PRCHAMNT=2,AMDQTY=$P(ITEM0,U,2),AMDVAL=$P(ITEM0,U,9) Q ;PRC*5.1*221
  1. S TMPREC=^TMP($J,"PRCHDP6",ITEM,PRCHAM)
  1. S AMDQTY=$P(TMPREC,U) S:AMDQTY="" AMDQTY=$P(ITEM0,U,2)
  1. S AMDVAL=$P(TMPREC,U,3) S:AMDVAL="" AMDVAL=$P(ITEM0,U,9)
  1. Q
  1. NXTAMD1 ;FIND PREVIOUS AMENDED TO +INFO WHEN MORE THAN 1
  1. Q:'$D(^TMP($J,"PRCHDP6"))
  1. N TMPREC
  1. I +$G(PRCHAMNT),$P(^PRC(442,PRCHPO,6,0),U,3)>PRCHAMCT,'$D(^TMP($J,"PRCHDP6",ITEM,PRCHAM)) S PRCHAMNT=2,AMDQTY=$P(ITEM0,U,2),AMDVAL=$P(ITEM0,U,9) Q ;PRC*5.1*221
  1. S TMPREC=^TMP($J,"PRCHDP6",ITEM,PRCHAM)
  1. S AMDQTY=$P(TMPREC,U,5) S:AMDQTY="" AMDQTY=$P(ITEM0,U,2)
  1. S AMDVAL=$P(TMPREC,U,7) S:AMDVAL="" AMDVAL=$P(ITEM0,U,9)
  1. Q
  1. AMENDS ;SET UP AMENDMENT HISTORY
  1. Q:'$D(^PRC(442,D0,6))
  1. N ITIEN,AMDQTY,AMDVAL,CURQTY,CURVAL,NXTAMD,HNXTAMD,NXTCHG,NXTFLD,ITEMNO,ITNO,AMDATA,AREC,NAMEND,J,XOLD1
  1. K ^TMP($J,"PRCHDP6") S ITIEN=0
  1. S NXTAMD=0 F S NXTAMD=$O(^PRC(442,D0,6,NXTAMD)) Q:'NXTAMD S HNXTAMD=NXTAMD
  1. AM1 F S ITIEN=$O(^PRC(442,D0,2,ITIEN)) Q:'ITIEN D
  1. . S ITEM0=$G(^PRC(442,D0,2,ITIEN,0)) S CURQTY=$P(ITEM0,U,2),CURVAL=$P(ITEM0,U,9)
  1. . F J=1:1:HNXTAMD S ^TMP($J,"PRCHDP6",ITIEN,J)=CURQTY_U_0_U_CURVAL_U_0_U_CURQTY_U_0_U_CURVAL_U_0
  1. AM2 S NXTAMD=0
  1. AM3 S NXTAMD=$O(^PRC(442,D0,6,NXTAMD)),NXTFLD=0 G AMX:'NXTAMD
  1. AM4 S NXTFLD=$O(^PRC(442,D0,6,NXTAMD,3,"AC",23,NXTFLD)),NXTCHG=0 G:'NXTFLD AM3
  1. AM5 S NXTCHG=$O(^PRC(442,D0,6,NXTAMD,3,"AC",23,NXTFLD,NXTCHG)) G:'NXTCHG AM4
  1. S XOLD1=$G(^PRC(442,D0,6,NXTAMD,3,NXTCHG,0)),ITEMNO=$P(XOLD1,U,4)
  1. COST I $P(XOLD1,U,3)["5;442.01" S NAMEND=0 D
  1. . S AMDVAL=$G(^PRC(442,D0,6,NXTAMD,3,NXTCHG,1,1,0))
  1. . F J=1:1 S NAMEND=$O(^TMP($J,"PRCHDP6",ITEMNO,NAMEND)) Q:NAMEND="" D
  1. .. S AMDATA=^TMP($J,"PRCHDP6",ITEMNO,NAMEND)
  1. .. I $P(AMDATA,U,4)=0,NAMEND'>NXTAMD S $P(^TMP($J,"PRCHDP6",ITEMNO,NAMEND),U,3,4)=AMDVAL_U_NXTAMD
  1. .. I $P(AMDATA,U,8)=0,NAMEND<NXTAMD S $P(^TMP($J,"PRCHDP6",ITEMNO,NAMEND),U,7,8)=AMDVAL_U_NXTAMD
  1. QUANT I $P(XOLD1,U,3)["2;442.01" S NAMEND=0 D
  1. . S AMDQTY=$G(^PRC(442,D0,6,NXTAMD,3,NXTCHG,1,1,0))
  1. . F J=1:1 S NAMEND=$O(^TMP($J,"PRCHDP6",ITEMNO,NAMEND)) Q:NAMEND="" D
  1. .. S AMDATA=^TMP($J,"PRCHDP6",ITEMNO,NAMEND)
  1. .. I $P(AMDATA,U,2)=0,NAMEND'>NXTAMD S $P(^TMP($J,"PRCHDP6",ITEMNO,NAMEND),U,1,2)=AMDQTY_U_NXTAMD
  1. .. I $P(AMDATA,U,6)=0,NAMEND<NXTAMD S $P(^TMP($J,"PRCHDP6",ITEMNO,NAMEND),U,5,6)=AMDQTY_U_NXTAMD
  1. G AM5
  1. AMX Q