KPSBI2B G 1 ;STOCKBESLISSING ;KPSBI1; [ 08/16/2002 3:53 PM ] ; T1 ;SELEKTIE : T2 ;(volgens T3 ;produktkode);klassifikatie);leverancier);bepaalde produkten) T4 ;BLZ: T5 ;"Produktnaam",$C(9),"Verkoop (S+K)",$C(9),"#WeekVKP Stock90% VKP",$C(9),"#A,B,1 KL>90% VKP",$C(9),"Suggestie",$C(9),"Klanten",$C(9),"SortKey",$C(9),"LevNaam",$C(9),"CifPPL",$C(9),"FysStock",$C(13) T6 ;: PRODUKTNAAM : FYSST : GEM. :ROT: JAAR :#WKV:#KL>:#AKL:SUGGESTIE : KLANTEN BEHOREND TOT : STUKS :% TOT: #LN: T7 ;: : : FYSST : :VERKOOP :R5 S R0=$E(R0,1,R6-R5)_"."_$E(R0,R6-R5+1,R6) R3B W ?$P(R,D,3),$J(R0,R1),R4,R3 R3Z K R0,R1,R2,R3,R4,R5,R6 Q ;V1 26.11.84 ; S1 W !,$P($T(T8),U,2) S1Z Q ; ; Opbouw van de stockbeslissing gegevens in een local CALC S PC=$P(A(0),D,1),PID=$P(A(2),D,25),PST=$P(A(0),D,14),PLIM=$P(A(0),D,24),PSC=$P(A(0),D,18),PBW=$P(A(1),D,17),PSN=$P(A(1),D,20) S CurTyp=$S(PSN&$P(A(0),D,24):"L",PSN:"S",1:"K") 11 S PWVK=$P(A(1),D,21),PLQ=$P(A("J"),D,6),PLL=$P(A("J"),D,7),LEV=$E($P(@("^"_Q_"LE(^"_Q_"L1($P(A(""J""),D,1)),0)"),D,2),1,3) 12 S (AWVS,AWK,FysSt,JaarVKP)=0,WK=DJ-1_"."_$E(100+%WK,2,3)_" ",K=$D(@("^"_Q_"SPW(PR,WK)")) ;Aantal weken dat de weekverkoop kleiner is dan de gemiddelde weekverkoop /4 13 S WK=$N(^(WK)) I WK'=-1 S K=^(WK),AWK=AWK+1,FysSt=FysSt+$P(K,D,4),JaarVKP=JaarVKP+$P(K,D) S:$P(K,D,7)'>$S(+PWVK'>0:1,1:PWVK/4) AWVS=AWVS+1 G 13 Set GemFysSt=$S(AWK:FysSt/AWK,1:0) ;StockRotatie = 52 * GemWeekverkoop / Gem. Fysische stock Set StockRot=$S(GemFysSt:JaarVKP/GemFysSt,1:"999") Set:StockRot<1 StockRot="- " Set:StockRot>50 StockRot="+ " Set FysSt=$P(^KPR(PR,0),D,14) ;Bereken 90% van de omzet 15 K KL S (VNR,%AKL,%AAKL,%AANT,%TAANT,TAANT)=0,(KLANT,KL)="",TEST="STOCK",NewTyp="S",KLCOUNT=0 G 19:'$D(^AKANAL(PR)) S TAANT=$P(^(PR),D,1),%TAANT=TAANT*.9 ;Tellen van het aantal klanten dat dit produkt afneemt. 16 S VNR=$N(^AKANAL(PR,VNR)),KTY=0 G 19:VNR=-1 S K=^(VNR),KTY=$$GetKlantType^KLANT5($P(K,D,2)) 17 S:%AANT<%TAANT!'%AKL&("AB1"[KTY&$L(KTY)) %AAKL=%AAKL+1 170 I %AANT<%TAANT!'%AKL S %AKL=%AKL+1 I KLCOUNT<7 S R=$E($P(K,D,3),1,6),R=R_$J("",6-$L(R)) S:$L(KLANT) KLANT=KLANT_" : " S KLANT=KLANT_R,KLCOUNT=KLCOUNT+1,KL(KLCOUNT)=$P(K,D,3,5),KL=KL+$P(K,D,4) 18 S %AANT=%AANT+$P(K,D,4) G 16 19 K A S:'AWK AWK=1 S:AWK<52 AWVS=AWVS*52/AWK S:AWVS>TWV&(%AKLTAKL) TEST="SPEC",NewTyp="K" S:AWK<26 TEST="NIEUW",NewTyp="N" If TEST="STOCK",AWVS>TWV Set TEST="LIMIET",NewTyp="L" If "SPEC,KOM"[TEST Do TESTDEL 190 S:KLANT="" KLANT=$J("",6) I KLCOUNT<7 F I=KLCOUNT+1:1:7 S KLANT=KLANT_" :"_$J("",7) I $D(KL),KL F I=1:1:KLCOUNT S $P(KL(I),D,4)=$P(KL(I),D,2)/KL*100 Quit TESTDEL ; Testen of er een slechte verkoop is geweest If +$O(^KSTPR(PR,0,""),-1)VKPHuid Set TEST=TEST_"/DAAL10" Quit If VKPVorig/5>VKPHuid Set TEST=TEST_"/DAAL5" Quit Quit ExtraPar Set SortKey=$$SORTKEY^PRODUKT(PR) Set LEVNr=$$LEVNR^PRODUKT2(PR),LevNaam=$P(^KLE(^KL1(LEVNr),0),D,2) Set CiffPPL=$P($$PRIJSGEG^KPRIJS(PR),D,6) Set FysStock=$$GETSTOCK^PRODUKT4(PR,"F") Quit INIT Set BVorigJr=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-24),"DM4") Set BHuidJr=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-12),"DM4") Quit 1 Quit:$P(A(1),D,25)=1 ;Non-aktief Quit:'$P(A(1),D,20) ;Niet-stock Do INIT Do CALC,ExtraPar:MAC If PrintTyp="V" Quit:NewTyp="N"!(NewTyp=CurTyp) I 'KLCOUNT S KLCOUNT=1,KL(KLCOUNT)="" ; 2 I 'MAC S LN=LN+KLCOUNT+1 I LN>50 W # D HD G 2 21 I MAC W @$P($T(T10),U,2,999) 23 I 'MAC D .S FL(1)=$P($T(T9),U,2,999)_$P($T(T9b),U,2,999),FL(2)=0,$P(FL(3),D,3,4)=PSN_D_PSN .F KLCOUNT=1:1:KLCOUNT W ! D FL^PROC S LEVX=LEV S (PC,TAANT,AWVS,%AKL,%AAKL,TEST,StockRot,FysSt,GemFysSt)="",$P(FL(3),D,4)="" .D S1 ; YZ Q ; HD S LEVX="" I MAC W:'$G(SkipTitel) @$P($T(T5),U,2) S SkipTitel=1 K PHOOFD G HDZ HDA S BLZ=BLZ+1,LN=0 W !,QN,?124,$P($T(T4),U,2),$J(BLZ,4) HDB W !,NM2,?30,$P($T(+1),U,2),$P($T(T2),U,2),$P($T(T3),U,$F("PKLB",LST)),?124,DT,!,NM3 HDC I $D(X1),$D(X2) W ?30,X1," ",X2 HDD W ?125,TD,!! I HG=-1!(HG]HGX) G HDZ HDE I BLZ>1!($N(B(100))=-1) W $E(HG,EXH,99) W:GR=GRX "- ",$E(GR,EXG,99) W:SG=SGX "- ",$E(SG,EXS,99) W ! D S1 W !,$P($T(T6),U,2),!,$P($T(T7),U,2) D S1 HDZ Q ;