persistent 1 %Persistent 1 1 Maand,KlantDtl,VolgNr 1 = :VanDatum) } /// d ##class(DW.KlachtD).AddRecente() ClassMethod AddRecente(VanDatum As %Date) { d ##class(DW.KlachtD).%DeleteExtent() ; tijdelijk Set ^DW.KlachtDD=0 Set VanDatum=$G(VanDatum,$H-500) ; default 30 dagen Set rs=##class(%ResultSet).%New("Derde.Klacht:SelectRecente") Do rs.Execute(VanDatum,"K") ; Recente klanten For Quit:'rs.Next() Do . Set Klacht=##class(Derde.Klacht).%OpenId(rs.Data("ID")) . Do ##class(DW.KlachtD).AddKlacht(Klacht) } Method TransposeKlachtIntoDW(Klacht As Derde.Klacht) { //New AantalBons,AantalLijnen Do ..KlantDtlSetObjectId(##class(DW.KlantDtl).DefineID(Klacht.Derde)) ; primary key Do ..KlachtSetObjectId(Klacht.%Id()) ;Do ..DatumMaandSetObjectId(##class(DW.DatumDim).DefineID($$CALCDATE^vhDTyp(Klacht.RegistratieDatum,"M","FD"))) Set ..Periode = Klacht.RegistratieDatum Set ..VolgNr=$I(^DW.KlachtDD) ; Data Set ..AfsluitAuto = Klacht.AfsluitAuto Set ..AfsluitIP = Klacht.AfsluitIP.NaamKort Set ..AfsluitDuur = Klacht.AfsluitDuur() Set ..KlachtType = Klacht.KlachtType Set ..KlachtGroep = Klacht.KlachtGroep Set ..BehandAuto = Klacht.BehandAuto Set ..AfsluitingGeforceerd = Klacht.AfsluitingGeforceerd Set ..InBehandelingIP = Klacht.InBehandelingIP.NaamKort Set ..InBehandelingDuur = Klacht.InBehandelingDuur() Set ..ProductGroep = Klacht.ProductGroep Set ..RegistratieIP = Klacht.RegistratieIP.NaamKort Set ..RechtZetType = Klacht.RechtZetType Set ..RechtZetVerantwIP = Klacht.RechtZetVerantwIP.NaamKort Set ..Verantwoordelijke = Klacht.VerantwOms Set ..VerantwGroep = Klacht.VerantwGroep Set ..VerwachteDuur = Klacht.VerwachteDuur() Set ..Bedrag = Klacht.Bedrag ; Data Do Klacht.RechtZetKostCalc() Set ..RechtZetNaLev = $LG($G(Klacht.RechtZetTelling("L")),1) Set ..RechtZetNaLevLijn = $LG($G(Klacht.RechtZetTelling("L")),2) Set ..RechtZetTerugName = $LG($G(Klacht.RechtZetTelling("T")),1) Set ..RechtZetTerugNameLijn = $LG($G(Klacht.RechtZetTelling("T")),2) Set ..RechtZetZonderStock = $LG($G(Klacht.RechtZetTelling("Z")),1) Set ..RechtZetZonderStockLijn = $LG($G(Klacht.RechtZetTelling("Z")),2) Set ..RechtZetTijd = Klacht.RechtZetTijd Set ..RechtZetKost = Klacht.RechtZetKost } ClassMethod AddKlacht(Klacht As Derde.Klacht) { Quit:Klacht="" Set DWKlacht=##class(DW.KlachtD).%New() Do DWKlacht.TransposeKlachtIntoDW(Klacht) Set Ok=DWKlacht.%Save() w Ok } ClassMethod DeleteRecente(VanDatum As %Date) { Set rs=##class(%ResultSet).%New("DW.KlachtD:SelectRecente") Do rs.Excute(VanDatum) For Quit:'rs.Next() Do . Set KlachtId=rs.Data("ID") . Set Ok=##class(DW.KlachtD).%DeleteId(KlachtId) } ClassMethod DeleteOld(TotDatum As %Date) { Set rs=##class(%ResultSet).%New("DW.KlachtD:SelectOld") Do rs.Excute(TotDatum) For Quit:'rs.Next() Do Set KlachtId=rs.Data("ID") Set Ok=##class(DW.KlachtD).%DeleteId(KlachtId) } */ ]]> d ##class(DW.Orderlijnen).GroepLijnenMetKlacht() 1 BeginDat,EndDat EndDat . . . Kill Cnt,Qty . . . Set LNr=100 . . . For Set LNr=$O(^KOD(KLNr,Node,ORDNr,LNr)) Quit:LNr="" Do . . . . Set Rec=^(LNr) . . . . Set PRNr=$P(Rec,D,2) . . . . Set Qty=$P(Rec,D,3) . . . . If PRNr'?4.7N Quit . . . . Set ProdGrp=$$PRODGRP^PRODUKT(PRNr,1) . . . . Set:ProdGrp="" ProdGrp="N/A" . . . . Set Cnt(ProdGrp)=$G(Cnt(ProdGrp))+1 . . . . Set Qty(ProdGrp)=$G(Qty(ProdGrp))+Qty . . . Do:$D(Cnt) StoreRec(KLNr,ORDNr,ORDDat,UsrKey,.Cnt,.Qty) ;zw ^HULP(%J,"O") Quit OLPerMaand ; Groeperen per maand Set ORDNr="" For Set ORDNr=$O(^HULP(%J,"O",ORDNr)) Quit:ORDNr="" Do . Set TotCnt=^HULP(%J,"O",ORDNr) . Set ProdGrp="" . For Set ProdGrp=$O(^HULP(%J,"O",ORDNr,ProdGrp)) Quit:ProdGrp="" Do . . Set Rec=^HULP(%J,"O",ORDNr,ProdGrp) . . Set Maand=$$CALCDATE^vhDTyp($P(Rec,D,1),"M","FD") . . Set Usr=$P(Rec,D,3) . . Set Cnt=$P(Rec,D,4) . . Set KLNr=$P(Rec,D,2) . . Set RecM=$G(^HULP(%J,"M",KLNr,Maand,ProdGrp,Usr)) . . Set $P(RecM,D)=$P(RecM,D)+Cnt . . Set $P(RecM,D,2)=$P(RecM,D,2)+(Cnt/TotCnt) . . Set ^HULP(%J,"M",KLNr,Maand,ProdGrp,Usr)=RecM Kill ^HULP(%J,"O") ;zw ^HULP(%J,"M") Quit AddKlacht Set rs=##class(%ResultSet).%New("DW.Orderlijnen:KlachtPerProductGroep") Do rs.Execute(BeginDat,EndDat) For Quit:'rs.Next() Do . Set KLNr=rs.Data("Klant") . Set ProdGrp=rs.Data("ProductGroep") . Set Usr=rs.Data("Verantwoordelijke") . Set Maand=rs.Data("Maand") . Set Aantal=rs.Data("Aantal") . ;w KLNr," ",ProdGrp," ",Usr," ",Maand," ",Aantal,! . Quit:Usr="" . Set:ProdGrp="" ProdGrp="*" . Set RecM=$G(^HULP(%J,"M",KLNr,Maand,ProdGrp,Usr)) . Set $P(RecM,D,3)=$P(RecM,D,3)+Aantal . Set ^HULP(%J,"M",KLNr,Maand,ProdGrp,Usr)=RecM ;zw ^HULP(%J,"M") Quit StoreRec(KLNr,ORDNr,ORDDat,UsrRec,Cnt,Qty) Quit:ORDDatEndDat Set UsrKey=$P(UsrRec,"#",1) Set DevIO=$P(UsrRec,"#",2) Set Usr=$S(UsrKey:$P($G(^vhUSER("D",UsrKey)),D,4),1:UsrKey_"-"_DevIO) Set ProdGrp="" For Set ProdGrp=$O(Cnt(ProdGrp)) Quit:ProdGrp="" Do . Set Rec=$G(^HULP(%J,"O",ORDNr,ProdGrp)) . Set $P(Rec,D,1)=ORDDat . Set $P(Rec,D,2)=KLNr . Set $P(Rec,D,3)=Usr . Set $P(Rec,D,4)=$P(Rec,D,4)+Cnt(ProdGrp) . Set ^HULP(%J,"O",ORDNr,ProdGrp)=Rec . Set ^HULP(%J,"O",ORDNr)=$G(^HULP(%J,"O",ORDNr))+Cnt(ProdGrp) Quit ]]> %SQLQuery Van,Tot Klant as Klant, ProductGroep, Verantwoordelijke, Count(*) AS Aantal from DW.KlachtD Where KlantDtl->Klant is not null and Verantwoordelijke is not null AND Periode>:Van and Periode<:Tot group by KlantDtl->Klant,ProductGroep,verantwoordelijke]]> Set rs=##class(%ResultSet).%New("DW.Orderlijnen:OrderlijnKlacht") Do rs.Execute(+$H-30,$H-1) %Query Van:%Date,Tot:%Date 1 %Status 1 OrderlijnKlachtExecute 0 %Status 1 OrderlijnKlachtExecute %Status %String %Library.Boolean %Library.Float %Library.String %Library.Integer Derde.Klacht %Library.String %Library.String %Library.Date %Library.Integer %Library.String %Library.String %Library.String %Library.String DW.KlantDtl %Library.Integer %Library.Integer %Library.Integer %Library.Integer %Library.Integer %Library.Integer %Library.Integer %Library.Float %Library.Float %Library.CacheStorage ^DW.OrderlijnenD OrderlijnenDefaultData ^DW.OrderlijnenD ^DW.OrderlijnenI ^DW.OrderlijnenS listnode %%CLASSNAME Bedrag BehandAuto InBehandelingDuur InBehandelingIP Klacht KlachtType ProductGroep RechtZetKost RechtZetNaLev RechtZetNaLevLijn RechtZetTerugName RechtZetTerugNameLijn RechtZetTijd RechtZetType RechtZetVerantwIP RechtZetZonderStock RechtZetZonderStockLijn RegistratieIP VerantwGroep Verantwoordelijke VerwachteDuur