;Stat.OmzetKlantProductMaand.1 ;(C)InterSystems, generated for class Stat.OmzetKlantProductMaand. Do NOT edit. 04/14/2011 11:19:21AM ;;3BB19951D2CFB173;Stat.OmzetKlantProductMaand Quit ; %AcquireLock(%this,locktype) public { Set id=..%Id() Quit:$get(id)="" $$Error^%apiOBJ(5812) If $get(locktype)="e" Quit:'$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id) $$Error^%apiOBJ(5803) Quit 1 If $get(locktype)="s" Quit:'$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id,1) $$Error^%apiOBJ(5804) QUIT 1 Quit $$Error^%apiOBJ(5806,locktype) } %BMEBuilt(bmeName) Quit 1 %BuildIndices(idxlist) public { Set idxlist=$get(idxlist) Quit $$%BuildIndices^Stat.OmzetKlantProductMaand.T1(idxlist) } %CheckUnique(idxlist) public { Set idxlist=$get(idxlist) QUIT $$Error^%apiOBJ(5758,"%Persistent::%CheckUnique") } %ClassName(fullname) public { Quit $select($get(fullname,0):"Stat.OmzetKlantProductMaand",1:"OmzetKlantProductMaand") } %Close(%this) Quit ..%Close() %Destruct(%this) public { Set oid=$zobjval(,0,,,,3) If oid'="" { If $zobjval(,1,0,3,1)=3 { Do ..%ReleaseLock("s") } ElseIf $zobjval(,1,0,3,1)=4 { Do ..%ReleaseLock("e") } s $zobjoid($lg(oid,2),$lg(oid))="" } Kill %objtxLIST(+%this),%objtxOIDASSIGNED(+%this),%objtxMODIFIED(+%this) Quit 1 } %ConstructClone(%this,deep,cloned) public { Set deep=$get(deep,0) Set object=%this If $data(cloned(+object)) Do (cloned(+object)).%IncrementCount() Quit cloned(+object) Set %this=$zobjnew("Stat.OmzetKlantProductMaand") Set cloned(+object)=%this,cloned(+object,0)=object s $zobjmod(,0)=1 Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(object,3) Set $zobjval(,4)=$zobjval(object,4),$zobjval(,5)=$zobjval(object,5),$zobjval(,6)=$zobjval(object,6) Set $zobjval(,7)=$zobjval(object,7),$zobjval(,8)=$zobjval(object,8),$zobjval(,9)=$zobjval(object,9) Set $zobjval(,10)=$zobjval(object,10),$zobjval(,11)=$zobjval(object,11),$zobjval(,12)=$zobjval(object,12) Set $zobjval(,13)=$zobjval(object,13) If deep>0 { If object.Klant'="" Set $zobjval(,5,0)=$zobjval(object,5,0).%ConstructClone(1,.cloned) If $zobjval(,5,0)'="" Do ($zobjval(,5,0)).%Close() If object.Product'="" Set $zobjval(,11,0)=$zobjval(object,11,0).%ConstructClone(1,.cloned) If $zobjval(,11,0)'="" Do ($zobjval(,11,0)).%Close() } Quit %this } %Delete(oid,concurrency) public { Set oid=$get(oid),concurrency=$get(concurrency,-1) Quit:oid="" $$Error^%apiOBJ(5813) Set id=$lg(oid) Quit:id="" $$Error^%apiOBJ(5812) If concurrency = -1 Set concurrency=$zu(115,10) If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit $$Error^%apiOBJ(5828) Set class=$lg(oid,2) If class="" { Set class="Stat.OmzetKlantProductMaand",oid=$s(oid="":"",1:$lb($lg(oid),"Stat.OmzetKlantProductMaand")) } Else { Set class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,$l(class))) If "Stat.OmzetKlantProductMaand"'=class { Quit $zobjclassmethod(class,"%Delete",oid) } } If +$g(%objtxSTATUS)=0 { Set traninit=1 k %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel %0CacheLock i '$zu(115,9) { s %objtxSTATUS=1 } else { s %objtxSTATUS=2 TStart } } Else { Set traninit=0 } s oref=$zobjoid($lg(oid,2),$lg(oid)) If $isobject(oref) { New %this Set %this=oref If %this.%Concurrency>2 { s sc=%this.%ReleaseLock($Select(%this.%Concurrency=3:"s",1:"e")) } i $g(%objtxSTATUS)=2 { s %objtxOIDUNASSIGNED(+oref)=oid,%objtxLIST(+oref)=oref s %objtxMODIFIED(+oref)=$zobjval(oref,0) } s $zobjmod(oref,0)=1 Set $zobjval(oref,0,,,,3)="" s $zobjoid($lg(oid,2),$lg(oid))="" } Set sc=##class(Stat.OmzetKlantProductMaand).%DeleteData(id,concurrency) %DeleteEnd If traninit { If (+sc) { i $g(%objtxSTATUS)=1 { k %objtxSTATUS } else { TCommit k %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxOIDUNASSIGNED,%objtxMODIFIED k:'$TLevel %0CacheLock } } Else { i $g(%objtxSTATUS)=2 { k %0CacheLock s sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack^%occTransaction())) } else { k %objtxSTATUS } } } Quit sc } %DeleteData(id,concurrency) QUIT:id="" $$Error^%apiOBJ(5812) n %sc s %sc=1 i concurrency>1 i '$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id) QUIT $$Error^%apiOBJ(5803) n %ROWID,SQLCODE ;---&sql(DELETE FROM Stat.OmzetKlantProductMaand WHERE %ID=:id) ;--- ** SQL PUBLIC Variables: SQLCODE, id Do %0o i SQLCODE s %sc=$$Error^%apiOBJ(5521,SQLCODE) i concurrency>1 d %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id) QUIT %sc %0o n %mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlTS,%mmmsqlZ s $zt="%0err",$ze="" s:'$d(%0snrc) %0snrc=+$g(^%SYS("sql","sys","no filer referential checks")) s %mmmsqld(6)=0 s %mmmsqld(7)="" s %mmmsqld(2)=$g(id) s SQLCODE=100 s %mmmsqlTS=0 If $zu(115,1)=1,'$TLEVEL { TSTART s %mmmsqlTS=1 } ; asl MOD# 2 s %mmmsqld(1)=%mmmsqld(2) s %mmmsqld(3)=$p(%mmmsqld(1),"||"),%mmmsqld(4)=$p(%mmmsqld(1),"||",2),%mmmsqld(5)=$p(%mmmsqld(1),"||",3) i %mmmsqld(3)'="",$d(^KSTPR(%mmmsqld(3))) i '$t e i 1]]%mmmsqld(3) i '$t,%mmmsqld(4)'="",$d(^KSTPR(%mmmsqld(3),%mmmsqld(4))) i '$t e i 1]]%mmmsqld(4) i '$t,%mmmsqld(5)'="",$d(^KSTPR(%mmmsqld(3),%mmmsqld(4),%mmmsqld(5))) i '$t e i 1]]%mmmsqld(5) i g %0Bdun s %mmmsqld(12)=$$%getlock^Stat.OmzetKlantProductMaand.T1(%mmmsqld(1)) i '%mmmsqld(12) s SQLCODE=-110 g %0c ; asl MOD# 3 s %mmmsqld(3)=$p(%mmmsqld(1),"||"),%mmmsqld(4)=$p(%mmmsqld(1),"||",2),%mmmsqld(5)=$p(%mmmsqld(1),"||",3) i %mmmsqld(3)'="",$d(^KSTPR(%mmmsqld(3))) i '$t e i 1]]%mmmsqld(3) i '$t,%mmmsqld(4)'="",$d(^KSTPR(%mmmsqld(3),%mmmsqld(4))) i '$t e i 1]]%mmmsqld(4) i '$t,%mmmsqld(5)'="",$d(^KSTPR(%mmmsqld(3),%mmmsqld(4),%mmmsqld(5))) i '$t e i 1]]%mmmsqld(5) i g %0Cdun d %delete^Stat.OmzetKlantProductMaand.T1(%mmmsqld(1),$c(0,1,0,0),'$g(%mmmsqlTS)) i 'SQLCODE i $i(%mmmsqld(6)) %0Cdun d:%mmmsqld(12)=1 %ReleaseLock^Stat.OmzetKlantProductMaand.T1(%mmmsqld(1)) g:SQLCODE<0 %0c %0Bdun %0Adun %0c s %ROWCOUNT=+$g(%mmmsqld(6)) TCOMMIT:$g(%mmmsqlTS)&&($zu(115,1)=1)&&(SQLCODE'<0) If $g(%mmmsqlTS)&&($zu(115,1)=1)&&(SQLCODE<0) { TROLLBACK s %ROWCOUNT=0} q %0err s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(12))=1 %ReleaseLock^Stat.OmzetKlantProductMaand.T1(%mmmsqld(1)) g %0c %DeleteExtent(concurrency,deletecount,instancecount) public { Set concurrency=$get(concurrency,-1) If concurrency = -1 Set concurrency=$zu(115,10) If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit $$Error^%apiOBJ(5828) Set deletecount=0,instancecount=0 Set sc=##class(Stat.OmzetKlantProductMaand).ExtentExecute(.qh) Quit:('sc) sc For Set sc=##class(Stat.OmzetKlantProductMaand).ExtentFetch(.qh,.row,.atend) Quit:$select(row="":1,('sc):1,1:0) Set id=$listget(row) If id'="" Set sc=##class(Stat.OmzetKlantProductMaand).%Delete($listbuild(id),concurrency) Set instancecount=instancecount+1 Set:(+sc) deletecount=deletecount+1 Quit:atend Do ##class(Stat.OmzetKlantProductMaand).ExtentClose(qh) If instancecount = deletecount { Do ##class(Stat.OmzetKlantProductMaand).%PurgeIndices() } Quit 1 } %DeleteId(id,concurrency) public { Set concurrency=$get(concurrency,-1) Quit ##class(Stat.OmzetKlantProductMaand).%Delete($s(id="":"",1:$lb(id_"")),.concurrency) } %DowngradeConcurrency(%this,concurrency) public { Set concurrency=$get(concurrency,0) If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit $$Error^%apiOBJ(5828) Set current=$zobjval(,1,0,3,1) If concurrency>current Quit 1 If current<3||(current=concurrency) Set:concurrency2 Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc) sc Do ..%ReleaseLock($select(current=3:"s",1:"e")) Set $zobjval(,1,0,3,1)=concurrency Quit 1 } %Exists(oid) public { Set oref=##class(Stat.OmzetKlantProductMaand).%Open(oid,0) Quit:oref="" 0 Quit 1 } %ExistsId(id) public { Quit ##class(Stat.OmzetKlantProductMaand).%Exists($lb(id)) } %Extends(isclass) public { Quit "~Stat.OmzetKlantProductMaand~%Library.Persistent~%Library.RegisteredObject~"[("~"_$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,$l(isclass)))_"~") } %GetParameter(paramname) public { Set paramname=$get(paramname) Quit $case(paramname,"DEFAULTCONCURRENCY":"$zu(115,10)","EXTENTSIZE":100000,"OBJJOURNAL":0,"PROPERTYVALIDATION":2,"READONLY":0,"SQLENABLED":1,"STORAGECOMPILERCLASS":"%Compiler.Storage.CacheSQL",:"") } %GetSwizzleObject(%this,force,oid) public { Set force=$get(force,0) Set oid="" If force=0 Set oid=(..%Oid()) Quit 1 If force=2 Set sc=..%Save(1) Set:(+sc) oid=(..%Oid()) Quit sc Set oid=(..%Oid()) Quit:oid'="" 1 Set sc=..%Save(0) Set:(+sc) oid=..%Oid() Quit sc } %Id(%this) Quit $lg($zobjval(%this,0,,,,3)) %IdSet(%this,id) public { Set oid=$s(id="":"",1:$lb(id_"","Stat.OmzetKlantProductMaand")) If $zobjval(,0,,,,3)'="",$zobjval(,0,,,,3)'=oid Quit $$Error^%apiOBJ(5814) Set $zobjval(,0,,,,3)=oid s $zobjoid($lg(oid,2),$lg(oid))=%this Quit 1 } %IncrementCount(%this) Quit ..%IncrementCount() %IsA(isclass) public { Quit "~Stat.OmzetKlantProductMaand~%Library.Persistent~%Library.RegisteredObject~"[("~"_$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,$l(isclass)))_"~") } %IsModified(%this) public { Quit $zobjmod(,0) } %KillExtent() public { QUIT $$Error^%apiOBJ(5758,"%Persistent::%KillExtent") } %Load(%this,id) public { Set sc=..%IdSet(id) Quit:('sc) sc Set sc=..%LoadData(id) Quit:('sc) sc Quit 1 } %LoadData(%this,id) n %ROWID,%sc,SQLCODE s %sc=$$Error^%apiOBJ(5809) i $zobjval(,1,0,3,1)=4 i '$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id) QUIT $$Error^%apiOBJ(5803) i $zobjval(,1,0,3,1)'=4,$zobjval(,1,0,3,1)>1 i '$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id,1) QUIT $$Error^%apiOBJ(5804) ;---&sql(SELECT FaktuurLijnen,Klant,Maand,Marge,Omzet,OmzetLijstPrijs,Product,Stuks,StuksKOM ;--- INTO :i%FaktuurLijnen,:i%Klant,:i%Maand,:i%Marge,:i%Omzet,:i%OmzetLijstPrijs,:i%Product,:i%Stuks,:i%StuksKOM ;--- FROM Stat.OmzetKlantProductMaand ;--- WHERE %ID=:id) ;--- ** SQL PUBLIC Variables: SQLCODE, id Do %0Bo i SQLCODE s $zobjval(,3,0,3,3)="",$zobjval(,4,0,3,4)="",$zobjval(,6,0,3,5)="",$zobjval(,7,0,3,6)="",$zobjval(,8,0,3,7)="",$zobjval(,9,0,3,8)="",$zobjval(,10,0,3,9)="",$zobjval(,12,0,3,10)="",$zobjval(,13,0,3,11)="" e d . s %sc=1 i $zobjval(,1,0,3,1)=2 d %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id,1) QUIT %sc %0Bo n %mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlZ s $zt="%0Berr",$ze="" s %mmmsqld(22)=0,%mmmsqld(23)="" s %mmmsqld(20)=$g(id) s SQLCODE=100 ; asl MOD# 2 s %mmmsqld(19)=%mmmsqld(20) s $zobjval(,10,0,3,9)=$p(%mmmsqld(19),"||"),$zobjval(,4,0,3,4)=$p(%mmmsqld(19),"||",2),$zobjval(,6,0,3,5)=$p(%mmmsqld(19),"||",3) i $zobjval(,10,0,3,9)'="",$d(^KSTPR($zobjval(,10,0,3,9))) i '$t e i 1]]$zobjval(,10,0,3,9) i '$t,$zobjval(,4,0,3,4)'="",$d(^KSTPR($zobjval(,10,0,3,9),$zobjval(,4,0,3,4))) i '$t e i 1]]$zobjval(,4,0,3,4) i '$t,$zobjval(,6,0,3,5)'="",$d(^KSTPR($zobjval(,10,0,3,9),$zobjval(,4,0,3,4),$zobjval(,6,0,3,5))) i '$t e i 1]]$zobjval(,6,0,3,5) i g %0BBdun s %mmmsqld(28)=$g(^KSTPR($zobjval(,10,0,3,9),$zobjval(,4,0,3,4),$zobjval(,6,0,3,5))) s $zobjval(,3,0,3,3)=$p(%mmmsqld(28),"\",2) s $zobjval(,7,0,3,6)=$p(%mmmsqld(28),"\",4) s $zobjval(,8,0,3,7)=$p(%mmmsqld(28),"\",3) s $zobjval(,9,0,3,8)=$p(%mmmsqld(28),"\",6) s $zobjval(,12,0,3,10)=$p(%mmmsqld(28),"\",1) s $zobjval(,13,0,3,11)=$p(%mmmsqld(28),"\",5) g:$zu(115,2)=0 %0BBuncommitted i $zu(115,2)=1 l +^KSTPR($p(%mmmsqld(19),"||",1),$p(%mmmsqld(19),"||",2),$p(%mmmsqld(19),"||",3))#"S":$zu(115,4) i $t { s %mmmsqld(22)=1,%mmmsqld(23)=$name(^KSTPR($p(%mmmsqld(19),"||",1),$p(%mmmsqld(19),"||",2),$p(%mmmsqld(19),"||",3)))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table Stat.OmzetKlantProductMaand for RowID value: "_%mmmsqld(19) q } ; asl MOD# 3 s $zobjval(,10,0,3,9)=$p(%mmmsqld(19),"||"),$zobjval(,4,0,3,4)=$p(%mmmsqld(19),"||",2),$zobjval(,6,0,3,5)=$p(%mmmsqld(19),"||",3) i $zobjval(,10,0,3,9)'="",$d(^KSTPR($zobjval(,10,0,3,9))) i '$t e i 1]]$zobjval(,10,0,3,9) i '$t,$zobjval(,4,0,3,4)'="",$d(^KSTPR($zobjval(,10,0,3,9),$zobjval(,4,0,3,4))) i '$t e i 1]]$zobjval(,4,0,3,4) i '$t,$zobjval(,6,0,3,5)'="",$d(^KSTPR($zobjval(,10,0,3,9),$zobjval(,4,0,3,4),$zobjval(,6,0,3,5))) i '$t e i 1]]$zobjval(,6,0,3,5) i g %0BCdun s %mmmsqld(33)=$g(^KSTPR($zobjval(,10,0,3,9),$zobjval(,4,0,3,4),$zobjval(,6,0,3,5))) s $zobjval(,3,0,3,3)=$p(%mmmsqld(33),"\",2) s $zobjval(,7,0,3,6)=$p(%mmmsqld(33),"\",4) s $zobjval(,8,0,3,7)=$p(%mmmsqld(33),"\",3) s $zobjval(,9,0,3,8)=$p(%mmmsqld(33),"\",6) s $zobjval(,12,0,3,10)=$p(%mmmsqld(33),"\",1) s $zobjval(,13,0,3,11)=$p(%mmmsqld(33),"\",5) %0BBuncommitted ; s SQLCODE=0 g %0Bc %0BCdun i $zu(115,2)=1,$g(%mmmsqld(22))=1 { l -@%mmmsqld(23) } %0BBdun %0BAdun %0Bc s %ROWCOUNT='SQLCODE i $zu(115,2)=1,$g(%mmmsqld(22))=1 { l -@%mmmsqld(23) } q %0Berr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) g %0Bc %New(initvalue) public { Quit ##class(Stat.OmzetKlantProductMaand).%New($get(initvalue)) } %Construct(%this,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) Set $zobjval(,1,0,3,1)=$zu(115,10),$zobjval(,2,0,3,2)=0,$zobjval(,3,0,3,3)="",$zobjval(,4,0,3,4)="",$zobjval(,5,0,3,4)="",$zobjval(,6,0,3,5)="" Set $zobjval(,7,0,3,6)="",$zobjval(,8,0,3,7)="",$zobjval(,9,0,3,8)="",$zobjval(,10,0,3,9)="",$zobjval(,11,0,3,9)="",$zobjval(,12,0,3,10)="" Set $zobjval(,13,0,3,11)="" Quit 1 %NormalizeObject(%this) Set:$zobjval(,3,0,3,3)'="" $zobjval(,3,0,3,3)=(..FaktuurLijnenNormalize($zobjval(,3,0,3,3))) Set:$zobjval(,6,0,3,5)'="" $zobjval(,6,0,3,5)=(..MaandNormalize($zobjval(,6,0,3,5))) Set:$zobjval(,7,0,3,6)'="" $zobjval(,7,0,3,6)=(..MargeNormalize($zobjval(,7,0,3,6))) Set:$zobjval(,8,0,3,7)'="" $zobjval(,8,0,3,7)=(..OmzetNormalize($zobjval(,8,0,3,7))) Set:$zobjval(,9,0,3,8)'="" $zobjval(,9,0,3,8)=(..OmzetLijstPrijsNormalize($zobjval(,9,0,3,8))) Set:$zobjval(,12,0,3,10)'="" $zobjval(,12,0,3,10)=(..StuksNormalize($zobjval(,12,0,3,10))) Set:$zobjval(,13,0,3,11)'="" $zobjval(,13,0,3,11)=(..StuksKOMNormalize($zobjval(,13,0,3,11))) Quit 1 %ObjectModified(%this) public { Quit ''$zobjmod(,0) } %Oid(%this) Quit $zobjval(%this,0,,,,3) %Open(oid,concurrency,sc) public { Set concurrency=$get(concurrency,-1),sc=$get(sc,1) If $lg($g(oid))="" Set sc = $$Error^%apiOBJ(5813) Quit "" If concurrency = -1 Set concurrency=$zu(115,10) If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Set sc = $$Error^%apiOBJ(5828) Quit "" New %this Set class=$lg(oid,2) If class="" { Set class="Stat.OmzetKlantProductMaand",oid=$s(oid="":"",1:$lb($lg(oid),"Stat.OmzetKlantProductMaand")) } Else { Set class=$s(class[".":class,$e(class)'="%":"User."_class,1:"%Library."_$e(class,2,$l(class))) If "Stat.OmzetKlantProductMaand"'=class { Quit $zobjclassmethod(class,"%Open",oid,concurrency,.sc) } } s %this=$zobjoid($lg(oid,2),$lg(oid)) If %this'="" { If concurrency>$zobjval(,1,0,3,1) { Set sc=..%UpgradeConcurrency(concurrency) If ('sc) { Quit "" } } d %this.%IncrementCount() Quit %this } Set %this=$zobjnew("Stat.OmzetKlantProductMaand") Set $zobjval(,1,0,3,1)="",$zobjval(,1,0,3,1)=concurrency Set $zobjval(,5,0,3,4)="",$zobjval(,11,0,3,9)="" Set sc=..%Load($lg(oid)) If ('sc) Do ..%Close() Quit "" Set $zobjval(,2,0,3,2)=0 s $zobjmod(,0)=0 Quit %this } %OpenId(id,concurrency,sc) public { Set concurrency=$get(concurrency,-1),sc=$get(sc,1) Quit ##class(Stat.OmzetKlantProductMaand).%Open($s(id="":"",1:$lb(id_"")),.concurrency,.sc) } %PackageName() Quit "Stat" %PurgeIndices(idxlist) public { Set idxlist=$get(idxlist) Quit $$%PurgeIndices^Stat.OmzetKlantProductMaand.T1(idxlist) } %ReleaseLock(%this,locktype) public { Set id=..%Id() Quit:$get(id)="" $$Error^%apiOBJ(5812) If $get(locktype)="e" Do %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id) Quit 1 If $get(locktype)="s" Do %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id,1) Quit 1 Quit $$Error^%apiOBJ(5806,locktype) } %Reload(%this) public { If ..%Id()="" Quit $$Error^%apiOBJ(5813) Set cur=$zobjval(,1,0,3,1),$zobjval(,1,0,3,1)=0 Set $zobjval(,5,0,3,4)="",$zobjval(,11,0,3,9)="" Set sc=..%Load(..%Id()) Set $zobjval(,1,0,3,1)=cur If ('sc) Do ..%Close() Quit "" Set $zobjval(,2,0,3,2)=0 s $zobjmod(,0)=0 Quit 1 } %RollBack(%this) public { If $data(%objtxMODIFIED(+%this)) s $zobjval(,0)=%objtxMODIFIED(+%this) Quit 1 } %Save(%this,related) public { Set related=$get(related,1) Set $ZTrap="%SaveERR" New %objTX Set sc=1,traninit=0 If $zobjval(,2,0,3,2) Set sc=..%AddToSaveSet(1) Quit:('sc) sc Set intRef=+%this,objValue=$get(%objTX(1,intRef,1)),sc=..%SerializeObject(.objValue,1) Set:(+sc) %objTX(1,intRef,1)=objValue Quit sc If +$g(%objtxSTATUS)=0 { Set traninit=1 Kill %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxMODIFIED If '$zu(115,9) { Set %objtxSTATUS=1 } Else { Set %objtxSTATUS=2,%objtxLIST(+%this)="" TStart } } Set sc=..%AddToSaveSet(related+2) If ('sc) ZTrap "SG" Set intRef = $Order(%objTX(4,""),1,objRef) While intRef '= "" { If '$Data(%objTX(5,intRef)) { Set sc=objRef.%AddToSaveSet(related+2) Set %objTX(5,intRef) = objRef If ('sc) { ZTrap "SG" } } Kill %objTX(4,intRef) Set intRef = $Order(%objTX(4,""),1,objRef) } If '$data(%objTX(2)) s sc=1 GoTo %SaveCOMMIT Set %objTX(3)=0,intRef="" For Set intRef=$order(%objTX(2,intRef)) Quit:intRef="" If '$data(%objTX(1,intRef,2)) Set %objTX(3,$increment(%objTX(3)))=%objTX(1,intRef) Kill %objTX(2,intRef) For Quit:%objTX(3)<1 Set ptr=%objTX(3),objRef=%objTX(3,ptr),%objTX(3)=%objTX(3)-1 Kill %objTX(3,ptr) Set intRef=+objRef,objValue=$get(%objTX(1,intRef,1)),sc=objRef.%SerializeObject(.objValue) Do Set %objTX(1,intRef,1)=objValue Kill %objTX(1,intRef,3) s $zobjmod(objRef,0)=0 . If ('sc) Kill:$g(%objtxSTATUS)=2 %objtxLIST(+objRef),%objtxMODIFIED(+objRef) ZTrap "SG" . If $g(%objtxSTATUS)=2,objRef.%IsModified() s %objtxMODIFIED(+objRef)=$zobjval(objRef,0) . Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc="" Kill %objTX(1,intRef,3,intSucc),%objTX(1,intSucc,2,intRef) If '$data(%objTX(1,intSucc,2)) Set %objTX(3,$increment(%objTX(3)))=%objTX(1,intSucc) Kill %objTX(2,intSucc) For Set pserial=0 Do Quit:'pserial . Set intRef="" For Set intRef=$order(%objTX(2,intRef)) Quit:intRef="" Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred="" If %objTX(1,intPred,6)=1 Set objValue=$get(%objTX(1,intPred,1)),sc=(%objTX(1,intPred)).%SerializeObject(.objValue,1) If (+sc) Set pserial=1,%objTX(1,intPred,1)=objValue Do . . Set intSucc="" For Set intSucc=$order(%objTX(1,intPred,3,intSucc)) Quit:intSucc="" Kill %objTX(1,intPred,3,intSucc),%objTX(1,intSucc,2,intPred) If '$data(%objTX(1,intSucc,2)) Set %objTX(3,$i(%objTX(3)))=%objTX(1,intSucc) Kill %objTX(2,intSucc) . . For Quit:%objTX(3)<1 Set ptr=%objTX(3),objSerialize=%objTX(3,ptr),%objTX(3)=%objTX(3)-1 Kill %objTX(3,ptr) Set intSerialize=+objSerialize,objValue=$get(%objTX(1,intSerialize,1)),sc=objSerialize.%SerializeObject(.objValue) Do Set %objTX(1,intSerialize,1)=objValue Kill %objTX(1,intSerialize,3) s $zobjmod(objSerialize,0)=0 . . . If ('sc) Kill:$g(%objtxSTATUS)=2 %objtxLIST(+objSerialize),%objtxMODIFIED(+objSerialize) ZTrap "SG" . . . If $g(%objtxSTATUS)=2,objSerialize.%IsModified() s %objtxMODIFIED(+objSerialize)=$zobjval(objSerialize,0) . . . Set intSucc="" For Set intSucc=$order(%objTX(1,intSerialize,3,intSucc)) Quit:intSucc="" Kill %objTX(1,intSerialize,3,intSucc),%objTX(1,intSucc,2,intSerialize) If '$data(%objTX(1,intSucc,2)) Set %objTX(3,$i(%objTX(3)))=%objTX(1,intSucc) Kill %objTX(2,intSucc) If $data(%objTX(2))>2 Set sc=$$Error^%apiOBJ(5827) ZTrap "SG" %SaveCOMMIT If traninit { If $g(%objtxSTATUS)=1 { Kill %objtxSTATUS } Else { TCommit Kill %objtxSTATUS,%objtxLIST,%objtxOIDASSIGNED,%objtxMODIFIED Set sc=1 } } s $zobjmod(,0)=0 Quit sc %SaveERR Set $ZTrap="" If $extract($zerror,1,5)'="" Set sc=$$Error^%apiOBJ(5002,$ZE) Set:traninit sc=$select(+sc:$$%TRollBack^%occTransaction(),1:$$AppendStatus^%occSystem(sc,$$%TRollBack^%occTransaction())) Quit sc } %SaveData(%this,id) s id=..%Id() i id="" QUIT ..%SaveDataInsert(id) QUIT ..%SaveDataUpdate(id) %SaveDataInsert(%this,id) n %ROWID,%sc,SQLCODE,lock,temp1 Set lock=0,%sc=1 ;---&sql(INSERT INTO Stat.OmzetKlantProductMaand(FaktuurLijnen,Klant,Maand,Marge,Omzet,OmzetLijstPrijs,Product,Stuks,StuksKOM) ;--- VALUES (:i%FaktuurLijnen,:i%Klant,:i%Maand,:i%Marge,:i%Omzet,:i%OmzetLijstPrijs,:i%Product,:i%Stuks,:i%StuksKOM)) ;--- ** SQL PUBLIC Variables: SQLCODE Do %0Do i SQLCODE q $$Error^%apiOBJ(5521,SQLCODE_":"_$g(%msg)) s id=%ROWID s %sc=..%IdSet(id) QUIT:('%sc) %sc s:$g(%objtxSTATUS)=2 %objtxOIDASSIGNED(+%this)="" If $zobjval(,1,0,3,1)=4 If '$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id) Quit $$Error^%apiOBJ(5803) If $zobjval(,1,0,3,1)=3 If '$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id,1) Quit $$Error^%apiOBJ(5804) i lock d %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id) QUIT %sc %0Do n %i s %i(3)=$g($zobjval(,3,0,3,3)),%i(5)=$g($zobjval(,4,0,3,4)),%i(6)=$g($zobjval(,6,0,3,5)),%i(7)=$g($zobjval(,7,0,3,6)),%i(9)=$g($zobjval(,8,0,3,7)),%i(11)=$g($zobjval(,9,0,3,8)),%i(12)=$g($zobjval(,10,0,3,9)),%i(13)=$g($zobjval(,12,0,3,10)),%i(15)=$g($zobjval(,13,0,3,11)) s:'$d(%0snrc) %0snrc=+$g(^%SYS("sql","sys","no filer referential checks")) s %ROWID=$$%insert^Stat.OmzetKlantProductMaand.T1(.%i,$c(0,0,0,0)),%ROWCOUNT='SQLCODE q %SaveDataUpdate(%this,id) n %ROWID,%sc,SQLCODE,lock,notexist,temp1 Set lock=0,notexist=0,%sc=1 i $zobjval(,1,0,3,1)>1 s lock=$$%AcquireLock^Stat.OmzetKlantProductMaand.T1(id) i 'lock s %sc=$$Error^%apiOBJ(5803) q %sc ;---&sql(UPDATE Stat.OmzetKlantProductMaand SET FaktuurLijnen = :i%FaktuurLijnen, Klant = :i%Klant, Maand = :i%Maand, Marge = :i%Marge, Omzet = :i%Omzet, OmzetLijstPrijs = :i%OmzetLijstPrijs, Product = :i%Product, Stuks = :i%Stuks, StuksKOM = :i%StuksKOM WHERE %ID=:id) ;--- ** SQL PUBLIC Variables: SQLCODE, id Do %0Fo If SQLCODE=100 { s notexist=1 } ElseIf SQLCODE { Set %sc=$$Error^%apiOBJ(5521,SQLCODE_":"_$g(%msg)) } If notexist { If lock { Do %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id) } Quit ..%SaveDataInsert(id) } i lock d %ReleaseLock^Stat.OmzetKlantProductMaand.T1(id) QUIT %sc %0Fo n %mmmsqlc,%mmmsqld,%mmmsqlE,%mmmsqll,%mmmsqln,%mmmsqlp,%mmmsqlR,%mmmsqls,%mmmsqlt,%mmmsqlTS,%mmmsqlZ s $zt="%0Ferr",$ze="" s:'$d(%0snrc) %0snrc=+$g(^%SYS("sql","sys","no filer referential checks")) s %mmmsqld(21)=0 s %mmmsqld(22)="" s %mmmsqld(2)=$g($zobjval(,3,0,3,3)),%mmmsqld(4)=$g($zobjval(,4,0,3,4)),%mmmsqld(6)=$g($zobjval(,6,0,3,5)),%mmmsqld(8)=$g($zobjval(,7,0,3,6)),%mmmsqld(10)=$g($zobjval(,8,0,3,7)),%mmmsqld(12)=$g($zobjval(,9,0,3,8)),%mmmsqld(14)=$g($zobjval(,10,0,3,9)),%mmmsqld(16)=$g($zobjval(,12,0,3,10)),%mmmsqld(18)=$g($zobjval(,13,0,3,11)),%mmmsqld(20)=$g(id) n %data s SQLCODE=100 s %mmmsqlTS=0 If $zu(115,1)=1,'$TLEVEL { TSTART s %mmmsqlTS=1 } ; asl MOD# 2 s %mmmsqld(19)=%mmmsqld(20) s %mmmsqld(13)=$p(%mmmsqld(19),"||"),%mmmsqld(3)=$p(%mmmsqld(19),"||",2),%mmmsqld(5)=$p(%mmmsqld(19),"||",3) i %mmmsqld(13)'="",$d(^KSTPR(%mmmsqld(13))) i '$t e i 1]]%mmmsqld(13) i '$t,%mmmsqld(3)'="",$d(^KSTPR(%mmmsqld(13),%mmmsqld(3))) i '$t e i 1]]%mmmsqld(3) i '$t,%mmmsqld(5)'="",$d(^KSTPR(%mmmsqld(13),%mmmsqld(3),%mmmsqld(5))) i '$t e i 1]]%mmmsqld(5) i g %0FBdun s %mmmsqld(27)=$$%getlock^Stat.OmzetKlantProductMaand.T1(%mmmsqld(19)) i '%mmmsqld(27) s SQLCODE=-110 g %0Fc ; asl MOD# 3 s %mmmsqld(13)=$p(%mmmsqld(19),"||"),%mmmsqld(3)=$p(%mmmsqld(19),"||",2),%mmmsqld(5)=$p(%mmmsqld(19),"||",3) i %mmmsqld(13)'="",$d(^KSTPR(%mmmsqld(13))) i '$t e i 1]]%mmmsqld(13) i '$t,%mmmsqld(3)'="",$d(^KSTPR(%mmmsqld(13),%mmmsqld(3))) i '$t e i 1]]%mmmsqld(3) i '$t,%mmmsqld(5)'="",$d(^KSTPR(%mmmsqld(13),%mmmsqld(3),%mmmsqld(5))) i '$t e i 1]]%mmmsqld(5) i g %0FCdun k %data s %data(3)=$g(%mmmsqld(2)),%data(5)=$g(%mmmsqld(4)),%data(6)=$g(%mmmsqld(6)),%data(7)=$g(%mmmsqld(8)),%data(9)=$g(%mmmsqld(10)),%data(11)=$g(%mmmsqld(12)),%data(12)=$g(%mmmsqld(14)),%data(13)=$g(%mmmsqld(16)),%data(15)=$g(%mmmsqld(18)) d %update^Stat.OmzetKlantProductMaand.T1(%mmmsqld(19),$c(0,1,0,0),.%data,,'$g(%mmmsqlTS)) i 'SQLCODE i $i(%mmmsqld(21)) %0FCdun d:%mmmsqld(27)=1 %ReleaseLock^Stat.OmzetKlantProductMaand.T1(%mmmsqld(19)) g:SQLCODE<0 %0Fc %0FBdun %0FAdun %0Fc s %ROWCOUNT=+$g(%mmmsqld(21)) TCOMMIT:$g(%mmmsqlTS)&&($zu(115,1)=1)&&(SQLCODE'<0) If $g(%mmmsqlTS)&&($zu(115,1)=1)&&(SQLCODE<0) { TROLLBACK s %ROWCOUNT=0} q %0Ferr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) d:$g(%mmmsqld(27))=1 %ReleaseLock^Stat.OmzetKlantProductMaand.T1(%mmmsqld(19)) g %0Fc %SerializeObject(%this,serial,partial) Set partial=$get(partial,0) New %objOBJ,sc,id Set $Ztrap = "%SerializeObjectERR" If $zobjval(,2,0,3,2) { Set partial = 1 } ElseIf ('partial) { Set $zobjval(,2,0,3,2) = 1 } Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" } Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" } If $zobjval(,5,0,3,4)'="" { Set:'$data(%objTX(1,+$zobjval(,5,0,3,4),1)) %objTX(1,+$zobjval(,5,0,3,4))=$zobjval(,5,0,3,4),%objTX(1,+$zobjval(,5,0,3,4),1)=..KlantGetObject(1),%objTX(1,+$zobjval(,5,0,3,4),6)=1 Set %objOBJ(66)=$lg(%objTX(1,+$zobjval(,5,0,3,4),1)),$zobjval(,4,0,3,4)=%objOBJ(66) } Else { Set %objOBJ(66)=$zobjval(,4,0,3,4) } If %objOBJ(66)="" Quit $$Error^%apiOBJ(5659,"Klant") If $zobjval(,11,0,3,9)'="" { Set:'$data(%objTX(1,+$zobjval(,11,0,3,9),1)) %objTX(1,+$zobjval(,11,0,3,9))=$zobjval(,11,0,3,9),%objTX(1,+$zobjval(,11,0,3,9),1)=..ProductGetObject(1),%objTX(1,+$zobjval(,11,0,3,9),6)=1 Set %objOBJ(73)=$lg(%objTX(1,+$zobjval(,11,0,3,9),1)),$zobjval(,10,0,3,9)=%objOBJ(73) } Else { Set %objOBJ(73)=$zobjval(,10,0,3,9) } If %objOBJ(73)="" Quit $$Error^%apiOBJ(5659,"Product") s:$g(%objtxSTATUS)=2 %objtxLIST(+%this)=%this Set id=$lg(serial),sc=..%SaveData(.id) If ('sc) { Ztrap "SO" } Set serial=(..%Oid()) If 'partial { Set $zobjval(,2,0,3,2) = 0 } Quit sc %SerializeObjectERR Set $ZTrap="" If $extract($zerror,1,5)'="" Set sc=$$Error^%apiOBJ(5002,$ZE) If 'partial { Set $zobjval(,2,0,3,2) = 0 } Quit sc %AddToSaveSet(%this,depth,refresh,norecurseon) public { Set depth=$get(depth,3),refresh=$get(refresh,0),norecurseon=$get(norecurseon) If ($data(%objTX(1,+%this))) && ('refresh) Quit 1 Set sc=1,intOref=+%this If refresh { Set intPoref=$order(%objTX(1,intOref,2,"")) While intPoref'="" { Kill %objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set intPoref=$order(%objTX(1,intOref,2,intPoref)) } } Set serial=..%Oid(),%objTX(1,intOref)=%this,%objTX(1,intOref,1)=serial,%objTX(1,intOref,6)=1 If (serial '= "") && (depth<2) Quit 1 Set tDepth=$select(depth'=2:depth,1:1) If $zobjval(,5,0,3,4)'="" { If '$data(%objTX(1,+$zobjval(,5,0,3,4))) Set sc=..Klant.%AddToSaveSet(tDepth) Quit:('sc) sc Set intPoref=+$zobjval(,5,0,3,4) If $get(%objTX(1,intPoref,1))="" Set %objTX(1,intPoref,3,intOref)="",%objTX(1,intOref,2,intPoref)="" } If $zobjval(,11,0,3,9)'="" { If '$data(%objTX(1,+$zobjval(,11,0,3,9))) Set sc=..Product.%AddToSaveSet(tDepth) Quit:('sc) sc Set intPoref=+$zobjval(,11,0,3,9) If $get(%objTX(1,intPoref,1))="" Set %objTX(1,intPoref,3,intOref)="",%objTX(1,intOref,2,intPoref)="" } If ..%ObjectModified() Set %objTX(2,intOref)=1 exit Quit sc } %RemoveFromSaveSet(%this) public { If '($data(%objTX(1,+%this))) Quit 1 Set intRef=+%this Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc="" Kill %objTX(1,intSucc,2,intRef) Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred="" Kill %objTX(1,intPred,3,intRef) Kill %objTX(1,intRef),%objTX(2,intRef) Quit 1 } %SetModified(%this,value) public { s $zobjmod(,0)=value Quit 1 } %SortBegin(idxlist,excludeunique) public { Set idxlist=$get(idxlist),excludeunique=$get(excludeunique,0) QUIT 1 } %SortEnd(idxlist,commit) public { Set idxlist=$get(idxlist),commit=$get(commit,1) QUIT 1 } %UpgradeConcurrency(%this,concurrency) public { Set concurrency=$get(concurrency,0) If (concurrency > 4) || (concurrency < 0) || (concurrency '= (concurrency\1)) Quit $$Error^%apiOBJ(5828) Set current=$zobjval(,1,0,3,1) Quit:concurrencycurrent $zobjval(,1,0,3,1)=concurrency Quit 1 Set sc=..%AcquireLock($select(concurrency=3:"s",1:"e")) Quit:('sc) sc If current=3 Do ..%ReleaseLock("s") Set $zobjval(,1,0,3,1)=concurrency Quit 1 } %ValidateObject(%this,force) Set force=$get(force,0) New iv If $zobjval(,5,0,3,4)="",$zobjval(,4,0,3,4)="" Quit $$Error^%apiOBJ(5659,"Klant") If $zobjval(,11,0,3,9)="",$zobjval(,10,0,3,9)="" Quit $$Error^%apiOBJ(5659,"Product") If '(..%IsModified()) Quit 1 If $zobjmod(,3) Set iv=$zobjval(,3,0,3,3) If iv'="" Set iv=(..FaktuurLijnenIsValid(iv)) Quit:('iv) iv Set iv=$zobjval(,6,0,3,5) If iv="" Quit $$Error^%apiOBJ(5659,"Maand") If $zobjmod(,6) Set iv=$zobjval(,7,0,3,6) If iv'="" Set iv=(..MargeIsValid(iv)) Quit:('iv) iv If $zobjmod(,7) Set iv=$zobjval(,8,0,3,7) If iv'="" Set iv=(..OmzetIsValid(iv)) Quit:('iv) iv If $zobjmod(,8) Set iv=$zobjval(,9,0,3,8) If iv'="" Set iv=(..OmzetLijstPrijsIsValid(iv)) Quit:('iv) iv If $zobjmod(,10) Set iv=$zobjval(,12,0,3,10) If iv'="" Set iv=(..StuksIsValid(iv)) Quit:('iv) iv If $zobjmod(,11) Set iv=$zobjval(,13,0,3,11) If iv'="" Set iv=(..StuksKOMIsValid(iv)) Quit:('iv) iv Quit 1 zCumul(KLNr,PRNr,RefDatum,Periode,Piece) New I,Cumul,Maand,Rec,Einde Set:RefDatum'?1.N RefDatum=$ZDH($TR(RefDatum_"01"," .",""),8) ; Indien geen $H dan waarschijnlijk "YYYY.MM " formaat Set Maand = $$CALCDATE^vhDTyp(RefDatum,"M",-Periode) Set Maand=$TR($P($ZD(Maand,3),"-",1,2),"-",".")_" " Set Einde=$TR($P($ZD(RefDatum,3),"-",1,2),"-",".")_" " Set Cumul=0 For Set Maand=$O(^KSTKL(KLNr,PRNr,Maand)) Quit:Maand=""!(Maand]Einde) Do . Set Rec=^KSTKL(KLNr,PRNr,Maand) . ;W Maand," ",Rec,! . Set Cumul=Cumul+$P(Rec,"\",Piece) Quit Cumul zDatumGet(%this) Quit $ZDH($TR($zobjval(,6,0,3,5)_"01"," .",""),8) zFaktuurLijnenCumul12Get(%this) Quit ##class(Stat.OmzetKlantProductMaand).Cumul(..Klant.%Id(),..Product.%Id(),$zobjval(,6,0,3,5),12,2) zGeefCatalogusInfo(KLNr) Set CatalogusInfo = "" Set KorttekstPrefix = "" Set KorttekstPrefix = %CatalogusLijst.Next(KorttekstPrefix) While(KorttekstPrefix '= ""){ Set PRNrs = %CatalogusLijst.GetAt(KorttekstPrefix) Set AantalGekregen = ##class(Stat.OmzetKlantProductMaand).HeeftCatalogusGekregen(KLNr,PRNrs) If (AantalGekregen > 0){ Set CatalogusInfo = CatalogusInfo_KorttekstPrefix_"," } Set KorttekstPrefix = %CatalogusLijst.Next(KorttekstPrefix) } Quit CatalogusInfo zHeeftCatalogusGekregen(KLNr,PRNrsCatalogus) Set PRNrs = "" For i=1:1:$ListLength(PRNrsCatalogus) { Set PRNrs = PRNrs_$ListGet(PRNrsCatalogus,i) If (i '= $ListLength(PRNrsCatalogus)) Set PRNrs = PRNrs_", " } Set Query = "SELECT Count(*) As AantalGekregen FROM Prod.VoorraadBeweging where Product IN ("_PRNrs_") AND actie = 'U' and DerdeNr = "_KLNr set qHandler = $$ExecDynQuery^vhQUERYLIB(Query) do qHandler.Next() Set AantalGekregen = qHandler.Data("AantalGekregen") Quit $G(AantalGekregen) zMargeCumul12Get(%this) Quit ##class(Stat.OmzetKlantProductMaand).Cumul(..Klant.%Id(),..Product.%Id(),$zobjval(,6,0,3,5),12,4) zOmzetCumul12Get(%this) Quit ##class(Stat.OmzetKlantProductMaand).Cumul(..Klant.%Id(),..Product.%Id(),$zobjval(,6,0,3,5),12,3) zStuksCumul12Get(%this) Quit ##class(Stat.OmzetKlantProductMaand).Cumul(..Klant.%Id(),..Product.%Id(),$zobjval(,6,0,3,5),12,1) zTest() Set result=##class(%Library.ResultSet).%New("Stat.OmzetKlantProductMaand:VerschilOmzetProdGrp") Do result.Execute($$CALCDATE^vhDTyp($H,"M",-24),$$CALCDATE^vhDTyp($H,"M",-13),$$CALCDATE^vhDTyp($H,"M",-12),$$CALCDATE^vhDTyp($H,"M",-1)) For Quit:'result.Next() Do Set a = result.Data("KLNr") //. Write result.Data("KLNr")," ", result.Data("Naam")," ", result.Data("Regio")," ", result.Data("Vervallen")," ", result.Data("Codex")," ", result.Data("Uitz") //. write " voBlum:",result.Data("VoBlum")," huOL:",result.Data("HuOL"),! Quit zVerschilOmzetProdGrpExecute(qHandle,VorigVan,VorigTot,HuidigVan,HuidigTot) If (VorigVan["-") || (VorigVan["/") { Set VorigVan = $zdh(VorigVan,3) Set VorigTot = $zdh(VorigTot,3) Set HuidigVan = $zdh(HuidigVan,3) Set HuidigTot = $zdh(HuidigTot,3) } Set %VOKLId=0 Set %VOVorigVan=$$EXTDATE^vhDTyp(VorigVan,"DM4")_" " Set %VOVorigTot=$$EXTDATE^vhDTyp(VorigTot,"DM4")_" " Set %VOHuidigVan=$$EXTDATE^vhDTyp(HuidigVan,"DM4")_" " Set %VOHuidigTot=$$EXTDATE^vhDTyp(HuidigTot,"DM4")_" " Set %HuidigVan=$$CALCDATE^vhDTyp(HuidigVan,"M","FD") Set %HuidigTot=$$CALCDATE^vhDTyp(HuidigTot,"M","LD") Set %HuidigTotFD=$$CALCDATE^vhDTyp(HuidigTot,"M","FD") /// Indicator : 3 maand /// Gelieve aan de klantproductanalyse naast de daalindicator ook een stijgindicator toe te voegen. /// Eigenlijk gebeurt hier hetzelfde als bij daling. Als de klant negatief ingekleurd staat, /// kan het alsnog zijn dat de trend de laatste maand-3maanden positief is. /// Meer concreet: de indicator op 3-maand niveau moet de laatste drie volledige maanden /// vergelijken met diezelfde maanden een jaar tevoren. Set AantalMaandenIndicator = 3 Set Indic = AantalMaandenIndicator - 1 Set IVorigVan = $$CALCDATE^vhDTyp(VorigTot,"M",-Indic) Set IVorigTot = VorigTot Set IHuidigVan = $$CALCDATE^vhDTyp(HuidigTot,"M",-Indic) Set IHuidigTot = HuidigTot Set %VOIndicatorVorigVan=$$EXTDATE^vhDTyp(IVorigVan,"DM4")_" " Set %VOIndicatorVorigTot=$$EXTDATE^vhDTyp(IVorigTot,"DM4")_" " Set %VOIndicatorHuidigVan=$$EXTDATE^vhDTyp(IHuidigVan,"DM4")_" " Set %VOIndicatorHuidigTot=$$EXTDATE^vhDTyp(IHuidigTot,"DM4")_" " Set %IndicatorHuidigVan=$$CALCDATE^vhDTyp(IHuidigVan,"M","FD") Set %IndicatorHuidigTot=$$CALCDATE^vhDTyp(IHuidigTot,"M","LD") Set %IndicatorHuidigTotFD=$$CALCDATE^vhDTyp(IHuidigTot,"M","FD") Quit 1 zVerschilOmzetProdGrpClose(qHandle) Kill %VOKLId,%VORegion,%VOVorigVan,%VOVorigTot,%VOHuidigTot,%VOHuidigVan,%HuidigVan,%HuidigTot Quit 1 zVerschilOmzetProdGrpFetch(qHandle,Row,AtEnd) Set AtEnd=$get(AtEnd,0) Set D="\",U=";",Q="K" Set %VOKLId=$O(^KKL(%VOKLId)) //w %VOKLId,! If %VOKLId="" Do Quit 1 . Set Row="" . Set AtEnd=1 Else Do . Set KLNr=$P(^KKL(%VOKLId,0),"\") Kill SumOmzetVorig,SumOmzetHuidig,SumMargeHuidig,SumMargeVorig Kill IndicatorSumOmzetVorig,IndicatorSumOmzetHuidig,IndicatorSumMargeVorig,IndicatorSumMargeHuidig ///Indicator Set PRNr=0 Set PRNr=$O(^KSTKL(KLNr,PRNr)) While (PRNr '= ""){ Set Vorig=$$KLANT^STAT(KLNr,PRNr,%VOVorigVan,%VOVorigTot,"3,4") Set Huidig=$$KLANT^STAT(KLNr,PRNr,%VOHuidigVan,%VOHuidigTot,"3,4") Set ProdGrp=$$gpvProdGrp^Prod.Product.KPRPropViaNr(PRNr) Set:ProdGrp="" ProdGrp="REST" Set SumOmzetVorig(ProdGrp)=$G(SumOmzetVorig(ProdGrp))+$P(Vorig,D,1) Set SumOmzetHuidig(ProdGrp)=$G(SumOmzetHuidig(ProdGrp))+$P(Huidig,D,1) Set SumMargeVorig(ProdGrp)=$G(SumMargeVorig(ProdGrp))+$P(Vorig,D,2) Set SumMargeHuidig(ProdGrp)=$G(SumMargeHuidig(ProdGrp))+$P(Huidig,D,2) ///Indicator Set IndicatorVorig=$$KLANT^STAT(KLNr,PRNr,%VOIndicatorVorigVan,%VOIndicatorVorigTot,"3,4") Set IndicatorHuidig=$$KLANT^STAT(KLNr,PRNr,%VOIndicatorHuidigVan,%VOIndicatorHuidigTot,"3,4") Set IndicatorSumOmzetVorig(ProdGrp)=$G(IndicatorSumOmzetVorig(ProdGrp))+$P(IndicatorVorig,D,1) Set IndicatorSumOmzetHuidig(ProdGrp)=$G(IndicatorSumOmzetHuidig(ProdGrp))+$P(IndicatorHuidig,D,1) Set IndicatorSumMargeVorig(ProdGrp)=$G(IndicatorSumMargeVorig(ProdGrp))+$P(IndicatorVorig,D,2) Set IndicatorSumMargeHuidig(ProdGrp)=$G(IndicatorSumMargeHuidig(ProdGrp))+$P(IndicatorHuidig,D,2) Set PRNr=$O(^KSTKL(KLNr,PRNr)) } Set Klant=##class(Derde.Klant.Klant).%OpenId(KLNr) Set LevAdr=$$DEFAULT^LEVADR(KLNr) Set (OmzetHuidigList,OmzetVorigList,MargeVorigList,MargeHuidigList)="" Set (IOmzetHuidigList,IOmzetVorigList,IVorigList,IHuidigList)="" ///Indicator Set Vervallen=$P($$WAARDIG^KREDIET(KLNr,"D"),D,6) ; Aantal dagen vervallen fakturen Set Vervallen=$S(Vervallen&&($H-Vervallen>0):$H-Vervallen,1:"") Set HeeftUtz=$S($D(^KLPUTZ("N",KLNr))>1:"+",1:"") Set AantalBezoeken=##class(BL.Derde.Agenda.Agenda).AantalBezoeken(KLNr,%HuidigVan,%HuidigTot) Set LaatsteBezoek=##class(BL.Derde.Agenda.Agenda).LaatsteBezoek(KLNr) If (LaatsteBezoek '= "") Set LaatsteBezoek=$zd(LaatsteBezoek,3) Set AantalKlachtenJr=##class(Derde.Klacht).AantalKlachten("K",KLNr,%HuidigVan,%HuidigTot) Set AantalKlachtenMnd=##class(Derde.Klacht).AantalKlachten("K",KLNr,%HuidigTotFD,%HuidigTot) Set Trend=##class(BL.Derde.Klant.Main).OmzetTrend(KLNr) Set Kwantitatief=$$DisplayKwantitatief^KLANT5(KLNr) Set Kwantitatief=$LG(Kwantitatief,1)_" "_$LG(Kwantitatief,2) Set Kwalitatief=$$DisplayKwalitatief^KLANT5(KLNr) Set Kwalitatief=$LG(Kwalitatief,1)_" "_$LG(Kwalitatief,2) Set Taal = $P(^KKL(%VOKLId,0),"\",9) Do ##class(Stat.OmzetKlantProductMaand).ZoekPRNrsCatalogi() Set CatalogusInfo = ##class(Stat.OmzetKlantProductMaand).GeefCatalogusInfo(KLNr) Set Row=$LB(KLNr,Klant.Naam,Klant.Telefoon1,$P(LevAdr,"\",5),$P(LevAdr,"\",6),$P(LevAdr,"\",7),Taal,Klant.Sektor,Klant.Aktiviteit,Kwantitatief,Kwalitatief,Klant.CommNonActief,Vervallen,AantalBezoeken,LaatsteBezoek,AantalKlachtenJr,AantalKlachtenMnd,Klant.Prijsklasse,HeeftUtz,Trend) Set ProdGrp="" Set ProdGrp=$O(^RES("PRODUKT","PI","PRODUKTGROEP","D",ProdGrp)) While (ProdGrp '= ""){ Set VolgNr=$P(^RES("PRODUKT","PI","PRODUKTGROEP","D",ProdGrp),"`") Set $LI(OmzetVorigList,VolgNr)=$LG(OmzetVorigList,VolgNr)+$G(SumOmzetVorig(ProdGrp)) Set $LI(OmzetHuidigList,VolgNr)=$LG(OmzetHuidigList,VolgNr)+$G(SumOmzetHuidig(ProdGrp)) Set $LI(MargeVorigList,VolgNr)=$LG(MargeVorigList,VolgNr)+$G(SumMargeVorig(ProdGrp)) Set $LI(MargeHuidigList,VolgNr)=$LG(MargeHuidigList,VolgNr)+$G(SumMargeHuidig(ProdGrp)) /// Indicator Set $LI(IOmzetVorigList,VolgNr)=$LG(IOmzetVorigList,VolgNr)+$G(IndicatorSumOmzetVorig(ProdGrp)) Set $LI(IOmzetHuidigList,VolgNr)=$LG(IOmzetHuidigList,VolgNr)+$G(IndicatorSumOmzetHuidig(ProdGrp)) Set $LI(IMargeVorigList,VolgNr)=$LG(IMargeVorigList,VolgNr)+$G(IndicatorSumMargeVorig(ProdGrp)) Set $LI(IMargeHuidigList,VolgNr)=$LG(IMargeHuidigList,VolgNr)+$G(IndicatorSumMargeHuidig(ProdGrp)) Set ProdGrp=$O(^RES("PRODUKT","PI","PRODUKTGROEP","D",ProdGrp)) } Set Row=Row_OmzetVorigList_OmzetHuidigList_MargeVorigList_MargeHuidigList /*Set IOmzetVorigList = OmzetVorigList Set IOmzetHuidigList = OmzetHuidigList Set IMargeVorigList = MargeVorigList Set IMargeHuidigList = MargeHuidigList */ //Set Row=Row_OmzetVorigList_OmzetHuidigList_MargeVorigList_MargeHuidigList Set Row=Row_IOmzetVorigList_IOmzetHuidigList_IMargeVorigList_IMargeHuidigList Set Row=Row_$LB(CatalogusInfo) Kill %CatalogusLijst Kill IOmzetVorigList Kill IOmzetHuidigList Kill IMargeVorigList Kill IMargeHuidigList Quit 1 zZoekPRNrsCatalogi() Set KorttekstPrefixen = ##class(%Library.ArrayOfDataTypes).%New() Do KorttekstPrefixen.SetAt(1,"CVH.CA") Do KorttekstPrefixen.SetAt(1,"CBL.CA") Set ProductService = ##class(APPS.PM.ProductService).%New() Set Criteria=##class(APPS.PM.dto.ZoekCriteria).%New() Set Criteria.SoortProductID=##class(APPS.PM.enu.SoortProductID).Korttekst() Set Criteria.ExacteKorttekst = 0 Kill %CatalogusLijst Set %CatalogusLijst = ##class(%Library.ArrayOfDataTypes).%New() Set KorttekstPrefix = "" Set KorttekstPrefix = KorttekstPrefixen.Next(KorttekstPrefix) While(KorttekstPrefix '= ""){ Set Criteria.ProductID = KorttekstPrefix Set ProductenLijst = ProductService.ZoekProducten(Criteria).HerkendeProducten For i=1:1:ProductenLijst.Count() { Set Korttekst = ProductenLijst.GetAt(i).Korttekst Set PRNr = ProductenLijst.GetAt(i).PRNr Set Jaar = $Extract(Korttekst,7,8) Set PRNrs = %CatalogusLijst.GetAt(KorttekstPrefix_Jaar)_$LB(ProductenLijst.GetAt(i).PRNr) Do %CatalogusLijst.SetAt(PRNrs,KorttekstPrefix_Jaar) } Set KorttekstPrefix = KorttekstPrefixen.Next(KorttekstPrefix) } Quit %ConcurrencyIsModified(%this) Quit $zobjmod(,1) %ConcurrencyIsValid(value) public { Quit 1 } %ConcurrencySetModified(%this,newvalue) public { Set $zobjmod(,1)=newvalue Quit 1 } %IsInSaveIsModified(%this) Quit $zobjmod(,2) %IsInSaveIsValid(value) public { Quit 1 } %IsInSaveSetModified(%this,newvalue) public { Set $zobjmod(,2)=newvalue Quit 1 } zDatumDisplayToLogical(%val) Quit $s(%val="":"",1:$zdh(%val,,,5,80,20,,,"")) zDatumIsModified(%this) Quit $zobjmod(,0) zDatumIsValidDT(%val) Quit $isvalidnum(%val,0,,) zDatumLogicalToDisplay(%val) Quit $s(%val="":"",1:$zd(%val,,,4)) zDatumLogicalToOdbc(%val) Set %val=$get(%val) Quit $s(%val="":"",1:$zd(%val,3)) zDatumNormalize(%val) Quit %val\1 zDatumOdbcToLogical(%val) Set %val=$get(%val) Quit $s(%val="":"",1:$zdh(%val,3,,,,,,,"error: '"_%val_"' is an invalid date value")) zDatumSetModified(%this,newvalue) public { Set $zobjmod(,0)=newvalue Quit 1 } zFaktuurLijnenDisplayToLogical(%val) Quit $in(%val,"","") zFaktuurLijnenIsModified(%this) Quit $zobjmod(,3) zFaktuurLijnenIsValid(value) public { Quit $s(##class(Stat.OmzetKlantProductMaand).FaktuurLijnenIsValidDT(value):1,1:$$Error^%apiOBJ(5802,"Stat.OmzetKlantProductMaand.FaktuurLijnen")) } zFaktuurLijnenIsValidDT(%val) Quit $isvalidnum(%val,0,,) zFaktuurLijnenLogicalToDisplay(%val) Quit %val zFaktuurLijnenNormalize(%val) Quit %val\1 zFaktuurLijnenSetModified(%this,newvalue) public { Set $zobjmod(,3)=newvalue Quit 1 } zFaktuurLijnenCumul12DisplayToL(%val) Quit $in(%val,"","") zFaktuurLijnenCumul12IsModified(%this) Quit $zobjmod(,0) zFaktuurLijnenCumul12IsValidDT(%val) Quit $isvalidnum(%val,,,) zFaktuurLijnenCumul12LogicalToD(%val) Quit %val zFaktuurLijnenCumul12Normalize(%val) Quit +%val zFaktuurLijnenCumul12SetModifie(%this,newvalue) public { Set $zobjmod(,0)=newvalue Quit 1 } zKlantGetObject(%this,force) public { Set force=$get(force,0) Quit:$zobjval(,5,0,3,4)="" $s($zobjval(,4,0,3,4)="":"",1:$lb($zobjval(,4,0,3,4)_"")) Quit:(+..Klant.%GetSwizzleObject(force,.oid)) oid Quit "" Quit "" } zKlantGetObjectId(%this,force) public { Set force=$get(force,0) Quit $lg(..KlantGetObject(force)) } zKlantGetSwizzled(%this) public { Set oid=$s($zobjval(,4,0,3,4)="":"",1:$lb($zobjval(,4,0,3,4)_"")) Set oref=##class(Derde.Klant.Klant).%Open(oid) If oref="" Quit "" Set $zobjval(,5,0,0,4)=oref,$zobjval(,4,0,0,4)="" Set isusercount=''$g($zobjval(oref,0,,,,5)) Do oref.%Close() Set $zobjval(oref,0,,,,5)=isusercount Quit oref } zKlantIsModified(%this) Quit $zobjmod(,4) zKlantIsValid(value) public { Quit 1 } zKlantNewObject(%this) public { Set newobject=##class(Derde.Klant.Klant).%New("") If newobject="" Quit "" Set ..Klant=newobject Set isusercount=''$get($zobjval(newobject,0,,,,5)) Do newobject.%Close() Set $zobjval(newobject,0,,,,5)=isusercount Quit newobject } zKlantSet(%this,newvalue) public { If newvalue'="",'$isobject(newvalue) Quit $$Error^%apiOBJ(5807,newvalue) Set $zobjval(,5,0,3,4)=newvalue,$zobjval(,4,0,3,4)="" Quit 1 } zKlantSetModified(%this,newvalue) public { Set $zobjmod(,4)=newvalue Quit 1 } zKlantSetObject(%this,newvalue) public { If $zobjval(,5,0,3,4)'="" Do ..KlantUnSwizzle(0) Set $zobjval(,4,0,3,4)=$lg(newvalue),$zobjval(,5,0,3,4)="" Quit 1 } zKlantSetObjectId(%this,newid) public { Quit ..KlantSetObject($s(newid="":"",1:$lb(newid_""))) } zKlantUnSwizzle(%this,force) public { Set force=$get(force,0) Quit:$zobjval(,5,0,3,4)="" 1 Set modbit=$zobjmod(,4) Set sc=..Klant.%GetSwizzleObject(force,.newvalue) Quit:('sc) sc Set $zobjval(,4,0,3,4)=$lg(newvalue),$zobjval(,5,0,3,4)="" Set $zobjmod(,4)=modbit Quit 1 } zMaandDisplayToLogical(%val) Quit %val zMaandIsModified(%this) Quit $zobjmod(,5) zMaandIsValid(value) public { Quit 1 } zMaandIsValidDT(%val) Quit 1 zMaandLogicalToDisplay(%val) Quit %val zMaandNormalize(%val) Quit $e(%val,1,50) zMaandSetModified(%this,newvalue) public { Set $zobjmod(,5)=newvalue Quit 1 } zMargeDisplayToLogical(%val) Quit $in(%val,"","") zMargeIsModified(%this) Quit $zobjmod(,6) zMargeIsValid(value) public { Quit $s(##class(Stat.OmzetKlantProductMaand).MargeIsValidDT(value):1,1:$$Error^%apiOBJ(5802,"Stat.OmzetKlantProductMaand.Marge")) } zMargeIsValidDT(%val) Quit $isvalidnum(%val,,,) zMargeLogicalToDisplay(%val) Quit %val zMargeNormalize(%val) Quit +%val zMargeSetModified(%this,newvalue) public { Set $zobjmod(,6)=newvalue Quit 1 } zMargeCumul12DisplayToLogical(%val) Quit $in(%val,"","") zMargeCumul12IsModified(%this) Quit $zobjmod(,0) zMargeCumul12IsValidDT(%val) Quit $isvalidnum(%val,,,) zMargeCumul12LogicalToDisplay(%val) Quit %val zMargeCumul12Normalize(%val) Quit +%val zMargeCumul12SetModified(%this,newvalue) public { Set $zobjmod(,0)=newvalue Quit 1 } zOmzetDisplayToLogical(%val) Quit $in(%val,"","") zOmzetIsModified(%this) Quit $zobjmod(,7) zOmzetIsValid(value) public { Quit $s(##class(Stat.OmzetKlantProductMaand).OmzetIsValidDT(value):1,1:$$Error^%apiOBJ(5802,"Stat.OmzetKlantProductMaand.Omzet")) } zOmzetIsValidDT(%val) Quit $isvalidnum(%val,,,) zOmzetLogicalToDisplay(%val) Quit %val zOmzetNormalize(%val) Quit +%val zOmzetSetModified(%this,newvalue) public { Set $zobjmod(,7)=newvalue Quit 1 } zOmzetCumul12DisplayToLogical(%val) Quit $in(%val,"","") zOmzetCumul12IsModified(%this) Quit $zobjmod(,0) zOmzetCumul12IsValidDT(%val) Quit $isvalidnum(%val,,,) zOmzetCumul12LogicalToDisplay(%val) Quit %val zOmzetCumul12Normalize(%val) Quit +%val zOmzetCumul12SetModified(%this,newvalue) public { Set $zobjmod(,0)=newvalue Quit 1 } zOmzetLijstPrijsDisplayToLogica(%val) Quit $in(%val,"","") zOmzetLijstPrijsIsModified(%this) Quit $zobjmod(,8) zOmzetLijstPrijsIsValid(value) public { Quit $s(##class(Stat.OmzetKlantProductMaand).OmzetLijstPrijsIsValidDT(value):1,1:$$Error^%apiOBJ(5802,"Stat.OmzetKlantProductMaand.OmzetLijstPrijs")) } zOmzetLijstPrijsIsValidDT(%val) Quit $isvalidnum(%val,,,) zOmzetLijstPrijsLogicalToDispla(%val) Quit %val zOmzetLijstPrijsNormalize(%val) Quit +%val zOmzetLijstPrijsSetModified(%this,newvalue) public { Set $zobjmod(,8)=newvalue Quit 1 } zProductGetObject(%this,force) public { Set force=$get(force,0) Quit:$zobjval(,11,0,3,9)="" $s($zobjval(,10,0,3,9)="":"",1:$lb($zobjval(,10,0,3,9)_"")) Quit:(+..Product.%GetSwizzleObject(force,.oid)) oid Quit "" Quit "" } zProductGetObjectId(%this,force) public { Set force=$get(force,0) Quit $lg(..ProductGetObject(force)) } zProductGetSwizzled(%this) public { Set oid=$s($zobjval(,10,0,3,9)="":"",1:$lb($zobjval(,10,0,3,9)_"")) Set oref=##class(Prod.Product).%Open(oid) If oref="" Quit "" Set $zobjval(,11,0,0,9)=oref,$zobjval(,10,0,0,9)="" Set isusercount=''$g($zobjval(oref,0,,,,5)) Do oref.%Close() Set $zobjval(oref,0,,,,5)=isusercount Quit oref } zProductIsModified(%this) Quit $zobjmod(,9) zProductIsValid(value) public { Quit 1 } zProductNewObject(%this) public { Set newobject=##class(Prod.Product).%New("") If newobject="" Quit "" Set ..Product=newobject Set isusercount=''$get($zobjval(newobject,0,,,,5)) Do newobject.%Close() Set $zobjval(newobject,0,,,,5)=isusercount Quit newobject } zProductSet(%this,newvalue) public { If newvalue'="",'$isobject(newvalue) Quit $$Error^%apiOBJ(5807,newvalue) Set $zobjval(,11,0,3,9)=newvalue,$zobjval(,10,0,3,9)="" Quit 1 } zProductSetModified(%this,newvalue) public { Set $zobjmod(,9)=newvalue Quit 1 } zProductSetObject(%this,newvalue) public { If $zobjval(,11,0,3,9)'="" Do ..ProductUnSwizzle(0) Set $zobjval(,10,0,3,9)=$lg(newvalue),$zobjval(,11,0,3,9)="" Quit 1 } zProductSetObjectId(%this,newid) public { Quit ..ProductSetObject($s(newid="":"",1:$lb(newid_""))) } zProductUnSwizzle(%this,force) public { Set force=$get(force,0) Quit:$zobjval(,11,0,3,9)="" 1 Set modbit=$zobjmod(,9) Set sc=..Product.%GetSwizzleObject(force,.newvalue) Quit:('sc) sc Set $zobjval(,10,0,3,9)=$lg(newvalue),$zobjval(,11,0,3,9)="" Set $zobjmod(,9)=modbit Quit 1 } zStuksDisplayToLogical(%val) Quit $in(%val,"","") zStuksIsModified(%this) Quit $zobjmod(,10) zStuksIsValid(value) public { Quit $s(##class(Stat.OmzetKlantProductMaand).StuksIsValidDT(value):1,1:$$Error^%apiOBJ(5802,"Stat.OmzetKlantProductMaand.Stuks")) } zStuksIsValidDT(%val) Quit $isvalidnum(%val,0,,) zStuksLogicalToDisplay(%val) Quit %val zStuksNormalize(%val) Quit %val\1 zStuksSetModified(%this,newvalue) public { Set $zobjmod(,10)=newvalue Quit 1 } zStuksCumul12DisplayToLogical(%val) Quit $in(%val,"","") zStuksCumul12IsModified(%this) Quit $zobjmod(,0) zStuksCumul12IsValidDT(%val) Quit $isvalidnum(%val,,,) zStuksCumul12LogicalToDisplay(%val) Quit %val zStuksCumul12Normalize(%val) Quit +%val zStuksCumul12SetModified(%this,newvalue) public { Set $zobjmod(,0)=newvalue Quit 1 } zStuksKOMDisplayToLogical(%val) Quit $in(%val,"","") zStuksKOMIsModified(%this) Quit $zobjmod(,11) zStuksKOMIsValid(value) public { Quit $s(##class(Stat.OmzetKlantProductMaand).StuksKOMIsValidDT(value):1,1:$$Error^%apiOBJ(5802,"Stat.OmzetKlantProductMaand.StuksKOM")) } zStuksKOMIsValidDT(%val) Quit $isvalidnum(%val,0,,) zStuksKOMLogicalToDisplay(%val) Quit %val zStuksKOMNormalize(%val) Quit %val\1 zStuksKOMSetModified(%this,newvalue) public { Set $zobjmod(,11)=newvalue Quit 1 } zExtentExecute(%qHandle) [ SQLCODE,array,c1 ] public { New SQLCODE,array,c1 Set sc=1 s %qHandle=$i(%objcn) ;---&sql(DECLARE Q27 CURSOR FOR ;--- SELECT ID FROM Stat.OmzetKlantProductMaand) ;--- ** SQL PUBLIC Variables: SQLCODE ;---&sql(OPEN Q27) ;--- ** SQL PUBLIC Variables: SQLCODE Do %Q270o If SQLCODE Set sc=$$Error^%apiOBJ(5821,"SQLCODE = "_SQLCODE) Quit sc } zExtentClose(%qHandle) [ SQLCODE,array,c1 ] public { New SQLCODE,array,c1 ;---&sql(CLOSE Q27) ;--- ** SQL PUBLIC Variables: SQLCODE Do %Q270c Kill %objcsc(%qHandle),%objcsp(%qHandle),%objcss(%qHandle),%objcst(%qHandle),%objcsl(%qHandle),%objcsR(%qHandle),%objcsZ(%qHandle),%objcsd(%qHandle) Quit $select('SQLCODE:1,1:$$Error^%apiOBJ(5521,SQLCODE_" "_$get(%msg))) } zExtentFetch(%qHandle,Row,AtEnd) [ SQLCODE,array,c1 ] public { New SQLCODE,array,c1 Set AtEnd=$get(AtEnd,0) Set Row="",AtEnd=0 ;---&sql(FETCH Q27 INTO :c1) ;--- ** SQL PUBLIC Variables: SQLCODE, c1 Do %0Lo If 'SQLCODE { Set Row=$lb(c1) } Else { Set AtEnd=1 } Quit $select('SQLCODE:1,SQLCODE=100:1,1:$$Error^%apiOBJ(5521,SQLCODE_" "_$get(%msg))) } zExtentFetchODBC(%qHandle,array,%qacn,AtEnd,SQLCODE) [ SQLCODE,array,c1 ] public { New c1 Set AtEnd=$get(AtEnd,0) Quit:$get(%qacn)="" $$Error^%apiOBJ(6024) Kill array(%qacn) Set SQLCODE=0 Set AtEnd=0 ;---&sql(FETCH Q27 INTO :array(%qacn,1)) ;--- ** SQL PUBLIC Variables: SQLCODE, array Do %0Mo If SQLCODE=100 { Set AtEnd=1 } ElseIf SQLCODE { Quit $$Error^%apiOBJ(5521,SQLCODE_":"_$get(%msg)) } Quit 1 } zExtentFetchRows(%qHandle,FetchCount,RowSet,ReturnCount,AtEnd) [ SQLCODE,array,c1 ] public { New SQLCODE,array,c1 Set FetchCount=$get(FetchCount,0) Set RowSet="",ReturnCount=0,AtEnd=0 For { ;---&sql(FETCH Q27 INTO :c1) ;--- ** SQL PUBLIC Variables: SQLCODE, c1 Do %0No If 'SQLCODE { Set RowSet=RowSet_$lb(c1),ReturnCount=ReturnCount+1 Quit:(ReturnCount=FetchCount)||(($l(RowSet)+($l(RowSet)\ReturnCount))>24000) } Else { Set AtEnd=1 Quit } } Quit $select('SQLCODE:1,SQLCODE=100:1,1:$$Error^%apiOBJ(5521,SQLCODE_" "_$g(%msg))) } q %Q270o s SQLCODE=$s($g(%objcsc(%qHandle)):-101,1:0) q:SQLCODE'=0 s %objcsd(%qHandle,7)=0 s %objcsd(%qHandle,8)=0,%objcsd(%qHandle,9)="" s %objcsc(%qHandle)=1 q %0Hfirst ; asl MOD# 2 s %objcsd(%qHandle,3)="" %0HBk1 s %objcsd(%qHandle,3)=$o(^KSTPR(%objcsd(%qHandle,3))) i %objcsd(%qHandle,3)="" g %0HBdun i 1]]%objcsd(%qHandle,3) g %0HBk1 s %objcsd(%qHandle,4)="" %0HBk2 s %objcsd(%qHandle,4)=$o(^KSTPR(%objcsd(%qHandle,3),%objcsd(%qHandle,4))) i %objcsd(%qHandle,4)="" g %0HBk1 i 1]]%objcsd(%qHandle,4) g %0HBk2 s %objcsd(%qHandle,5)="" %0HBk3 s %objcsd(%qHandle,5)=$o(^KSTPR(%objcsd(%qHandle,3),%objcsd(%qHandle,4),%objcsd(%qHandle,5))) i %objcsd(%qHandle,5)="" g %0HBk2 i 1]]%objcsd(%qHandle,5) g %0HBk3 s %objcsd(%qHandle,1)=(%objcsd(%qHandle,3))_"||"_(%objcsd(%qHandle,4))_"||"_(%objcsd(%qHandle,5)) s %objcsd(%qHandle,6)=%objcsd(%qHandle,1) g:$zu(115,2)=0 %0HBuncommitted i $zu(115,2)=1 l +^KSTPR($p(%objcsd(%qHandle,1),"||",1),$p(%objcsd(%qHandle,1),"||",2),$p(%objcsd(%qHandle,1),"||",3))#"S":$zu(115,4) i $t { s %objcsd(%qHandle,8)=1,%objcsd(%qHandle,9)=$name(^KSTPR($p(%objcsd(%qHandle,1),"||",1),$p(%objcsd(%qHandle,1),"||",2),$p(%objcsd(%qHandle,1),"||",3)))_"#""SI""" } else { s SQLCODE=-114,%msg="Unable to acquire shared lock on table Stat.OmzetKlantProductMaand for RowID value: "_%objcsd(%qHandle,1) q } ; asl MOD# 3 s %objcsd(%qHandle,3)=$p(%objcsd(%qHandle,1),"||"),%objcsd(%qHandle,4)=$p(%objcsd(%qHandle,1),"||",2),%objcsd(%qHandle,5)=$p(%objcsd(%qHandle,1),"||",3) i %objcsd(%qHandle,3)'="",$d(^KSTPR(%objcsd(%qHandle,3))) i '$t e i 1]]%objcsd(%qHandle,3) i '$t,%objcsd(%qHandle,4)'="",$d(^KSTPR(%objcsd(%qHandle,3),%objcsd(%qHandle,4))) i '$t e i 1]]%objcsd(%qHandle,4) i '$t,%objcsd(%qHandle,5)'="",$d(^KSTPR(%objcsd(%qHandle,3),%objcsd(%qHandle,4),%objcsd(%qHandle,5))) i '$t e i 1]]%objcsd(%qHandle,5) i g %0HCdun s %objcsd(%qHandle,6)=%objcsd(%qHandle,1) %0HBuncommitted ; s:$g(SQLCODE)'<0 SQLCODE=0 s %ROWCOUNT=$i(%objcsd(%qHandle,7)) s %objcsc(%qHandle)=10 q %Q270f i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } i %objcsc(%qHandle)=100 { s SQLCODE=100 q } s SQLCODE=0 s $zt="%0Herr" s $ze="" g %0Hfirst:%objcsc(%qHandle)=1 %0HCdun i $zu(115,2)=1,$g(%objcsd(%qHandle,8))=1 { l -@%objcsd(%qHandle,9) } g %0HBk3 %0HBdun %0HAdun s %ROWCOUNT=%objcsd(%qHandle,7),SQLCODE=100,%objcsc(%qHandle)=100 q %Q270c i '$g(%objcsc(%qHandle)) { s SQLCODE=-102 q } s %ROWCOUNT=+$g(%objcsd(%qHandle,7)) i $zu(115,2)=1,$g(%objcsd(%qHandle,8))=1 { l -@%objcsd(%qHandle,9) } k %objcsd(%qHandle),%objcsc(%qHandle) s SQLCODE=0 q %0Herr s $zt="" d SQLRunTimeError^%apiSQL($ze,.SQLCODE,.%msg) s %objcsc(%qHandle)=100 q %0Lo d %Q270f q:SQLCODE'=0 s c1=%objcsd(%qHandle,6) q %0Mo d %Q270f q:SQLCODE'=0 s array(%qacn,1)=%objcsd(%qHandle,6) q %0No d %Q270f q:SQLCODE'=0 s c1=%objcsd(%qHandle,6) q zExtentGetInfo(colinfo,parminfo,idinfo,%qHandle,extoption,extinfo) public { Set extoption=$get(extoption,0) s parminfo="" s:'($d(^oddCOM("Stat.OmzetKlantProductMaand","q","Extent",21),clientinfo)#2)&&'$s($d(^(2),clientinfo)#2:$d(^oddCOM(clientinfo,"q","Extent",21),clientinfo)#2||($d(^oddDEF(clientinfo,"q","Extent",21),clientinfo)#2),1:$d(^oddDEF("Stat.OmzetKlantProductMaand","q","Extent",21),clientinfo)#2) clientinfo=$g(^%qCacheObjectKey(1,"q",21)) Set:extoption extinfo=$s($d(^oddCOM("Stat.OmzetKlantProductMaand","q","Extent",38))#2:^(38),$d(^oddCOM($g(^(2),"Stat.OmzetKlantProductMaand"),"q","Extent",38))#2:^(38),1:$s($d(^oddDEF($g(^(2),"Stat.OmzetKlantProductMaand"),"q","Extent",38))#2:^(38),1:$g(^%qCacheObjectKey(1,"q",38)))) If clientinfo'="" Set colinfo=$listget(clientinfo,1),parminfo=$listget(clientinfo,2),idinfo=$listget(clientinfo,3) Quit 1 Set colinfo="",parminfo="",idinfo=$listbuild(0) Set sc=$$externaltype^%apiOLE("%Library.CacheString",.exttypes,"0") Quit:('sc) sc s:'($d(^oddCOM("Stat.OmzetKlantProductMaand","q","Extent",23),names)#2)&&'$s($d(^(2),names)#2:$d(^oddCOM(names,"q","Extent",23),names)#2||($d(^oddDEF(names,"q","Extent",23),names)#2),1:$d(^oddDEF("Stat.OmzetKlantProductMaand","q","Extent",23),names)#2) names=$g(^%qCacheObjectKey(1,"q",23)) s:'($d(^oddCOM("Stat.OmzetKlantProductMaand","q","Extent",22),captions)#2)&&'$s($d(^(2),captions)#2:$d(^oddCOM(captions,"q","Extent",22),captions)#2||($d(^oddDEF(captions,"q","Extent",22),captions)#2),1:$d(^oddDEF("Stat.OmzetKlantProductMaand","q","Extent",22),captions)#2) captions=$g(^%qCacheObjectKey(1,"q",22)) For i=1:1:1 Set colinfo=colinfo_$listbuild($listbuild($listget(names,i),$piece(exttypes,",",i),$listget(captions,i))) Set idinfo=$listbuild(1) s ^oddCOM("Stat.OmzetKlantProductMaand","q","Extent",21)=$listbuild(colinfo,parminfo,idinfo) Quit 1 } zExtentGetODBCInfo(colinfo,parminfo,qHandle) public { Set version = $Select($Get(%protocol,31)>30:3,%protocol>14:2,1:1) If $Get(^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_EXTENT",21))'="" { Set sc = 1, metadata=$Select(version=3:^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_EXTENT",12),1:^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_EXTENT",12,version)) } ElseIf $Data(^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_EXTENT")) { Set sc = $$CompileSignature^%ourProcedure("STAT","OMZETKLANTPRODUCTMAAND_EXTENT",.metadata,.signature) } Else { Set sc = $$Error^%apiOBJ(5068,"Stat.OmzetKlantProductMaand:Extent") } If (+sc) { Set colcount=$li(metadata,2),cmdlen=colcount*$Case(version,3:9,2:9,1:7,:9),colinfo=$li(metadata,2,2+cmdlen),parmcount=$li(metadata,cmdlen+3),pmdlen=parmcount*$Case(version,3:6,:4),parminfo=$li(metadata,cmdlen+3,cmdlen+pmdlen+3) } Quit sc } zExtentPrepare(qHandle,statement,containid,optional) public { Set containid=$get(containid,0) Quit 1 } zExtentSendODBC(qHandle,array,qacn,%qrc,piece,ColumnCount) public { SPInnerLoop Set rc=##class(Stat.OmzetKlantProductMaand).ExtentFetchODBC(.qHandle,.array,qacn,,.%qrc) If ('rc) { Do ProcessError^%ourProcedure(rc,%sqlcontext,.%qrc,.%msg) Do Logerr^%qserver(%qrc,"","SP",.%msg) } If %qrc Set piece=0 Quit For piece=1:1:ColumnCount { Goto:$zobjexport(array(qacn,piece),7) SPDone } Goto SPInnerLoop SPDone Quit } zVerschilOmzetProdGrpFetchODBC(qHandle,array,qacn,AtEnd,SQLCODE) public { Set AtEnd=$get(AtEnd,0) Quit:$g(qacn)="" $$Error^%apiOBJ(6024) Kill array(qacn) Set SQLCODE=0,AtEnd=0,sc=##class(Stat.OmzetKlantProductMaand).VerschilOmzetProdGrpFetch(.qHandle,.Row,.AtEnd) If ('sc) { Set SQLCODE=-400 Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=-400,%sqlcontext.Message=$g(%msg) Quit sc } If Row="" Set SQLCODE=100 Set:$isobject($g(%sqlcontext)) %sqlcontext.SQLCode=100 Quit 1 For cptr=1:1:$listlength(Row) Set array(qacn,cptr)=$listget(Row,cptr) Quit 1 } zVerschilOmzetProdGrpFetchRows(qHandle,FetchCount,RowSet,ReturnCount,AtEnd) public { Set FetchCount=$get(FetchCount,0) Set RowSet="",ReturnCount=0,AtEnd=0,sc=1 For { Set sc=##class(Stat.OmzetKlantProductMaand).VerschilOmzetProdGrpFetch(.qHandle,.Row,.AtEnd) If Row'="",(+sc) Set RowSet=RowSet_Row,ReturnCount=ReturnCount+1 If (ReturnCount=FetchCount)||(($l(RowSet)+($l(RowSet)\ReturnCount))>24000)||$get(AtEnd) Quit If ('sc) Quit If Row="" Set AtEnd=1 Quit } Quit sc } zVerschilOmzetProdGrpGetInfo(colinfo,parminfo,idinfo,qHandle,extoption,extinfo) public { Set extoption=$get(extoption,0) s:'($d(^oddCOM("Stat.OmzetKlantProductMaand","q","VerschilOmzetProdGrp",21),clientinfo)#2)&&'$s($d(^(2),clientinfo)#2:$d(^oddCOM(clientinfo,"q","VerschilOmzetProdGrp",21),clientinfo)#2||($d(^oddDEF(clientinfo,"q","VerschilOmzetProdGrp",21),clientinfo)#2),1:$d(^oddDEF("Stat.OmzetKlantProductMaand","q","VerschilOmzetProdGrp",21),clientinfo)#2) clientinfo=$g(^%qCacheObjectKey(1,"q",21)) If clientinfo'="" Set colinfo=$listget(clientinfo,1),parminfo=$listget(clientinfo,2),idinfo=$listget(clientinfo,3),extent=$listget(clientinfo,4) Set:$Get(extoption) extinfo=$s($d(^oddCOM("Stat.OmzetKlantProductMaand","q","VerschilOmzetProdGrp",38))#2:^(38),$d(^oddCOM($g(^(2),"Stat.OmzetKlantProductMaand"),"q","VerschilOmzetProdGrp",38))#2:^(38),1:$s($d(^oddDEF($g(^(2),"Stat.OmzetKlantProductMaand"),"q","VerschilOmzetProdGrp",38))#2:^(38),1:$g(^%qCacheObjectKey(1,"q",38)))) Quit 1 Quit $$GetInfo^%ourQuery("Stat.OmzetKlantProductMaand","VerschilOmzetProdGrp",.colinfo,.parminfo,.idinfo,.qHandle,extoption,.extinfo) } zVerschilOmzetProdGrpGetODBCInf(colinfo,parminfo,qHandle) public { Set version = $Select($Get(%protocol,31)>30:3,%protocol>14:2,1:1) If $Get(^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_VERSCHILOMZETPRODGRP",21))'="" { Set sc = 1, metadata=$Select(version=3:^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_VERSCHILOMZETPRODGRP",12),1:^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_VERSCHILOMZETPRODGRP",12,version)) } ElseIf $Data(^oddPROC("STAT","OMZETKLANTPRODUCTMAAND_VERSCHILOMZETPRODGRP")) { Set sc = $$CompileSignature^%ourProcedure("STAT","OMZETKLANTPRODUCTMAAND_VERSCHILOMZETPRODGRP",.metadata,.signature) } Else { Set sc = $$Error^%apiOBJ(5068,"Stat.OmzetKlantProductMaand:VerschilOmzetProdGrp") } If (+sc) { Set colcount=$li(metadata,2),cmdlen=colcount*$Case(version,3:9,2:9,1:7,:9),colinfo=$li(metadata,2,2+cmdlen),parmcount=$li(metadata,cmdlen+3),pmdlen=parmcount*$Case(version,3:6,:4),parminfo=$li(metadata,cmdlen+3,cmdlen+pmdlen+3) } Quit sc } zVerschilOmzetProdGrpPrepare(qHandle,statement,containid,optional) public { Set containid=$get(containid,0) Quit 1 } zVerschilOmzetProdGrpSendODBC(qHandle,array,qacn,%qrc,piece,ColumnCount) public { SPInnerLoop Set rc=##class(Stat.OmzetKlantProductMaand).VerschilOmzetProdGrpFetchODBC(.qHandle,.array,qacn,,.%qrc) If ('rc) { Do ProcessError^%ourProcedure(rc,%sqlcontext,.%qrc,.%msg) Do Logerr^%qserver(%qrc,"","SP",.%msg) } If %qrc Set piece=0 Quit For piece=1:1:ColumnCount { Goto:$zobjexport(array(qacn,piece),7) SPDone } Goto SPInnerLoop SPDone Quit }