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

AMQQN2.m

Go to the documentation of this file.
  1. AMQQN2 ; IHS/CMI/THL - TEMP ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. VAR N A,S
  1. S A=X
  1. S S=" "
  1. N %,X,Y,Z
  1. RUN D ATT
  1. I $G(Y)=-1 S AMQQFAIL=5 G EXIT
  1. I A="",$D(AMQQONE),"GL"[$P(^AMQQ(4,AMQQNTYP,0),U) S A="= ALL"
  1. I A="" S AMQQNCND="",AMQQNVAL=""
  1. E D COND I Y=-1 S AMQQFAIL=5 G EXIT
  1. I $G(AMQQNSUB)'="" D SUB I Y=-1 S AMQQFAIL=6 G EXIT
  1. EXIT K AMQQNI,AMQQNOTF,AMQQNTYP,AMQQNII,%,A,S
  1. Q
  1. ;
  1. ATT S DIC="^AMQQ(5,"
  1. S DIC(0)="ES"
  1. S DIC("S")="I $P(^(0),U,2)=AMQQCCLS"
  1. F AMQQNI=1:1:$L(A,S)-1 S X=$P(A,S,AMQQNI,AMQQNI+1) Q:X="" S:$E(X,$L(X))="S" X=$E(X,1,$L(X)-1) S D="C" I X'=+X D IX^DIC I Y'=-1 S X=$P(A,S,AMQQNI,AMQQNI+1) D ATTSET G ATTEXIT
  1. F AMQQNI=1:1 S X=$P(A,S,AMQQNI) Q:X="" S:$E(X,$L(X))="S" X=$E(X,1,$L(X)-1) S D="C" I X'="LAST",X'=+X D IX^DIC I Y'=-1 S X=$P(A,S,AMQQNI) D ATTSET Q
  1. ATTEXIT K DIC
  1. Q
  1. ;
  1. ATTSET D ^AMQQSEC
  1. I Y=-1 S AMQQNSF="" H 2 Q
  1. S AMQQNSUB=$P(A,X)
  1. S %=$L(AMQQNSUB)
  1. I $E(AMQQNSUB,%)=" " S AMQQNSUB=$E(AMQQNSUB,1,%-1)
  1. S A=$P(A,X,2,99)
  1. I $E(A)=S S A=$E(A,2,999)
  1. S AMQQNATT=Y
  1. S AMQQATN=+Y
  1. S AMQQATNM=$P(Y,U,2)
  1. S AMQQLINK=$P(^AMQQ(5,+Y,0),U,5)
  1. I 'AMQQLINK S Y=-1 Q
  1. I AMQQATN>1000 D ^AMQQATAL
  1. W $C(13),?79,$C(13)
  1. S %=$P(^AMQQ(5,+Y,0),U,5)
  1. S:%=9 %=+Y+($J/100000)
  1. S AMQQNTYP=$P(^AMQQ(1,%,0),U,5)
  1. S AMQQCTXS=$P(^(0),U,7)
  1. Q
  1. ;
  1. COND S %=$P(^AMQQ(4,AMQQNTYP,0),U)
  1. I "GL"[% D TAX Q
  1. S %=$P(A,S)
  1. I "^IS^WAS^ARE^WERE^"[(U_%_U) S AMQQNISF="",A=$P(A,S,2,99) G COND
  1. I "^`^NOT^"[% S AMQQNOTF="",A=$P(A,S,2,99)
  1. C1 S DIC="^AMQQ(5,"
  1. S DIC(0)="ES"
  1. I 'AMQQCTXS S DIC("S")="I $P(^(0),U,3)=AMQQNTYP" G C2
  1. I $G(AMQQNSUB)'="" S DIC("S")="I $P(^(0),U,21)="_AMQQNTYP G C2
  1. S AMQQSQST=$P(^AMQQ(4,AMQQNTYP,0),U)
  1. D DICS^AMQQSQAC
  1. C2 S %=$L(A,S)
  1. I %>3 S %=3
  1. S AMQQNII=%
  1. F AMQQNI=AMQQNII:-1:1 S X=$P(A,S,1,AMQQNI),D="C" D IX^DIC I Y'=-1 Q
  1. W $C(13),?79,$C(13)
  1. K DIC
  1. I Y=-1,$D(AMQQNISF) K AMQQNISF S A="= "_A G C1
  1. I Y=-1 Q
  1. S AMQQNVAL=$P(A," ",AMQQNI+1,99)
  1. S AMQQNCND=Y
  1. S %=$L(AMQQNVAL,S)
  1. I %>1,$P(AMQQNVAL,S,%-1)=+$P(AMQQNVAL,S,%-1) S AMQQNVAL=$P(AMQQNVAL,S,1,%-1)
  1. I $D(AMQQNOTF) K AMQQNOTF S $P(AMQQNCND,U,3)="'"
  1. I $G(AMQQNVAL)'="" D VAL
  1. Q
  1. ;
  1. TAX F %="IS","WAS","ARE","WERE" I $P(A," ")=% S A="= "_$P(A," ",2,99)
  1. S AMQQNVAL=$P(A,"= ",2)
  1. S AMQQNTAX=AMQQNVAL
  1. K AMQQTAX
  1. S %=^AMQQ(5,+Y,0)
  1. S AMQQLINK=$P(%,U,5)
  1. S AMQQTNAR=$P(%,U,15)
  1. S AMQQTDIC=U_$P(%,U,16)
  1. S AMQQTLOK=U_$P(%,U,18)
  1. S AMQQTTX=""
  1. S:$D(^AMQQ(5,+Y,3)) AMQQTTX=^(3)
  1. D ^AMQQTX
  1. W $C(13),?79,$C(13)
  1. I '$D(AMQQTAX) S AMQQFAIL=8 Q
  1. S AMQQNCND=$S(AMQQCTXS:"MTAX",1:"TAX")
  1. S AMQQNVAL=AMQQTAX
  1. I $D(AMQQXXXX),AMQQXXXX["'="!(AMQQXXXX[" NOT ") S ^UTILITY("AMQQ TAX",$J,AMQQTAX,"--")=""
  1. Q
  1. ;
  1. SUB S A=AMQQNSUB
  1. S DIC="^AMQQ(5,"
  1. S DIC(0)="ES"
  1. S DIC("S")="I $P(^(0),U,20)=""C""!($P(^(0),U,20)=""O""),$P(^(0),U,21)="_AMQQNTYP_"!($P(^(0),U,21)=16)"
  1. S %=$L(A,S)
  1. I %>3 S %=3
  1. S AMQQNII=%
  1. F AMQQNI=AMQQNII:-1:1 S X=$P(A,S,1,AMQQNI),D="C" D IX^DIC I Y'=-1 Q
  1. W $C(13),?79,$C(13)
  1. K DIC
  1. I Y=-1 S AMQQFAIL=10 Q
  1. S X=$P(A,S,1,AMQQNI)
  1. S %=$P(A,X,2)
  1. S AMQQNSTP=$P(^AMQQ(5,+Y,0),U,20)
  1. S %=$TR(%," ","")
  1. I AMQQNSTP="C",%'="" S AMQQFAIL=10 Q
  1. I AMQQNSTP="C",$G(AMQQNCND)="MTAX" S AMQQFAIL=10 Q
  1. I AMQQNSTP="C" S AMQQNSCD=Y Q
  1. I %="" S %=1
  1. I %'=+% S AMQQFAIL=10 Q
  1. S AMQQNSCD=Y
  1. S AMQQNSVL=%
  1. Q
  1. ;
  1. VAL K AMQQCOMP
  1. S X=AMQQNVAL
  1. S AMQQFTYP=$P(^AMQQ(4,AMQQNTYP,0),U)
  1. S AMQQNOCO=1
  1. S AMQQSYMB=$P(^AMQQ(5,AMQQATN,0),U,6)
  1. I AMQQCTXS S %=$P(^AMQQ(5,+AMQQNCND,0),U,21),AMQQFTYP=$P(^AMQQ(4,%,0),U)
  1. I $D(AMQQNV2) S X=X_";"_AMQQNV2,AMQQNOCO=2 K AMQQNV2
  1. D ^AMQQAV
  1. I $G(AMQQCOMP)="" S AMQQFAIL=6 Q
  1. S AMQQNVAL=AMQQCOMP
  1. K AMQQCOMP
  1. Q
  1. ;