levperf ; Leveringsperformantie [ 02/17/2003 3:39 PM ] ; ; Nachtelijke scanning van de verstreken orders NIGHT Set $ZT="^cA406" New Set Q="K" Do ^cA604 SCAN Lock +LEVPERF:0 Else Quit ; Indien gelockt dan onmiddellijk quit Set KLNr=0 For Set KLNr=$O(^KOD(KLNr)) Quit:KLNr="" Do .Set ORDNr="" .Set Krediet=$$KREDTVAL(KLNr) .For Set ORDNr=$O(^KOD(KLNr,"F",ORDNr)) Quit:ORDNr="" Do ..Set R=^KOD(KLNr,"F",ORDNr,1),OrdTyp=$P(R,D,25) ..Quit:"\C\A\"[(D_OrdTyp_D) ..Set OLNr=100 ..For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ...Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2),Aantal=$P(R,D,3),Update=$P(R,D,39) ...Quit:Update+7'<$H ...If PRNr,Aantal>0,'$$CHKLEVT(KLNr,ORDNr,OLNr) Do STORE(KLNr,,ORDNr,OLNr,,Krediet) ; Opkuis van de op bon gezette orders Set ORDNr="" For Set ORDNr=$O(^LEVPERF("DEL","B",ORDNr)) Quit:ORDNr="" Do .Set OLUNr="" .For Set OLUNr=$O(^LEVPERF("DEL","B",ORDNr,OLUNr)) Quit:OLUNr="" Do ..Set (StatDat,LastDat,LogCount,StrafPnt)="" ..For Set StatDat=$O(^LEVPERF("D",StatDat),-1) Quit:StatDat="" Do ...Set R=$G(^LEVPERF("D",StatDat,ORDNr,OLUNr)) ...Quit:R="" ...Set LogCount=LogCount+1 Set:$P(R,D,14)>StrafPnt StrafPnt=$P(R,D,14) ...If 'LastDat Set LastDat=StatDat ...Else Kill ^LEVPERF("D",StatDat,ORDNr,OLUNr) ..Quit:LastDat="" ..Set R=^LEVPERF("D",LastDat,ORDNr,OLUNr),$P(R,D,14)=StrafPnt ..Set $P(R,D,22)=LogCount,^LEVPERF("D",LastDat,ORDNr,OLUNr)=R ; Opkuis van de verwijderde orders Set StatDat="" For Set StatDat=$O(^LEVPERF("D",StatDat)) Quit:StatDat="" Do .Set ORDNr="" .For Set ORDNr=$O(^LEVPERF("D",StatDat,ORDNr)) Quit:ORDNr="" Do ..Set OLUNr="" ..For Set OLUNr=$O(^LEVPERF("D",StatDat,ORDNr,OLUNr)) Quit:OLUNr="" Do ...Kill:$D(^LEVPERF("DEL","D",ORDNr,OLUNr)) ^LEVPERF("D",StatDat,ORDNr,OLUNr) Kill ^LEVPERF("DEL") Lock -LEVPERF Quit ;Krediet evaluatie ; + : Heeft kredietlimiet en alles is OK ; - : Heeft kredietlimiet en deze is overschreden of er zijn achterstallige fakturen ; K : Heeft GEEN kredietlimiet maar er zijn achterstallige fakturen ; "" : Niets aan de hand KREDTVAL(KLNr) New R,Waardig,KrdtLim Set R=$$WAARDIG^KREDIET(KLNr),Waardig=$P(R,D) Set KrdtLim=$$GETLIM^KREDIET(KLNr) If KrdtLim Do ; Er is een kredietlimiet . Set Waardig=$S(Waardig:"+",1:"-") Else Do ; Zonder kreditelimiet . Set Waardig=$S(Waardig:"",1:"K") Quit Waardig ; Kontrole of de beloofde datum of de leverweek verstreken zijn CHKLEVT(KLNr,ORDNr,OLNr) New R,Beloofd,ChkLevT,ChkLevWk,LevWk Set R=^KOD(KLNr,"F",ORDNr,1),Beloofd=$$INTDATE^vhDTyp($P(R,D,16)) If Beloofd Set ChkLevT=Beloofd'<$H Else Do .Set ChkLevWk=$$CALCDATE^vhDTyp(,"W") .Set R=^KOD(KLNr,"F",ORDNr,OLNr),LevWk=$$INTDATE^vhDTyp($P(R,D,25),"DW") .Set ChkLevT=LevWk'