StockBeheerCHUIStockScan ;STOCKBEHEER (NACHTELIJKE STOCKSCAN);KPSBJ; Do naar KPSB2 [ 12/27/2003 11:34 AM ] G DAY T1 ;TERUGBLIKPERIODE ; SC S PCC=$$COMPR^PRODUKT(PR) Q ; DAY Write @F11,@F1,"Stockbeheer voorbereiding - ",QN Lock ^KPSB:1 Else Do TXT^vhINP("Stockbestand is gelockt") Quit Set R=$$ASK^vhINP("Opstarten voorbereiding in achtergrond : ",1,"","1[]=Stockbeheer","De voorbereiding duurt ongeveer 5 minuten.") Quit:R'="1" Lock Job NIGHT^Prod.Product.StockBeheer.CHUI.StockScan Quit NIGHT Set $ZT="^cA406" L +^KPSB:5 E Q S Q="K" D ^cA604 S WeekBest=1 S PAR(1)=52_D_$P($T(T1),U,2) S:$D(@("^"_Q_"PSB(0,1)")) PAR(1)=^(1) Lock @("^"_Q_"PSB") K ^HULP($J),@("^"_Q_"PSB"),@("^"_Q_"PSB1") S $P(@("^"_Q_"PSB")@(0,3),D,2)=$H F IWK=0:1:50 S $P(PAR(2),D,IWK+1)=$TR($$EXTDATE^vhLib.DataTypes($H+(IWK*7),"DW"),"/","") S @("^"_Q_"PSB(0,1)")=PAR(1),^(2)=PAR(2) S IGW=$TR($$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"W",-52),"DW4"),"/",".")_" " K IWK,JX,MX,DX,WK ; ; Opbouwen ^HULP S PR=0 VolgendProduct K WVKS,WVKK S PR=$N(@("^"_Q_"PR(PR)")) G BewaarGegevens:PR=-1 S J=$O(@("^"_Q_"PR(PR,""J"")")) G VolgendProduct:$E(J)'="J" D ^Prod.Product.StockBeheer.StockScan G VolgendProduct:$P(A(0),D,23)="S",VolgendProduct:$P(A(1),D,25)=1,VolgendProduct:$E($P(A(2),D,25))=6,VolgendProduct:$P($$GENTYP^HAD(PR,0,1),"\")'="" ;$E($P(A(2),D,25))=7 I +$P(A(0),D,6),+$H'<+$P(A(0),D,6) G VolgendProduct ; Controle uitverkoop ; opslaan van gemiddelden in KPR S $P(@("^"_Q_"PR(PR,1)"),D,21)=WVKS_"#"_WVKK ;Gewogen gemiddelde S $P(@("^"_Q_"PR(PR,1)"),D,23)=sWVKS_"#"_sWVKK_"#"_Freq ;Stand. gemiddelde S $P(@("^"_Q_"PR(PR,1)"),D,24)=Rot_"#"_GemFysSt_"#"_BestelH ; Indien mirror product dan alleen het product met de laagste fysische stock Set MirrorPRNr="" ;$$GetMirror^PRODUKT(PR) If MirrorPRNr Do Goto VolgendProduct:GetNextPRNr . New FysStock,MirrorFysStock . Set FysStock=$$GETSTOCK^PRODUKT4(PR,"F"),MirrorFysStock=$$GETSTOCK^PRODUKT4(MirrorPRNr,"F") . If FysStock>MirrorFysStock Set GetNextPRNr=1 . Else If FysStock=MirrorFysStock Set GetNextPRNr=(PR>MirrorPRNr) . Else Set GetNextPRNr=0 ; Opslaan van stock beheer data S $P(B(0),D,2)=PR,$P(B(0),D,3)=$P(A(0),D,1),$P(B(0),D,4)=$P(A(2),D,25),$P(B(0),D,5)=MirrorPRNr S LE=$P(A("J"),D,1),HG=$P(A("I"),D,1),GR=$P(A("I"),D,2),SG=$P(A("I"),D,3),PC=$P(A(0),D,1) D SC I $L(LE),$L(HG),$L(GR),$L(SG),$L(PCC) D .S B=$G(^HULP($J,LE))_$TR(B(1),"\","") .I $L(B) F I=$L(B):-1:1 I $E(B,1,I-1)[$E(B,I) S $E(B,I)="" .S ^HULP($J,LE)=B .S ^HULP($J,LE,HG,GR,SG,PCC,0)=B(0),^(1)=B(1) G VolgendProduct ; BewaarGegevens S LE=-1 F S LE=$N(^HULP($J,LE)) Q:LE=-1 D . S HG=-1,VNR=0,B=$G(^HULP($J,LE)),@("^"_Q_"PSB(LE)")=B . F S HG=$N(^HULP($J,LE,HG)) Q:HG=-1 D . . S GR=-1 . . F S GR=$N(^HULP($J,LE,HG,GR)) Q:GR=-1 D . . . S SG=-1 . . . F S SG=$N(^HULP($J,LE,HG,GR,SG)) Q:SG=-1 D . . . . S PCC=-1 . . . . F S PCC=$N(^HULP($J,LE,HG,GR,SG,PCC)) Q:PCC=-1 D . . . . . K B S I6=0,B(I6)=^(PCC,I6),VNR=VNR+1,$P(B(I6),D,1)=VNR F I=1:1 S I6=$N(^(I6)) Q:I6=-1 S B(I6)=^(I6) . . . . . S I6=0,@("^"_Q_"PSB(LE,VNR,I6)")=B(I6) F I=1:1 S I6=$N(B(I6)) Q:I6=-1 S ^(I6)=B(I6) . . . . . S @("^"_Q_"PSB1($P(B(0),D,2))")=LE_D_VNR ; K ^HULP($J) S $P(@("^"_Q_"PSB")@(0,3),D,1)=DT ; S $P(@("^"_Q_"PSB")@(0,3),D,3)=$H Lock Q ;