#Include vhLib.Macro #Include Prod.Product PRStockSan STOCKSAN ; Stock lijst voor stock sanering Do BLDCONTR^Stat.Product.StockWaarde Set EindDat=$$CALCDATE^vhLib.DataTypes($H,"M",-1) Set Begin=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(EindDat,"M",-11),"DM4")_" " Set Eind=$$EXTDATE^vhLib.DataTypes(EindDat,"DM4")_" " Write @F11,@F1 Write @FMTI,"Stocksanering exportlijst"," - ",QN," ",@FMTi Set FP=1801 Write @F,"Periode van ",Begin," tot ",Eind Set FP=2001 Write @F Set Dev=0 Set Dev=$$OPEN^vhDEV(,"Stocksanering.txt","W","T") Use Dev Set PRNr=0 Write $TR("IdentNr;KortTekst;HG;GR;SG;SortKey;LevNm;S/N;Kind6;GemWVK;GemFysSt;Rot;Telb;#Klant;JaarVkp;FysSt;TheoSt;PraktSt;WV;LevTrm;IsKS;ABC;CiffPPL;DB%;Vork%;GenType;ProductGroep;kind/moeder;mime;omzet;ppl;schaduwppl;grootvpk;kleinvpk;oms 1;oms 2;oms 3;LinkType;Uitverkoop;EersteAankoop",";",$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:$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) .Set R=$G(^PRSTOCK("D",PRNr)),WVStock=$P(R,D,5) .Write $TR($$CV2MAG^MRP(PRNr,WVStock),".",","),$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,"GENTYP"),$C(9) .Write oProduct.GetPropViaNr(PRNr,"ProductGroep"),$C(9) .Set KM=oProduct.GetPropViaNr(PRNr,"KindMoeder") .Set KM=$S(oProduct.GenerischeRoutine?4.7N:"A",$L(oProduct.GenerischeRoutine):"G",1:KM) .Write KM,$C(9) .Write oProduct.Prijs.MinimumBestelhoeveelheid,$C(9) .Write $TR($$PROD^STAT(PRNr,0,Begin,Eind,3,0),".",","),$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.Tekst.OmschrijvingN1,$C(9) .Write oProduct.Tekst.OmschrijvingN2,$C(9) .Write oProduct.Tekst.OmschrijvingN3,$C(9) .Write oProduct.LinkType,$C(9) .Write $$$ExcelDat(oProduct.Uitverkoop),$C(9) .Write $$$ExcelDat($$EersteAankoop(PRNr)),$C(9) .Write ! Do CLOSE^vhDEV(Dev) Quit EersteAankoopExport ; Qlik Eerste aankoopdatum van beslag en maatwerk (via component) Set Dev=0 Set Dev=$$OPEN^vhDEV("\\qlik-prod.vanhoecke.be\d$\Qlik Sense Data Storage\2. Import\Productmgmt\","Product EersteAankoop Admin.txt","W","T") Use Dev Set PRNr=0 Set VanafDatum=$$INTDATE^vhLib.DataTypes("01/01/2018") Set Translator=##class(AX.Uitgaand.EC.DataAX.impl.Translator).%New() Write $TR("ItemID;ProductID;KortTekst;PRNr;EersteAankoop",";",$C(9)),! For Set PRNr=$O(^KPR(PRNr)) Quit:PRNr="" Do ;Quit:PRNr>200 .Quit:'$D(^PRHIST(PRNr)) ; nooit verkocht .Quit:+$P(^PRHIST(PRNr,$O(^PRHIST(PRNr,""),-1)),"\")EersteDatum)) { Set EersteDatum=EerstKindDatum } } Set BSKey=$O(^PRBS("BS",MPRNr,BSKey)) } } Else { Set EersteDatum=$$EersteAankoopHist(MPRNr) } Quit EersteDatum EersteAankoopHist(PRNr) New Key,I,Rec,EersteDatum Quit:'PRNr "" Quit:$D(^||EersteAankoop(PRNr)) ^||EersteAankoop(PRNr) Set Key="" Set EersteDatum="" For Set Key=$O(^PRHIST(PRNr,Key)) Quit:Key="" Do Quit:EersteDatum . Set Rec=^PRHIST(PRNr,Key) . Quit:$P(Rec,"\",4)'="I" . Quit:$P(Rec,"\",13) ; fusie . Set EersteDatum=+$P(Rec,"\",1) Set ^||EersteAankoop(PRNr)=EersteDatum Quit EersteDatum ; StockSaneringViaProforma New R,File,KLNr,Date,PROFNr,BONNr,PROFLNr,StockSan,PRNr,Aantal,KortTekst,CifPPL Set File=$$OPEN^vhDEV(,"StockSanering.Txt","NW") Do:0'[File . Use File . Write "Proforma",$C(9),"Datum",$C(9),"Product",$C(9),"Korttekst",$C(9),"Aantal",$C(9),"CifPPL",$C(10) . Set KLNr=4682,Date="" . For Set Date=$O(^KFAP1("F",KLNr,Date)) Quit:Date="" Quit:(-Date<62609) Do . . Set PROFNr="" . . For Set PROFNr=$O(^KFAP1("F",KLNr,Date,PROFNr)) Quit:PROFNr="" Do . . . Set BONNr="U" . . . For Set BONNr=$O(^KFAP("F",PROFNr,BONNr)) Quit:$E(BONNr)'="U" Do . . . . Set PROFLNr=100,StockSan=0 . . . . For Set PROFLNr=$O(^KFAP("F",PROFNr,BONNr,PROFLNr)) Quit:PROFLNr="" Do . . . . . Set R=^KFAP("F",PROFNr,BONNr,PROFLNr) . . . . . Set:$P(R,D,17)="KF5" StockSan=$$UPCASE^vhRtn1(R)["STOCKSAN" . . . . . Quit:'StockSan . . . . . Set PRNr=$P(R,D,2),Aantal=$P(R,D,3) . . . . . Quit:'PRNr . . . . . Set KortTekst=$P($G(^KPR(PRNr,0)),D) . . . . . Set:KortTekst="" KortTekst=$P($G(^KPRO(PRNr,0)),D) . . . . . Set CifPPL=$$CifPPL(PRNr) . . . . . Write PROFNr,$C(9),$$EXTDATE^vhLib.DataTypes(-Date),$C(9),PRNr,$C(9),KortTekst,$C(9),Aantal,$C(9),$TR(CifPPL,".",","),$C(10) . Close File Quit CifPPL(PRNr) New R,J,PrMunt,EenhAank,PPL,%Korting,%Cif,FaMunt,CifPPL Set R="" If $D(^KPR(PRNr)) Set J=$O(^KPR(PRNr,"J")) Set:$E(J)="J" R=^KPR(PRNr,J) Else Set J=$O(^KPRO(PRNr,"J")) Set:$E(J)="J" R=^KPRO(PRNr,J) Set PrMunt=$P(R,D,17) Set EenhAank=$P(R,D,28),EenhAank=$S("E"[EenhAank:1,EenhAank="H":100,EenhAank="M":1000,1:0) Set PPL=$P(R,D,19),%Korting=$P(R,D,9),%Cif=$P(R,D,21) Set FaMunt=$$FADEF^vhRtn1() Set PPL=PPL/EenhAank If FaMunt'[PrMunt S R=$$MUNT^vhRtn1(PrMunt,,11,"S"),PPL=PPL*R Set CifPPL=PPL*(100-%Korting)/100*(100+%Cif)/100,CifPPL=$J(CifPPL,1,4) Quit CifPPL