PVPVH ;Statistiek voor PVH [ 11/08/2003 8:27 PM ] STOCKSAN ; Stock lijst voor stock sanering Do BLDCONTR^KPOSW Set EindDat=$$CALCDATE^vhDTyp($H,"M",-1) Set Begin=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp(EindDat,"M",-11),"DM4")_" " Set Eind=$$EXTDATE^vhDTyp(EindDat,"DM4")_" " Write "Periode van ",Begin," tot ",Eind, "Druk op ",! Read K Set Dev=0 Set Dev=$$OPEN^vhDEV(,"STOCKSAN.txt","W","T") Use Dev Set PRNr=0 Write $TR("IdentNr;KortTekst;HG;GR;SG;SortKey;LevNm;S/N;KindOL;GemWVK;GemFysSt;Rot;Telb;#Klant;JaarVkp;FysSt;TheoSt;PraktSt;LevTrm;IsKS;ABC;CiffPPL;DB%;Vork%;kind/moeder;mime;omzet;ppl;schaduwppl;grootvpk;kleinvpk;omschrijving 1;omschrijving 2",";",$C(9)),! For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do ;Quit:PRNr>2000 .Do FETCHPR^UTILI(PRNr,"Rec") .If ($P(Rec(0),D,3)?4.7N)&&($P(Rec("J"),D,1)="6332")&&'$P(Rec(0),D,14) Quit ; geen afgeleide prod van HALUX en zonder stock .Write $P(Rec(2),D,25),$C(9) .Write $P(Rec(0),D,1),$C(9) .Write $$DISPLS^KLASS($P(Rec("I"),D,1)),$C(9) .Write $$DISPLS^KLASS($P(Rec("I"),D,2)),$C(9) .Write $$DISPLS^KLASS($P(Rec("I"),D,3)),$C(9) .Write $$SORTKEY^PRODUKT(PRNr),$C(9) .Set LEVNr=$P(Rec("J"),D,1) .Set LevNm=$S($D(^KL1(LEVNr)):$P($G(^KLE(^KL1(LEVNr),0)),D,2),1:"") .Write LevNm,$C(9) .Write $S($D(ContrInd(PRNr)):"C",$P(Rec(1),D,20):"S",1:"N"),$C(9) ; Is stock .Set ProdTyp="" .Set:$$ISORGAL^ORGALUX(PRNr)&$D(^PRLINK("D",PRNr)) ProdTyp="OL" ; Indien orgalux is en een moederproduct .Set:$E($P(^KPR(PRNr,2),D,25))=6 ProdTyp="K" .Write ProdTyp,$C(9) .Write $P($P(Rec(1),D,21),"#")+$P($P(Rec(1),D,21),"#",2),$C(9) ; gewogen gem. weekverkoop .Write $TR($P($P(Rec(1),D,24),"#",2),".",","),$C(9) ; gem. fys stock .Write $TR($P($P(Rec(1),D,24),"#",1),".",","),$C(9) ; rotatie .Write $P(Rec(1),D,7),$C(9) ; Telbaar .Write $O(^AKANAL(PRNr,""),-1),$C(9) ;#klanten .Write $TR($$PROD^STAT(PRNr,0,Begin,Eind,1,1),".",","),$C(9) ; Aantal stuks .Write $TR($P(Rec(0),D,14),".",","),$C(9) ; Fys stock .Write $TR($$GETSTOCK^PRODUKT4(PRNr,"T"),".",","),$C(9) .Write $TR($$GETSTOCK^PRODUKT4(PRNr,"P"),".",","),$C(9) .Write $P(Rec("J"),D,7),$C(9) .Write $P(Rec(3),D,3),$C(9) ; KS prijslijst .;Write $P(Rec("J"),D,11),$C(9) ; KS kleinvp .;Write $P(Rec("J"),D,12),$C(9) ; KS groot .Write $P($P(Rec(0),D,8),"#",1),$C(9) ; ABC .Write $TR($P(Rec("J"),D,23),".",","),$C(9) ; CiffPPL .Write $TR($P(Rec("J"),D,24),".",",")/100,$C(9) ; DB% .Write $TR($P(Rec("J"),D,27),".",",")/100,$C(9) ; Vork% .Set oProduct=##class(Prod.Product).%OpenId(PRNr) .Write oProduct.GetPropViaNr(PRNr,"KindMoeder"),$C(9) .Write oProduct.Prijs.MinimumBestelhoeveelheid,$C(9) .Write $TR($Piece(oProduct.GemiddeldeWeekVerkoop,"#"),".",","),$C(9) .Write $TR(oProduct.Prijs.PPL,".",","),$C(9) .Write $TR(oProduct.Schaduw.PPL,".",","),$C(9) .Write oProduct.Prijs.GrootVerpakking,$C(9) .Write oProduct.Prijs.KleinVerpakking,$C(9) .Write oProduct.OmschrijvingN1,$C(9) .Write oProduct.OmschrijvingN2,$C(9) .Write ! Do CLOSE^vhDEV(Dev) Quit OMZNEW ; Marge berekenen met de nieuwe aankoopprijzen Set Dev=0 Set Dev=$$OPEN^vhDEV(,"NEWOMZLVH,TXT","W") Use Dev Write $TR("PRNr,LevNr,Mnd,Qty,Omzet,Marge,MargeSchad,SchadCifPPL",",",$C(9)),! Set PRNr=0 For Set PRNr=$O(^KSTPR(PRNr)) Quit:PRNr="" Do .Set LevNr=$E($O(^KPR(PRNr,"J")),2,99) .Set NewCPPL=$P($$PROD^KPRIJS(PRNr,0,0,"","","","S"),D,13) .For Mnd="2001.01 ","2001.02 ","2001.03 ","2001.04 " Do ..Set Rec=$$PROD^STAT(PRNr,0,Mnd,Mnd,"1,4") ..Quit:'$P(Rec,D,1)&'$P(Rec,D,3) ..Write PRNr,$C(9),LevNr,$C(9),Mnd,$C(9),$P(Rec,D,1),$C(9),$TR($P(Rec,D,3),".",","),$C(9),$TR($P(Rec,D,4),".",","),$C(9),$TR($P(Rec,D,3)-($P(Rec,D,1)*NewCPPL),".",","),$C(9),$TR(NewCPPL,".",","),! Close:0'[Dev Dev Quit OMZBLUM ;Omzet prod per klant voor Peter Van Hoecke Set KLId=0 Set Dev=0 Set Dev=$$OPEN^vhDEV(,"OMZET2.txt","W") Use Dev Set PRNr=0 Write $TR("SGR,IDNr,Korttekst,Klant,Regio,Stuks,#Ln",",",$C(9)),! For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do .Quit:'$D(^KPR(PRNr,"J5005")) .Set KortTekst=$P(^KPR(PRNr,0),D) .Set IDNr=$P(^KPR(PRNr,2),D,25) .Set SGH=$P(^KPR(PRNr,$O(^KPR(PRNr,"I"))),D,3) .Set KLNr=0 .For Set KLNr=$O(^KSTPR(PRNr,KLNr)) Quit:KLNr="" Do ..Set RecStat=$$PROD^STAT(PRNr,KLNr,"2000.03 ","2001.02 ","1,4") ..Quit:'$P(RecStat,D,1) ..Set KLId=$G(^KK1(KLNr)) ..Quit:KLId="" ..Set KLNm=$P(^KKL(KLId,0),D,2) ..Set Regio=$P(^KKL(KLId,0),D,20) ..Set PrijsKl=$P(^KKL(KLId,2),D,3) ..Set Aktief=$P(^KKL(KLId,2),D,10) ..Set TypeKl=$P(^KKL(KLId,1),D,25) ..Set Aktivit=$P(^KKL(KLId,1),D,11) ..Set Utz="" ..Set Utz=Utz_$S($D(^KLPUTZ("N",KLNr)):"H",1:"") ..Set Utz=Utz_$S($D(^KLPUTZ("S",KLNr)):"S",1:"") ..Write SGH,$C(9),IDNr,$C(9),KortTekst,$C(9),KLNr,$C(9),KLNm,$C(9),Regio,$C(9),$P(RecStat,D,1),$C(9),$P(RecStat,D,2),! Close:0'[Dev Dev Quit D ^cA604 Kill PRNrs For Set PRNr=$$SELECT^PRODUKT6() Quit:'PRNr Set PRNrs(PRNr)="" Quit:'$D(PRNrs) Do FAKT(.PRNrs,$$INTDATE^vhDTyp("1-4-98"),$$INTDATE^vhDTyp("31-3-99")) ;Do FAKT(.PRNrs,"","") Q DOEL ;Omzet per klant voor Peter Van Hoecke Set KLId=0 Set Dev=0 Set Dev=$$OPEN^vhDEV(,"OMZET2.txt","W") Set BeginMaand=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp($H,"M",-12),"DM4")_" " Set EndMaand=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp($H,"M",-1),"DM4")_" " Use Dev Write $TR("KLNr,KLNm,Regio,PrijsKL,Uitz,Aktief,TypeKl,Aktiviteit,LevNr,LevNm,Klas,OmzetH,MargeH,OmzetS,MargeS,OmzetR,MargeR",",",$C(9)),! For Set KLId=$O(^KKL(KLId)) Quit:KLId="" Do .Set KLNm=$P(^KKL(KLId,0),D,2) .Set KLNr=$P(^KKL(KLId,0),D,1) .Set Regio=$P(^KKL(KLId,0),D,20) .Set PrijsKl=$P(^KKL(KLId,2),D,3) .Set Aktief=$P(^KKL(KLId,2),D,10) .Set TypeKl=$P(^KKL(KLId,1),D,25) .Set Aktivit=$P(^KKL(KLId,1),D,11) .Set Utz="" .Set Utz=Utz_$S($D(^KLPUTZ("N",KLNr)):"H",1:"") .Set Utz=Utz_$S($D(^KLPUTZ("S",KLNr)):"S",1:"") .Kill C .Set PRNr=0 .For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do ..Set StatRec=$$KLANT^STAT(KLNr,PRNr,BeginMaand,EndMaand,"1,4") ..Set Qty=$P(StatRec,D,1) ..Set ROmz=$P(StatRec,D,3) ..Set RMar=$P(StatRec,D,4) ..Quit:'Qty&'ROmz&'RMar ..;Quit:$L($P(^KPR(PRNr,0),D,3)) ; Geen afgeleide producten ..Set LEVNr=$E($O(^KPR(PRNr,"J")),2,5) ..Set Klas=$O(^KPR(PRNr,"I")) ..;Quit:$P(Klas,D)["AL" ; Geen ALU producten ..Set Klas=$P(^KPR(PRNr,Klas),D,2) ..Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr,"N") ..Set HOmz=Qty*$P(Prijs,D,14) ..Set HMar=Qty*$P(Prijs,D,13) ..;Write:KLNr=8562 !,KLNr,$C(9),HOmz,$C(9),HMar,$C(9),Qty,$C(9),Prijs,! ..Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr,"S") ..Set SOmz=Qty*$P(Prijs,D,14) ..Set SMar=Qty*$P(Prijs,D,13) ..;Write:KLNr=8562 KLNr,$C(9),SOmz,$C(9),SMar,$C(9),Qty,$C(9),Prijs,! ..Set Rec=$G(C(LEVNr,Klas)) ..Set $P(Rec,D,1)=$P(Rec,D,1)+HOmz ..Set $P(Rec,D,2)=$P(Rec,D,2)+(HOmz-HMar) ..Set $P(Rec,D,3)=$P(Rec,D,3)+SOmz ..Set $P(Rec,D,4)=$P(Rec,D,4)+(SOmz-SMar) ..Set $P(Rec,D,5)=$P(Rec,D,5)+ROmz ..Set $P(Rec,D,6)=$P(Rec,D,6)+RMar ..Set C(LEVNr,Klas)=Rec .Set C("*","*")="" ; Voor elke klant een blanko record invoegen .Quit:'$D(C) .Set (Klas,LEVNr)="" .For Set LEVNr=$O(C(LEVNr)) Quit:LEVNr="" Do ..Set LEVNm=$P($G(^KLE($G(^KL1(LEVNr),"*"),0)),D,2) ..For Set Klas=$O(C(LEVNr,Klas)) Quit:Klas="" Do ...Set Rec=$TR(C(LEVNr,Klas),".",",") ...Write KLNr,$C(9),KLNm,$C(9),Regio,$C(9),PrijsKl,$C(9),Utz,$C(9),Aktief,$C(9),TypeKl,$C(9),Aktivit,$C(9) ...Write LEVNr,$C(9),LEVNm,$C(9),Klas,$C(9),$P(Rec,D,1),$C(9),$P(Rec,D,2),$C(9),$P(Rec,D,3),$C(9),$P(Rec,D,4),$C(9),$P(Rec,D,5),$C(9),$P(Rec,D,6),! Close:0'[Dev Dev Quit D ^cA604 Kill PRNrs For Set PRNr=$$SELECT^PRODUKT6() Quit:'PRNr Set PRNrs(PRNr)="" Quit:'$D(PRNrs) Do FAKT(.PRNrs,$$INTDATE^vhDTyp("1-4-98"),$$INTDATE^vhDTyp("31-3-99")) ;Do FAKT(.PRNrs,"","") Q FAKT(PRNrs,BDat,EDat) Set Dev=$$OPEN^vhDEV($$DIRUSER^vhDEV,"OMZFAKT.TXT","W") ;Set Dev=$$OPEN^vhDEV("C:\","OMZFAKT.TXT","W") Use Dev Set FakNr="" Write $TR("PRNr,KortTekst,CiffPPL,KLNr,KLNm,FakNr,Datum,Qty,Omzet,Marge",",",$C(9)),! Set FAKNr=800000 For Set FakNr=$O(^KFA("F",FakNr)) Quit:FakNr="" Do .Set FRec=^KFA("F",FakNr,0,0) .Set Dat=$$INTDATE^vhDTyp($P(FRec,D,6),"DK") .If BDat,DatEDat Quit .Set KLNr=$P(FRec,D,1) .Set ULNr=99 .For Set ULNr=$O(^KFA("F",FakNr,ULNr)) Quit:ULNr="" Do ..Set LNr=100 ..For Set LNr=$O(^KFA("F",FakNr,ULNr,LNr)) Quit:LNr="" Do ...Set LRec=^KFA("F",FakNr,ULNr,LNr) ...Set PRNr=$P(LRec,D,2) ...Quit:'PRNr ...Quit:'$D(PRNrs(PRNr)) ...Set CifPPL=$P(^KPR(PRNr,$O(^KPR(PRNr,"J"))),D,23) ...Write PRNr,$C(9),$P(^KPR(PRNr,0),D,1),$C(9),$TR(CifPPL,".",","),$C(9),KLNr,$C(9),$P(^KKL(^KK1(KLNr),0),D,2),$C(9),FakNr,$C(9),$P(FRec,D,3),$C(9),$P(LRec,D,3),$C(9),$TR($P(LRec,D,33),".",","),$C(9),$TR($P(LRec,D,34),".",","),! Close:0'[Dev Dev Quit TBXQty Set Dev=0 Set Dev=$$OPEN^vhDEV(,"TBXQty.Txt","W") Use Dev Write $TR("Periode;PRNr;Korttekst;Type;Kleur;Diepte;Hoogte;Verpak;Klant;Aantal",";",$C(9)),! Do TBXQtyOne("2001.10 ","2002.09 ") Do TBXQtyOne("2002.10 ","2003.09 ") Do TBXQtyOne("2003.10 ","2004.09 ") Close:$L(Dev)>1 Dev Quit TBXQtyOne(Van,Tot) Set PRNr=0 For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Set KT=$P(^KPR(PRNr,0),D,1) . Set KT3=$E(KT,1,3) . Quit:(KT3'="358")&&(KT3'="359")&&(KT3'="357")&&(KT3'="LAH")&&(KT3'="305") . Quit:(KT3="LAH")&&($E(KT,12,17)'="LA-ZIJ") . Set Type=$S(KT3="305":"I",1:"T") . Set Kleur=$E(KT,22,25) . Set Lengte=$E(KT,5,6) . Set Hoogte=$E(KT,4) . Set:KT3="LAH" Hoogte="M" . Set Verpak="IND" . Set:KT["V1" Verpak="V1" . Set (OmzetHAL,OmzetRest)=0 . Set KLNr=0 . For Set KLNr=$O(^KSTPR(PRNr,KLNr)) Quit:KLNr="" Do . . Set:KLNr'=7587 OmzetRest=OmzetRest+$$PROD^STAT(PRNr,KLNr,Van,Tot,1) . . Set:KLNr=7587 OmzetHAL=OmzetHAL+$$PROD^STAT(PRNr,KLNr,Van,Tot,1) . Set:Verpak="IND" OmzetHAL=OmzetHAL\2,OmzetRest=OmzetRest\2 . If OmzetRest Do . . Write Van,"-",Tot,*9,PRNr,*9,KT,*9,Type,*9,Kleur,*9,Lengte,*9,Hoogte,*9,Verpak . . Write *9,"REST",*9,OmzetRest,! . If OmzetHAL Do . . Write Van,"-",Tot,*9,PRNr,*9,KT,*9,Type,*9,Kleur,*9,Lengte,*9,Hoogte,*9,Verpak . . Write *9,"HAL",*9,OmzetHAL,! Quit TBX Set Dev=$$OPEN^vhDEV(,"TBXOverzicht.txt","W") Use Dev Set EndMnd=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp($H,"M",-1),"DM4")_" " Set StartMnd=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp($H,"M",-11),"DM4")_" " Set PRNr=0 Write "PRNr KT Qty DS KLAS LC LT LD IB KL DK KB IsSR BS VPK",! For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do . Set GenTyp=$$GENTYP^HAD(PRNr) . Quit:$P(GenTyp,"\")'="TBX" . Set Qty=$$PROD^STAT(PRNr,0,StartMnd,EndMnd,1) . Quit:Qty<1 . Set KT=$P(^KPR(PRNr,0),D,1) . Set DS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DS")) ; Design . Quit:DS="" . Set LD=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LD")) ; Ladediepte . Set IB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IB")) ; Internebreedte . Set LC=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LC")) ; LadeCode . Set LT=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LT")) ; LadeType . Set KL=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KL")) ; Kleurlade . Set DK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DK")) ; Draagkracht . Set KLAS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KLAS")) ; Klasse (Spoelbak, Lade, ...) . Set BIN=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"BIN")) ; BInnenlade . Set DK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"DK")) ; Draagkracht . Set KB=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"KB")) ; Kleurbodem . Set VPK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) ; Verpakking . Set IsSR=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"IsSR")) ; Stalenrug . Set BS=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"BS")) ; Boxside . Write PRNr,*9,KT,*9,Qty,*9,DS,*9,KLAS,*9,LC,*9,LT,*9,LD,*9,IB,*9,KL,*9,DK,*9,KB,*9,IsSR,*9,BS,*9,VPK,! close:Dev'=0 Dev Quit