KPID G 1 ; BEHEER PRODUKTEN IDENTNUMMER;KPID; [ 02/21/2003 11:46 AM ] ; T1 ;0.xxx.xxx.x[] = Blum 8.xxx.xxx.x[] = Blum T2 ;onder de vorm x.xxx.xxx.x ;[] = T3 ;A[] = autom. nummer 8A[] = autom. nummer -[] = einde progamma T4 ;-[] = vorig produkt .[] = volgend produkt I[] = idem met vorige input T5 ; # = positie met vrije inhoud T6 ;[] = synoniemen ; S1 S SRT=($E(SID,1)*6)+($E(SID,2)*5)+($E(SID,3)*4)+($E(SID,4)*3)+($E(SID,5)*2)#11 S:SRT=0 SCD=1 S:SRT=1 SCD=0 I SRT>1 S SCD=11-SRT I 87210643[$E(K) Q:SCD=$E(K,9) S SCD=11+1-SRT S:SRT+1'<11 SCD=0 S SCD=$E(SCD,$L(SCD)) D:SCD'=$E(K,9) TXT^vhINP("IdentNummer met mogelijk foutieve checkdigit") S1Z Q ; S2 S FP=2103+F60+(PROG="KPE100"!($E(PROG,1,5)="KPSEL")*100) W @F,@F1,$P(U2,U,1)," : ",$E(PNT,1,$P(U2,U,9)) I PROG="KPE100" W !?2,$P($T(T1),U,2),!?2,$P($T(T3),U,2) I PROG'="KPE100" W !?2,$P($T(T2),U,2) I PROG'="KPE100",$E(PROG,1,5)'="KPSEL" D .S K=8 I $E($P(B(3),D,25))=8 S K=$S($TR($E($P(B(3),D,25),4,8),".","")=PR:9,1:0) .W K,$P($T(T2),U,3),K,$E($P(B(3),D,25),2,99) I $E(PROG,1,5)="KPSEL" W !?2,$P($T(T6),U,2) I KT>6 W $P($T(T5),U,2) I PROG="KP25"!(PROG="%PE23") W !?2,$P($T(T4),U,2) S FP=2100+F60+(PROG="KPE100"!($E(PROG,1,5)="KPSEL")*100)+$L($P(U2,U,1))+6 W @F,@F,@F0 R K Q ; 1 S K="" I PROG="KPE100" L 11 D S2 ; 2 G 1:K?.E1C.E,1:K[D,1:$L(K)>$P(U2,U,9),YZ:K="-",25:PROG'="KPE100",YZ:K="," I K'="A",K'="8A" G 29 21 L @Q0:2 E X ^cTXT(0,"N",77) R K G 21 23 S SID=@Q0,K=$$IDENTNR^PRODUKT(SID,$S(K="A":9,1:8)) G 3 25 I PROG="KP25"!(PROG="%PE23") G YZ:K=","!(K=".")!(K="I") 26 I $E(PROG,1,5)'="KPSEL",$TR($E($P(B(3),D,25),4,8),".","")'=PR,$L(K)=1 G 1:K=9 S K=K_$E($P(B(3),D,25),2,99) G 29 I $E(PROG,1,5)'="KPSEL",$TR($E($P(B(3),D,25),4,8),".","")=PR,$L(K)=1 G 1:K=0 S K=K_$E($P(B(3),D,25),2,99) G 29 ;I $E(PROG,1,5)'="KPSEL",$TR($E($P(B(3),D,25),4,8),".","")=PR,$TR($E(K,4,8),".","")'=PR G 1 27 I $E(PROG,1,5)="KPSEL" G 4:K="",YZ:KT>6,1:'$$IsValidIdentNr(K,PRNr) S SID=$E(K,3,5)_$E(K,7,8) D S1 G YZ ;[IDENT] CW 29 G 1:'$$IsValidIdentNr(K,PRNr) S SID=$E(K,3,5)_$E(K,7,8) D S1 ;[IDENT] CW I PROG'="KPE100" G 1:'$$ValidateFromBNode^PRODUKT(PR,.B,,K),YZ ; 3 S PNC=$$TRIMIDENT^vhRtn1(K) ;[IDENT] CW 31 S PNC=PNC_" " 33 I $D(^KPR2(0_$E(PNC,2,99))) X ^cTXT(0,"N",12) R K G 1 I $D(^KPR2(8_$E(PNC,2,99))) X ^cTXT(0,"N",12) R K G 1 I $D(^KPR2(9_$E(PNC,2,99))) X ^cTXT(0,"N",12) R K G 1 G 1:'$$ValidateFromBNode^PRODUKT(,.B,,K) 35 S $P(B(1),D,5)=8 G YZ ; 4 S R="K\2200\"_$P(U2,U,1)_"\PR\PR2" D R7^cA107 G 1:K="-" S K=$P(@("^"_Q_"PR($P(^"_Q_"PR2(K),D,1),2)"),D,25) 41 I KT>6 D S2 G 41:K?.E1C.E,1:$L(K)>$P(U2,U,9),4:"-"[K ; YZ K SID,SKL,SRT,SCD,PROG Q ; IsValidIdentNr(String, PRNr) New LeverancierID Set LeverancierID = ##class(DOM.DomeinContext).Instance().GeefProductAPI().GeefProduct(PRNr).GeefLeverancierID() Quit ##class(DOM.PM.Product.impl.IdentNummerValidatorFactory).%New().GeefIdentNummerValidator(LeverancierID).IsGeldigIdentNummer(String, $$USERID^vhUSER())