Do ##class(DW.StockWaarde).FetchAll() persistent Prod.Product,BL.Derde.LevSpecifiek 0 %Persistent 1 1 Owner,Datum,Product 1 %Date 0 Van Hoecke of Halux %String %Numeric 0 %Numeric 0 %Numeric 0 %Numeric 0 %Numeric 0 %Numeric 0 %Numeric 0 %Integer %Numeric 0 %Numeric 0 %Numeric 0 Prod.Product 0 DW.ProductDtl 0 %Numeric 0 %Numeric 0 %Integer 0 %String %Numeric 0 %Numeric 0 %Numeric %Numeric %Numeric 0 %Numeric 0 %String 1 Set {*}=$$GetOrOld^PRODUKT({Product},$$$Hoofdgroep) 1 %String 1 Set {*}=$$GetOrOld^PRODUKT({Product},$$$LeveranciersNr) 1 %String 1 Set {*}=$P($$GetOrOld^PRODUKT({Product},$$$ABCKlassificatie),"#",2) 1 %Numeric 1 Set {*}=##class(DW.StockWaarde).AfwijkingGemiddelde({Product}) 1 %String 1 Set {*}=##class(DW.StockWaarde).AfwijkingGemiddeldeCode({Product}) 1 %Numeric 1 Set {*}=##class(DW.StockWaarde).StandaardAfwijking({Product}) 1 1 PRNr:%String,AantalWeken:%Integer,MinAantalWeken:%Integer,GroepeerPer2:%Boolean 1 %String w ##class(DW.StockWaarde).AfwijkingGemiddelde(808099) 1 PRNr:%String,AantalWeken:%Integer=26,MinAantalWeken:%Integer=5,GroepeerPer2:%Boolean=0 1 %Numeric MinAantalWeken,Som>0 { Set Gemiddelde=Som/Aantal ; Afwijking Set SomAfwijking=0,Aantal=0 Set IdxDate=$O(arHist("")) While IdxDate'="" { Set AantalStuks=arHist(IdxDate) If (AantalStuks'="")||(Aantal) { Set Afwijking=AantalStuks-Gemiddelde ; verkoop in historiek is negatief ;w I," ",Begin+((I-1)*7)," ",AantalStuks," ",Gemiddelde," ",Afwijking,! Set SomAfwijking=SomAfwijking+$S(Afwijking<0:-Afwijking,1:Afwijking) ; abs Set Aantal=Aantal+1 ; we beginnen pas te tellen als er de vorige weken verkoop is geweest } Set IdxDate=$O(arHist(IdxDate)) } Set AfwijkingGemiddelde=(SomAfwijking/Aantal)/Gemiddelde } Quit $G(AfwijkingGemiddelde) ]]> w ##class(DW.StockWaarde).StandaardAfwijking(808099) 1 PRNr:%String,AantalWeken:%Integer=26,MinAantalWeken:%Integer=5,GroepeerPer2:%Boolean=0 1 %Numeric w ##class(DW.StockWaarde).StandaardAfwijkingMulti(##class(TECH.ListbuildIterator).%New($lb(808099))) Variantie, Deviation 1 itProducts:TECH.Iterator,AantalWeken:%Integer=26,MinAantalWeken:%Integer=5,GroepeerPer2:%Boolean=0 1 %Numeric 1 1 MinAantalWeken,Som>0 { #dim Gemiddelde,Variantie,StandaardAfwijking As %Numeric Set Gemiddelde=Som/Aantal ; Afwijking Set Variantie=SomKwadraat/Aantal-(Gemiddelde*Gemiddelde) Set StandaardAfwijking=Variantie**.5 } Quit $G(StandaardAfwijking) ]]> 1 PRNr:%String,AantalWeken:%Integer=26,MinAantalWeken:%Integer=5,GroepeerPer2:%Boolean=0 1 %Numeric 1 itProducts:TECH.Iterator,AantalWeken:%Integer=26,MinAantalWeken:%Integer=5,GroepeerPer2:%Boolean=0 1 %Numeric 1 1 MinAantalWeken,Som>0 { Set Gemiddelde=Som/Aantal } Quit $G(Gemiddelde) ]]> 1 1 Einde . Quit:($P(Rec,"\",5)'="M")&&($P(Rec,"\",5)'="W") . If ($P(Rec,"\",5)="M")||($P(Rec,"\",5)="K") Quit:'$LF($LB("U"),$P(Rec,"\",4)) . If $P(Rec,"\",5)="W" Quit:'$LF($LB("H"),$P(Rec,"\",4)) . Set IdxDate = $$CALCDATE^vhLib.DataTypes(+$P(Rec,"\"),"W","MD") ;woensdag . Quit:'$D(arHist(IdxDate)) . Set arHist(IdxDate)=$g(arHist(IdxDate))-$P(Rec,"\",2) Quit ]]> 1 arHist,AantalWeken 1 1 arHist 1 1 de vakantieweken met minder omzet eruit halen 1 Datum:%Date 1 %String %String %String %Numeric %String code CountType %Numeric corrected Meyvaert glas 1 PRNr %Boolean 1 BackGround 1 Datum Result bevat "S" : Stock tellen Result bevat "W" : Werkvloer tellen Result bevat "H" : Halffabrikaat tellen (goederen die bij de stocktelling reeds halfafgewerkt zijn) Result bevat "B" : Leveringbons tellen Result bevat "R" : Receptie tellen Result bevat "O" : Moederproduct met stock over kinderen (zoals Orgalux) dan geen JaarVerkoopWaarde of GemFysStockWaarde Indien Result leeg is dan NIET tellen 1 PRNr:%Integer %String PRNr:%Integer,Maand:%Date,BeginMnd:%String,EndMnd:%String Owner = Halux ;If ..Owner="HALUX" w PRNr," ",$P(^KPR(PRNr,0),"\",1),! r k Do ..ProductSetObjectId(PRNr) ;Do ..ProductDtlSetObjectId(##class(DW.ProductDtl).DefineID(PRNr)) ; Stat waarden Set JKey=$O(^KPR(PRNr,"J")) Quit:$E(JKey)'="J" Set RecJ=^KPR(PRNr,JKey) Set Rec1=^KPR(PRNr,1) Do ..JaarVerkoop(PRNr,BeginMnd,EndMnd) Set GemWvk=$P(Rec1,D,23) Set ..GemWeekVerkoop=$P(GemWvk,"#")+$P(GemWvk,"#",2) Set GGemWvk=$P(Rec1,D,21) Set ..GemGewogenWeekVerkoop=$P(GGemWvk,"#")+$P(GGemWvk,"#",2) ]]> PRNr,BeginMnd,EndMnd CountType:%String Alleen leveringen geen terugnames 1 PRNr:%Integer Alleen toeleveringen geen terugnames 1 PRNr:%Integer %Library.CacheStorage ^DW.StockWaardeD StockWaardeDefaultData ^DW.StockWaardeD ^DW.StockWaardeI ^DW.StockWaardeS %%CLASSNAME GemGewogenWeekVerkoop GemGewogenWeekVerkoopWaarde GemStock GemStockWaarde GemWeekVerkoop GemWeekVerkoopWaarde JaarVerkoop JaarVerkoopLijnen JaarVerkoopWaarde Levering LeveringWaarde ProductDtl Receptie ReceptieWaarde Rotatie Stock StockType StockWaarde Totaal TotaalWaarde WerkVloer WerkVloerWaarde HalfFabr HalfFabrWaarde