LOG ;Logging van akties [ 03/04/2003 10:35 AM ] ; OPEN(sType,sRef,sTxt) New sMode Set sMode="O" Goto STORE2 Quit ; WIJZ(sType,sRef,sTxt) New sMode Set sMode="W" Goto STORE2 Quit ; VERW(sType,sRef,sTxt) New sMode Set sMode="V" Goto STORE2 Quit ; PRINT(sType,sRef,sMode,sUser,sTxt) Set sMode=$G(sMode,"P"),sTxt=$G(sTxt) Goto STORE2 Quit ; STORE(sType,sRef,sMode,sTxt) STORE2 Do UPDATE(sType,sRef) Do PUTLOG If sType="LEV"!(sType="KL") Set OK=2 Quit UPDATE(sType,sRef) ;Automatische update portable VTW Q Quit:$P($ZU(5),",")="VTW" ; Niet op de portable van de VTW Set:"LEV;KL;PR;KLAS;KLUTZ"[sType ^SYNC("U",sType,sRef)="" Quit PUTLOG New Nr,UserNr,I,R Lock +^LOG Set Nr=$G(^LOG)+1,^LOG=Nr Lock -^LOG If sMode="P"!(sMode="F") Set (UserNr,R)=$G(sUser,$G(CUserId,$G(QU(1)))) ; Print of fax Else Set UserNr=$P($$DEVUSER^vhUSER($$IO^cQ5),";") Set:UserNr R=UserNr_";"_$P($G(^vhUSER("D",UserNr)),D,4) Set I=$G(io) Set ^LOG(+$H,Nr)=sType_D_sRef_D_sMode_D_$P($H,",",2)_D_$G(R)_D_I_D_$G(sTxt) Quit ; Invullen Data-M logging ; B (nieuwe data) doorgegeven als .Local DLOG(ObjType,ObjRef,B) Do @("DLOG"_ObjType_"(ObjType,ObjRef,.B)") Quit ; Producten DLOGPR(ObjType,ObjRef,B) New A,R,PRNr,Node,BIndex,OldValue,NewValue,Piece If $D(^KPR(ObjRef)) Do .Set PRNr=ObjRef,Node="" .For Set Node=$O(^KPR(PRNr,Node)) Quit:Node'=0&'Node Set A(Node+1)=^KPR(PRNr,Node) .For Node="I","J" Set R=$O(^KPR(PRNr,Node)) Set:$E(R)=Node A(Node)=^KPR(PRNr,R) .Set Node="" .For Set Node=$O(B(Node)) Quit:Node="" Do ..For Piece=1:1:$L(B(Node),D) Do ...Set NewValue=$P(B(Node),D,Piece),OldValue=$P($G(A(Node)),D,Piece) ...Quit:NewValue=OldValue ...If Node?.N Set BIndex=Node*100+Piece ...Else Set BIndex=Node_(100+Piece),B(1)=B(Node) ...Do DLOGMOD("PR",PRNr,BIndex,OldValue,NewValue) ...Kill:Node'?.N B(1) Else Do DLOGNEW(ObjType,ObjRef) Quit ; Invullen Data-M logging nieuw object DLOGNEW(ObjType,ObjRef) New %TN,%TS,R,RLog,Date Set %TN=$P($H,",",2) Set Q = $Get(Q,"K") If $ZV'["MSM" Set %TS=$ZT(%TN,2) Else Do ^%TO Set RLog="O\1\\\"_DT_D_$J(%TS,5)_D_QU_"\Opening~Création~Kreation~Creation\\\"_boot Set Date=$$EXTDATE^vhDTyp(,"DSN") Set:$P($O(^DLOG(Q,ObjType,ObjRef,Date_.9999),-1),".")=Date Date=$O(^DLOG(Q,ObjType,ObjRef,Date_.9999),-1) Set Date=Date+.0001 Set ^DLOG(Q,ObjType,ObjRef,Date)=RLog Quit ; Invullen Data-M logging per rubriek wijzigen object ; BIndex is optioneel en indien meegegeven ; xxx = de waarde van $P(@("^"_Q_ObjType_"(0,...)"),";",16) ; Ixxx (Klassifikatie indien product) ; Jxxx (Leverancier indien product) ; RubrName is optioneel indien BIndex is meegegeven ; AppendNm is optioneel DLOGMOD(ObjType,ObjRef,BIndex,OldValue,NewValue,RubrName,AppendNm) New %TN,%TS,K,R,RLog,Date Set BIndex=$G(BIndex),OldValue=$G(OldValue),NewValue=$G(NewValue),RubrName=$G(RubrName),AppendNm=$G(AppendNm) Set RLog="" Set Q = $Get(Q,"K") If ObjType="KL" Set RLog=$$RLogKL(ObjRef,BIndex,OldValue,NewValue,RubrName,AppendNm) ; Klanten If ObjType="PR" Do . If "IJ"[$E(BIndex),$E(BIndex,2,4)<100 Set $E(BIndex)=$E(BIndex)_1 . Set RLog=$$RLogPR(ObjRef,BIndex,OldValue,NewValue,RubrName,AppendNm) ; Producten If ObjType="BLProd" Set RLog=$$RLogBLProd(ObjRef,BIndex,OldValue,NewValue,RubrName,AppendNm) ; Blum producten ;If ObjType="UTZ" Set RLog=$$RLogUTZ(BIndex,OldValue,NewValue,RubrName,AppendNm) ; Uitzonderingen Do:$L(RLog) .Set Date=$$EXTDATE^vhDTyp(,"DSN") .Set:$P($O(^DLOG(Q,ObjType,ObjRef,Date_.9999),-1),".")=Date Date=$O(^DLOG(Q,ObjType,ObjRef,Date_.9999),-1) .Set Date=Date+.0001 .Set ^DLOG(Q,ObjType,ObjRef,Date)=RLog Quit ; Opmaken van het logrecord voor klanten RLogKL(KLNr,BIndex,OldValue,NewValue,RubrName,AppendNm) New %TN,%TS,K,R,RLog,U3,PR,Node,Piece,RubrNr,Rubriek,EindRNr,Date,NBIndex Set D = $Get(D,"\") Set DT = $Get(DT,$zdate($h,4)) Set RLog="",PR=KLNr,Node=$$UPTRIMA^vhRtn1(BIndex),NBIndex=$$TRIMN^vhRtn1(BIndex),Piece=NBIndex#100 If Node="" Set Node=BIndex\100-1,RubrNr=99,EindRNr=999 Else Set RubrNr=1100+(Node="J"*100),Node=$O(^KKL(KLNr,Node)),EindRNr=RubrNr+99 Set:'$D(OldValue) R=$G(^KKL(KLNr,Node)),OldValue=$P(R,D,Piece) Do:OldValue'=NewValue .Do:'$L($G(RubrName)) ..For Set RubrNr=$O(^KKL(0,RubrNr)) Quit:RubrNr="" Quit:RubrNr>EindRNr Do Quit:$L(Rubriek) ...Set Rubriek=^KKL(0,RubrNr) ...If $P(Rubriek,";",16)=NBIndex Set EindNr=RubrNr ...Else Set Rubriek="" ..Quit:Rubriek="" ..Set RubrName=$P(Rubriek,";") .Set RubrName=RubrName_$G(AppendNm),%TN=$P($H,",",2) .If $ZV'["MSM" Set %TS=$ZT(%TN,2) .Else Do ^%TO .Set RLog="W\"_BIndex_D_OldValue_D_NewValue_D_DT_D_$J(%TS,5)_D_$get(QU,"SYS")_D_RubrName .Set U3=$$U3KL(KLNr,BIndex,OldValue),RLog=RLog_D_U3 .Set U3=$$U3KL(KLNr,BIndex,NewValue) .Quit:U3=$P(RLog,D,9) .Set RLog=RLog_D_U3_D_$Get(boot) Quit RLog ; Opmaken van het logrecord voor producten RLogPR(PRNr,BIndex,OldValue,NewValue,RubrName,AppendNm) New %TN,%TS,K,R,RLog,U3,PR,Node,Piece,RubrNr,Rubriek,EindRNr,Date,NBIndex Set RLog="",PR=PRNr,Node=$$UPTRIMA^vhRtn1(BIndex),NBIndex=$$TRIMN^vhRtn1(BIndex),Piece=NBIndex#100 If Node="" Set Node=BIndex\100-1,RubrNr=99,EindRNr=999 Else Set RubrNr=1100+(Node="J"*100),Node=$O(^KPR(PRNr,Node)),EindRNr=RubrNr+99 Set:'$D(OldValue) R=$G(^KPR(PRNr,Node)),OldValue=$P(R,D,Piece) Do:OldValue'=NewValue .Do:'$L($G(RubrName)) ..For Set RubrNr=$O(^KPR(0,RubrNr)) Quit:RubrNr="" Quit:RubrNr>EindRNr Do Quit:$L(Rubriek) ...Set Rubriek=^KPR(0,RubrNr) ...If $P(Rubriek,";",16)=NBIndex Set EindNr=RubrNr ...Else Set Rubriek="" ..Quit:Rubriek="" ..Set RubrName=$P(Rubriek,";") .Set RubrName=RubrName_$G(AppendNm),%TN=$P($H,",",2) .If $ZV'["MSM" Set %TS=$ZT(%TN,2) .Else Do ^%TO .Set RLog="W\"_BIndex_D_OldValue_D_NewValue_D_DT_D_$J(%TS,5)_D_$G(QU)_D_RubrName .Set U3=$$U3PR(PRNr,BIndex,OldValue),RLog=RLog_D_U3 .Set U3=$$U3PR(PRNr,BIndex,NewValue) .Quit:U3=$P(RLog,D,9) .Set RLog=RLog_D_U3_D_boot Quit RLog ; Opmaken van het logrecord voor Blum producten RLogBLProd(BlumID,BIndex,OldValue,NewValue,RubrName,AppendNm) New %TN,%TS,K,R,RLog,U3,PR,Node,Piece,RubrNr,Rubriek,EindRNr,Date,NBIndex Set RLog="",PR=BlumID,Node=$$UPTRIMA^vhRtn1(BIndex),NBIndex=$$TRIMN^vhRtn1(BIndex),Piece=NBIndex#100 If Node="" Set Node=BIndex\100-1,RubrNr=99,EindRNr=999 Else Set RubrNr=1100+(Node="J"*100),Node=$O(^KPR(BlumID,Node)),EindRNr=RubrNr+99 Set:'$D(OldValue) R=$G(^KPR(BlumID,Node)),OldValue=$P(R,D,Piece) Do:OldValue'=NewValue .Do:'$L($G(RubrName)) ..For RubrNr=101:1 Do Quit:RubrNr>EindRNr Quit:$L(Rubriek) ...Set Rubriek=$P($T(@("T"_RubrNr_"^BLPRGEG")),";",2,99) ...If Rubriek="" Set RubrNr=EindRNr+1 ...Else If $P(Rubriek,";",16)=NBIndex Set EindNr=RubrNr ...Else Set Rubriek="" ..Quit:Rubriek="" ..Set RubrName=$P(Rubriek,";") .Set RubrName=RubrName_$G(AppendNm),%TN=$P($H,",",2) .If $ZV'["MSM" Set %TS=$ZT(%TN,2) .Else Do ^%TO .Set RLog="W\"_BIndex_D_OldValue_D_NewValue_D_DT_D_$J(%TS,5)_D_$G(QU)_D_RubrName .Set U3=$$U3PR(BlumID,BIndex,OldValue),RLog=RLog_D_U3 .Set U3=$$U3PR(BlumID,BIndex,NewValue) .Quit:U3=$P(RLog,D,9) .Set RLog=RLog_D_U3_D_boot Quit RLog ; Wat geprint i.p.v. de input klanten ; BIndex ; xxx = de waarde van $P(^KKL(0,...),";",16) U3KL(KLNr,BIndex,Value) New K,R,U3,PR,Node,RubrNr,Rubriek,EindRNr,Xecute,NBIndex,SWX Set BIndex=$G(BIndex) Set PR=KLNr,Node=$$UPTRIMA^vhRtn1(BIndex),NBIndex=$$TRIMN^vhRtn1(BIndex) If Node="" Set Node=BIndex\100-1,RubrNr=99,EindRNr=999 Else Set RubrNr=1100+(Node="J"*100),Node=$O(^KKL(KLNr,Node)),EindRNr=RubrNr+99 For Set RubrNr=$O(^KKL(0,RubrNr)) Quit:RubrNr="" Quit:RubrNr>EindRNr Do Quit:$L(Rubriek) .Set Rubriek=^KKL(0,RubrNr) .If $P(Rubriek,";",16)=NBIndex Set EindNr=RubrNr .Else Set Rubriek="" Do:$L(Rubriek) .Set Xecute=$P(Rubriek,";",8),(K,U3)=Value .Xecute:$L(Xecute) "Set U3="_Xecute Quit $G(U3,Value) ; Wat geprint i.p.v. de input producten ; BIndex ; xxx = de waarde van $P(^KPR(0,...),";",16) ; Ixxx (Klassifikatie) ; Jxxx (Leverancier) U3PR(PRNr,BIndex,Value) New K,R,U3,PR,Node,RubrNr,Rubriek,EindRNr,Xecute,NBIndex,SWX Set BIndex=$G(BIndex) Set PR=PRNr,Node=$$UPTRIMA^vhRtn1(BIndex),NBIndex=$$TRIMN^vhRtn1(BIndex) If Node="" Set Node=BIndex\100-1,RubrNr=99,EindRNr=999 Else Set RubrNr=1100+(Node="J"*100),Node=$O(^KPR(PRNr,Node)),EindRNr=RubrNr+99 For Set RubrNr=$O(^KPR(0,RubrNr)) Quit:RubrNr="" Quit:RubrNr>EindRNr Do Quit:$L(Rubriek) .Set Rubriek=^KPR(0,RubrNr) .If $P(Rubriek,";",16)=NBIndex Set EindNr=RubrNr .Else Set Rubriek="" Do:$L(Rubriek) .Set Xecute=$P(Rubriek,";",8),(K,U3)=Value .Set:$E(Node)="J" SWX=1 ; Om te voorkomen dat ^KP0 wordt uitgevoerd .Xecute:$L(Xecute) "Set U3="_Xecute Quit $G(U3,Value) ; Raadplegen Data-M logging ; ObjType = KL (klanten) ; = PR (Producten) ; = AR (Grootboekrekeningen) ; = UTZ (Uitzonderingen) RPLDLOG(ObjType,ObjRef) New i1,DLOGREF,DLOGUI1,DLOGUQC,DLOGUSC Do STORE^vhTERMINA() Set i1=ObjRef Set:ObjType="KL" i1=^KK1(ObjRef) Set:ObjType="UTZ" i1=^KK1(ObjRef) Set:ObjType="BLProd" BLProd("D",ObjRef,0)=^BLProd("D",ObjRef) Set DLOGREF=$NA(^DLOG(Q,ObjType,ObjRef)),DLOGUI1=i1,DLOGUQC=0,DLOGUSC=ObjType Do RS^cAN210("DLOG",0,0,0,0) Xecute F71 Do REFRESH^vhTERMINA() Write @FMTCL Quit CheckDelBon(FromDate,ToDate) New R,LogNr,BONNr,ZRLog Set FromDate=$G(FromDate,+$H),ToDate=$G(ToDate,+$H) Set FromDate=$O(^LOG(FromDate),-1) For Set FromDate=$O(^LOG(FromDate)) Quit:FromDate="" Quit:FromDate>ToDate Do . Set LogNr="" . For Set LogNr=$O(^LOG(FromDate,LogNr)) Quit:LogNr="" Do . . Set R=^LOG(FromDate,LogNr),BONNr=$P(R,D,2),ZRLog=$ZR . . If $P(R,D)="UL",$P(R,D,3)="V",'$D(^KU1(BONNr)) Write !,ZRLog," = ",R Quit