KKOVPV ;BEHEER KONKLURRENTIEOVERZICHT (Module IMPORT verkopen voor één klant) [ 10/31/2001 3:04 PM ] GET(KLNr) New %J Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Do DELAUTO(KLNr) Do GETSG(KLNr) Do VERDEEL ;Do SAVE(KLNr) ;Kortgesloten voor Caché ivm 'NOLINE' Kill ^HULP(%J) Quit DELAUTO(KLNr) New HG,GR,Verd,Fabr,Rec Set (HG,GR,Verd,Fabr)="" For Set HG=$O(^KKOV(KLNr,HG)) Quit:HG="" Do .Set GR=0 .For Set GR=$O(^KKOV(KLNr,HG,GR)) Quit:GR="" Do ..For Set Verd=$O(^KKOV(KLNr,HG,GR,Verd)) Quit:Verd="" Do ...For Set Fabr=$O(^KKOV(KLNr,HG,GR,Verd,Fabr)) Quit:Fabr="" Do ....Set Rec=^KKOV(KLNr,HG,GR,Verd,Fabr) ....Quit:'$P(Rec,D,25) ; Manuele lijn ....Kill ^KKOV(KLNr,HG,GR,Verd,FAbr) ; Verwijder automatische lijnen Quit GETSG(KLNr) New HG,GR,SG,Verd,Fabr,Rec,Hulp,Mnd,PRNr,BMnd,EMnd,Verdeel,Offset,Klas Set PRNr=0 Set BMnd=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-13,"MD"),"DM4")_" " Set EMnd=$$EXTDATE^vhLib.DataTypes($$CALCDATE^vhLib.DataTypes($H,"M",-1,"MD"),"DM4")_" " For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do .Set Klas=$O(^KPR(PRNr,"I")) Quit:$E(Klas)'="I" .Set Klas=^KPR(PRNr,Klas) .Set HG=$P(Klas,D),GR=$P(Klas,D,2),SG=$P(Klas,D,3) .Set Verdeel=$P(^KPR(PRNr,1),D,7) .Set Offset=2 Set:Verdeel="V" Verdeel=1,Offset=6 .Quit:'Verdeel ; Niet verdeelbaar of UNDEFINED .If '$D(^HULP(%J,HG,GR,SG)) Do ..Set Fabr=$O(^KPR(PRNr,"J")) Quit:$E(Fabr)'="J" ..Set Fabr=$P(^KPR(PRNr,Fabr),D,1) ..Set ^HULP(%J,HG,GR,SG)=Fabr .Set Mnd=BMnd .For Set Mnd=$O(^KSTKL(KLNr,PRNr,Mnd)) Quit:Mnd="" Quit:Mnd]EMnd Do ..Set Rec=^KSTKL(KLNr,PRNr,Mnd) ..Set Hulp=^HULP(%J,HG,GR,SG) ..Set $P(Hulp,D,Offset)=$P(Hulp,D,Offset)+($P(Rec,D,1)*Verdeel) ; Qty ..Set $P(Hulp,D,Offset+1)=$P(Hulp,D,Offset+1)+$P(Rec,D,2) ; # fakt lijn ..Set $P(Hulp,D,Offset+2)=$P(Hulp,D,Offset+2)+$P(Rec,D,3) ; Omzet ..Set $P(Hulp,D,Offset+3)=$P(Hulp,D,Offset+3)+$P(Rec,D,4) ; Marge ..Set $P(Hulp,D,Offset+4)=$P(Hulp,D,Offset+4)+$P(Rec,D,6) ; Lijstprijs ..Set ^HULP(%J,HG,GR,SG)=Hulp Quit VERDEEL New Tot,HG,GR,SG,Rec Set (HG,GR,SG,Tot)="" For Set HG=$O(^HULP(%J,HG)) Quit:HG="" Do .For Set GR=$O(^HULP(%J,HG,GR)) Quit:GR="" Do ..Kill Tot Set NVTot="",TotQty=0 ..For Set SG=$O(^HULP(%J,HG,GR,SG)) Quit:SG="" Do ...Set Rec=^HULP(%J,HG,GR,SG) ...Set Fabr=$P(Rec,D) ...If $P(Rec,D,2) For I=1:1:3 Set $P(Rec,D,3+I)=$P(Rec,D,3+I)+$P(Rec,D,7+I),$P(Rec,D,7+I)="" ; Verdelen binnen de subgroep van omzet, marge,lijstprijs ...;Overbrengen van de subgroep telling naar Tot en NVTot ...Set Tot=$G(Tot(Fabr)) ...For I=2:1:5 Set $P(Tot,D,I)=$P(Tot,D,I)+$P(Rec,D,I) ...Set TotQty=TotQty+$P(Tot,D,2) ...Set Tot(Fabr)=Tot ...For I=2:1:5 Set $P(NVTot,D,I)=$P(NVTot,D,I)+$P(Rec,D,5+I) ..;Verdelen van Verdeelbare over de Telbare ..If TotQty>0 Do ...Set Fabr="" ...For Set Fabr=$O(Tot(Fabr)) Quit:Fabr="" Do ....Set Tot=Tot(Fabr) ....For I=4:1:6 Set $P(Tot,D,I)=$P(Tot,D,I)+($P(NVTot,D,I)*$P(Tot,D,1)/TotQty) ...Quit