#include BL.EC.Common #define defaultSession 726855 Q #Define rbKlant "K" #Define rbFaktuur "F" #Define rbProduct "P" VerkoopPrepare(Criteria) ;Regios oproepen via .Local Set SessionKey=%ECSession.%Id() Kill ^ECHULP(SessionKey,"FP"),^ECHULP(SessionKey,"FD"),^ECHULP(SessionKey,"TMP") ; Opkuis oude Fetch data Set DatVan=Criteria.DatumVan Set:$C(0)[DatVan DatVan=$$CALCDATE^vhLib.DataTypes($H,"W",-1,"FD") Set DatTot=Criteria.DatumTot Set:$C(0)[DatTot DatTot=$$CALCDATE^vhLib.DataTypes($H,"W",-1,"LD") Set:DatVan>DatTot DatTot=$$CALCDATE^vhLib.DataTypes(DatVan,"W","LD") Set Detail=Criteria.Detail Set Regios=%ECSession.Regios ; Ophalen van de details uit factuur en proforma Set (KLId)=0 For Set KLId=$O(^KKL(KLId)) Quit:KLId="" Do . Set Regio=$P(^KKL(KLId,0),D,20) . Quit:'$LF(Regios,Regio) . Set KLNr=$P(^KKL(KLId,0),D,1) . Do Cumul("^KFA",KLNr,DatVan,DatTot,Detail,SessionKey) . Do Cumul("^KFAP",KLNr,DatVan,DatTot,Detail,SessionKey) ; Omzetting van de data naar factuur Set SortKey1="" Set Count=0 Set ^ECHULP(SessionKey,"FD",$I(Count))=^ECHULP(SessionKey,"TMP") ; eerst totaal For Set SortKey1=$O(^ECHULP(SessionKey,"TMP",SortKey1)) Quit:SortKey1="" Do . Set ^ECHULP(SessionKey,"FD",$I(Count))=^ECHULP(SessionKey,"TMP",SortKey1) . Set SortKey2="" . For Set SortKey2=$O(^ECHULP(SessionKey,"TMP",SortKey1,SortKey2)) Quit:SortKey2="" Do . . Set ^ECHULP(SessionKey,"FD",$I(Count))=^ECHULP(SessionKey,"TMP",SortKey1,SortKey2) ; Clean Kill ^ECHULP(SessionKey,"TMP") Quit Cumul(Global,KLNr,DatVan,DatTot,Detail,SessionKey) Set Dat=$S(DatTot:-DatTot-1,1:"") Set:DatVan="" DatVan=1 Set Global1=Global_"1" Set FAKNr="" For Set Dat=$O(@Global1@("F",KLNr,Dat)) Quit:Dat="" Quit:Dat>-DatVan Do . For Set FAKNr=$O(@Global1@("F",KLNr,Dat,FAKNr)) Quit:FAKNr="" Do . . Set BONNr="U" . . Set (SomAnd,SomBL)=0 . . Set (CntAnd,CntBL)=0 . . For Set BONNr=$O(@Global@("F",FAKNr,BONNr)) Quit:BONNr="" Do . . . Set LNr=100 . . . For Set LNr=$O(@Global@("F",FAKNr,BONNr,LNr)) Quit:LNr="" Do . . . . Set Rec=^(LNr) . . . . Set PRNr=$P(Rec,D,2) . . . . Quit:PRNr'?4.7N . . . . Set ProductGrp=%blProduct.ProductGroep(PRNr) . . . . Set:ProductGrp="" ProductGrp=$$$pgBeslagAndere . . . . Set ProductGrpPos=$LF($$$pgAllProductGroepenList,%blProduct.ProductGroep(PRNr)) . . . . Set Omzet=$P(Rec,D,34) . . . . Set SortKey1=KLId . . . . Set SortKey2=$S(Detail="P":$$SORTKEY^PRODUKT(PRNr),Detail="F":$S(Global["P":"PROFORMA",1:FAKNr),1:"*") . . . . ; Detail . . . . If SortKey2'="*" Do ; met detail ivm factuur of product . . . . . Set List=$G(^ECHULP(SessionKey,"TMP",SortKey1,SortKey2),$LB("D",KLNr,PRNr)) . . . . . Set $LI(List,10)=$LG(List,10)+1 ; Aantal lijnen . . . . . Set:Global'["P" $LI(List,10+ProductGrpPos)=$LG(List,10+ProductGrpPos)+Omzet . . . . . Set ^ECHULP(SessionKey,"TMP",SortKey1,SortKey2)=List . . . . ; Klant . . . . Set List=$G(^ECHULP(SessionKey,"TMP",SortKey1),$LB("K",KLNr)) . . . . Set $LI(List,10)=$LG(List,10)+1 ; Aantal lijnen . . . . Set:Global'["P" $LI(List,10+ProductGrpPos)=$LG(List,10+ProductGrpPos)+Omzet . . . . Set ^ECHULP(SessionKey,"TMP",SortKey1)=List . . . . ; Totaal . . . . Set List=$G(^ECHULP(SessionKey,"TMP"),$LB("T")) . . . . Set $LI(List,10)=$LG(List,10)+1 ; Aantal lijnen . . . . Set:Global'["P" $LI(List,10+ProductGrpPos)=$LG(List,10+ProductGrpPos)+Omzet . . . . Set ^ECHULP(SessionKey,"TMP")=List Quit /*-------------------*/ #Define rbKlant "K" #Define rbRegio "R" ; d OmzetPrepare^BL.EC.Common OmzetPrepare(Criteria) Set SessionKey=%ECSession.%Id() Kill ^ECHULP(SessionKey,"FP"),^ECHULP(SessionKey,"FD") ; Opkuis oude Fetch data Set (Regios,Klant)="" Set LastMnd=$$CALCDATE^vhLib.DataTypes($H,"BJ","LD") If $$CALCDATE^vhLib.DataTypes($H,"BJ","FD")=$$CALCDATE^vhLib.DataTypes($H,"M","FD") Set LastMnd=$$CALCDATE^vhLib.DataTypes($H,"BJ",-1,"LD") ; Juli wordt nog bekeken als vorige BJ Set StartMnd=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(LastMnd,"M",-36,"FD"),"DM4")_" " Set ProductGroepen=Criteria.ProductGroepen Set KlantRegio=Criteria.Detail ; of welk veld dan ook af te spreken met prosteps If $G(KlantRegio)=$$$rbKlant Do . Set Klant=%ECSession.KlantNr Else Do . Set Regios=%ECSession.Regios ;Set SessionKey="444" ; test ;Set Regios=$LB(10) ; test ;Set Klant=1239 ; test ;Set ProductGroepen=$$$pgBeslagBlum ;test $$$blProduct Set AllProdGrp=%blProduct.AllProductGroepen(.ProductGroepen) ; Omvullen met dummy (full array ipv sparse array) For IM=-36:1:0 Do . Set Omzet($$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(LastMnd,"M",IM,"FD"),"DM4")_" ")="" ; Regio en alle producten If Klant="", AllProdGrp Do . Set Mnd=StartMnd . For Set Mnd=$O(^KKAAM(Mnd)) Quit:Mnd="" Do . . For IR=1:1:$LL(Regios) Do . . . Set Regio=+$LI(Regios,IR) . . . Set $LI(Omzet(Mnd))=$LG(Omzet(Mnd))+$P($G(^KKAAM(Mnd,Regio)),"\",1) ; Klant of niet alle producten Else Do . Set KLNr=$S(Klant:Klant-1,1:0) . For Set KLNr=$O(^KSTKL(KLNr)) Quit:KLNr="" Quit:Klant&&(Klant'=KLNr) Do Quit:Klant . . Set Regio=$P(^KKL(^KK1(KLNr),0),D,20) . . Quit:(Klant="")&&('$LF(Regios,Regio)) ; Beperkt tot Regio . . Set Mnd=StartMnd . . If AllProdGrp Do ; Alle producten . . . For Set Mnd=$O(^KSTKL(KLNr,0,Mnd)) Quit:Mnd="" Do . . . . Set $LI(Omzet(Mnd),1)=$LG(Omzet(Mnd),1)+$P($G(^KSTKL(KLNr,0,Mnd)),"\",3) . . Else Do ; Beperkt tot product groep . . . Set PRNr=0 . . . For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do . . . . ;W:$D(^KPR(PRNr,"J5005")) "BLUM" . . . . Quit:'%blProduct.IsInProductGroep(PRNr,ProductGroepen) ; niet in gewenste product groep . . . . Set Mnd=StartMnd . . . . For Set Mnd=$O(^KSTKL(KLNr,0,Mnd)) Quit:Mnd="" Do . . . . . Set $LI(Omzet(Mnd),1)=$LG(Omzet(Mnd),1)+$P($G(^KSTKL(KLNr,PRNr,Mnd)),"\",3) ; Cumul berekening Set Mnd="" For Set Mnd=$O(Omzet(Mnd)) Quit:Mnd="" Do . Set Omzet=$LG(Omzet(Mnd),1) . Set CumulMnd=Mnd . For IM=1:1:12 Do Quit:CumulMnd="" ; cumuleren over 12 maanden . . Set $LI(Omzet(CumulMnd),2)=$LG(Omzet(CumulMnd),2)+Omzet . . Set CumulMnd=$O(Omzet(CumulMnd)) ; deze truuk werkt te samen met for IM=1:1:12 omdat alle maanden op voorhand werden gecreëerd ; Omzetten van de Omzet naar een resultset Set Cnt=0 For IM=-12:1:0 Do . Set HuidigMnd=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(LastMnd,"M",IM,"FD"),"DM4")_" " . Set VorigMnd=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes(LastMnd,"M",IM-12,"FD"),"DM4")_" " . Set VorigOmz=$LG(Omzet(VorigMnd),1) . Set VorigCumul=$LG(Omzet(VorigMnd),2) . Set VorigPct=$S(+VorigOmz=0:"",1:+$J(HuidigOmz-VorigOmz/VorigOmz*100,0,1)) . Set HuidigOmz=$LG(Omzet(HuidigMnd),1) . Set HuidigCumul=$LG(Omzet(HuidigMnd),2) . Set HuidigPct=$S(+VorigCumul=0:"",1:+$J(HuidigCumul-VorigCumul/VorigCumul*100,0,1)) . Set Result=$LB($E(HuidigMnd,1,7),VorigOmz,HuidigOmz,VorigPct,VorigCumul,HuidigCumul,HuidigPct) . ;w $$ListToPieces^vhLib(Result,"; "),! . Set ^ECHULP(SessionKey,"FD",$I(Cnt))=Result Quit UPDATEWW Set (Datum,DatumRef)=$H-365 $$$blToegang Set UserID="" For Set UserID=$O(^ATK("W",UserID)) Quit:UserID="" Do . Set Rec=^ATK("W",UserID) . Quit:'$P(Rec,"\",7) ; Nog niet geconverteerd . ;W !,UserID, " ",$D(Mem(UserID))," ",$P(Rec,"\",6) . Set oToegang=##class(Derde.EC.Toegang).%OpenId($P(^ATK("W",UserID),"\",7)) . Quit:'$isObject(oToegang) . If oToegang.WachtWoordIntern="" Do . . Write UserID," ",oToegang.WachtWoord," ",oToegang.WachtWoordIntern,! . . Do %blToegang.SetWachtWoord(oToegang,$P(UserID,"\",2,99)) . . Write "---> ",oToegang.WachtWoord," ",oToegang.WachtWoordIntern,! . . W " ",oToegang.%Save() Quit CONVERTALL Set (Datum,DatumRef)=$H-365 For Set Datum=$O(^ATK("L",Datum)) Quit:Datum="" Do . Set KLNr="" . For Set KLNr=$O(^ATK("L",Datum,KLNr)) Quit:KLNr="" Do . . Set UserID="" . . For Set UserID=$O(^ATK("L",Datum,KLNr,UserID)) Quit:UserID="" Do . . . Set Mem(UserID)="" Set UserID="" For Set UserID=$O(^ATK("W",UserID)) Quit:UserID="" Do . Set Rec=^ATK("W",UserID) . Quit:$P(Rec,"\",7) ; Reeds geconverteerd . W !,UserID, " ",$D(Mem(UserID))," ",$P(Rec,"\",6) . ;Quit:(+$P(Rec,"\",6)> New Loop,SubLoop,lbRec Set (Loop,SubLoop)="" For Set Loop=$O(^Flow.Offerte.HoofdingD(Loop)) Quit:(Loop="") Do . For Set SubLoop=$O(^Flow.Offerte.HoofdingD(Loop,"Lijnen",SubLoop)) Quit:(SubLoop="") Do .. Set lbRec=^Flow.Offerte.HoofdingD(Loop,"Lijnen",SubLoop) .. Set GroepKey=$LG(lbRec,2) .. Quit:(GroepKey'?2N1"."3N1"."2N1"."2N) .. w GroepKey,! .. Set $LI(lbRec,5)=$LI(lbRec,4) .. Set $LI(lbRec,4)=$LI(lbRec,3) .. Set $LI(lbRec,3)=GroepKey .. Set $LI(lbRec,2)="" .. Set ^Flow.Offerte.HoofdingD(Loop,"Lijnen",SubLoop)=lbRec quit addtestroots() n l1,l2,l3,l4 s (l1,l2,l3,l4)="" f s l1=$o(^Res.PI.Items("RDIRD",l1)) q:(l1="") d . f s l2=$o(^Res.PI.Items("RDIRD",l1,l2)) q:(l2="") d .. f s l3=$o(^Res.PI.Items("RDIRD",l1,l2,l3)) q:(l3="") d ... q:(l3'="CACHE02") ... f s l4=$o(^Res.PI.Items("RDIRD",l1,l2,l3,l4)) q:(l4="") d .... q:(l4'="DEV-ADMIN1") .... s ^Res.PI.Items("RDIRD",l1,l2,l3,"TST-ADMIN1")=^Res.PI.Items("RDIRD",l1,l2,l3,l4) //^Res.PI.Items("RDIRD","WebVH","WWW","CACHE01","ADMIN1") quit