<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="9" zv="Cache for Windows NT (Intel) 5.0.21 (Build 6408)" ts="2008-05-24 10:47:18">
<Routine name="KWWEAN" type="INT" languagemode="0" timestamp="61118,58841"><![CDATA[
KWWEAN	;KRA;Zuordnung allg. Eingabe in Artikelzeile
 
GET(s)
		s siteid=$LI(^system.session($J),1)
	 
		;wenn nicht numerisch ->Artikelsuche
		i '(s?.N) q "0"_"|"_s
 
		;1 - Kundenkarte Chip-Seriennummer
		i $L(s)=17 g kundechip
		
		;2 - Belegzahlungen
		i $L(s)=13,$E(s,1,3)="221" g beleg
		
		;3 - Waage
		
		;4 - Gutscheine
		i $L(s)=13,$E(s,1,4)="2204" q "4"_"|"_$E(s,5,12)
		
		;5 - GS-Bons
		i $L(s)=13,$E(s,1,4)="2207" q "5"_"|"_+($E(s,5,12))
		
		;6 - Ausfolgeschein
		i $L(s)=13,$E(s,1,4)="2205" g ausfolge 
		
		;7 - Interner EAN/Sammelartikel
		i $L(s)=13,$E(s,1,2)="20" g intern
		
		;sonst Artikelsuche
		q "0"_"|"_s
		
		
intern
		s anr=+$E(s,3,8)
		s anrid=$O(^stamm.artikelI("keyid",siteid,0,anr,""))
		i anrid="" q "0"_"|"_s
		q "7"_"|"_anrid_"|"_s
		
kundechip
		s datum=$H+1,erg=""
		s datum="" f  s datum=$O(^stamm.kukarteI("karte",siteid,0," "_$ZCONVERT(s,"U"),1,datum),-1) q:datum=""  d  q:$L(erg)
		. s kuid=$O(^stamm.kukarteI("karte",siteid,0," "_$ZCONVERT(s,"U"),1,datum,""))
		. i $L(kuid) d
		.. s kaid=$O(^stamm.kukarteI("karte",siteid,0," "_$ZCONVERT(s,"U"),1,datum,kuid,""))
		.. i $L(kaid) d
		... s kaobj=##class(stamm.kukarte).%OpenId(kuid_"||"_kaid)
		... i $L(kaobj) d
		.... i $L(kaobj.abldatum),kaobj.abldatum<(+$H) q
		.... s erg=kuid
		k kaobj
		
		i $L(erg) q "1"_"|"_erg
		e  q "0"_"|"_s
		
beleg	s belnr=+$E(s,4,11)
		s belart=$P("AC,BV,LS,SR,RE,PV,ER",",",+$E(s,12))
		q 2_"|"_belart_" "_belnr
 
ausfolge
		s anr=+($E(s,5,12))
		s anrid=$O(^stamm.artikelI("keyid",siteid,0,anr,""))
		i anrid="" q "0"_"|"_s
		q "6"_"|"_anrid		
		
		
bruttoest(ean)
		n est,est1,brutto
		
		s (est,brutto)=""
		
		//Baumat Sammelartikel mit Einstand
		I $L(ean)=13,$E(ean,1,2)="20" s est1=$E(ean,9,12) i +est1 s est=$J(est1/13.7603,0,4)
		
		q $LB(brutto,est)
]]></Routine>
<Routine name="KWWIMPALL" type="INT" languagemode="0" timestamp="61076,56317"><![CDATA[
KWWIMPALL	;KRA; alles importieren
 
 
	d ^KWWIMPPAR
	d ^KWWIMPART
	d ^KWWIMPKUND
	d ^KWWIMPBEW
	
	q
]]></Routine>
<Routine name="KWWIMPART" type="INT" languagemode="0" timestamp="61076,56334"><![CDATA[
KWWIMPART	;KRA;Import Artikel
 
	s filename="c:\software\kwws\daten\art.xml"
	Set sc = ##class(%XML.TextReader).ParseFile(filename,.reader)
	
	K ^stamm.artikelD
	K ^stamm.artikelI
	K ^stamm.eanD
	K ^stamm.eanI
	K ^stamm.artmatchD
	K ^stamm.artmatchI
 
	K ^system.searchD
	K ^system.searchI
	K ^system.searchparD
	K ^system.searchparI
	
 
 	d ##class(system.session).SetTestSession()
 
 	
 
	s cnt=0
	
	d global 
	
    f  q:'reader.Read()  d
    . I reader.NodeType = "element",reader.Name="artikeldaten" d  q
    .. s sw1=0 f  d reader.Read() d  q:+sw1
    ... i reader.NodeType="element" s name1=reader.Name
    ... I reader.NodeType="element",name1="artikel" d  q
    .... d reader.MoveToAttributeName("id") s id=reader.Value
    .... s obj=##class(stamm.artikel).%New(0)
    .... s obj.anr=id
    .... w *13,id,"      "
    .... I reader.MoveToAttributeName("bewpreis") s obj.bewpreis=reader.Value 
	.... I reader.MoveToAttributeName("bez1") s obj.bez1=reader.Value 
	.... I reader.MoveToAttributeName("bez2") s obj.bez2=reader.Value 
	.... I reader.MoveToAttributeName("bez3") s obj.bez3=reader.Value 
	.... I reader.MoveToAttributeName("vean") s obj.vean=reader.Value
	.... I reader.MoveToAttributeName("vanr") s obj.vanr=reader.Value
	.... I reader.MoveToAttributeName("vlistkz") s obj.vlistkz=reader.Value
	.... I reader.MoveToAttributeName("kbez") s obj.kbez=reader.Value
	.... I reader.MoveToAttributeName("info") s obj.info=reader.Value
	.... I reader.MoveToAttributeName("aktiv") s obj.aktiv=reader.Value
	.... I reader.MoveToAttributeName("skontosw") s obj.skontosw=reader.Value
	.... ;
	.... I reader.MoveToAttributeName("mwcode") s code=reader.Value d
	..... s id1=$O(^param.mwcodeI("index"," "_code,"")) 
	..... i $L(id1) d obj.pmwcodeSetObjectId(id1)
	.... I reader.MoveToAttributeName("arttyp") s code=reader.Value d
	..... s id1=$O(^param.arttypI("index",0," "_code,"")) 
	..... i $L(id1) d obj.parttypSetObjectId(id1)	
	.... I reader.MoveToAttributeName("defeinh") s code=reader.Value d
	..... s id1=$O(^param.meeinhI("index"," "_code,"")) 
	..... i $L(id1) d obj.pdefeinhSetObjectId(id1)	
	.... I reader.MoveToAttributeName("abtnr") s code=reader.Value d
	..... s id1=$O(^param.abtI("index"," "_code,"")) 
	..... i $L(id1) d obj.pabtSetObjectId(id1)
	.... I reader.MoveToAttributeName("wargr") s code=reader.Value d
	..... s id1=$O(^param.wargrI("index"," "_code,"")) 
	..... i $L(id1) d obj.pwargrSetObjectId(id1)
	.... I reader.MoveToAttributeName("bewcode") s code=reader.Value d
	..... s id1=$O(^param.bewcodeI("index"," "_code,"")) 
	..... i $L(id1) d obj.pbewcodeSetObjectId(id1)
	... ;
	... I reader.NodeType = "element",name1="konten" d  q
	.... I reader.MoveToAttributeName("vkkonto") s code=reader.Value d
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",1),"U"),""))
	..... i $L(kid) d obj.vkkonto.inlandSetObjectId(kid)
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",2),"U"),""))
	..... i $L(kid) d obj.vkkonto.euinlandSetObjectId(kid)
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",3),"U"),""))
	..... i $L(kid) d obj.vkkonto.euauslandSetObjectId(kid)
	.... I reader.MoveToAttributeName("ekkonto") s code=reader.Value d
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",1),"U"),""))
	..... i $L(kid) d obj.ekkonto.inlandSetObjectId(kid)
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",2),"U"),""))
	..... i $L(kid) d obj.ekkonto.euinlandSetObjectId(kid)
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",3),"U"),""))
	..... i $L(kid) d obj.ekkonto.euauslandSetObjectId(kid)	
	.... I reader.MoveToAttributeName("nkkonto") s code=reader.Value d
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",1),"U"),""))
	..... i $L(kid) d obj.nkkonto.inlandSetObjectId(kid)
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",2),"U"),""))
	..... i $L(kid) d obj.nkkonto.euinlandSetObjectId(kid)
	..... s kid=$O(^stamm.kontoI("index"," "_$ZCONVERT($P(code,"|",3),"U"),""))
	..... i $L(kid) d obj.nkkonto.euauslandSetObjectId(kid)
	... ;
	... I reader.NodeType = "element",name1="meeinh" d  q
	.... s faktor="",einh=""
	.... i reader.MoveToAttributeName("einh") s einh=reader.Value
	... I reader.NodeType = "chars",name1="meeinh" s faktor=reader.Value q
	... I reader.NodeType = "endelement",reader.Name="meeinh",$L(einh),$L(faktor) d  q
	.... s ideinh=$O(^param.meeinhI("index"," "_einh,""))
	.... q:ideinh="" 
	.... s ehobj=##class(basis.arteinh).%New()
	.... s ehobj.faktor=faktor d ehobj.einhSetObjectId(ideinh)
	.... d obj.einh.SetAt(ehobj,ideinh)
	.... d ehobj.%Close()
	... ;
	... I reader.NodeType = "element",name1="vkpreise" d  q
	.... s (prliste,datum,akz,bisdat)="",prme=1,preinh="ST" k preis
    .... i reader.MoveToAttributeName("prliste") s prliste=reader.Value
    .... i reader.MoveToAttributeName("datum") s datum=$ZDH(reader.Value,3)
    .... i reader.MoveToAttributeName("akz") s akz=reader.Value
    .... i reader.MoveToAttributeName("bisdat") s bisdat=reader.Value
    .... i reader.MoveToAttributeName("prme") s prme=reader.Value
    .... i reader.MoveToAttributeName("preinh") s preinh=reader.Value
    ... I reader.NodeType = "endelement",reader.Name="vkpreise",$L(prliste),$L(datum) d  q
    .... I $L(bisdat) s bisdat=$ZDH(bisdat,3)
    .... s probj=##class(stamm.artvk).%New()
    .... s probj.pprliste=prliste(prliste)
    .... s idakz="" i $L(akz) s idakz=$O(^stamm.aktionI("index1"," "_akz,""))
    .... I $L(idakz) d probj.paktionSetObjectId(idakz)
    .... s ideinh=$O(^param.meeinhI("index"," "_preinh,""))
    .... I $L(ideinh) d probj.peinhSetObjectId(ideinh)
    .... s probj.abdatum=datum
    .... s probj.bisdatum=bisdat
    .... s probj.prme=prme
    .... s menge="" f  s menge=$O(preis(menge)) q:menge=""  d
    ..... d probj.preis.SetAt(preis(menge),menge)
    .... s probj.artikel=obj
    .... d probj.%Close()
    ... ;
    ... I reader.NodeType = "chars",name1="vkpreis" s preis=reader.Value q
	... I reader.NodeType = "element",name1="vkpreis" d  q
	.... s (menge,preis)=""
    .... i reader.MoveToAttributeName("menge") s menge=reader.Value
    ... I reader.NodeType = "endelement",reader.Name="vkpreis",$L(prliste),$L(datum),$L(menge) d  q
    .... s preis(menge)=$LB($P(preis,"|",1),$P(preis,"|",2),$P(preis,"|",3),$P(preis,"|",4))
    ... ;
	... I reader.NodeType = "element",name1="artlager" d  q
	.... s lager="",menge=""
	.... i reader.MoveToAttributeName("lager") s lager=reader.Value
	... I reader.NodeType = "chars",name1 = "artlager" s menge=reader.Value q
	... I reader.NodeType = "endelement",reader.Name="artlager",$L(lager),$L(menge) d  q
	.... s lagerobj=##class(stamm.artlager).%New()
	.... s lagerobj.plager=lager(lager)
	.... s lagerobj.menge=menge
	.... s lagerobj.artikel=obj
	.... d lagerobj.%Close()
	.... i lager="0" s obj.pdeflager=lagerobj
	... ;
	... I reader.NodeType="chars",name1="kbez1" s kbez1=reader.Value d  q
	.... d obj.kbez1.Insert(kbez1)
	... ;
	... I reader.NodeType = "element",name1="ean" d  q
	.... s (ean,faktor)="",defean=0
	.... i reader.MoveToAttributeName("ean") s ean=reader.Value
	.... i reader.MoveToAttributeName("faktor") s faktor=reader.Value
	.... i reader.MoveToAttributeName("defean") s defean=reader.Value
	... I reader.NodeType = "endelement",reader.Name="ean",$L(ean),$L(faktor) d  q
	.... s eanobj=##class(stamm.ean).%New()
	.... s eanobj.ean=ean,eanobj.faktor=faktor,eanobj.defean=defean
	.... s eanobj.aktiv=1
	.... s eanobj.artikel=obj
	.... d eanobj.%Close()
	... ;
	... I reader.NodeType = "endelement",reader.Name="artikel" d  q
	.... s erg=obj.%Save()
	.... i +erg=0 B "S"
	.... d obj.%Close()
	.... k objean
	.... s cnt=cnt+1
	... ;
	... I reader.NodeType = "endelement",reader.Name="artikeldaten" s sw1=1 q
	
	k obj,probj,lagerobj,ehobj,eanobj
	w "Artikelanzahl: ",cnt,!
	q
 
global
	f i="N","A" D
	. s id=$O(^param.prlisteI("index"," K"," "_i,""))
	. s prliste(i)=##class(param.prliste).%OpenId(id)
	f i="0","1" d
	. s id=$O(^param.lagerI("index"," "_i,""))
	. s lager(i)=##class(param.lager).%OpenId(id)
 	q
]]></Routine>
<Routine name="KWWIMPBEW" type="INT" languagemode="0" timestamp="61076,58033"><![CDATA[
KWWIMPBEW	;KRA;Import Bewegungsdaten
 
	s filename="c:\software\kwws\daten\beweg.xml"
	Set sc = ##class(%XML.TextReader).ParseFile(filename,.reader)
	
	K ^beweg.belegD
	K ^beweg.belegI
	K ^stamm.gutscheinD
	K ^stamm.gutscheinI
	K ^beweg.kontoD
	K ^beweg.kontoI
	 
 	d ##class(system.session).SetTestSession()
 
 	w *13,"Basis           "
  	s cnt=0
    f  q:'reader.Read()  d
    . I reader.NodeType = "element",reader.Name="gutschein" d gutschein q
    . I reader.NodeType = "element",reader.Name="beweg" d  q
    . I reader.NodeType = "element",reader.Name="mwtab" d mwtab q
    . I reader.NodeType = "element",reader.Name="belegkonto" d belegkonto q
    . I reader.NodeType = "element",reader.Name="offpost" d  q
    .. w *13,"Offene Posten           "
    .. s id1="",obj1=##class(beweg.beleg).%New()
    .. k mwtab
    .. s obj1.pzk=""
    .. s obj1.wertexcl=0,obj1.skbasis=0
    .. d reader.MoveToAttributeName("belart") s belart=reader.Value I $L(belart) d
    ... s id1=$O(^param.belartI("index"," "_$ZCONVERT(belart,"U"),""))
    ... I $L(id1) d obj1.pbelartSetObjectId(id1)
    .. d reader.MoveToAttributeName("belnr") s obj1.belnr=reader.Value
    .. d reader.MoveToAttributeName("beldat") s (obj1.beldat,obj1.valutadat)=$ZDH(reader.Value,3)
    .. i reader.MoveToAttributeName("valutadat") s obj1.valutadat=$ZDH(reader.Value,3)
    .. d reader.MoveToAttributeName("kunde") s kunde=reader.Value i $L(kunde) d
    ... s kundid=$O(^stamm.kundeI("keyid",kunde,""))
    ... i $L(kundid) d obj1.pkundeSetObjectId(kundid)
    .. d reader.MoveToAttributeName("betrag") s obj1.wertincl=reader.Value
    .. d reader.MoveToAttributeName("bezahlt") s obj1.bezahlt=reader.Value
    .. d reader.MoveToAttributeName("barskpr") s obj1.barskpr=reader.Value
    .. d reader.MoveToAttributeName("barskabs") s obj1.barskabs=reader.Value
    .. d reader.MoveToAttributeName("netto") s ad=reader.Value d
    ... s obj1.zkdat.datumn=obj1.valutadat+$P(ad,";",1)
    .. d reader.MoveToAttributeName("skonto1") s ad=reader.Value d
    ... s obj1.zkdat.skontopr1=$P(ad,";",2)
    ... i +$P(ad,";",2) s obj1.zkdat.datum1=obj1.valutadat+$P(ad,";",1) i 1
    ... e  s obj1.zkdat.datum1=obj1.zkdat.datumn
    .. d reader.MoveToAttributeName("skonto2") s ad=reader.Value d
    ... s obj1.zkdat.skontopr2=$P(ad,";",2)
    ... i +$P(ad,";",2) s obj1.zkdat.datum2=obj1.valutadat+$P(ad,";",1) i 1
    ... e  s obj1.zkdat.datum2=obj1.zkdat.datumn
    .. d reader.MoveToAttributeName("text")
    . ;
	. I reader.NodeType = "endelement",reader.Name="offpost" d
	.. s obj1.loesw=0
	.. s obj1.status=2
	.. I $L(id1) s erg=obj1.%Save() i +erg=0 B "S" 
	.. d obj1.%Close()
	.. s cnt=cnt+1 w *13,cnt,"   " 
	k obj1
	q
	;
konten
	w *13,"Konten           "
	n sw
	s sw=0
    ;
    d reader.MoveToAttributeName("konto") s konto=reader.Value 
    d reader.MoveToAttributeName("betrexcl") s betrexcl=reader.Value 
    d reader.MoveToAttributeName("betrmwst") s betrmwst=reader.Value 
    f  q:'reader.Read()  d  q:+sw
    . I reader.NodeType = "endelement" d  q
	.. s objk=##class(basis.belkonto).%New()
	.. s objk.sollhab=1
	.. s objk.betrexcl=betrexcl
	.. s objk.betrmwst=betrmwst
	.. s objk.mwproz=objmw.mwproz
	.. s objk.konto.typ="K"
	.. d objk.konto.pkundeSetObjectId(kundid)
	.. s objk.gkonto.typ="S"
	.. s kontoid=$O(^stamm.kontoI("index"," "_$ZCONVERT(konto,"U"),""))
	.. i $L(kontoid) d objk.gkonto.pkontoSetObjectId(kontoid)
	.. d objmw.konten.Insert(objk)
	.. d objk.%Close()
	.. k objk
    .. s sw=1
    . I reader.NodeType = "element",reader.Name= "kost" d kontkost q
	q    
    
 
mwtab
    w *13,"MW-Tabelle           "
	n sw
	s sw=0
	;
	s objmw=##class(basis.belmwtab).%New()
    d reader.MoveToAttributeName("mwproz") s objmw.mwproz=reader.Value  
    d reader.MoveToAttributeName("excl") s objmw.betrexcl=reader.Value s obj1.wertexcl=obj1.wertexcl+objmw.betrexcl
    d reader.MoveToAttributeName("mwst") s objmw.betrmwst=reader.Value 
    d reader.MoveToAttributeName("skbasis") s objmw.skbasis=reader.Value,obj1.skbasis=obj1.skbasis+objmw.skbasis
	d reader.MoveToAttributeName("skexcl") s objmw.skexcl=reader.Value 
	d reader.MoveToAttributeName("skmwst") s objmw.skmwst=reader.Value     
    f  q:'reader.Read()  d  q:+sw
    . I reader.NodeType = "endelement" d  q
    .. d obj1.mwkonten.SetAt(objmw,+objmw.mwproz)
    .. d objmw.%Close()
    .. k objmw
    .. s sw=1
    . i reader.NodeType = "element",reader.Name="konto" d konten q
	q    
 
kontkost
	w *13,"Konto Kostenstellen           "
	n sw
	s sw=0
    f  q:'reader.Read()  d  q:+sw
    . I reader.NodeType = "endelement" s sw=1 q
	q    
 
 
gutschein
	w *13,"Gutscheine           "
	n sw,id2
	s sw=0
	;
	s obj1=##class(stamm.gutschein).%New()
    d reader.MoveToAttributeName("code") s obj1.gsnr=reader.Value  
    d reader.MoveToAttributeName("typ") s typ=reader.Value i $L(typ) d
    . s id2=$O(^param.zahlungsmI("index"," "_$ZCONVERT(typ,"U"),""))
    . i $L(id2) d obj1.pgutstypSetObjectId(id2)
    d reader.MoveToAttributeName("adatum") s adatum=reader.Value i $L(adatum) s obj1.adatum=$ZDH(adatum,3)
    d reader.MoveToAttributeName("betrag") s obj1.betrag=reader.Value 
    d reader.MoveToAttributeName("aknr") s aknr=reader.Value i $L(aknr) d
    . s id2=$O(^stamm.kundeI("keyid",aknr,""))
    . i $L(id2) d obj1.paknrSetObjectId(id2)
	d reader.MoveToAttributeName("abeleg") s abeleg=reader.Value i $L(abeleg) d
	. s obj1.abeleg=$LB($P(abeleg," ",1),$P(abeleg," ",2)) 
	d reader.MoveToAttributeName("bonussw") s obj1.bonussw=reader.Value
	d reader.MoveToAttributeName("edatum") s edatum=reader.Value i $L(edatum) s obj1.edatum=$ZDH(edatum,3)
	d reader.MoveToAttributeName("eknr") s eknr=reader.Value i $L(eknr) d
    . s id2=$O(^stamm.kundeI("keyid",eknr,""))
    . i $L(id2) d obj1.peknrSetObjectId(id2)
	d reader.MoveToAttributeName("ebeleg") s ebeleg=reader.Value i $L(ebeleg) d
	. s obj1.ebeleg=$LB($P(ebeleg," ",1),$P(ebeleg," ",2))
    f  q:'reader.Read()  d  q:+sw
    . I reader.NodeType = "endelement" d obj1.%Save(),obj1.%Close() s sw=1 q
	q    
 
belegkonto
	w *13,"Belegkonto           "
	n sw,sw1,id2,anr,knr
	s sw=0,sw1=1
	;
	s obj1=##class(beweg.konto).%New()
    d reader.MoveToAttributeName("zeile") s zeile=reader.Value
    s knr=$P(zeile,"|",1)
    s id2=$O(^stamm.kundeI("keyid",knr,""))
    i id2="" s sw1=0
    e  d obj1.pknrSetObjectId(id2)
    s anr=$P(zeile,"|",2)
    s id2=$O(^stamm.artikelI("keyid",anr,""))
    i id2="" s sw1=0
    e  d obj1.panrSetObjectId(id2)
    s obj1.datum=$ZDH($P(zeile,"|",3),3)
    s obj1.belegart=$P(zeile,"|",4)
    s obj1.belegnr=$P(zeile,"|",5)
    s obj1.pos=$P(zeile,"|",6)
    s obj1.menge=$P(zeile,"|",7)
    s defeinh=$P(zeile,"|",8)
    s id2=$O(^param.meeinhI("index"," "_$ZCONVERT(defeinh,"U"),""))
    i id2="" s sw1=0
    e  d obj1.defeinhSetObjectId(id2)
    s obj1.brutto=$P(zeile,"|",9)
    s obj1.rab1=$P(zeile,"|",10)
    s obj1.rab2=$P(zeile,"|",11)
    s obj1.netto=$P(zeile,"|",12)
    s peinh=$P(zeile,"|",13)
    s id2=$O(^param.meeinhI("index"," "_$ZCONVERT(peinh,"U"),""))
    i id2="" s sw1=0
    e  d obj1.peinhSetObjectId(id2)
    s obj1.prfaktor=$P(zeile,"|",14)
    s obj1.prme=$P(zeile,"|",15)
    s akz=$P(zeile,"|",16) i $L(akz) d
    . s id2=$O(^stamm.aktionI("index1"," "_$ZCONVERT(akz,"U"),""))
    . i id2="" s sw1=0 
    . e  d obj1.paktionSetObjectId(id2)
    f  q:'reader.Read()  d  q:+sw
    . I reader.NodeType = "endelement" d:+sw1 obj1.%Save() d obj1.%Close() s sw=1 q
	q    
]]></Routine>
<Routine name="KWWIMPKUND" type="INT" languagemode="0" timestamp="61076,56294"><![CDATA[
KWWIMPKUND	;KRA;Import XML Kunde
 
	s filename="c:\software\kwws\daten\kund.xml"
	Set sc = ##class(%XML.TextReader).ParseFile(filename,.reader)
	
	K ^stamm.kundeD
	K ^stamm.kundeI
 	
 	K ^stamm.kundmatchD
	K ^stamm.kundmatchI
	K ^stamm.kukarteI
	K ^system.searchD
	K ^system.searchI
	K ^system.searchparD
	K ^system.searchparI
	
	K ^param.titelD
	K ^param.titelI
	
	d ##class(system.session).SetTestSession()
 	
 	d global
 	
	s cnt=0
    f  q:'reader.Read()  d
    . I reader.NodeType = "element",reader.Name="kundendaten" d  q
    . I reader.NodeType = "element",reader.Name="kunde" d  q
    .. d reader.MoveToAttributeName("id") s id=reader.Value
    .. S (strasse,land,plz,ort)=" "
    .. s obj=##class(stamm.kunde).%New(0)
    .. s obj.knr=id
    .. w *13,id,"      "
    .. s element1=""
    .. s sw1=0 f  d reader.Read() d  q:+sw1
    ... I reader.NodeType="element",reader.Name="kundebau" d  q
    .... s adrobj=##class(stamm.kuadr).%New()
    .... d reader.MoveToAttributeName("code") s adrobj.code=reader.Value
    .... s element2=""
    .... s sw2=0 f  d reader.Read() d  q:+sw2
    ..... I reader.NodeType="element" s element2=reader.Name
    ..... I element2="aktiv",reader.NodeType="chars" s adrobj.aktiv=reader.Value q
    ..... I element2="kbez",reader.NodeType="chars" s adrobj.person.name.kbez=reader.Value q
    ..... I element2="titel",reader.NodeType="chars" s adrobj.person.name.titel=reader.Value q
    ..... I element2="name1",reader.NodeType="chars" s adrobj.person.name.name1=reader.Value q
    ..... I element2="name2",reader.NodeType="chars" s adrobj.person.name.name2=reader.Value q
    ..... I element2="strasse",reader.NodeType="chars" s adrobj.person.adresse.strasse=reader.Value q
    ..... I element2="land",reader.NodeType="chars" s adrobj.person.adresse.land=reader.Value q
    ..... I element2="plz",reader.NodeType="chars" s adrobj.person.adresse.plz=reader.Value q
    ..... I element2="ort",reader.NodeType="chars" s adrobj.person.adresse.ort=reader.Value q
    ..... I element2="tel",reader.NodeType="chars" s adrobj.person.kontakt.tel=reader.Value q
    ..... I element2="fax",reader.NodeType="chars" s adrobj.person.kontakt.fax=reader.Value q
    ..... I element2="info1",reader.NodeType="chars" s adrobj.info1=reader.Value q
    ..... I element2="info2",reader.NodeType="chars" s adrobj.info2=reader.Value q
    ..... I element2="kontakt1"!(element2="kontakt2"),reader.NodeType="chars" s kontakt=reader.Value d  q
    ...... s objkont=##class(stamm.kuadrperson).%New()
    ...... s objkont.kuadr=adrobj,objkont.person.name.name1=kontakt
    ...... d objkont.%Close() k objkont
    ..... I reader.NodeType = "endelement",reader.Name="kundebau" d  q
    ...... s sw2=1
    ...... s adrobj.kunde=obj
    ...... d adrobj.%Close() 
    ...... k adrobj
    ... ;
    ... I reader.NodeType="element",reader.Name="kundekarte" d  q
    .... s kartobj=##class(stamm.kukarte).%New()
    .... d reader.MoveToAttributeName("kartnr") s kartobj.kartnr=reader.Value
    .... s element2=""
    .... s sw2=0 f  d reader.Read() d  q:+sw2
    ..... I reader.NodeType="element" s element2=reader.Name
    ..... I element2="titel",reader.NodeType="chars" s kartobj.person.name.titel=reader.Value q
    ..... I element2="titel1",reader.NodeType="chars" s kartobj.person.name.titel1=reader.Value q
    ..... I element2="name1",reader.NodeType="chars" s kartobj.person.name.name1=reader.Value q
    ..... I element2="name2",reader.NodeType="chars" s kartobj.person.name.name2=reader.Value q
    ..... I element2="strasse",reader.NodeType="chars" s kartobj.person.adresse.strasse=reader.Value q
    ..... I element2="land",reader.NodeType="chars" s kartobj.person.adresse.land=reader.Value q
    ..... I element2="plz",reader.NodeType="chars" s kartobj.person.adresse.plz=reader.Value q
    ..... I element2="ort",reader.NodeType="chars" s kartobj.person.adresse.ort=reader.Value q
    ..... I element2="tel",reader.NodeType="chars" s kartobj.person.kontakt.tel=reader.Value q
    ..... I element2="email",reader.NodeType="chars" s kartobj.person.kontakt.email=reader.Value q
    ..... I element2="datum",reader.NodeType="chars" s dat=reader.Value s:$L(dat) dat=$ZDH(dat,3) s kartobj.datum=dat q
    ..... I element2="abldatum",reader.NodeType="chars" s dat=reader.Value s:$L(dat) dat=$ZDH(dat,3) s kartobj.abldatum=dat q
    ..... I element2="gebdat",reader.NodeType="chars" s dat=reader.Value s:$L(dat) dat=$ZDH(dat,3) s kartobj.person.gebdat=dat q
    ..... I element2="bonusjn",reader.NodeType="chars" s kartobj.aktiv=reader.Value q
    ..... ;I element2="mailjn",reader.NodeType="chars" s kartobj.mailjn=reader.Value q
    ..... I element2="altgrp",reader.NodeType="chars" s dat=reader.Value s:$L(dat) dat=$ZDH(dat,3) s kartobj.person.altgrp=dat q
    ..... s kartobj.abldatum="",kartobj.datum="",kartobj.pruefz=""
    ..... s idktyp=$O(^param.karttypI("index"," KU",""))
    ..... i $L(idktyp) d kartobj.pkarttypSetObjectId(idktyp)
    ..... I reader.NodeType = "endelement",reader.Name="kundekarte" d  q
    ...... s kartobj.kunde=obj
    ...... d kartobj.%Close()
    ...... k kartobj
    ...... s sw2=1
    ... ;
    ... I reader.NodeType="element",reader.Name="kundeperson" d  q
    .... s personobj=##class(stamm.kuperson).%New()
    .... s element2=""
    .... s sw2=0 f  d reader.Read() d  q:+sw2
    ..... I reader.NodeType="element" s element2=reader.Name
    ..... I element2="titel",reader.NodeType="chars" s personobj.person.name.titel=reader.Value q
    ..... I element2="funktion",reader.NodeType="chars" s personobj.funktion=reader.Value q
    ..... I element2="name1",reader.NodeType="chars" s personobj.person.name.name1=reader.Value q
    ..... I element2="name2",reader.NodeType="chars" s personobj.person.name.name2=reader.Value q
    ..... I reader.NodeType = "endelement",reader.Name="kundeperson" d  q
    ...... s personobj.kunde=obj
    ...... d personobj.%Close()
    ...... k personobj
    ...... s sw2=1
    ... ;
    ... I reader.NodeType="element" s element1=reader.Name
    ... I element1="aktiv",reader.NodeType="chars" s obj.aktiv=reader.Value q
    ... I element1="sammel",reader.NodeType="chars" s obj.sammel=reader.Value q
    ... I element1="titel",reader.NodeType="chars" d  q
    .... s titel=reader.Value 
    .... s obj.person.name.titel=titel
    .... I '$D(^param.titelI("index"," "_$ZCONVERT(titel,"U"))) d  q
    ..... s objtitel=##class(param.titel).%New(),objtitel.bez=titel d objtitel.%Save() d objtitel.%Close() k objtitel
 	.... ;
    ... I element1="titel1",reader.NodeType="chars" s obj.person.name.titel1=reader.Value q
    ... I element1="anrede",reader.NodeType="chars" s obj.person.name.anrede=reader.Value q
    ... I element1="name1",reader.NodeType="chars" s obj.person.name.name1=reader.Value q
	... I element1="name2",reader.NodeType="chars" s obj.person.name.name2=reader.Value q
	... I element1="land",reader.NodeType="chars" s land=reader.Value q
	... I element1="ort",reader.NodeType="chars" s ort=reader.Value q
	... I element1="strasse",reader.NodeType="chars" s strasse=reader.Value q
	... I element1="plz",reader.NodeType="chars" s plz=reader.Value q
	... I element1="kbez",reader.NodeType="chars" s obj.person.name.kbez=reader.Value q
	... I element1="tel",reader.NodeType="chars" s obj.person.kontakt.tel=reader.Value q
	... I element1="fax",reader.NodeType="chars" s obj.person.kontakt.fax=reader.Value q
	... I element1="email",reader.NodeType="chars" s obj.person.kontakt.email=reader.Value q
	... I element1="mobil",reader.NodeType="chars" s obj.person.kontakt.mobil=reader.Value q
	... ;Verband
	... I reader.NodeType = "element",reader.Name="bonus" d  q
	.... i reader.MoveToAttributeName("bonusjn") s obj.kbonusjn=reader.Value
	.... i reader.MoveToAttributeName("datum") s kbdatum=reader.Value S:$L(kbdatum) kbdatum=$ZDH(kbdatum,3) s obj.kbdatum=kbdatum
	.... i reader.MoveToAttributeName("aktpkt") s obj.kbaktpkt=reader.Value
	.... i reader.MoveToAttributeName("abrdatum") s kbabrdatum=reader.Value S:$L(kbabrdatum) kbabrdatum=$ZDH(kbabrdatum,3) s obj.kbabrdatum=kbabrdatum
	.... i reader.MoveToAttributeName("abrpkt") s obj.kbabrpkt=reader.Value
	... ;
	... I element1="kgrp",reader.NodeType="chars" s code=reader.Value d  q
	.... s idkgrp=$O(^param.kgrpI("index"," "_$ZCONVERT(code,"U"),""))
	.... I $L(idkgrp) d obj.pkgrpSetObjectId(idkgrp)
	... ;
	... I element1="kbez1",reader.NodeType="chars" s kbez1=reader.Value d
	.... d obj.person.name.kbez1.Insert(kbez1)
	... ;
	... ; Zahlungskondition
	... I element1="barskpr",reader.NodeType="chars" s obj.barskpr=reader.Value q
	... ;
	... I reader.NodeType = "endelement",reader.Name="kunde" d  q
	.... s obj.person.adresse.land=land
	.... s obj.person.adresse.ort=ort
	.... s obj.person.adresse.strasse=strasse
	.... s obj.person.adresse.plz=plz
	.... s erg=obj.%Save()
	.... i +erg=0 B "S"
	.... d obj.%Close()
	.... k objean
	.... s cnt=cnt+1
	.... s sw1=1
	k obj
	w "Kundenanzahl: ",cnt,!
	q
 
global 
 	q
 	;
]]></Routine>
<Routine name="KWWIMPPAR" type="INT" languagemode="0" timestamp="61114,78462"><![CDATA[
	;KRA;Import Parameter
	s filename="c:\software\kwws\daten\par.xml"
	Set sc = ##class(%XML.TextReader).ParseFile(filename,.reader)
	
	K ^param.meeinhD
	K ^param.meeinhI
	K ^param.mwcodeD
	K ^param.mwcodeI
	K ^param.bewcodeD
	K ^param.bewcodeI
	K ^param.abtD
	K ^param.abtI
	K ^param.wargrD
	K ^param.wargrI
	K ^param.prlisteD
	K ^param.prlisteI
	K ^param.aktionD
	K ^param.aktionI
	K ^param.lagerD
	K ^param.lagerI
	K ^param.kgrpD
	K ^param.kgrpI
	K ^param.landD
	K ^param.landI
	K ^param.kassaeaD
	K ^param.kassaeaI
	K ^param.eazuordD
	K ^param.eazuordI	
	K ^param.eagszuordD
	K ^param.eagszuordI	
 	K ^stamm.kostD
	K ^stamm.kostI
	K ^stamm.kontoD
	K ^stamm.kontoI
 	K ^param.belartD
	K ^param.belartI
 	K ^param.zahlungsmD
	K ^param.zahlungsmI
 
 	d ##class(system.session).SetTestSession()
 
 	d global
 
    f  q:'reader.Read()  d
    . I reader.NodeType = "element",reader.Name="parameter" d  q
    . I reader.NodeType = "element",reader.Name="meeinh" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. s obj1=##class(param.meeinh).%New()
    .. s obj1.code=id d reader.Read() s obj1.bez=reader.Value
	. I reader.NodeType = "endelement",reader.Name="meeinh" d obj1.%Save(),obj1.%Close() q
	. ;
	. I reader.NodeType = "element",reader.Name="mwcode" d  q
	.. s obj1=##class(param.mwcode).%New()
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. d reader.MoveToAttributeName("mwkonto") s konto=reader.Value i $L(konto) d
    ... s id1=$O(^stamm.kontoI("index"," "_$ZCONVERT(konto,"U"),""))
    ... I $L(id1) d obj1.pmwkontoSetObjectId(id1)
    .. d reader.MoveToAttributeName("vokonto") s konto=reader.Value i $L(konto) d
    ... s id1=$O(^stamm.kontoI("index"," "_$ZCONVERT(konto,"U"),""))
    ... I $L(id1) d obj1.pvokontoSetObjectId(id1)
    .. d reader.MoveToAttributeName("skakonto") s konto=reader.Value i $L(konto) d
    ... s id1=$O(^stamm.kontoI("index"," "_$ZCONVERT(konto,"U"),""))
    ... I $L(id1) d obj1.pskakontoSetObjectId(id1)
    .. d reader.MoveToAttributeName("skekonto") s konto=reader.Value i $L(konto) d
    ... s id1=$O(^stamm.kontoI("index"," "_$ZCONVERT(konto,"U"),""))
    ... I $L(id1) d obj1.pskekontoSetObjectId(id1)
    .. s obj1.code=id d reader.Read() s obj1.mwproz=reader.Value
	. I reader.NodeType = "endelement",reader.Name="mwcode" d obj1.%Save(),obj1.%Close() q
	. ;
	. I reader.NodeType = "element",reader.Name="bewcode" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. s obj1=##class(param.bewcode).%New()
    .. s obj1.code=id d reader.Read() s obj1.bez=reader.Value
	. I reader.NodeType = "endelement",reader.Name="bewcode" d obj1.%Save(),obj1.%Close() q
	. ;
	. I reader.NodeType = "element",reader.Name="land" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. s obj1=##class(param.land).%New()
    .. s obj1.code=id d reader.Read() s obj1.bez=reader.Value
	. I reader.NodeType = "endelement",reader.Name="land" d obj1.%Save(),obj1.%Close() q
	. ;
	. I reader.NodeType = "element",reader.Name="kgrp" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. d reader.MoveToAttributeName("aktiv") s aktiv=reader.Value
    .. s obj1=##class(param.kgrp).%New()
    .. s obj1.code=id d reader.Read() s obj1.bez=reader.Value,obj1.aktiv=aktiv
	. I reader.NodeType = "endelement",reader.Name="kgrp" d obj1.%Save(),obj1.%Close() q
	. ;
	. I reader.NodeType = "element",reader.Name="lager" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. s obj1=##class(param.lager).%New()
    .. s obj1.code=id d reader.Read() s obj1.bez1=reader.Value
	. I reader.NodeType = "endelement",reader.Name="lager" d obj1.%Save(),obj1.%Close() q
    . ;
    . I reader.NodeType = "element",reader.Name="aktion" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. d reader.MoveToAttributeName("abdat") s abdat=reader.Value
    .. d reader.MoveToAttributeName("bisdat") s bisdat=reader.Value
    .. s obj1=##class(stamm.aktion).%New()
    .. i $L(bisdat) s bisdat=$ZDH(bisdat,3)
    .. s obj1.code=id,obj1.abdat=$ZDH(abdat,3),obj1.bisdat=bisdat
    .. d reader.Read() s obj1.bez=reader.Value
	. I reader.NodeType = "endelement",reader.Name="aktion" d obj1.%Save(),obj1.%Close() q
	. ;
    . I reader.NodeType = "element",reader.Name="prliste" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. d reader.MoveToAttributeName("typ") s typ=reader.Value
    .. d reader.MoveToAttributeName("vondat") s vondat=reader.Value
    .. d reader.MoveToAttributeName("bisdat") s bisdat=reader.Value
    .. d reader.MoveToAttributeName("bisdatjn") s bisdatjn=reader.Value
    .. s obj1=##class(param.prliste).%New()
    .. s obj1.code=id,obj1.typ=typ,obj1.vondat=vondat,obj1.bisdat=bisdat,obj1.bisdatjn=bisdatjn 
    .. d reader.Read() s obj1.bez=reader.Value
	. I reader.NodeType = "endelement",reader.Name="prliste" d obj1.%Save(),obj1.%Close() q
    . ;
	. I reader.NodeType = "element",reader.Name="abteilung" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. d reader.MoveToAttributeName("parent") s parent=reader.Value
    .. s obj1=##class(param.abt).%New()
    .. I $L(parent) d
    ... s id1=$O(^param.abtI("index"," "_parent,"")) 
    ... i $L(id1) d obj1.pparentSetObjectId(id1)
    .. s obj1.code=id d reader.Read() s obj1.bez1=reader.Value
	. I reader.NodeType = "endelement",reader.Name="abteilung" d obj1.%Save(),obj1.%Close() q
	. ;
	. I reader.NodeType = "element",reader.Name="wargr" d  q
    .. d reader.MoveToAttributeName("code") s id=reader.Value
    .. d reader.MoveToAttributeName("parent") s parent=reader.Value
    .. s obj1=##class(param.wargr).%New()
    .. I $L(parent) d
    ... s id1=$O(^param.wargrI("index"," "_parent,"")) 
    ... i $L(id1) d obj1.pparentSetObjectId(id1)
    .. s obj1.code=id d reader.Read() s obj1.bez1=reader.Value
    . I reader.NodeType = "endelement",reader.Name="wargr" d obj1.%Save(),obj1.%Close() q
    . ;
    . I reader.NodeType = "element",reader.Name="einaus" d  q
    .. s obj1=##class(param.kassaea).%New()
    .. d reader.MoveToAttributeName("aktiv") s obj1.aktiv=reader.Value
    .. d reader.MoveToAttributeName("code") s obj1.code=reader.Value
    .. d reader.MoveToAttributeName("bez") s obj1.bez=reader.Value
    .. d reader.MoveToAttributeName("einaus") s obj1.einaus=reader.Value
    .. d reader.MoveToAttributeName("konto") s konto=reader.Value i $L(konto) d
    ... s id1=$O(^stamm.kontoI("index"," "_$ZCONVERT(konto,"U"),""))
    ... I $L(id1) d obj1.pkontoSetObjectId(id1)
    .. d reader.MoveToAttributeName("kost") s kost=reader.Value i $l(kost) d
    ... s id1=$O(^stamm.kostI("index"," "_$ZCONVERT(kost,"U"),""))
    ... I $L(id1) d obj1.pkostSetObjectId(id1)
    .. d reader.MoveToAttributeName("mc") s mc=reader.Value i $L(mc) d
    ... s id1=$O(^param.mwcodeI("index"," "_$ZCONVERT(mc,"U"),"")) 
	... i $L(id1) d obj1.pmwcodeSetObjectId(id1)
    .. d reader.MoveToAttributeName("sollhab") s obj1.sollhab=reader.Value
    .. d reader.MoveToAttributeName("posneg") s obj1.posneg=reader.Value
    .. d reader.MoveToAttributeName("einzsum") s obj1.einzsum=reader.Value
    .. d reader.MoveToAttributeName("sachpersk") s obj1.sachpersk=reader.Value
    .. d reader.MoveToAttributeName("anzahl") s obj1.anzahl=reader.Value
    .. d obj1.%Save(),obj1.%Close()
	. ;
   . I reader.NodeType = "element",reader.Name="zahlungsm" d  q
    .. s obj1=##class(param.zahlungsm).%New()
    .. d reader.MoveToAttributeName("code") s obj1.code=reader.Value
    .. d reader.MoveToAttributeName("bez") s obj1.bez=reader.Value
    .. d reader.MoveToAttributeName("rabsw") s obj1.rabsw=reader.Value
    .. d reader.MoveToAttributeName("bonussw") s obj1.bonussw=reader.Value
    .. d reader.MoveToAttributeName("kennung") s obj1.kennung=reader.Value
    . I reader.NodeType = "endelement",reader.Name="zahlungsm" d obj1.%Save(),obj1.%Close()
    . ;
    . I reader.NodeType = "element",reader.Name="gseinauszuord" d  q
    .. s obj1=##class(param.eagszuord).%New()
    .. i reader.MoveToAttributeName("ea") s ea=reader.Value i $L(ea) d
    ... s id1=$O(^param.kassaeaI("code"," "_$ZCONVERT(ea,"U"),""))
    ... i $L(id1) d obj1.pkassaeaSetObjectId(id1)
 	.. i reader.MoveToAttributeName("gstyp") s typ=reader.Value i $L(typ) d
 	... s id1=$O(^param.zahlungsmI("index"," "_$ZCONVERT("D"_typ,"U"),""))
    ... i $L(id1) d obj1.pgutstypSetObjectId(id1)
    .. d reader.MoveToAttributeName("jahr") s obj1.jahr=+reader.Value
    . I reader.NodeType = "endelement",reader.Name="gseinauszuord" d obj1.%Save(),obj1.%Close()
	. ;
    . I reader.NodeType = "element",reader.Name="einauszuord" d  q
    .. s obj1=##class(param.eazuord).%New()
    .. d reader.MoveToAttributeName("code") s obj1.code=reader.Value
    .. d reader.MoveToAttributeName("einaus") s einaus=reader.Value i $L(einaus) d
    ... s id1=$O(^param.kassaeaI("code"," "_$ZCONVERT(einaus,"U"),""))
    ... i $L(id1) d obj1.pkassaeaSetObjectId(id1)
    . I reader.NodeType = "endelement",reader.Name="einauszuord" d obj1.%Save(),obj1.%Close()
	. ;
    . I reader.NodeType = "element",reader.Name="konto" d  q
    .. s obj1=##class(stamm.konto).%New()
    .. d reader.MoveToAttributeName("code") s obj1.code=reader.Value
    .. d reader.MoveToAttributeName("kbez") s obj1.kbez=reader.Value
    .. d reader.MoveToAttributeName("bez1") s obj1.bez1=reader.Value
    .. d reader.MoveToAttributeName("bez2") s obj1.bez2=reader.Value
    .. d reader.MoveToAttributeName("skkonto") s skkonto=reader.Value i $L(skkonto) d
    ... s id1=$O(^stamm.kontoI("index"," "_$ZCONVERT(skkonto,"U"),""))
    ... I $L(id1) d obj1.pskkontoSetObjectId(id1)
    . I reader.NodeType = "endelement",reader.Name="konto" d obj1.%Save(),obj1.%Close()
	. ;
    . I reader.NodeType = "element",reader.Name="kontokost" d  q
    .. d reader.MoveToAttributeName("proz") s proz=reader.Value
    .. d reader.MoveToAttributeName("kost") s kost=reader.Value i $L(kost) d
    ... s id1=$O(^stamm.kostI("index"," "_$ZCONVERT(kost,"U"),""))
    ... s obj2=##class(stamm.kost).%OpenId(id1)
	... d obj1.pkost.SetObjectAt(obj2,kost)
	. ;
    . I reader.NodeType = "element",reader.Name="kost" d  q
    .. s obj1=##class(stamm.kost).%New()
    .. d reader.MoveToAttributeName("code") s obj1.code=reader.Value
    .. d reader.MoveToAttributeName("kbez") s obj1.kbez=reader.Value
    .. d reader.MoveToAttributeName("bez1") s obj1.bez1=reader.Value
    .. d reader.MoveToAttributeName("bez2") s obj1.bez2=reader.Value
    . I reader.NodeType = "endelement",reader.Name="kost" d obj1.%Save(),obj1.%Close()
	. ;
    . I reader.NodeType = "element",reader.Name="bonustab" d  q
    .. s obj1=##class(param.bonustab).%New()
    .. d reader.MoveToAttributeName("datum") s obj1.datum=$ZDH(reader.Value,3)
    .. d reader.MoveToAttributeName("kgrp") s kgrp=reader.Value i $L(kgrp) d
    ... s id1=$O(^param.kgrpI("index"," "_$ZCONVERT(kgrp,"U"),""))
    ... i $L(id1) d obj1.pkgrpSetObjectId(id1)
    .. d reader.MoveToAttributeName("knr") s knr=reader.Value i $L(knr) d
    ... s id1=$O(^stamm.kundeI("keyid",knr,""))
    ... i $L(id1) d obj1.pkundeSetObjectId(id1)
    .. d reader.MoveToAttributeName("ums") s obj1.umsatz=reader.Value
    .. d reader.MoveToAttributeName("punkte") s obj1.punkte=reader.Value
    . I reader.NodeType = "endelement",reader.Name="bonustab" d obj1.%Save(),obj1.%Close()
    . ;
    . I reader.NodeType = "element",reader.Name="belart" d  q
    .. s obj1=##class(param.belart).%New()
    .. d reader.MoveToAttributeName("code") s obj1.code=reader.Value
    .. d reader.MoveToAttributeName("bezpos") s obj1.bezpos=reader.Value
    .. d reader.MoveToAttributeName("bezneg") s obj1.bezneg=reader.Value
    .. d reader.MoveToAttributeName("belegsw") d
    ... s belegsw=reader.Value 
    ... s ad1="" f i=1:1:10 s $LI(ad1,i)=$P(belegsw,",",i)
    ... s obj1.belegsw=ad1
    .. d reader.MoveToAttributeName("barsw") s obj1.barsw=reader.Value
    .. d reader.MoveToAttributeName("preistyp") s obj1.preistyp=reader.Value
    .. d reader.MoveToAttributeName("kassasw") s obj1.kassasw=reader.Value
    .. d reader.MoveToAttributeName("kassanrsw") s obj1.kassanrsw=reader.Value
    .. d reader.MoveToAttributeName("endesw") s obj1.endesw=reader.Value
    .. d reader.MoveToAttributeName("printsw") s obj1.printsw=reader.Value
    .. d reader.MoveToAttributeName("stornosw") s obj1.stornosw=reader.Value
    .. d reader.MoveToAttributeName("datesw") s obj1.datesw=reader.Value
    .. d reader.MoveToAttributeName("kassaea") s kassaea=reader.Value I $L(kassaea) d
    ... s id1=$O(^param.kassaeaI("code"," "_$ZCONVERT(kassaea,"U"),""))
    ... I $L(id1) d obj1.pkassaeaSetObjectId(id1)
    . I reader.NodeType = "endelement",reader.Name="belart" d
    .. s erg=obj1.%Save()
    .. i +erg=0 B "S"
    .. d obj1.%Close()
	;
	k obj1,objrep
	q
 
global
	q
]]></Routine>
<Routine name="KWWSABT" type="INT" languagemode="0" timestamp="61092,80436"><![CDATA[
KWWSABT
 
deep(id)
	
 	n deep,parent
	s deep=1
	s parent=##class(param.abt).%OpenId(id).pparent
	f  q:parent=""  d
	. s deep=deep+1
	. s parent=parent.pparent
	q deep
]]></Routine>
<Routine name="KWWSART" type="INT" languagemode="0" timestamp="61117,58872"><![CDATA[
KWWSART	;KRA;Artikel Routinen
 
SearchArtikel(userid,sutxt,abtnrid,wargrid,aktiv)
 
 	///Auswertung EAN
 	s erg=$$GET^KWWEAN(sutxt)
 	i +$P(erg,"|",1)=7 q 1_"|"_$P(erg,"|",2,3) //Interne/Spezial-Artikel-EANs
 	
 	i $P(erg,"|",1)>0 q -1_"|"_$P(erg,"|",1,99)
 
 	/////////
 
	s siteid=$LI(^system.session($J),1)
 
	I sutxt="" g suche
	I $F(sutxt,"*") g suche
	I $F(sutxt,"%") g suche
	
	s id=$O(^stamm.artikelI("keyid",siteid,0,sutxt,"")) I $L(id)  q 1_"|"_id
	i $L(sutxt)=13!($L(sutxt)=8) s id=$O(^stamm.eanI("keyean",siteid,0,sutxt,1,"")) I $L(id) q 1_"|"_id_"|"_sutxt
	i $L(sutxt)=13!($L(sutxt)=8) s id=$O(^stamm.artikelI("keyvean",siteid,0," "_sutxt,"")) I $L(id) q 1_"|"_id_"|"_sutxt
	g suche
	
suche
	i $L(sutxt) d
	. s sutxt=$TR(sutxt,"*","%")
	. I +sutxt'=sutxt,'$F(sutxt,"%") s sutxt=sutxt_"%"
		
	s cnt=0
	s result=##class(%Library.ResultSet).%New()
	;
	i $L(sutxt) d
	. s sql="select distinct top(200) partikel,partikel->anr,partikel->bez1,partikel->bez2,partikel->pabt->code from stamm.artmatch"
	. s sql=sql_" where partikel->psite=:siteid and partikel->loesw=0"
	. i $L(sutxt) s sql=sql_" and sutext like """_sutxt_""""
	. i $L(abtnrid) s sql=sql_" and partikel->pabt="_abtnrid
	. i $L(wargrid) s sql=sql_" and partikel->pwargr="_wargrid
	. i +aktiv s sql=sql_" and partikel->aktiv=1"
	. s sql=sql_" order by partikel->kbez"
	. I 1
	e  d
	. s sql="select distinct top(200) %Id,anr,bez1,bez2,pabt->code from stamm.artikel"
	. s sql=sql_" where psite="_siteid_" and loesw=0"
	. i $L(abtnrid) s sql=sql_" and pabt="_abtnrid
	. i $L(wargrid) s sql=sql_" and pwargr="_wargrid
	. s sql=sql_" and aktiv=:aktiv"
	. s sql=sql_" order by kbez"
	
 	k ^system.searchD(userid,"AR")
	d result.Prepare(sql)
	d result.Execute()
	f  q:'result.Next()  d
	. s cnt=cnt+1
	. s id=result.GetData(1)
	. s preis=##class(stamm.artikel).GetVkp(id,+$H,1,1,1)
	. I $L(preis) s preis=$FN($LI(preis,2),",",2)
	. s ^system.searchD(userid,"AR",cnt)=$LB("",id_"|"_result.GetData(2)_"|"_result.GetData(3)_result.GetData(4)_"|"_result.GetData(5)_"|"_preis)
	d result.Close()
	k result
 
    i cnt=0 q 0
 	i cnt=1 q cnt_"|"_id	
 
 	
	s obj1=##class(system.searchpar).%OpenId(userid_"||"_"AR")
	i obj1="" d
	. s obj1=##class(system.searchpar).%New()
	. d obj1.puserSetObjectId(userid)
	. s obj1.typ="AR"
	I cnt>0 s obj1.lastsel=""
	s obj1.feld1=$LB(sutxt,abtnrid,wargrid,aktiv)
	d obj1.%Save()
	d obj1.%Close()
	k obj1
 
	q cnt
	
]]></Routine>
<Routine name="KWWSBELEG" type="INT" languagemode="0" timestamp="61092,65308"><![CDATA[
KWWSBELEG
 
SearchBeleg(userid,belart,belnr,kundeid,datumab,merken,kasbelsw)
 
 	s siteid=$LI(^system.session($J),1)
 
	s cnt=0
	s belartid=""
	i $L(belart) s belartid=$O(^param.belartI("index",siteid,0,$ZCONVERT(" "_belart,"U"),""))
	i $L(belartid),$L(belnr) s id="" d  q $LB(cnt,id)  
	. s id=$O(^beweg.belegI("keybelnr",siteid,0,belartid,$ZCONVERT(" "_belnr,"U"),""))
	. i $L(id) s cnt=1
	
	s result=##class(%Library.ResultSet).%New()
	;
	s sql="SELECT %ID,beldat,pbelart->code,belnr,pkunde->knr,pkunde->person_name_name1,pkunde->person_name_name2,wertincl,status FROM beweg.beleg"
	s sql=sql_" where psite="_siteid_" and loesw=0"
	i $L(belartid) s sql=sql_" and pbelart=:belartid"
	i $L(kundeid) s sql=sql_" and pkunde=:kundeid"
	i $L(datumab) s sql=sql_" and beldat>=:datumab"
 
	i 'kasbelsw,belartid="" s kbelart="" f  s kbelart=$O(^param.belartI("kassasw",siteid,0,1,kbelart)) q:kbelart=""  d
	. s id="" f  s id=$O(^param.belartI("kassasw",siteid,0,1,kbelart,id)) q:id=""  d 
	.. s sql=sql_" and pbelart<>"_id
 
	s sql=sql_" order by beldat desc, %Id desc"
	;
	i +merken s ind=userid
	e  s ind=userid_"t"
	d result.Prepare(sql)
	d result.Execute()
	s ksw=1,cnt=0
	f  q:'result.Next()  d  q:cnt'<1000
	. s cnt=cnt+1
	. i ksw k ^system.searchD(ind,"BE") s ksw=0 
	. s ^system.searchD(ind,"BE",cnt)=$LB("",result.GetData(1)_"|"_$ZD(result.GetData(2),3)_"|"_result.GetData(3)_" "_result.GetData(4)_"|"_result.GetData(5)_"|"_result.GetData(6)_" "_result.GetData(7)_"|"_result.GetData(8)_"|"_result.GetData(9))
	d result.Close()
	k result
	
	i +merken d
	. s obj1=##class(system.searchpar).%OpenId(userid_"||"_"BE")
	. i obj1="" d
	.. s obj1=##class(system.searchpar).%New()
	.. d obj1.puserSetObjectId(userid)
	.. s obj1.typ="BE"
	. I cnt>0 s obj1.lastsel=""
	. s obj1.feld1=$LB(kundeid,datumab,belart)
	. d obj1.%Save()
	. d obj1.%Close()
	. k obj1
	
	q $LB(cnt)
]]></Routine>
<Routine name="KWWSETINDEX" type="INT" languagemode="0" timestamp="61092,76542"><![CDATA[
KWWSETINDEX
 
	w "Paket: " r paket
 
	s result = ##class(%ResultSet).%New("%Dictionary.CompiledClass:Summary")
 	d result.Execute()
 	f  q:'result.Next()  d
    . s klasse=result.Data("Name")
    . s obj=##class(%Dictionary.CompiledClass).%OpenId(klasse)
    . q:obj=""
    . i $E(klasse,1)="%" Q
    . i $ZCONVERT(obj.ClassType,"L")'="persistent" q
    . i $L(paket),$P(klasse,".",1)'=paket q
    . w klasse,!
    . s x="K ^"_klasse_"I" x x
    . s x="d ##class("_klasse_").%BuildIndices()" x x    
    . d obj.%Close()
    d result.%Close()
 	q
 
]]></Routine>
<Routine name="KWWSKUND" type="INT" languagemode="0" timestamp="61134,47737"><![CDATA[
KWWSKUND	;KRA;Kunden Routinen
 
SearchKunde(userid,sutxt,kgrpid,aktiv,karte,plz,plzzusatz)
 
	s siteid=$LI(^system.session($J),1)
	 
	I sutxt="" g suche
	I $F(sutxt,"*") g suche
	I $F(sutxt,"%") g suche
	s id=$O(^stamm.kundeI("keyid",siteid,0,sutxt,"")) I $L(id) q 1_"|"_id 
	s erg=$$GET^KWWEAN(sutxt) i $P(erg,"|",1)="1" q 1_"|"_$P(erg,"|",2)
	g suche
	
suche
 
	i $L(sutxt) s sutxt=$TR(sutxt,"*","%") I +sutxt'=sutxt,'$F(sutxt,"%") s sutxt=sutxt_"%"
 
	s plzzusatz=$TR(plzzusatz," ","")
	s plz=$TR(plz," ","")
	s splz="" i $L(plz) s splz="'"_plz_"'"
	f i=1:1:$L(plzzusatz,",") d
	. s plz1=$P(plzzusatz,",",i) q:plz1=""
	. s splz=splz_$S($L(splz):",",1:"")_"'"_plz1_"'"
	s plzcnt=0
	i $L(splz) s plzcnt=1 I $F(splz,",") s plzcnt=2
	i plzcnt=1,$F(splz,"'") s plz=$TR(splz,"'",""),splz=""
	
	
	s cnt=0
	s kartid=+$O(^param.karttypI("kunde",siteid,0,1,""))
	s sland="A"
	s result=##class(%Library.ResultSet).%New()
	;
	s sql="select distinct top(500) pkunde,pkunde->knr,pkunde->person_name_name1,pkunde->person_name_name2,pkunde->person_adresse_plz,pkunde->person_adresse_ort,$$testKarte^KWWSKUND("_siteid_","_kartid_",pkunde->%Id) from stamm.kundmatch"
	s sql=sql_" where pkunde->psite=:siteid and pkunde->loesw=0"
	i $L(sutxt) s sql=sql_" and sutext like """_sutxt_""""
	i +aktiv s sql=sql_" and pkunde->aktiv=1"
	i +karte s sql=sql_" and $$testKarte^KWWSKUND("_siteid_","_kartid_",pkunde->%Id)>0"
	i $L(kgrpid) s sql=sql_" and pkunde->pkgrp="_kgrpid
	i plzcnt=1 s sql=sql_" and pkunde->person_adresse_land="""_sland_""" and pkunde->person_adresse_plz="""_plz_""""
	e  i plzcnt>1 s sql=sql_" and pkunde->person_adresse_land="""_sland_""" and pkunde->person_adresse_plz in ("_splz_")"
	s sql=sql_" order by pkunde->person_name_kbez"
	;
	k ^system.searchD(userid,"KU")
	d result.Prepare(sql)
	d result.Execute()
	f  q:'result.Next()  d
	. s cnt=cnt+1
	. s id=result.GetData(1)
	. s name1=result.GetData(3)
	. s name2=result.GetData(4)
	. s name=name2_$S(name2'="":" ",1:"")_name1
	. s ^system.searchD(userid,"KU",cnt)=$LB("",result.GetData(1)_"|"_result.GetData(2)_"|"_name_"|"_result.GetData(5)_"|"_result.GetData(6)_"|"_result.GetData(7))
	d result.Close()
	k result
	
	i cnt=0 q 0
 	i cnt=1 q cnt_"|"_id
 
	s obj1=##class(system.searchpar).%OpenId(userid_"||"_"KU")
	i obj1="" d
	. s obj1=##class(system.searchpar).%New()
	. d obj1.puserSetObjectId(userid)
	. s obj1.typ="KU"
	I cnt>0 s obj1.lastsel=""
	s obj1.feld1=$LB(sutxt,kgrpid,aktiv,karte,plz,plzzusatz)
	s ^test("S")=plzzusatz
	d obj1.%Save()
	d obj1.%Close()
	k obj1
 
	
	q cnt
	
testKarte(siteid, kartid, kundid)
 
	q $D(^stamm.kukarteI("kartesw",siteid,0,kartid,kundid))>0
]]></Routine>
<Routine name="KWWSONDER" type="INT" languagemode="0" timestamp="61117,71506"><![CDATA[
KWWSONDER	;KRA;Sonderpreisfindung
 
BaumatPort(conn,knr,anr,datum,menge,schiene,incl,mapr,ean)
 
 	n (conn,knr,anr,datum,menge,schiene,incl,mapr,ean)
	
 	s firma=$P(conn,"|",1),fil=$P(conn,"|",2),ip=$P(conn,"|",3),namespace=$P(conn,"|",4)
 	 	
 	s db=##class(system.zcpp).%New()
 	i +db.connect(ip,namespace)=0 k db q ""
 	
 	s comm="s p0=$$getPreis^KWWBAUMAT("""_firma_""","""_fil_""","""_knr_""","""_anr_""","""_datum_""","""_menge_""","""_schiene_""","""_incl_""","""_mapr_""","""_ean_""")"
 	s erg=db.exec(comm)
 	d db.disConnect()
 	k db
 	
 	q erg
 
 
]]></Routine>
<Routine name="KWWSWARGR" type="INT" languagemode="0" timestamp="61076,50056"><![CDATA[
WWSWARGR
 
KWWSABT
 
deep(id)
 	n deep,parent
	s deep=1
	s parent=##class(param.wargr).%OpenId(id).pparent
	f  q:parent=""  d
	. s deep=deep+1
	. s parent=parent.pparent
	q deep
]]></Routine>
<Routine name="KWWUTIL" type="INT" languagemode="0" timestamp="61098,50430"><![CDATA[
KWWUTIL	;KWWS;Utils
 
DATTXT(hor,tr)
 
	S:$G(tr)="" tr="/"
	I +hor=0 q ""
	q $TR($ZD(hor,4),"/",tr)
 
setaction
	d ##class(system.session).SetTestSession()
	s id="" f  s id=$O(^system.buttonsD(id)) q:id=""  d
	. s objbut=##class(system.buttons).%OpenId(id) q:objbut=""
	. s aktion=$TR(objbut.aktion,".","")
	. i $E(aktion,1,6)'="action" s aktion="action"_aktion
	. w aktion,!
	. s objbut.aktion=aktion
	. s x=objbut.%Save()
	. d objbut.%Close()
	k objbut
	q
 
 
setbasis
	s id="" f  s id=$O(^system.layoutD(id)) q:id=""  d
	. s obj=##class(system.layout).%OpenId(id)
	. s obj.anldatum=$ZDT($H,3)
	. d obj.pmitarbSetObjectId(1001)
	. d obj.%Save()
	. d obj.%Close()
	k obj
	q
	
test
	s id="" f  s id=$O(^stamm.artikelD(id)) q:id=""  d
	. s obj=##class(stamm.artikel).%OpenId(id)
	. s x="s z=obj.anr_"" ""_obj.bez1" x x
	. s z(obj.anr)=z
	. d obj.%Close()
	k obj
]]></Routine>
<Routine name="XDELACT" type="INT" languagemode="0" timestamp="61076,50056"><![CDATA[
 
	s id="" f  s id=$O(^system.menuD(id)) q:id=""  d
	. s obj=##class(system.menu).%OpenId(id) q:obj=""
	. i $L(obj.paction) s action(obj.paction.%Id())=obj.paction.bez w obj.paction.bez,!
	. d obj.%Close()
	
	r *X
	
	s id="" f  s id=$O(^system.actionsD(id)) q:id=""  d
	. s obj=##class(system.actions).%OpenId(id) q:obj=""
	. i '$D(action(id)) w obj.bez,! d obj.%DeleteId(id)
	. d obj.%Close()
	q
]]></Routine>
<Class name="basis.acontobezahl">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.842812</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="acontonr">
<Type>%String</Type>
</Property>

<Property name="adatum">
<Type>%Date</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>acontobezahlState</State>
<StreamLocation>^basis.acontobezahlS</StreamLocation>
<Data name="acontobezahlState">
<Structure>listnode</Structure>
<Subscript>"basis.acontobezahl"</Subscript>
<Value name="1">
<Value>beleg</Value>
</Value>
<Value name="2">
<Value>betrag</Value>
</Value>
<Value name="3">
<Value>datum</Value>
</Value>
<Value name="4">
<Value>pbeleg</Value>
</Value>
<Value name="5">
<Value>acontonr</Value>
</Value>
<Value name="6">
<Value>adatum</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.adresse">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.962454</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="strasse">
<Type>%String</Type>
</Property>

<Property name="plz">
<Type>%String</Type>
</Property>

<Property name="ort">
<Type>%String</Type>
</Property>

<Property name="land">
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>adresseState</State>
<StreamLocation>^basis.adresseS</StreamLocation>
<Data name="adresseState">
<Structure>listnode</Structure>
<Subscript>"basis.adresse"</Subscript>
<Value name="1">
<Value>land</Value>
</Value>
<Value name="2">
<Value>ort</Value>
</Value>
<Value name="3">
<Value>plz</Value>
</Value>
<Value name="4">
<Value>strasse</Value>
</Value>
<Value name="5">
<Value>pland</Value>
</Value>
<Value name="6">
<Value>port</Value>
</Value>
<Value name="7">
<Value>pplz</Value>
</Value>
<Value name="8">
<Value>pstrasse</Value>
</Value>
<Value name="9">
<Value>anrede</Value>
</Value>
<Value name="10">
<Value>name1</Value>
</Value>
<Value name="11">
<Value>name2</Value>
</Value>
<Value name="12">
<Value>prechtsform</Value>
</Value>
<Value name="13">
<Value>ptitel</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.artber">
<Abstract>1</Abstract>
<ClassType/>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.968611</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pmwcode">
<Type>param.mwcode</Type>
</Property>

<Property name="skontosw">
<Type>%Boolean</Type>
</Property>

<Property name="rabvkjn">
<Type>%Boolean</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>artberState</State>
<StreamLocation>^basis.artberS</StreamLocation>
<Data name="artberState">
<Structure>listnode</Structure>
<Subscript>"basis.artber"</Subscript>
<Value name="1">
<Value>mwcode</Value>
</Value>
<Value name="2">
<Value>sktber</Value>
</Value>
<Value name="3">
<Value>rabber</Value>
</Value>
<Value name="4">
<Value>rabbervk</Value>
</Value>
<Value name="5">
<Value>rabvkjn</Value>
</Value>
<Value name="6">
<Value>sktjn</Value>
</Value>
<Value name="7">
<Value>skontojn</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.artbez">
<Abstract>1</Abstract>
<ClassType/>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.974729</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="notiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="kbez">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>

<Property name="info">
<Type>%String</Type>
</Property>

<Property name="kbez1">
<Type>%String</Type>
<Collection>list</Collection>
</Property>

<Property name="text">
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>artbezState</State>
<StreamLocation>^basis.artbezS</StreamLocation>
</Storage>
</Class>
<Class name="basis.arteinh">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.979995</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="einh">
<Type>param.meeinh</Type>
</Property>

<Property name="faktor">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>arteinhState</State>
<StreamLocation>^basis.arteinhS</StreamLocation>
<Data name="arteinhState">
<Structure>listnode</Structure>
<Subscript>"basis.arteinh"</Subscript>
<Value name="1">
<Value>einh</Value>
</Value>
<Value name="2">
<Value>faktor</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.artek">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.985865</TimeCreated>

<Property name="rab1">
<Type>%Float</Type>
</Property>

<Property name="rab2">
<Type>%Float</Type>
</Property>

<Property name="rab3">
<Type>%Float</Type>
</Property>

<Property name="rab4">
<Type>%Float</Type>
</Property>

<Property name="netto">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>artekState</State>
<StreamLocation>^basis.artekS</StreamLocation>
<Data name="artekState">
<Structure>listnode</Structure>
<Subscript>"basis.artek"</Subscript>
<Value name="1">
<Value>netto</Value>
</Value>
<Value name="2">
<Value>rab1</Value>
</Value>
<Value name="3">
<Value>rab2</Value>
</Value>
<Value name="4">
<Value>rab3</Value>
</Value>
<Value name="5">
<Value>rab4</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.artfolge">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59922,78548.0775</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="menge">
<Type>%Float</Type>
</Property>

<Property name="folge">
<Type>stamm.artikel</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>artfolgeState</State>
<StreamLocation>^basis.artfolgeS</StreamLocation>
<Data name="artfolgeState">
<Structure>listnode</Structure>
<Subscript>"basis.artfolge"</Subscript>
<Value name="1">
<Value>folge</Value>
</Value>
<Value name="2">
<Value>menge</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.artkontierung">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.825206</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="inland">
<Type>stamm.konto</Type>
</Property>

<Property name="euinland">
<Type>stamm.konto</Type>
</Property>

<Property name="euausland">
<Type>stamm.konto</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>artkontierungState</State>
<StreamLocation>^basis.artkontierungS</StreamLocation>
<Data name="artkontierungState">
<Structure>listnode</Structure>
<Subscript>"basis.artkontierung"</Subscript>
<Value name="1">
<Value>euausland</Value>
</Value>
<Value name="2">
<Value>euinland</Value>
</Value>
<Value name="3">
<Value>inland</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.artmasse">
<Abstract>1</Abstract>
<ClassType/>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.829287</TimeCreated>

<Property name="gew">
<Type>%Float</Type>
</Property>

<Property name="hoehe">
<Type>%Float</Type>
</Property>

<Property name="breite">
<Type>%Float</Type>
</Property>

<Property name="tiefe">
<Type>%Float</Type>
</Property>

<Property name="masseeinh">
<Type>%String</Type>
</Property>
</Class>
<Class name="basis.averband">
<Abstract>1</Abstract>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85740.996546</TimeCreated>

<Property name="vlistkz">
<Type>%String</Type>
</Property>

<Property name="vanr">
<Type>%String</Type>
</Property>

<Property name="vean">
<Type>%String</Type>
</Property>

<Method name="GetListkz">
<ClassMethod>1</ClassMethod>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[	Q $LB("","J","N","A","B","C")
]]></Implementation>
</Method>
</Class>
<Class name="basis.belegart">
<Abstract>1</Abstract>
<ProcedureBlock>1</ProcedureBlock>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.847705</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>

<Property name="pabtnr">
<Type>param.abt</Type>
</Property>

<Property name="pwargr">
<Type>param.wargr</Type>
</Property>

<Property name="info">
<Type>%String</Type>
</Property>
</Class>
<Class name="basis.belkonto">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.852943</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="sollhab">
<Description>
soll=true,haben=false</Description>
<Type>%Boolean</Type>
</Property>

<Property name="konto">
<Type>basis.konto</Type>
</Property>

<Property name="gkonto">
<Type>basis.konto</Type>
</Property>

<Property name="mwproz">
<Type>%Float</Type>
</Property>

<Property name="betrexcl">
<Type>%Float</Type>
</Property>

<Property name="betrmwst">
<Type>%Float</Type>
</Property>

<Property name="kost">
<Type>basis.belkost</Type>
<Collection>list</Collection>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>belkontoState</State>
<StreamLocation>^basis.belkontoS</StreamLocation>
<Data name="belkontoState">
<Structure>listnode</Structure>
<Subscript>"basis.belkonto"</Subscript>
<Value name="1">
<Value>betrexcl</Value>
</Value>
<Value name="2">
<Value>betrmwst</Value>
</Value>
<Value name="3">
<Value>kost</Value>
</Value>
<Value name="4">
<Value>mwproz</Value>
</Value>
<Value name="5">
<Value>sollhaben</Value>
</Value>
<Value name="6">
<Value>sollhab</Value>
</Value>
<Value name="7">
<Value>kontoart</Value>
</Value>
<Value name="8">
<Value>pkonto</Value>
</Value>
<Value name="9">
<Value>pkunde</Value>
</Value>
<Value name="10">
<Value>gkonto</Value>
</Value>
<Value name="11">
<Value>konto</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.belkost">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.857025</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>belkostState</State>
<StreamLocation>^basis.belkostS</StreamLocation>
<Data name="belkostState">
<Structure>listnode</Structure>
<Subscript>"basis.belkost"</Subscript>
<Value name="1">
<Value>betrag</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.belmwtab">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.861728</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="mwproz">
<Type>%Float</Type>
</Property>

<Property name="betrexcl">
<Type>%Float</Type>
</Property>

<Property name="betrmwst">
<Type>%Float</Type>
</Property>

<Property name="skexcl">
<Type>%Float</Type>
</Property>

<Property name="skmwst">
<Type>%Float</Type>
</Property>

<Property name="skbasis">
<Type>%Float</Type>
</Property>

<Property name="konten">
<Type>basis.belkonto</Type>
<Collection>list</Collection>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>belmwtabState</State>
<StreamLocation>^basis.belmwtabS</StreamLocation>
<Data name="belmwtabState">
<Structure>listnode</Structure>
<Subscript>"basis.belmwtab"</Subscript>
<Value name="1">
<Value>betrexcl</Value>
</Value>
<Value name="2">
<Value>betrmwst</Value>
</Value>
<Value name="3">
<Value>konten</Value>
</Value>
<Value name="4">
<Value>mwproz</Value>
</Value>
<Value name="5">
<Value>skbasis</Value>
</Value>
<Value name="6">
<Value>skexcl</Value>
</Value>
<Value name="7">
<Value>skmwst</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.fremdwbezahl">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.865906</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pfremdw">
<Type>param.fremdw</Type>
</Property>

<Property name="betragfrw">
<Type>%Float</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>fremdwbezahlState</State>
<StreamLocation>^basis.fremdwbezahlS</StreamLocation>
<Data name="fremdwbezahlState">
<Structure>listnode</Structure>
<Subscript>"basis.fremdwbezahl"</Subscript>
<Value name="1">
<Value>betrag</Value>
</Value>
<Value name="2">
<Value>betragfrw</Value>
</Value>
<Value name="3">
<Value>pfremdw</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.gsbonbezahl">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.870541</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="gsnr">
<Type>%String</Type>
</Property>

<Property name="adatum">
<Type>%Date</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>gsbonbezahlState</State>
<StreamLocation>^basis.gsbonbezahlS</StreamLocation>
<Data name="gsbonbezahlState">
<Structure>listnode</Structure>
<Subscript>"basis.gsbonbezahl"</Subscript>
<Value name="1">
<Value>adatum</Value>
</Value>
<Value name="2">
<Value>betrag</Value>
</Value>
<Value name="3">
<Value>gsnr</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.gutschbezahl">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59922,78548.140965</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="gsnr">
<Type>%String</Type>
</Property>

<Property name="adatum">
<Type>%Date</Type>
</Property>

<Property name="abeleg">
<Description>
$LB(belart,belnr)</Description>
<Type>%List</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>gutschbezahlState</State>
<StreamLocation>^basis.gutschbezahlS</StreamLocation>
<Data name="gutschbezahlState">
<Structure>listnode</Structure>
<Subscript>"basis.gutschbezahl"</Subscript>
<Value name="1">
<Value>gutsch</Value>
</Value>
<Value name="2">
<Value>pgutsch</Value>
</Value>
<Value name="3">
<Value>adatum</Value>
</Value>
<Value name="4">
<Value>betrag</Value>
</Value>
<Value name="5">
<Value>gsnr</Value>
</Value>
<Value name="6">
<Value>abeleg</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.gutschein">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59922,78548.152415</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pgutstyp">
<Type>param.zahlungsm</Type>
</Property>

<Property name="gsnr">
<Type>%String</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Property name="adatum">
<Type>%Date</Type>
</Property>

<Property name="paknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="abeleg">
<Type>%String</Type>
</Property>

<Property name="edatum">
<Type>%Date</Type>
</Property>

<Property name="peknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="ebeleg">
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>gutscheinState</State>
<StreamLocation>^basis.gutscheinS</StreamLocation>
<Data name="gutscheinState">
<Structure>listnode</Structure>
<Subscript>"basis.gutschein"</Subscript>
<Value name="1">
<Value>abeleg</Value>
</Value>
<Value name="2">
<Value>adatum</Value>
</Value>
<Value name="3">
<Value>betrag</Value>
</Value>
<Value name="4">
<Value>ebeleg</Value>
</Value>
<Value name="5">
<Value>edatum</Value>
</Value>
<Value name="6">
<Value>gsnr</Value>
</Value>
<Value name="7">
<Value>pgstyp</Value>
</Value>
<Value name="8">
<Value>qbeleg</Value>
</Value>
<Value name="9">
<Value>paknr</Value>
</Value>
<Value name="10">
<Value>peknr</Value>
</Value>
<Value name="11">
<Value>pgutstyp</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.kartbezahl">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.02782</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pkarttyp">
<Type>param.karttyp</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Property name="zahlungsid">
<Type>%String</Type>
<Parameter name="MAXLEN"/>
</Property>

<Property name="nr">
<Type>%String</Type>
</Property>

<Property name="bisper">
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>kartbezahlState</State>
<StreamLocation>^basis.kartbezahlS</StreamLocation>
<Data name="kartbezahlState">
<Structure>listnode</Structure>
<Subscript>"basis.kartbezahl"</Subscript>
<Value name="1">
<Value>betrag</Value>
</Value>
<Value name="2">
<Value>pkarte</Value>
</Value>
<Value name="3">
<Value>pkarttyp</Value>
</Value>
<Value name="4">
<Value>zahlungsid</Value>
</Value>
<Value name="5">
<Value>bisdat</Value>
</Value>
<Value name="6">
<Value>nr</Value>
</Value>
<Value name="7">
<Value>bisper</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.kbonus">
<Abstract>1</Abstract>
<ClassType/>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.889808</TimeCreated>

<Property name="kbdatum">
<Type>%Date</Type>
</Property>

<Property name="kbaktpkt">
<Type>%Float</Type>
</Property>

<Property name="kbabrdatum">
<Type>%Date</Type>
</Property>

<Property name="kbabrpkt">
<Type>%Float</Type>
</Property>

<Property name="kbonusjn">
<Type>%Boolean</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>kbonusState</State>
<StreamLocation>^basis.kbonusS</StreamLocation>
<Data name="kbonusState">
<Structure>listnode</Structure>
<Subscript>"basis.kbonus"</Subscript>
<Value name="1">
<Value>abrdatum</Value>
</Value>
<Value name="2">
<Value>abrpkt</Value>
</Value>
<Value name="3">
<Value>aktpkt</Value>
</Value>
<Value name="4">
<Value>bonusjn</Value>
</Value>
<Value name="5">
<Value>datum</Value>
</Value>
<Value name="6">
<Value>kbabrdatum</Value>
</Value>
<Value name="7">
<Value>kbabrpkt</Value>
</Value>
<Value name="8">
<Value>kbaktpkt</Value>
</Value>
<Value name="9">
<Value>kbdatum</Value>
</Value>
<Value name="10">
<Value>kbonusjn</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.kontakt">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject,%Populate,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.039371</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="tel">
<Type>%String</Type>
</Property>

<Property name="fax">
<Type>%String</Type>
</Property>

<Property name="mobil">
<Type>%String</Type>
</Property>

<Property name="email">
<Type>%String</Type>
</Property>

<Property name="www">
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>kontaktState</State>
<StreamLocation>^basis.kontaktS</StreamLocation>
<Data name="kontaktState">
<Structure>listnode</Structure>
<Subscript>"basis.kontakt"</Subscript>
<Value name="1">
<Value>email</Value>
</Value>
<Value name="2">
<Value>fax</Value>
</Value>
<Value name="3">
<Value>mobil</Value>
</Value>
<Value name="4">
<Value>tel</Value>
</Value>
<Value name="5">
<Value>www</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.konto">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.898458</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="typ">
<Description>
Kontotyp S=Sachkonto,K=Kundenkonto,L=Lieferantenkonto</Description>
<Type>%String</Type>
</Property>

<Property name="pkonto">
<Type>stamm.konto</Type>
</Property>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>kontoState</State>
<StreamLocation>^basis.kontoS</StreamLocation>
<Data name="kontoState">
<Structure>listnode</Structure>
<Subscript>"basis.konto"</Subscript>
<Value name="1">
<Value>pkonto</Value>
</Value>
<Value name="2">
<Value>pkunde</Value>
</Value>
<Value name="3">
<Value>typ</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.kost">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.902665</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pkost">
<Type>stamm.kost</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>kostState</State>
<StreamLocation>^basis.kostS</StreamLocation>
<Data name="kostState">
<Structure>listnode</Structure>
<Subscript>"basis.kost"</Subscript>
<Value name="1">
<Value>betrag</Value>
</Value>
<Value name="2">
<Value>pkost</Value>
</Value>
<Value name="3">
<Value>sollhaben</Value>
</Value>
<Value name="4">
<Value>betrexcl</Value>
</Value>
<Value name="5">
<Value>betrmwst</Value>
</Value>
<Value name="6">
<Value>pmwcode</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.kuliadresse">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.907643</TimeCreated>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="name2">
<Type>%String</Type>
</Property>

<Property name="adr">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>kuliadresseState</State>
<StreamLocation>^basis.kuliadresseS</StreamLocation>
<Data name="kuliadresseState">
<Structure>listnode</Structure>
<Subscript>"basis.kuliadresse"</Subscript>
<Value name="1">
<Value>adr</Value>
</Value>
<Value name="2">
<Value>kbez</Value>
</Value>
<Value name="3">
<Value>kontakt</Value>
</Value>
<Value name="4">
<Value>name1</Value>
</Value>
<Value name="5">
<Value>name2</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.liverband">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject,%Populate,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.043943</TimeCreated>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<StreamLocation>^basis.liverbandS</StreamLocation>
</Storage>
</Class>
<Class name="basis.muenze">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.917238</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="wert">
<Type>%Float</Type>
</Property>

<Property name="anzahl">
<Type>%Integer</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>muenzeState</State>
<StreamLocation>^basis.muenzeS</StreamLocation>
<Data name="muenzeState">
<Structure>listnode</Structure>
<Subscript>"basis.muenze"</Subscript>
<Value name="1">
<Value>anzahl</Value>
</Value>
<Value name="2">
<Value>wert</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.name">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject,%XML.Adaptor</Super>
<TimeChanged>61112,63355.247673</TimeChanged>
<TimeCreated>61075,48826.922616</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="anrede">
<Type>%String</Type>
</Property>

<Property name="titel">
<Type>%String</Type>
</Property>

<Property name="titel1">
<Type>%String</Type>
</Property>

<Property name="name1">
<Description>
vorname</Description>
<Type>%String</Type>
</Property>

<Property name="name2">
<Description>
zuname oder firmenname
in den firmennamen kann per funktion rechtsform geladen werden</Description>
<Type>%String</Type>
</Property>

<Property name="kbez">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="kbez1">
<Type>%String</Type>
<Collection>list</Collection>
</Property>

<Property name="kbezall">
<Type>%List</Type>
<Calculated>1</Calculated>
</Property>

<Property name="name">
<Type>%String</Type>
<SqlComputeCode> Set {name} = {name2}_" "_{name1}</SqlComputeCode>
<SqlComputed>1</SqlComputed>
</Property>

<Method name="kbezallSet">
<FormalSpec>Arg:%List</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	d ..kbez1.Clear()
	f i=1:1:$LL(Arg) d ..kbez1.Insert($LI(Arg,i))
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="kbezallGet">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s i=0,kbez=""
	s key="" f  s kbez1=..kbez1.GetNext(.key) q:key=""  d
	. s i=i+1,$LI(kbez,i)=kbez1
	Q kbez
]]></Implementation>
</Method>

<Method name="nameGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ..name2_" "_..name1
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>nameState</State>
<StreamLocation>^basis.nameS</StreamLocation>
<Data name="nameState">
<Structure>listnode</Structure>
<Subscript>"basis.name"</Subscript>
<Value name="1">
<Value>anrede</Value>
</Value>
<Value name="2">
<Value>name1</Value>
</Value>
<Value name="3">
<Value>name2</Value>
</Value>
<Value name="4">
<Value>prechtsform</Value>
</Value>
<Value name="5">
<Value>ptitel</Value>
</Value>
<Value name="6">
<Value>kbez</Value>
</Value>
<Value name="7">
<Value>kbez1</Value>
</Value>
<Value name="8">
<Value>titel1</Value>
</Value>
<Value name="9">
<Value>titel2</Value>
</Value>
<Value name="10">
<Value>titel</Value>
</Value>
<Value name="11">
<Value>name</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.person">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.927289</TimeCreated>

<Property name="name">
<Type>basis.name</Type>
</Property>

<Property name="adresse">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Property name="gebdat">
<Type>%Date</Type>
</Property>

<Property name="altgrp">
<Type>%Date</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>personState</State>
<StreamLocation>^basis.personS</StreamLocation>
<Data name="personState">
<Structure>listnode</Structure>
<Subscript>"basis.person"</Subscript>
<Value name="1">
<Value>adresse</Value>
</Value>
<Value name="2">
<Value>gebdat</Value>
</Value>
<Value name="3">
<Value>kontakt</Value>
</Value>
<Value name="4">
<Value>name</Value>
</Value>
<Value name="5">
<Value>altgrp</Value>
</Value>
<Value name="6">
<Value>altgruppe</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.preis">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject,%Populate,%XML.Adaptor</Super>
<TimeChanged>61118,56216.251603</TimeChanged>
<TimeCreated>59921,85741.052994</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="brutto">
<Type>%Float</Type>
</Property>

<Property name="rab1">
<Type>%Float</Type>
</Property>

<Property name="rab2">
<Type>%Float</Type>
</Property>

<Property name="rab3">
<Type>%Float</Type>
</Property>

<Property name="rab4">
<Type>%Float</Type>
</Property>

<Property name="rabtxt">
<Type>%String</Type>
</Property>

<Property name="netto1">
<Type>%Float</Type>
</Property>

<Property name="est">
<Type>%Float</Type>
</Property>

<Property name="pmwcode">
<Type>param.mwcode</Type>
</Property>

<Property name="netto2">
<Type>%Float</Type>
</Property>

<Property name="pprlist">
<Type>param.prliste</Type>
</Property>

<Property name="paktion">
<Type>stamm.aktion</Type>
</Property>

<Property name="preinh">
<Type>param.meeinh</Type>
</Property>

<Property name="prme">
<Type>%Float</Type>
</Property>

<Property name="prfaktor">
<Type>%Float</Type>
</Property>

<Property name="manuell">
<Type>%Boolean</Type>
</Property>

<Property name="skontosw">
<Type>%Boolean</Type>
</Property>

<Property name="preistext">
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>preisState</State>
<StreamLocation>^basis.preisS</StreamLocation>
<Data name="preisState">
<Structure>listnode</Structure>
<Subscript>"basis.preis"</Subscript>
<Value name="1">
<Value>mwcode</Value>
</Value>
<Value name="2">
<Value>preis1</Value>
</Value>
<Value name="3">
<Value>preis2</Value>
</Value>
<Value name="4">
<Value>preis3</Value>
</Value>
<Value name="5">
<Value>rab1</Value>
</Value>
<Value name="6">
<Value>rab2</Value>
</Value>
<Value name="7">
<Value>rab3</Value>
</Value>
<Value name="8">
<Value>rab4</Value>
</Value>
<Value name="9">
<Value>brutto</Value>
</Value>
<Value name="10">
<Value>netto1</Value>
</Value>
<Value name="11">
<Value>netto2</Value>
</Value>
<Value name="12">
<Value>aktion</Value>
</Value>
<Value name="13">
<Value>prlist</Value>
</Value>
<Value name="14">
<Value>paktion</Value>
</Value>
<Value name="15">
<Value>pmwcode</Value>
</Value>
<Value name="16">
<Value>pprlist</Value>
</Value>
<Value name="17">
<Value>preinh</Value>
</Value>
<Value name="18">
<Value>prme</Value>
</Value>
<Value name="19">
<Value>manuell</Value>
</Value>
<Value name="20">
<Value>prfaktor</Value>
</Value>
<Value name="21">
<Value>skontojn</Value>
</Value>
<Value name="22">
<Value>skontosw</Value>
</Value>
<Value name="23">
<Value>rabtxt</Value>
</Value>
<Value name="24">
<Value>preistext</Value>
</Value>
<Value name="25">
<Value>est</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.valute">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.938874</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pvalute">
<Type>param.fremdw</Type>
</Property>

<Property name="betrval">
<Type>%Float</Type>
</Property>

<Property name="betr">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>valuteState</State>
<StreamLocation>^basis.valuteS</StreamLocation>
<Data name="valuteState">
<Structure>listnode</Structure>
<Subscript>"basis.valute"</Subscript>
<Value name="1">
<Value>betr</Value>
</Value>
<Value name="2">
<Value>betrval</Value>
</Value>
<Value name="3">
<Value>pvalute</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="basis.zkdat">
<ClassType>serial</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%SerialObject</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.943582</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="skontopr1">
<Type>%Float</Type>
</Property>

<Property name="datum1">
<Type>%Date</Type>
</Property>

<Property name="skontopr2">
<Type>%Float</Type>
</Property>

<Property name="datum2">
<Type>%Date</Type>
</Property>

<Property name="datumn">
<Type>%Date</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheSerialState</Type>
<State>zkdatState</State>
<StreamLocation>^basis.zkdatS</StreamLocation>
<Data name="zkdatState">
<Structure>listnode</Structure>
<Subscript>"basis.zkdat"</Subscript>
<Value name="1">
<Value>datum1</Value>
</Value>
<Value name="2">
<Value>datum2</Value>
</Value>
<Value name="3">
<Value>datumn</Value>
</Value>
<Value name="4">
<Value>skontopr1</Value>
</Value>
<Value name="5">
<Value>skontopr2</Value>
</Value>
<Value name="6">
<Value>basis</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.beleg">
<ClassType>persistent</ClassType>
<Super>system.base,%Persistent,%XML.Adaptor</Super>
<TimeChanged>61127,15442.176725</TimeChanged>
<TimeCreated>61075,48826.974393</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="beldat">
<Description>
/////// KOPFDATEN ////////////////////////////////////////////////////////////////</Description>
<Type>%Date</Type>
</Property>

<Property name="beltime">
<Type>%Time</Type>
</Property>

<Property name="pbelart">
<Type>param.belart</Type>
</Property>

<Property name="belnr">
<Type>%String</Type>
</Property>

<Property name="status">
<Description>
0=neu, 1=offen, 2=erledigt</Description>
<Type>%Integer</Type>
</Property>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Property name="kunde">
<Type>basis.person</Type>
</Property>

<Property name="pkuadr">
<Type>stamm.kuadr</Type>
</Property>

<Property name="kuadr">
<Type>basis.kuliadresse</Type>
</Property>

<Property name="plief">
<Type>stamm.lief</Type>
</Property>

<Property name="pliadr">
<Type>stamm.liadr</Type>
</Property>

<Property name="internsw">
<Type>%Boolean</Type>
</Property>

<Property name="nachlauftxt">
<Type>%List</Type>
</Property>

<Property name="pzk">
<Description>
/// SKONTODATEN ////////////////////////////////////////////////////////////////</Description>
<Type>param.zk</Type>
</Property>

<Property name="zkdat">
<Description>
aufgelöste Skontodaten</Description>
<Type>basis.zkdat</Type>
</Property>

<Property name="valutadat">
<Type>%Date</Type>
</Property>

<Property name="skbasis">
<Type>%Float</Type>
</Property>

<Property name="barskpr">
<Description>
Barskonto</Description>
<Type>%Float</Type>
</Property>

<Property name="barskabs">
<Type>%Float</Type>
</Property>

<Property name="gesrabpr">
<Description>
///// RABATTDATEN ///////////////////////////////////////////////////////////////////</Description>
<Type>%Float</Type>
</Property>

<Property name="rabtxt">
<Type>%String</Type>
</Property>

<Property name="ausfolgesw">
<Type>%Boolean</Type>
</Property>

<Property name="kassa">
<Description>
///// KASSA ////////////////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="einaus">
<Type>beweg.belegeinaus</Type>
<Cardinality>children</Cardinality>
<Inverse>beleg</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="zahlb">
<Description>
Summe Zahlbetrag Warenartikel + Belegzahlungen +E/A</Description>
<Type>%Float</Type>
</Property>

<Property name="bar">
<Type>%Float</Type>
</Property>

<Property name="barfrw">
<Type>basis.fremdwbezahl</Type>
<Collection>list</Collection>
</Property>

<Property name="gutsch">
<Type>basis.gutschbezahl</Type>
<Collection>list</Collection>
</Property>

<Property name="karte">
<Type>basis.kartbezahl</Type>
<Collection>list</Collection>
</Property>

<Property name="gsbon">
<Type>basis.gsbonbezahl</Type>
<Collection>list</Collection>
</Property>

<Property name="aconto">
<Type>basis.acontobezahl</Type>
<Collection>list</Collection>
</Property>

<Property name="summezm">
<Type>%Float</Type>
</Property>

<Property name="restg">
<Type>%Float</Type>
</Property>

<Property name="negativsw">
<Type>%Boolean</Type>
</Property>

<Property name="mwstsw">
<Description>
///// BELEGBETRÄGE  ////////////////////////////////////////////////////////////////
wenn false dann keine Mwst</Description>
<Type>%Boolean</Type>
</Property>

<Property name="wertexcl">
<Description>
Warenwert excl/incl vor Skonto </Description>
<Type>%Float</Type>
</Property>

<Property name="wertincl">
<Type>%Float</Type>
</Property>

<Property name="bezahlt">
<Type>%String</Type>
</Property>

<Property name="bonuspunkte">
<Description>
///// BONUSDATEN ///////////////////////////////////////////////////////////////////</Description>
<Type>%Integer</Type>
</Property>

<Property name="bonusbasis">
<Type>%Float</Type>
</Property>

<Property name="bonusnegativ">
<Type>%Boolean</Type>
</Property>

<Property name="image">
<Description>
///// ARCHIVDATEN //////////////////////////////////////////////////////////////////</Description>
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="mwkonten">
<Description>
////// FIBUDATEN ///////////////////////////////////////////////////////////////////</Description>
<Type>basis.belmwtab</Type>
<Collection>array</Collection>
</Property>

<Property name="pos">
<Description>
///// POSITIONSDATEN ///////////////////////////////////////////////////////////////</Description>
<Type>beweg.belegpos</Type>
<Cardinality>children</Cardinality>
<Inverse>beleg</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pparent">
<Type>beweg.beleg</Type>
<Collection>array</Collection>
</Property>

<Property name="pchild">
<Type>beweg.beleg</Type>
<Collection>array</Collection>
</Property>

<Property name="nextpos">
<Description>
Information für Positionsnummernverwaltung mit hirachischen Positionsnummern</Description>
<Type>beweg.belegnextpos</Type>
<Cardinality>children</Cardinality>
<Inverse>beleg</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="keykunde">
<Description>
/////// INDEXDEFINITIONEN ///////////////////////////////////////////////////////////</Description>
<Properties>psite,loesw,pkunde</Properties>
</Index>

<Index name="keybelnr">
<Properties>psite,loesw,pbelart,belnr</Properties>
</Index>

<Index name="keykassa">
<Properties>psite,loesw,kassa</Properties>
</Index>

<Method name="%OnNew">
<Description>
///// CALLBACK METHODEN ///////////////////////////////////////////////////</Description>
<FormalSpec>InitialValue:%CacheString</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
		
	I $G(InitialValue)="0" Q $$$OK
	
	s siteid=##class(system.session).%OpenId($J).psite.%Id()

	s ..belnr="NEU"
	s ..status=0
	s id=$O(^param.belartI("index",siteid,0," BO",""))
	i id'="" d ..pbelartSetObjectId(id)
	s id=$O(^stamm.kundeI("keyid",siteid,0,99999,""))
	i id'="" d ..pkundeSetObjectId(id)
	s ..beldat=+$H
	s ..valutadat=+$H
	s ..mwstsw=1
	s ..beltime=$P($H,",",2)
	s ..barskpr=..pkunde.barskpr
	s ..internsw=1
	s ..loesw=1
	s ..bonuspunkte=0
	Q $$$OK
]]></Implementation>
</Method>

<Method name="%OnAfterSave">
<FormalSpec>Insert:Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	i Insert,..pbelart.code="BO" d ..SetOpenBeleg(1)
	
	n obj1,id
	s id="",obj1="" f  s obj1=..pos.GetNext(.id) q:obj1=""  d ..pos.%UnSwizzleAt(id)

	Q $$$OK
]]></Implementation>
</Method>

<Method name="LastBelnr">
<FormalSpec>belegart:%String,wjid:%String,kassa:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[

	s kassajn=##class(param.serial).getKassaJn(belegart)="1"

	i kassajn s belnr=##class(param.serial).GetLastnr("beweg.beleg",wjid,belegart,kassa)
	e  s belnr=##class(param.serial).GetLastnr("beweg.beleg",wjid,belegart,"")
	
	q belnr
]]></Implementation>
</Method>

<Method name="NewBelnr">
<FormalSpec>belegart:%String,wjid:%String,kassa:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s kassajn=##class(param.serial).getKassaJn(belegart)="1"

	f  d  q:+..checkBelnr(belegart,belnr)=0
	. i kassajn s belnr=##class(param.serial).GetNextnr("beweg.beleg",wjid,belegart,kassa)
	. e  s belnr=##class(param.serial).GetNextnr("beweg.beleg",wjid,belegart,"")
	. s ..belnr=belnr
	
	q belnr
]]></Implementation>
</Method>

<Method name="NewPos">
<Description>
////// BELEGMODELL /////////////////////////////////////////////////////////////////</Description>
<FormalSpec>posnr:%String=""</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s tiefe=$L(posnr,".")
	s posindex=$P(posnr,".",1,tiefe-1)_"."
	s id="" f  s obj1=..nextpos.GetNext(.id) q:obj1=""  i obj1.posindex=posindex q
	i obj1="" d
	. s obj1=##class(beweg.belegnextpos).%New()
	. s obj1.posindex=posindex,obj1.posnr=0
	. d ..nextpos.Insert(obj1)
	s obj1.posnr=obj1.posnr+1
	i tiefe=1 s posnrneu=obj1.posnr
	e  s posnrneu=posindex_obj1.posnr

	s objpos=##class(beweg.belegpos).%New()
	s objpos.pos=posnrneu
	
	s objpos.menge=1,objpos.stornoretoure=0
	
	s defeinhid=$O(^param.meeinhI("index",siteid,0," ST",""))
	d objpos.defeinhSetObjectId(defeinhid)
	d objpos.preis.preinhSetObjectId(defeinhid)
	s objpos.preis.prme=1
	s objpos.preis.prfaktor=1
	
	s mwstid=$O(^param.mwcodeI("index",siteid,0," 2",""))
	d objpos.preis.pmwcodeSetObjectId(mwstid)

	s objpos.preis.rabtxt=..rabtxt
	s objpos.preis.rab3=..gesrabpr
	d objpos.%Close()
	d ..pos.Insert(objpos)
	
	s posid=..pos.FindOref(objpos,"")
	
	k objpos,obj1,tiefe,posindex
	q $LB(posnrneu,posid)
]]></Implementation>
</Method>

<Method name="SetArtikel">
<FormalSpec>idpos:%String,idart:%String,menge:%String="",savesw:%Boolean=1,ausfolgesw:%Boolean=0,ean:%String=""</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s ..internsw=0
	s objpos=..pos.GetAt(idpos)
	
	d objpos.panrSetObjectId(idart)
	i $L(ean) s objpos.ean=ean 
	s objpos.kbez=objpos.panr.kbez
	s objpos.bez1=objpos.panr.bez1
	s objpos.bez2=objpos.panr.bez2
	s objpos.bez3=objpos.panr.bez3
	
	s objpos.pabtnr=objpos.panr.pabt
	s objpos.pwargr=objpos.panr.pwargr
	
	
	s objpos.preis.pmwcode=objpos.panr.pmwcode
	s objpos.ausfolgesw=ausfolgesw
	i ausfolgesw s ..ausfolgesw=1
	s objpos.preis.manuell=0
	
	d objpos.einh.Clear()
	s ideinh="",oeinh="" f  s oeinh=objpos.panr.einh.GetNext(.ideinh) q:oeinh=""  d
	. d objpos.einh.SetAt(oeinh,ideinh)

	i $L(menge) s erg=..SetMenge(idpos,menge,'objpos.preis.manuell,savesw) k objpos,oeinh q erg 
	
	s erg=..GetBelegArtObj(objpos,idpos)
	i +savesw d objpos.%Save(0),..%Save(0)
	k objpos,oeinh
	q erg
]]></Implementation>
</Method>

<Method name="SetMenge">
<FormalSpec>idpos:%String,menge:%Float,prfind:%String,savesw:%Boolean=1</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s objpos=..pos.GetAt(idpos)

	s objpos.menge=menge
	s objpr=objpos.preis
	i prfind="" s prfind='objpr.manuell
	
	i +prfind d
	. /// Schiene=1,excl.Mwst,kein man. Rabatt
	. s erg=objpos.panr.GetVkp(objpos.panr.%Id(),..beldat,objpos.menge,1,0,0,objpos.ean)
	. s erg1=""
	. s siteid=$LI(^system.session($J),1)
	. i 'objpos.beleg.pkunde.sammel!('##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "NurSammelkunden")) d
	.. s erg1=##class(stamm.sonderpreis).GetVkp(objpos.beleg.pkunde.knr,objpos.panr.anr,..beldat,objpos.menge,1,0,"",objpos.ean)
	. i $L(erg1) d
	.. s $LI(erg,2)=$P(erg1,"|",1)	//Bruttoe
	.. s $LI(erg,12)=$P(erg1,"|",2)	//Rab1
	.. s $LI(erg,13)=$P(erg1,"|",3)	//Rab2	
	.. s $LI(erg,14)=$P(erg1,"|",6)	//Einstand
	. ;
	. i objpos.ausfolgesw s objpr.brutto=0 i 1
	. e  s objpr.brutto=$LI(erg,2)
	. d objpr.pprlistSetObjectId($LI(erg,7))
	. d objpr.paktionSetObjectId($LI(erg,9))
	. d objpr.preinhSetObjectId($LI(erg,4))
	. s objpr.prme=$LI(erg,3)
	. s objpr.prfaktor=$LI(erg,6)
	. s objpr.manuell=0
	. s objpr.skontosw=$LI(erg,11)	
	. s objpr.rab1=+$LI(erg,12)
	. s objpr.rab2=+$LI(erg,13)
	. s objpr.est=+$LI(erg,14)
		
	d ..KalkPos(idpos)
	d ..Berechnen()
	s erg=..GetBelegArtObj(objpos,idpos)
	i +savesw d objpos.%Save(0),..%Save(0)
	
	k objpos,objpr
	q erg
]]></Implementation>
</Method>

<Method name="SetPreis">
<FormalSpec>idpos:%String,manuell:%String,brutto:%String,rab1:%String,rab2:%String,rab3:%String,savesw:%Boolean=1,preistext:%String="",inclexcl:%String="E"</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s objpos=..pos.GetAt(idpos)

	i objpos.ausfolgesw s brutto=0
	
	i inclexcl="I" s brutto=$J(brutto/(100+objpos.preis.pmwcode.mwproz)*100,0,4)
	
	s objpr=objpos.preis
	i $L(manuell) d
	. i +objpr.manuell,+manuell=0 d
	.. // Preisfindung wegen wechsel manuell
	.. // Schiene=1,excl.Mwst,kein man. Rabatt
	.. s erg=objpos.panr.GetVkp(objpos.panr.%Id(),..beldat,objpos.menge,1,0,0)
	.. ;
	.. s objpr.brutto=$LI(erg,2)
	.. d objpr.pprlistSetObjectId($LI(erg,7))
	.. d objpr.paktionSetObjectId($LI(erg,9))
	.. d objpr.preinhSetObjectId($LI(erg,4))
	.. s objpr.prme=$LI(erg,3)
	.. s objpr.prfaktor=$LI(erg,6)
	.. s objpr.manuell=0
	.. s objpr.skontosw=$LI(erg,11)	
	.. s objpr.rab1=+$LI(erg,12)
	.. s objpr.rab2=+$LI(erg,13)
	. ;
	. s objpr.manuell=manuell


	s:$L(brutto) objpr.brutto=brutto
	s:$L(rab1) objpr.rab1=rab1
	s:$L(rab2) objpr.rab2=rab2
	s:$L(rab3) objpr.rab3=rab3
	s objpr.preistext=preistext
	
	//Preisfindung Sonderpreis, mapr immer incl. Steuer
	s mapr="" i objpos.panr.parttyp.einkaufsw s mapr=$J(objpos.preis.brutto*(100+objpos.preis.pmwcode.mwproz)/100,0,4) //incl. Steuer
	s siteid=$LI(^system.session($J),1)
	i 'objpos.beleg.pkunde.sammel!('##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "NurSammelkunden")) d
	. s erg1=##class(stamm.sonderpreis).GetVkp(objpos.beleg.pkunde.knr,objpos.panr.anr,..beldat,objpos.menge,1,0,mapr,objpos.ean)
	. i $L(erg1) d
	.. s objpr.rab1=$J(objpr.brutto-$P(erg1,"|",5)/objpr.brutto*100,0,4)
	.. s objpr.rab2=0
	
	d ..KalkPos(idpos)
	d ..Berechnen()
	
	s erg=..GetBelegArtObj(objpos,idpos)
	i +savesw d objpos.%Save(0),..%Save(0)
	
	k objpos
	q erg
]]></Implementation>
</Method>

<Method name="GetSonderpreisStatus">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s ad=$G(^system.sessionSonder($J))
	i ad="" q ""
	
	q $LI(ad,3)
]]></Implementation>
</Method>

<Method name="CalcSonderkond">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	n siteid,sw,idpos,objpos,mapr,erg1
	
	s siteid=$LI(^system.session($J),1)
	s sw=0
	i ..pkunde.sammel,##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "NurSammelkunden") s sw=1
		
	s idpos="",objpos="" f  s objpos=..pos.GetNext(.idpos) q:objpos=""  d    
	. s mapr="" i objpos.panr.parttyp.einkaufsw s mapr=$J(objpos.preis.brutto*(100+objpos.preis.pmwcode.mwproz)/100,0,4)
	. i +sw s objpos.preis.rab1=0,objpos.preis.rab2=0 q  //Keine Preisfindung
	. s erg1=##class(stamm.sonderpreis).GetVkp(objpos.beleg.pkunde.knr,objpos.panr.anr,..beldat,objpos.menge,1,0,mapr,objpos.ean)
	. i $L(erg1) d
	.. i mapr="" s objpos.preis.brutto=$P(erg1,"|",1)
	.. s objpos.preis.rab1=$P(erg1,"|",2)
	.. s objpos.preis.rab2=$P(erg1,"|",3)
	.. d ..KalkPos(idpos)
	d ..Berechnen()
	
	q 1
]]></Implementation>
</Method>

<Method name="GetAusfolgesw">
<FormalSpec>idpos</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	s sw=..pos.GetAt(idpos).ausfolgesw
	
	q sw
]]></Implementation>
</Method>

<Method name="SetStornoRetoureSw">
<FormalSpec>idpos:%String,sw:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	s ..pos.GetAt(idpos).stornoretoure=sw
]]></Implementation>
</Method>

<Method name="GenStorno">
<FormalSpec>idpos:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s oldpos=..pos.GetAt(idpos)
	s newposid=$LI(..NewPos(oldpos.pos),2)
	s newpos=..pos.GetAt(newposid)
	s erg=..GetBelegArtObj(oldpos)
	d ..SetBelegArt(erg,newposid)
	d ..SetMenge(newposid,-oldpos.menge,"",1)
	s newpos.stornoretoure=1
	d ..KalkPos(newposid)
	d ..Berechnen()
	s erg=..GetBelegArtObj(newpos)
	k oldpos,newpos
	
	q erg
]]></Implementation>
</Method>

<Method name="KalkPos">
<FormalSpec>idpos:%String</FormalSpec>
<Implementation><![CDATA[
	s objpos=..pos.GetAt(idpos)
	s objpos.preis.netto1=$J(objpos.preis.brutto*(100-objpos.preis.rab1/100)*(100-objpos.preis.rab2/100)*(100-objpos.preis.rab3/100),0,4)
	s objpos.preis.netto2=$J(objpos.preis.netto1*(100+objpos.preis.pmwcode.mwproz)/100,0,2)
	s objpos.poswert=$J(objpos.preis.netto1*objpos.menge/objpos.preis.prme/objpos.preis.prfaktor,0,4)
]]></Implementation>
</Method>

<Method name="GetFromEan">
<FormalSpec>ean:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^stamm.artikelI("keyid",siteid,0,ean,"")) I $L(id)
	e  i $L(ean)=13!($L(ean)=8) s id=$O(^stamm.eanI("keyean",siteid,0,ean,1,"")) I $L(id)
	e  i $L(ean)=13!($L(ean)=8) s id=$O(^stamm.artikelI("keyvean",siteid,0," "_ean,"")) I $L(id)
	e  i $L(ean)=13,$E(ean,1,2)="20" s anr=$E(ean,3,8) s id=$O(^stamm.artikelI("keyid",siteid,0,anr,"")) I $L(id) 
	e  q ""
	s artobj=##class(stamm.artikel).%OpenId(id)
	i artobj="" q ""
	s anr=artobj.anr
	s kummsw=artobj.parttyp.kummsw
	d artobj.%Close()
	k artobj
	
	q $LB("A",id,anr,kummsw)
]]></Implementation>
</Method>

<Method name="SavePos">
<FormalSpec>idpos:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	d ..pos.GetAt(idpos).%Save(0)
	q 1
]]></Implementation>
</Method>

<Method name="ReloadPos">
<FormalSpec>idpos:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	d ..pos.GetAt(idpos).%Reload()
	d ..Berechnen()
	q ..GetBelegArt(idpos)
]]></Implementation>
</Method>

<Method name="GetBelegArt">
<FormalSpec>idpos:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[	q ..GetBelegArtObj(..pos.GetAt(idpos),idpos)
]]></Implementation>
</Method>

<Method name="GetPosid">
<FormalSpec>pos:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",obj1="" f  s obj1=..pos.GetNext(.id) q:obj1=""  q:obj1.pos=pos
	i obj1="" q ""
	q id
]]></Implementation>
</Method>

<Method name="GetBelegArtObj">
<FormalSpec>opos:beweg.belegpos,idpos:%String=""</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	i opos="" q
	
	s idpos1=idpos
	
	i idpos1="" s idpos1=..pos.FindOref(opos,"")
	
	s erg=$LB(opos.pos,opos.panr.%Id(),opos.panr.anr,opos.kbez,opos.bez1,opos.bez2,
	          opos.bez3,opos.pabtnr.bez1,opos.pwargr.bez1,opos.info,
	          opos.defeinh.%Id(),opos.defeinh.bez,
	          opos.preis.preinh.%Id(),opos.preis.preinh.bez,
	          opos.preis.prme,opos.preis.prfaktor,opos.preis.pmwcode.%Id(),
	          opos.preis.pmwcode.mwproz,
	          opos.menge,opos.preis.brutto,opos.preis.rab1,opos.preis.rab2,
	          opos.preis.rab3,opos.preis.netto1,opos.preis.netto2,
	          opos.poswert,opos.preis.manuell,opos.postxt.SizeGet()>0,
	          opos.panr.pdeflager.menge,opos.ean,opos.preis.skontosw,opos.stornoretoure,opos.preis.preistext,
	          opos.panr.parttyp.sammelsw,opos.panr.parttyp.dezimalsw,opos.panr.parttyp.kummsw,opos.panr.parttyp.einkaufsw,
	          ..wertexcl,..wertincl,..zahlb)
	d opos.postxt.Rewind()
	q erg
]]></Implementation>
</Method>

<Method name="SetBelegArt">
<FormalSpec>par:%String,idpos:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s opos=..pos.GetAt(idpos)
	i opos="" q ""
	s oanrid="" i $L(opos.panr) s oanrid=opos.panr.%Id()
	d opos.panrSetObjectId($LI(par,2))
	s opos.kbez=$LI(par,4)
	s opos.bez1=$LI(par,5)
	s opos.bez2=$LI(par,6)
	s opos.bez3=$LI(par,7)
	s opos.info=$LI(par,10)
	d opos.defeinhSetObjectId($LI(par,11))
	d opos.preis.preinhSetObjectId($LI(par,13))
	s opos.preis.prme=$LI(par,15)
	s opos.preis.prfaktor=$LI(par,16)
	d opos.preis.pmwcodeSetObjectId($LI(par,17))
	s opos.menge=$LI(par,19)
	s opos.preis.brutto=$LI(par,20)
	s opos.preis.rab1=$LI(par,21)
	s opos.preis.rab2=$LI(par,22)
	s opos.preis.rab3=$LI(par,23)
	s opos.preis.netto1=$LI(par,24)
	s opos.preis.netto2=$LI(par,25)
	s opos.poswert=$LI(par,26)
	s opos.preis.manuell=$LI(par,27)
	s opos.ean=$LI(par,30)
	s opos.preis.skontosw=$LI(par,31)
	s opos.stornoretoure=+$LI(par,32)
	s opos.preis.preistext=$LI(par,33)
	d opos.%Save(0)
	
	k opos
	q 1
]]></Implementation>
</Method>

<Method name="SetSkonto">
<FormalSpec>barskpr</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s ..barskpr=barskpr
	q ..Berechnen()
]]></Implementation>
</Method>

<Method name="SetRabatt">
<FormalSpec>gesrabpr:%Float,rabtxt:%String=""</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s ..gesrabpr=gesrabpr
	S ..rabtxt=rabtxt
	s id="",obj1="" f  s obj1=..pos.GetNext(.id) q:obj1=""  d    
	. s obj1.preis.rab3=gesrabpr
	. s obj1.preis.netto1=$J(obj1.preis.brutto*(100-obj1.preis.rab1/100)*(100-obj1.preis.rab2/100)*(100-obj1.preis.rab3/100),0,4)
	. s obj1.poswert=$J(obj1.preis.netto1*obj1.menge/obj1.preis.prme/obj1.preis.prfaktor,0,4)
	. s obj1.preis.netto2=$J(obj1.preis.netto1*(100+obj1.preis.pmwcode.mwproz)/100,0,2)
	. s obj1.preis.rabtxt=rabtxt
	. d obj1.%Save(0)
	. d ..pos.%UnSwizzleAt(id)
	. k obj1
	q ..Berechnen()
]]></Implementation>
</Method>

<Method name="SetEA">
<FormalSpec>eatok:%String,betrag:%Float,text1:%String,text2:%String,cargo:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s kaskontoid=$O(^stamm.kontoI("index",siteid,0," "_$ZCONVERT("200000","U"),""))
	
	s id=$O(^param.eazuordI("index",siteid,0," "_$ZCONVERT(eatok,"U"),""))
	q:id="" ""
	s objz=##class(param.eazuord).%OpenId(id)
	i objz="" q ""
	s id=objz.pkassaea.%Id()
	s einaus=objz.pkassaea.code
	d objz.%Close()
	k objz
		
	s kassaea=##class(beweg.belegeinaus).%New()
	d ..einaus.Insert(kassaea)
	d kassaea.%Close()
	
	s kassaea.typ=2
	d kassaea.pkassaeaSetObjectId(id)
	s kassaea.betrag=betrag
	s kassaea.text1=text1
	s kassaea.text2=text2
	s kassaea.cargo=cargo

	d kassaea.konten.Clear()
	s objkonto=##class(basis.belkonto).%New()
	s objkonto.sollhab=kassaea.pkassaea.sollhab
	s objkonto.betrexcl=+betrag
	i kassaea.pkassaea.pmwcode'="" d
	. s mwproz=+kassaea.pkassaea.pmwcode.mwproz
	. s objkonto.betrmwst=$J(betrag*mwproz/100,0,2)
	. s objkonto.mwproz=+mwproz
	i 'kassaea.pkassaea.posneg s objkonto.betrexcl=-betrag,objkonto.betrmwst=-objkonto.betrmwst
	s objkonto.konto.typ="S"
	d objkonto.konto.pkontoSetObjectId(kaskontoid)
	s objkonto.gkonto.typ="S"
	s objkonto.gkonto.pkonto=kassaea.pkassaea.pkonto
	d kassaea.konten.Insert(objkonto)

	s einausid=..einaus.FindOref(kassaea,"")
	
	d ..%Save(0)
	
	k kassaea
	q $LB(einaus,einausid)
]]></Implementation>
</Method>

<Method name="KassabonAbschluss">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)

	//Nachlauftext
	n periode,n,erg,abrpkt,abrpktab,id,objnl
	s periode=$P($ZD($H,3),"-",1)-1900-1_"12"
	s erg=##class(beweg.bonabr).GetBonusabr(..pkunde.%Id(),periode)
	i erg="" s (abrpktm,abrpktab)="" i 1
	e  s abrpkt=$LI(erg,1),abrpktab=$LI(erg,2)
	
	s n=0
	s id="" f  s id=$O(^stamm.nachltxtD(id)) q:id=""  d
	. s objnl=##class(stamm.nachltxt).%OpenId(id)
	. i objnl.datumab>0,..beldat<objnl.datumab q
	. i objnl.datumbis>0,..beldat>objnl.datumbis q
	. i ..pkunde.kbonusjn,$L(objnl.vonpkt),..pkunde.kbaktpkt<objnl.vonpkt q
	. i ..pkunde.kbonusjn,$L(objnl.bispkt),..pkunde.kbaktpkt>objnl.bispkt q
	. i ..pkunde.kbonusjn,$L(objnl.vonabrpkt),+abrpkt,abrpkt-abrpktab<objnl.vonabrpkt q
	. i ..pkunde.kbonusjn,$L(objnl.bisabrpkt),+abrpkt,abrpkt-abrpktab>objnl.bisabrpkt q
	. i $L(objnl.anzahl),##class(beweg.nachltxtcnt).GetCounter(..pkunde.%Id(),id)'<objnl.anzahl q
	. s n=n+1,$LI(..nachlauftxt,n)=id
	. d ##class(beweg.nachltxtcnt).SetCounter(..pkunde.%Id(),id)
	
	//Erzeugen Gutscheine/Gutschgriftsbons Verkauf
	s awgid=""
	s id=$O(^param.eazuordI("index",siteid,0," "_$ZCONVERT("AWG","U"),""))
	i $L(id) d
	. s objz=##class(param.eazuord).%OpenId(id)
	. i $L(objz) d
	.. I $L(objz.pkassaea) s awgid=objz.pkassaea.%Id()
	.. d objz.%Close()
	. k objz
	;
	s agsid=""
	s id=$O(^param.eazuordI("index",siteid,0," "_$ZCONVERT("AGS","U"),""))
	i $L(id) d
	. s objz=##class(param.eazuord).%OpenId(id)
	. i $L(objz) d
	.. I $L(objz.pkassaea) s agsid=objz.pkassaea.%Id()
	.. d objz.%Close()
	. k objz
	;
	s id="",einaus="" f  s einaus=..einaus.GetNext(.id) q:einaus=""  d
	. i einaus.typ=1,einaus.pbeleg'="" d
	.. s objbel=##class(beweg.beleg).%OpenId(einaus.pbeleg.%Id(),4)
	.. s objbel.bezahlt=objbel.bezahlt+einaus.betrag
	.. d objbel.%Save(0)
	.. d objbel.%Close()
	. i einaus.typ=2,einaus.pkassaea'="",awgid'="",einaus.pkassaea.%Id()=awgid d
	.. d ##class(stamm.gutschein).SetAusstellung(einaus.cargo,..beldat,einaus.betrag,..pkunde.knr,$LB(..pbelart.code,..belnr),+..bonuspunkte=0,0)	
	.. s ..internsw=0
	. i einaus.typ=2,einaus.pkassaea'="",agsid'="",einaus.pkassaea.%Id()=agsid d
	.. d ##class(stamm.gsbon).SetAusstellung(einaus.cargo,..beldat,einaus.betrag,..pkunde.knr,$LB(..pbelart.code,..belnr),0, 0)	
	.. s ..internsw=0
	k einaus


	// E/A für Gutschein/GS-Bon/Karte/Aconto
	s idgs="" f  s objgs=..gutsch.GetNext(.idgs) q:objgs=""  d
	. //Gutschein und E/A-Nummer suchen
	. s gsid=$O(^stamm.gutscheinI("index",siteid,0," "_$ZCONVERT(objgs.gsnr,"U"),""))
	. s gstypid="" i $L(gsid) s gsobj=##class(stamm.gutschein).%OpenId(gsid) s gstypid=gsobj.pgutstyp.%Id() d gsobj.%Close() k gsobj
	. s eaid="" i $L(gstypid) s eaid=$O(^param.eagszuordI("index",siteid,0,gstypid,$P($ZD(objgs.adatum),"/",3),""))
	. i $L(eaid) d ..KassaEinAus(2,eaid,objgs.betrag,"Gegeben Gutschein "_objgs.gsnr, "") q
	. // wenn nicht gefunden dann über Default E/A für Gutschein gegeben
 	. d ..SetEA("EGU",objgs.betrag, "Gegeben Gutschein "_objgs.gsnr, "")
	
	s vz=1 i ..negativsw s vz=-1
	s idgs="" f  s objgs=..gsbon.GetNext(.idgs) q:objgs=""  d
 	. d ..SetEA("EGS",objgs.betrag, "Gegeben GS-Bon "_objgs.gsnr, "")
	
	s idk="" f  s objk=..karte.GetNext(.idk) q:objk=""  d
 	. d ..SetEA("B-K",objk.betrag*vz, "Belastung Karte "_objk.pkarttyp.bez, "")
	
	s idac="" f  s objac=..aconto.GetNext(.idac) q:objac=""  d
 	. d ..SetEA("RAZ",objac.betrag, "Gegeben Anzahlung "_objac.acontonr, "")


	//Bonusermittlung
	d ..berechneBonusHagebau()

	
	// Schreiben Bonus-Tagessumme
	i ..pkunde.kbonusjn,..beldat'<..pkunde.kbdatum d
	. s objbs=##class(beweg.bonusdat).%New()
	. s objbs.datum=..beldat
	. s objbs.zeit=..beltime
	. d objbs.pkundeSetObjectId(..pkunde.%Id())
	. s objbs.basis=objbs.basis+..bonusbasis
	. s objbs.punkte=objbs.punkte+..bonuspunkte
	. s objbs.beleg=$LB(..pbelart.code,..belnr)
	. d objbs.%Save(0),objbs.%Close()
	. k objbs

	//Belegmengen
	d ..setBelegMenge()

	//Beleg zu Kassalade zuordnen
	d ##class(beweg.kassasummen).BelegZuordnen(..%Id())
	
	q 1
]]></Implementation>
</Method>

<Method name="GetNachdruckId">
<Description>
/////////////////////////////////////////////////////////////////////////////////
////// Methoden /////////////////////////////////////////////////////////////////////</Description>
<FormalSpec>belart:%String,kassa:%String,wjid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s belnr=..LastBelnr(belart,wjid,kassa)
	s belartid=$O(^param.belartI("index",siteid,0," "_$ZCONVERT(belart,"U"),""))
	q ..getBelegId(belartid,belnr)
]]></Implementation>
</Method>

<Method name="GetRetourpreis">
<FormalSpec>kundid:%String,artid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s erg=""
	s mwproz=##class(stamm.artikel).%OpenId(artid).pmwcode.mwproz
	s datum=$O(^beweg.kontoI("knr",siteid,0,kundid,artid,""),-1)
	s id="" i $L(datum) s id=$O(^beweg.kontoI("knr",siteid,0,kundid,artid,datum,""),-1)
	i $L(id) d
	. s objbew=##class(beweg.konto).%OpenId(id)
	. s nettoincl=$J(objbew.netto*(100+mwproz)/100,0,2)
	. s erg=$LB(objbew.brutto,objbew.rab1,objbew.rab2,objbew.rab3,objbew.netto,"Retoure aus "_objbew.belegart_objbew.belegnr_" Pos "_objbew.pos,mwproz,nettoincl)
	. d objbew.%Close()
	i erg="" d
	. s erg=##class(stamm.artikel).GetVkp(artid,..beldat,1,1,0,0)
	. s nettoincl=$J($LI(erg,15)*(100+mwproz)/100,0,2)
	. s erg=$LB($LI(erg,2),$LI(erg,12),$LI(erg,13),$LI(erg,14),$LI(erg,15),"Retoure aus ",mwproz,nettoincl)
	k objbew
	q erg
]]></Implementation>
</Method>

<Method name="checkBelnr">
<FormalSpec>belart:%String,belnr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s sw=0
	s belartid=$O(^param.belartI("index",siteid,0," "_$ZCONVERT(belart,"U"),""))
	i belartid="" q 0
	
	i $D(^beweg.belegI("keybelnr",siteid,0,belartid," "_$ZCONVERT(belnr,"U"))) s sw=1
	i $D(^beweg.belegI("keybelnr",siteid,1,belartid," "_$ZCONVERT(belnr,"U"))) s sw=1	
	q sw
]]></Implementation>
</Method>

<Method name="SetBelart">
<FormalSpec>belart:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^param.belartI("index",siteid,0," "_$ZCONVERT(belart,"U"),""))
	i id'="" d ..pbelartSetObjectId(id)
	Q 1
]]></Implementation>
</Method>

<Method name="SetOpenBeleg">
<Description>
true=open false=not open</Description>
<FormalSpec>sw:%Boolean</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	i ..%Id()="" Q 1
	s iduser=##class(system.session).%OpenId($J).puser.%Id()
	s id=$O(^beweg.openbelegI("keyuser",siteid,0,iduser,..%Id(),""))
	i 'sw,$L(id) d ##class(beweg.openbeleg).%DeleteId(id) Q 1
	i sw,id="" d
	. s objop=##class(beweg.openbeleg).%New()
	. d objop.puserSetObjectId(iduser)
	. d objop.pbelegSetObjectId(..%Id())
	. d objop.%Save(0)
	. d objop.%Close()
	. k objop
	Q 1
]]></Implementation>
</Method>

<Method name="SearchBeleg">
<ClassMethod>1</ClassMethod>
<FormalSpec>userid:%String,belart:%String,belnr:%String,kundeid:%String,datumab:%Date,kasbelsw=1,merken:%Boolean=1</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[	q $$SearchBeleg^KWWSBELEG(userid,belart,belnr,kundeid,datumab,merken,kasbelsw)
]]></Implementation>
</Method>

<Method name="IfPos">
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[	q ..pos.GetNext("")'=""
]]></Implementation>
</Method>

<Method name="getEinAus">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s erg="",n1=0
	s id="",obj1="" f  s obj1=..einaus.GetNext(.id) q:obj1=""  d
	. i obj1.typ=1 s n1=n1+1,$LI(erg,n1)=$LB(id,$P(obj1.text1," ",1),$P(obj1.text1," ",2)_" "_$P(obj1.text1," ",3),obj1.betrag) i 1
	. i obj1.typ=2 s n1=n1+1,$LI(erg,n1)=$LB(id,obj1.pkassaea.code,obj1.text1,obj1.betrag) i 1
	q erg
]]></Implementation>
</Method>

<Method name="getKassaEinAus">
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s obj1=..einaus.GetAt(id)
	s typ=obj1.typ,text1=obj1.text1,text2=obj1.text2,betrag=obj1.betrag,cargo=obj1.cargo
	s (belegid,belarttxt,skonto,skontopr)=""
	i typ=1 s belart=$P(text1," ",1) i $L(obj1.pbeleg) s belegid=obj1.pbeleg.%Id(),belartxt=obj1.pbeleg.pbelart.bezpos,skonto=obj1.skonto,skontopr=obj1.skontopr
	i typ=2 s belart=obj1.pkassaea.code,belarttxt=obj1.pkassaea.bez
	d obj1.%Close()
	k obj1
	q $LB(typ,belart,belegid,text1,text2,betrag,belartxt,cargo,skonto,skontopr)
]]></Implementation>
</Method>

<Method name="loeEinAus">
<FormalSpec>einausid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s oid=..einaus.GetAt(einausid).%Id()
	i $L(oid) d ##class(beweg.belegeinaus).%DeleteId(oid)
	d ..einaus.RemoveAt(einausid)
	q 1
]]></Implementation>
</Method>

<Method name="loeEinAusAll">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	d ..einaus.Clear()
	q 1
]]></Implementation>
</Method>

<Method name="KassaEinAus">
<FormalSpec>typ:%String,id:%String,betrag:%String,text1:%String,text2:%String,einausid:%String="",offen:%Float=0,cargo:%String="",skonto:%Float=0,skontopr:%Float=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s kaskontoid=$O(^stamm.kontoI("index",siteid,0," "_$ZCONVERT("200000","U"),""))
	s defkontoid=$O(^stamm.kontoI("index",siteid,0," "_$ZCONVERT("80102","U"),""))
	
	i $L(einausid) s kassaea=..einaus.GetAt(einausid) i 1
	e  d
	. s kassaea=##class(beweg.belegeinaus).%New()
	. d ..einaus.Insert(kassaea)
	. d kassaea.%Close()
	. s kassaea.typ=typ
	. s einausid=..einaus.FindOref(kassaea,"")
	
	s kassaea.pbeleg="",kassaea.pkassaea=""
	
	//Belegzahlung
	s swopz=0
	i +typ=1,id=""  d
	. s obj1=##class(beweg.beleg).%New()
	. s id1=$O(^param.belartI("index",siteid,0," "_$ZCONVERT($LI(cargo,1),"U"),""))
	. i $L(id1) d obj1.pbelartSetObjectId(id1)
	. s obj1.belnr=$LI(cargo,2)
	. s obj1.beldat=+$H
	. s obj1.valutadat=+$H
	. s obj1.pkunde=..pkunde
	. s obj1.wertincl=betrag-skonto
	. s obj1.zkdat.datum1=+$H,obj1.zkdat.skontopr1=0
	. s obj1.zkdat.datum2=+$H,obj1.zkdat.skontopr2=0
	. s obj1.zkdat.datumn=+$H
	. s objmw=##class(basis.belmwtab).%New()
    . s objmw.mwproz=0  
    . s objmw.betrexcl=betrag
    . s objmw.betrmwst=0
    . s objmw.skbasis=betrag
	. s objkonto=##class(basis.belkonto).%New()
	. s objkonto.sollhab=1
	. s objkonto.betrexcl=objmw.betrexcl
	. s objkonto.betrmwst=objmw.betrmwst
	. s objkonto.mwproz=0
	. s objkonto.konto.typ="K"
	. s objkonto.konto.pkunde=..pkunde
	. s objkonto.gkonto.typ="S"
	. d objkonto.gkonto.pkontoSetObjectId(defkontoid)
	. d objmw.konten.Insert(objkonto)
    . d obj1.mwkonten.SetAt(objmw,0)
	. d obj1.%Save(0)
	. s id=obj1.%Id()
	. d obj1.%Close()
	. k obj1
	. s swopz=1,opzid=id
	
	i +typ=1,$L(id) d
	. d kassaea.pbelegSetObjectId(id)
	. i kassaea.pbeleg.pbelart.barsw d
	.. //Barbeleg(BV)
	.. s mwproz="" f  s mwobj=kassaea.pbeleg.mwkonten.GetNext(.mwproz) q:mwobj=""  d
	... s kontoid="" f  s kontobj=mwobj.konten.GetNext(.kontoid) q:kontobj=""  d
	.... s objkonto=##class(basis.belkonto).%New()
	.... s objkonto.sollhab=1
	.... s objkonto.betrexcl=kontobj.betrexcl
	.... s objkonto.betrmwst=kontobj.betrmwst
	.... s objkonto.mwproz=mwproz
	.... s objkonto.konto.typ="S"
	.... d objkonto.konto.pkontoSetObjectId(kaskontoid)
	.... s objkonto.gkonto.typ="S"
	.... s objkonto.gkonto.pkonto=kontobj.gkonto.pkonto
	.... d kassaea.konten.Insert(objkonto)
	... i +skonto d
	.... s skonto1=skonto
	.... s idmw=$O(^param.mwcodeI("mwproz",siteid,0,+mwproz,"")) i $L(idmw) d
	..... s objmw=##class(param.mwcode).%OpenId(idmw) i $L(objmw) d
	...... s skakonto=objmw.pskakonto
	...... d objmw.%Close()
	...... s objkonto=##class(basis.belkonto).%New()
	...... s objkonto.sollhab=1
	...... i kassaea.pbeleg.mwkonten.GetNext(mwproz)="" s betr=skonto1 i 1
	...... e  s betr=$J((mwobj.skbasis)/kassaea.pbeleg.skbasis*skonto,0,2)
	...... s betrexcl=$J(betr/(100+mwproz)*100,0,2)
	...... s objkonto.betrexcl=-betrexcl
	...... s objkonto.betrmwst=-(betr-betrexcl)
	...... s objkonto.mwproz=mwproz
	...... s objkonto.konto.typ="S"
	...... d objkonto.konto.pkontoSetObjectId(kaskontoid)
	...... s objkonto.gkonto.typ="S"
	...... s objkonto.gkonto.pkonto=skakonto
	...... d kassaea.konten.Insert(objkonto)
	...... s skonto1=skonto1-betr
	. e  d
	.. //Kreditbeleg(SR,RE,...)
	.. s objkonto=##class(basis.belkonto).%New()
	.. s objkonto.sollhab=1
	.. s objkonto.betrexcl=betrag+skonto
	.. s objkonto.betrmwst=0
	.. s objkonto.mwproz=0
	.. s objkonto.konto.typ="S"
	.. d objkonto.konto.pkontoSetObjectId(kaskontoid)
	.. s objkonto.gkonto.typ="K"
	.. s objkonto.gkonto.pkunde=..pkunde
	.. d kassaea.konten.Insert(objkonto)
	.. i +skonto d
	... s skonto1=skonto
	... s mwproz="" f  s mwobj=kassaea.pbeleg.mwkonten.GetNext(.mwproz) q:mwobj=""  d
	.... s idmw=$O(^param.mwcodeI("mwproz",siteid,0,+mwproz,"")) i $L(idmw) d
	..... s objmw=##class(param.mwcode).%OpenId(idmw) i $L(objmw) d
	...... s skakonto=objmw.pskakonto
	...... d objmw.%Close()
	...... s objkonto=##class(basis.belkonto).%New()
	...... s objkonto.sollhab=1
	...... i kassaea.pbeleg.mwkonten.GetNext(mwproz)="" s betr=skonto1 i 1
	...... e  s betr=$J((mwobj.skbasis)/kassaea.pbeleg.skbasis*skonto,0,2)
	...... s betrexcl=$J(betr/(100+mwproz)*100,0,2)
	...... s objkonto.betrexcl=-betrexcl
	...... s objkonto.betrmwst=-(betr-betrexcl)
	...... s objkonto.mwproz=mwproz
	...... s objkonto.konto.typ="S"
	...... d objkonto.konto.pkontoSetObjectId(kaskontoid)
	...... s objkonto.gkonto.typ="S"
	...... s objkonto.gkonto.pkonto=skakonto
	...... d kassaea.konten.Insert(objkonto)
	...... s skonto1=skonto1-betr
	.;
	. s kassaea.skonto=skonto
	. s kassaea.skontopr=skontopr
	
	// Ein/Ausgang			
	i +typ=2,$L(id) d
	. d kassaea.pkassaeaSetObjectId(id) 
	. d kassaea.konten.Clear()
	. s objkonto=##class(basis.belkonto).%New()
	. s objkonto.sollhab=+kassaea.pkassaea.sollhab
	. s objkonto.betrexcl=+betrag
	. i kassaea.pkassaea.pmwcode'="" d
	.. s mwproz=+kassaea.pkassaea.pmwcode.mwproz
	.. s objkonto.betrmwst=$J(betrag*mwproz/100,0,2)
	.. s objkonto.mwproz=+mwproz
	. i 'kassaea.pkassaea.posneg s objkonto.betrexcl=-betrag,objkonto.betrmwst=-objkonto.betrmwst
	. s objkonto.konto.typ="S"
	. d objkonto.konto.pkontoSetObjectId(kaskontoid)
	. i kassaea.pkassaea.sachpersk d
	.. s objkonto.gkonto.typ="S"
	.. s objkonto.gkonto.pkonto=kassaea.pkassaea.pkonto
	. e  d
	.. s objkonto.gkonto.typ="K"
	.. s objkonto.gkonto.pkunde=..pkunde
	. s kassaea.printsw=1
	. d kassaea.konten.Insert(objkonto)

	s kassaea.text1=text1,kassaea.text2=text2
	s kassaea.betrag=betrag
	s kassaea.cargo=cargo
	//s kassaea.offen=offen
	d ..Berechnen()
	d ..%Save(0)
	i +typ=1,swopz s ^beweg.openzahlung(cargo,opzid,..%Id())=""
	k kassaea,objbel,objkonto,objmw
	q $LB(knr,einausid)
]]></Implementation>
</Method>

<Method name="GetZmittel">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s (barfrw,karte,gutschein,gsbon,aconto)=""
	s bar=..bar
	s id="" f  s objgm=..gutsch.GetNext(.id) q:objgm=""  s gutschein=gutschein+objgm.betrag
	s id="" f  s objgm=..aconto.GetNext(.id) q:objgm=""  s aconto=aconto+objgm.betrag
	s id="" f  s objgm=..gsbon.GetNext(.id) q:objgm=""  s gsbon=gsbon+objgm.betrag
	s id="" f  s objgm=..karte.GetNext(.id) q:objgm=""  s karte=karte+objgm.betrag
	s id="" f  s objgm=..barfrw.GetNext(.id) q:objgm=""  s barfrw=barfrw+objgm.betrag
	k objgm
	
	q $LB(bar,barfrw,karte,gutschein,gsbon,aconto)
]]></Implementation>
</Method>

<Method name="SetGutscheine">
<FormalSpec>gutsch:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	d ..gutsch.Clear()
	for i=1:1:$LL(gutsch) d
	. s gutsch1=$LI(gutsch,i)
	. s objgs=##class(basis.gutschbezahl).%New()
	. s objgs.gsnr=$LI(gutsch1,1)
	. s objgs.adatum=$ZDH($LI(gutsch1,2),4)
	. s idgs=$O(^stamm.gutscheinI("index",siteid,0," "_$ZCONVERT(objgs.gsnr,"U"),""))
	. s abeleg="" i $L(idgs) s gsobj=##class(stamm.gutschein).%OpenId(idgs) s abeleg=gsobj.abeleg d gsobj.%Close() k gsobj
	. s objgs.abeleg=abeleg
	. s objgs.betrag=$LI(gutsch1,3)
	. d ..gutsch.Insert(objgs)
	. d objgs.%Close()
	k objgs
]]></Implementation>
</Method>

<Method name="AddGutschein">
<FormalSpec>gutsch:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg=##class(stamm.gutschein).GetGutschein(gutsch,"")
	i $LI(erg,1)="" q $LB("1")
	i $LI(erg,2)="" q $LB("1")
	i $LI(erg,4)'="" q $LB("2",$LI(erg,5))
	s gsnr=$LI(erg,1),datum=$LI(erg,2),betrag=$LI(erg,3)
	
	s sw=0
	s id="" f  s objgs=..gutsch.GetNext(.id) q:objgs=""  i gutsch=objgs.gsnr s sw=1 q
	i +sw s objgs.adatum=datum,objgs.betrag=betrag d objgs.%Close()
	i +sw=0 d
	. s objgs=##class(basis.gutschbezahl).%New()
	. s objgs.gsnr=gutsch
	. s objgs.adatum=datum
	. s objgs.betrag=betrag
	. d ..gutsch.Insert(objgs)
	. d objgs.%Close()
	k objgs
	q $LB(0)
]]></Implementation>
</Method>

<Method name="GetGutscheine">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg="",n=0
	s id="" f  s objgs=..gutsch.GetNext(.id) q:objgs=""  d
	. s n=n+1,$LI(erg,n)=$LB(objgs.gsnr,$ZD(objgs.adatum,4),objgs.betrag)
	k objgs
	
	q erg
]]></Implementation>
</Method>

<Method name="GetKarte">
<FormalSpec>betrag:%Float,negsw:%Boolean</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s erg="",n=0
	;
	i ..karte.GetNext("")="" d
	. i 'negsw d
	.. s id=$O(^param.karttypI("debit",siteid,0,1,""))
	.. s dbbez="" i $L(id) s obj1=##class(param.karttyp).%OpenId(id) s dbbez=obj1.bez d obj1.%Close() k obj1
	.. i $L(dbbez) s n=n+1,$LI(erg,n)=$LB(dbbez,betrag,"","","")
	. e  d
	.. s id=$O(^param.karttypI("kredit",siteid,0,1,""))
	.. s dbbez="" i $L(id) s obj1=##class(param.karttyp).%OpenId(id) s dbbez=obj1.bez d obj1.%Close() k obj1
	.. i $L(dbbez) s n=n+1,$LI(erg,n)=$LB(dbbez,betrag,"","","")

	;
	s id="" f  s objkarte=..karte.GetNext(.id) q:objkarte=""  d
	. s n=n+1,$LI(erg,n)=$LB(objkarte.pkarttyp.bez,objkarte.betrag,objkarte.zahlungsid,objkarte.nr,objkarte.bisper)
	k objkarte
	
	q erg
]]></Implementation>
</Method>

<Method name="SetKarteInit">
<FormalSpec>zstr:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s (id,betrag,kartnr,bisper)=""
	i $E(zstr,1,1)="P" d
	. s id=$O(^param.karttypI("debit",siteid,0,1,""))
	. s betrag=$TR($TR($E(zstr,51,60),",",".")," ","")
	
	i $E(zstr,1,1)="M" d
	. s id=$O(^param.karttypI("kredit",siteid,0,1,""))
	. s betrag=$E(zstr,109,116)/100
	. s kartnr=$E(zstr,26,46)
	. s bisper=$E(zstr,47,51)

	i $L(id),$L(betrag) d
	. s objkarte=##class(basis.kartbezahl).%New()
	. d objkarte.pkarttypSetObjectId(id)
	. s objkarte.betrag=betrag
	. s objkarte.zahlungsid=zstr
	. s objkarte.nr=kartnr
	. s objkarte.bisper=bisper
	. d ..karte.Insert(objkarte)
	. d objkarte.%Close()
	. k objkarte
	. d ..%Save(0)
	
	q 1
]]></Implementation>
</Method>

<Method name="SetKarte">
<FormalSpec>karte:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	d ..karte.Clear()
	for i=1:1:$LL(karte) d
	. s karte1=$LI(karte,i)
	. s objkarte=##class(basis.kartbezahl).%New()
	. s karttypid=$O(^param.karttypI("bez",siteid,0," "_$ZCONVERT($LI(karte1,1),"U"),""))
	. d objkarte.pkarttypSetObjectId(karttypid)
	. s objkarte.betrag=$LI(karte1,2)
	. s objkarte.zahlungsid=$LI(karte1,3)
	. s objkarte.nr=$LI(karte1,4)
	. s objkarte.bisper=$LI(karte1,5)
	. d ..karte.Insert(objkarte)
	. d objkarte.%Close()
	k objkarte
	d ..%Save(0)
]]></Implementation>
</Method>

<Method name="SetGsbon">
<FormalSpec>gutsch:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	d ..gsbon.Clear()
	for i=1:1:$LL(gutsch) d
	. s gutsch1=$LI(gutsch,i)
	. s objgs=##class(basis.gsbonbezahl).%New()
	. s objgs.gsnr=$LI(gutsch1,1)
	. s objgs.adatum=$ZDH($LI(gutsch1,2),4)
	. s objgs.betrag=$LI(gutsch1,3)
	. d ..gsbon.Insert(objgs)
	. d objgs.%Close()
	k objgs
]]></Implementation>
</Method>

<Method name="AddGsbon">
<FormalSpec>gutsch:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg=##class(stamm.gsbon).GetGsbon(gutsch,"")
	i $LI(erg,1)="" q $LB("1")
	i $LI(erg,2)="" q $LB("1")
	i $LI(erg,4)'="" q $LB("2",$LI(erg,5))
	s gsnr=$LI(erg,1),datum=$LI(erg,2),betrag=$LI(erg,3)
		
	s sw=0
	s id="" f  s objgs=..gsbon.GetNext(.id) q:objgs=""  i gutsch=objgs.gsnr s sw=1 q
	i +sw s objgs.adatum=datum,objgs.betrag=betrag d objgs.%Close()
	i +sw=0 d
	. s objgs=##class(basis.gsbonbezahl).%New()
	. s objgs.gsnr=gutsch
	. s objgs.adatum=datum
	. s objgs.betrag=betrag
	. d ..gsbon.Insert(objgs)
	. d objgs.%Close()
	k objgs
	q $LB(0)
]]></Implementation>
</Method>

<Method name="GetGsbon">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg="",n=0
	s id="" f  s objgs=..gsbon.GetNext(.id) q:objgs=""  d
	. s n=n+1,$LI(erg,n)=$LB(objgs.gsnr,$ZD(objgs.adatum,4),objgs.betrag)
	k objgs
	
	q erg
]]></Implementation>
</Method>

<Method name="SetAconto">
<FormalSpec>aconto:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	d ..aconto.Clear()
	for i=1:1:$LL(aconto) d
	. s aconto1=$LI(aconto,i)
	. s objac=##class(basis.acontobezahl).%New()
	. s objac.acontonr=$LI(aconto1,1)
	. s objac.adatum=$ZDH($LI(aconto1,2),4)
	. s objac.betrag=$LI(aconto1,3)
	. d ..aconto.Insert(objac)
	. d objac.%Close()
	k objac
]]></Implementation>
</Method>

<Method name="GetAconto">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg="",n=0
	s id="" f  s objac=..aconto.GetNext(.id) q:objac=""  d
	. s n=n+1,$LI(erg,n)=$LB(objac.acontonr,$ZD(objac.adatum,4),objac.betrag)
	k objac
	
	q erg
]]></Implementation>
</Method>

<Method name="SetBarfrw">
<FormalSpec>fremdw:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	d ..barfrw.Clear()
	for i=1:1:$LL(fremdw) d
	. s fremdw1=$LI(fremdw,i)
	. q:+$LI(fremdw1,3)=0
	. s datum=$O(^param.fremdwI("index",siteid,0," "_$ZCONVERT($LI(fremdw1,1),"U"),$H+1),-1)
	. s idfrw="" i $L(datum) s idfrw=$O(^param.fremdwI("index",siteid,0," "_$ZCONVERT($LI(fremdw1,1),"U"),datum,""))
	. i $L(idfrw) d
	.. s objfw=##class(basis.fremdwbezahl).%New()
	.. d objfw.pfremdwSetObjectId(idfrw)
	.. s objfw.betragfrw=$LI(fremdw1,2)
	.. s objfw.betrag=$LI(fremdw1,3)
	.. d ..barfrw.Insert(objfw)
	.. d objfw.%Close()
	k objfw
]]></Implementation>
</Method>

<Method name="GetBarfrw">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg="",n=0
	s id="" f  s objfw=..barfrw.GetNext(.id) q:objfw=""  d
	. s n=n+1,$LI(erg,n)=$LB(objfw.pfremdw.kbez,objfw.betragfrw,objfw.betrag)
	k objfw
	
	q erg
]]></Implementation>
</Method>

<Method name="Berechnen">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s kaskontoid=$O(^stamm.kontoI("index",siteid,0," "_$ZCONVERT("200000","U"),""))
	
	k wert //Aufbau wert mit $LB(brutto,skontobasis)
	s id="",obj1="" f  s obj1=..pos.GetNext(.id) q:obj1=""  d
	. s mw=0 i ..mwstsw s mw=obj1.preis.pmwcode.mwproz
	. s kontoid=obj1.panr.vkkonto.inland.%Id()
	. I '$D(wert(mw)) s wert(mw)=$LB(0,0)
	. I '$D(wert(mw,kontoid)) s wert(mw,kontoid)=$LB(0,0)
	. s $LI(wert(mw,kontoid),1)=$LI(wert(mw,kontoid),1)+obj1.poswert
	. i obj1.panr.skontosw s $LI(wert(mw,kontoid),2)=$LI(wert(mw,kontoid),2)+obj1.poswert
	
	d ..mwkonten.Clear()
	s ..wertexcl=0,..wertincl=0,..barskabs=0,..skbasis=0
	;
	s mw="" f  s mw=$O(wert(mw)) q:mw=""  d
	. s (excl,mwst,skexcl,skmwst,skbas)=0
	. ;
	. s kontoid="" f  s kontoid=$O(wert(mw,kontoid)) q:kontoid=""  d
	.. s excl1=$LI(wert(mw,kontoid),1)
	.. s skbas1=$LI(wert(mw,kontoid),2)
	.. s skexcl1=skbas1*..barskpr/100
	.. s excl=excl+$J(excl1,0,4)
	.. s mwst=mwst+$J(excl1*mw/100,0,4)
	.. s skexcl=skexcl+$J(skexcl1,0,4)
	.. s skmwst=skmwst+$J((skexcl1*mw/100),0,4)
	.. s skbas=skbas+$J(skbas1,0,4)
	. ;
	. s skbas=$J(skbas,0,2)
	. s excl=$J(excl+mwst,0,2)-$J(mwst,0,2)
	. s mwst=$J(mwst,0,2)
	. s skexcl=$J(skexcl+skmwst,0,2)-$J(skmwst,0,2)
	. s skmwst=$J(skmwst,0,2)
	. s $LI(wert(mw),1)=excl
	. s $LI(wert(mw),2)=skbas
	. s ..wertexcl=..wertexcl+excl
	. s ..wertincl=..wertincl+excl+mwst
	. s ..barskabs=..barskabs+skexcl+skmwst
	. s ..skbasis=..skbasis+skbas
	. s objmw=##class(basis.belmwtab).%New()
	. s objmw.mwproz=mw
	. s objmw.betrexcl=excl
	. s objmw.betrmwst=mwst
	. s objmw.skexcl=skexcl
	. s objmw.skmwst=skmwst
	. s kontoid="" f  s kontoid=$O(wert(mw,kontoid)) q:kontoid=""  d
	.. s excl1=$LI(wert(mw,kontoid),1)
	.. s skbas1=$LI(wert(mw,kontoid),2)
	.. s skexcl1=skbas1*..barskpr/100
	.. i +excl1+skexcl1 d
	... s objk=##class(basis.belkonto).%New()
	... s objk.sollhab=0
	... s objk.mwproz=mw
	... s objk.betrexcl=$J(excl1,0,2)
	... s objk.betrmwst=$J(excl1*mw/100,0,2)
	... i ..pbelart.barsw s objk.konto.typ="S" d objk.konto.pkontoSetObjectId(kaskontoid) i 1
	... e  s objk.konto.typ="K",objk.konto.pkunde=..pkunde
	... s objk.gkonto.typ="S"
	... d objk.gkonto.pkontoSetObjectId(kontoid)
	... d objmw.konten.Insert(objk)
	. ;
	. i +skexcl d
	.. s objk=##class(basis.belkonto).%New()
	.. s objk.sollhab=0
	.. s objk.mwproz=mw
	.. s objk.betrexcl=$J(-skexcl,0,2)
	.. s objk.betrmwst=-skmwst
	.. s mwid=$O(^param.mwcodeI("mwproz",siteid,0,+mw,""))
	.. s objmwp=##class(param.mwcode).%OpenId(mwid)
	.. s skakonto=objmwp.pskakonto
	.. d objmwp.%Close()
	.. i ..pbelart.barsw s objk.konto.typ="S" d objk.konto.pkontoSetObjectId(kaskontoid) i 1
	.. e  s objk.konto.typ="K",objk.konto.pkunde=..pkunde
	.. s objk.gkonto.typ="S"
	.. s objk.gkonto.pkonto=skakonto
	.. d objmw.konten.Insert(objk)
	. ;
	. d ..mwkonten.SetAt(objmw,+mw)
	k objmw,objk,objmwp
	;
	s zbetrag=..wertincl-..barskabs
	s id="",obj1="" f  s obj1=..einaus.GetNext(.id) q:obj1=""  d
	. i obj1.typ=1 s zbetrag=zbetrag+obj1.betrag q
	. i obj1.pkassaea.einaus s zbetrag=zbetrag+obj1.betrag i 1
	. e  s zbetrag=zbetrag-obj1.betrag
	s negativsw=0 i zbetrag<0 s negativsw=1,zbetrag=-zbetrag
	s erg=..GetZmittel()
	s ..summezm=$LI(erg,1)+$LI(erg,2)+$LI(erg,3)+$LI(erg,4)+$LI(erg,5)+$LI(erg,6)
	s ..restg=..summezm-zbetrag
	s ..negativsw=negativsw
	s ..zahlb=zbetrag
	
	k obj1
	q $LB(..wertexcl,..wertincl,..barskabs,zbetrag,skontobasis,negativsw)
]]></Implementation>
</Method>

<Method name="berechneBonusHagebau">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s bonusbelege="SR,LS"
	s ..bonusbasis=..wertincl-..barskabs
	s id="",obj1="" f  s obj1=..einaus.GetNext(.id) q:obj1=""  d
	. i obj1.typ=1 d
	.. s belart=$LI(obj1.cargo,1)
	.. i obj1.pbeleg.pbelart.barsw,+obj1.offen=0 s ..bonusbasis=..bonusbasis+obj1.betrag
	.. i belart="AC",+obj1.offen=0,'##class(param.zahlungsm).getBonus("A") s ..bonusbasis=..bonusbasis+obj1.betrag
	.. i $F(","_bonusbelege_",",","_belart_","),+obj1.offen=0 d
	... s nettodat=..beldat I obj1.pbeleg'="" s nettodat=obj1.pbeleg.zkdat.datumn
	... I ..beldat'>nettodat!(obj1.betrag<0) s ..bonusbasis=..bonusbasis+obj1.betrag
	. i obj1.typ=2 d
	.. i obj1.pkassaea.einaus,obj1.pkassaea.bonussw s ..bonusbasis=..bonusbasis+obj1.betrag
	;
	s zmbetr=..GetZmittel()
	//Bonusfähig Zahlungsmittel Bar
	i '##class(param.zahlungsm).getBonus("B") s ..bonusbasis=..bonusbasis-..bar
	//Bonusfähig Zahlungsmittel Bar-Fremdwährung
	i '##class(param.zahlungsm).getBonus("B") s ..bonusbasis=..bonusbasis-$LI(zmbetr,2)
	//Bonusfähig Zahlungsmittel Karte/Bankomat
	i '##class(param.zahlungsm).getBonus("E") s ..bonusbasis=..bonusbasis-$LI(zmbetr,3)
	//Bonusfähig Zahlungsmittel Aconto
	i '##class(param.zahlungsm).getBonus("A") s ..bonusbasis=..bonusbasis-$LI(zmbetr,6)
	//Bonusfähig Zahlungsmittel Gutschein
	s id="" f  s objgm=..gutsch.GetNext(.id) q:objgm=""  d
	. s gstyp=$E(objgm.gsnr,1)
	. i '##class(param.zahlungsm).getBonus("D"_gstyp) s ..bonusbasis=..bonusbasis-$LI(zmbetr,4) i 1
	. e  i '##class(stamm.gutschein).getBonus(objgm.gsnr) s ..bonusbasis=..bonusbasis-objgm.betrag
	//Bonusfähig Zahlungsmittel GS-Non
	s id="" f  s objgm=..gsbon.GetNext(.id) q:objgm=""  d
	. i '##class(param.zahlungsm).getBonus("G") s ..bonusbasis=..bonusbasis-$LI(zmbetr,5) i 1
	. e  i '##class(stamm.gsbon).getBonus(objgm.gsnr) s ..bonusbasis=..bonusbasis-objgm.betrag
	;
	I ..bonusbasis<0,'..bonusnegativ s ..bonusbasis=0
	s ..bonuspunkte=0
	i ..pkunde.kbonusjn,..beldat'<..pkunde.kbdatum,+..bonusbasis d
	. s bonustime=##class(beweg.bonusdat).getBasisLast(..pkunde.%Id(),60)
	. s ..bonuspunkte=##class(param.bonustab).GetPunkte(..pkunde.%Id(),..bonusbasis+$LI(bonustime,1))-$LI(bonustime,2)
	. i ..bonuspunkte<0,'..bonusnegativ s ..bonuspunkte=0
	. i ..bonuspunkte<0,..pkunde.kbaktpkt'<0,..pkunde.kbaktpkt+..bonuspunkte<0 s ..bonuspunkte=0
	
	q ..bonuspunkte
]]></Implementation>
</Method>

<Method name="getBelegId">
<FormalSpec>belartid:%String,belnr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^beweg.belegI("keybelnr",siteid,0,belartid," "_$ZCONVERT(belnr,"U"),""))
	q id
]]></Implementation>
</Method>

<Method name="GetBelegBarcode">
<ClassMethod>1</ClassMethod>
<FormalSpec>belnr</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s erg=$$GET^KWWEAN(belnr)
	i $P(erg,"|",1)'="2" q "" 
	q $P(erg,"|",2)
]]></Implementation>
</Method>

<Method name="getBelegz">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[	q $LB(+..zahlb)
]]></Implementation>
</Method>

<Method name="setBelegMenge">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	f i=1:1:$LL(..pbelart.belegsw) i +$LI(..pbelart.belegsw,i) d
	. s id="",objpos="" f  s objpos=..pos.GetNext(.id) q:objpos=""  d
	.. d objpos.belmenge.SetAt(objpos.menge+objpos.belmenge.GetAt(i),i)
	.. //Positions-Verknüpfungen der Parents durchführen
	q 1
]]></Implementation>
</Method>

<Method name="SetIst">
<FormalSpec>muenzen:%List,valuten:%List,werte:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s objsess=##class(system.session).%OpenId($J)
	s ladeid=objsess.puser.pkassalade.%Id()
	d objsess.%Close()
	k objsess
	s kasdat=$P($H,",",1)
	s ids=$O(^beweg.kassasummenI("index",siteid,0,ladeid,kasdat,""))
	i ids="" d
	. s objs=##class(beweg.kassasummen).%New()
	. d objs.pkassaladeSetObjectId(ladeid)
	. s objs.datum=kasdat
	e  s objs=##class(beweg.kassasummen).%OpenId(ids)
	
	d objs.istmuenzen.Clear()
	s objs.istbar=0
	f i=1:1:$LL(muenzen) d
	. s objm=##class(basis.muenze).%New()
	. s objm.wert=$LI($LI(muenzen,i),1)
	. s objm.anzahl=$LI($LI(muenzen,i),2)
	. d objs.istmuenzen.Insert(objm)
	. s objs.istbar=objs.istbar+(objm.wert*objm.anzahl)
	. d objm.%Close()
	
	d objs.istvaluten.Clear()
	s objs.istval=0
	f i=1:1:$LL(valuten) d
	. s objm=##class(basis.valute).%New()
	. s valkbez=$LI($LI(valuten,i),1)
	. s dat=$O(^param.fremdwI("index",siteid,0," "_$ZCONVERT(valkbez,"U"),kasdat+1),-1)
	. s idval=$O(^param.fremdwI("index",siteid,0," "_$ZCONVERT(valkbez,"U"),dat,""))
	. d objm.pvaluteSetObjectId(idval)
	. s objm.betrval=$LI($LI(valuten,i),2)
	. s objm.betr=$LI($LI(valuten,i),3)
	. d objs.istvaluten.Insert(objm)
	. s objs.istval=objs.istval+objm.betr
	. d objm.%Close()

	s objs.istgutschein=$LI(werte,1)
	s objs.istgsbon=$LI(werte,2)
	
	d objs.%Save(0)
	d objs.%Close()
	k objs,objm
	q 1
]]></Implementation>
</Method>

<Method name="GetAnr">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s artobj=##class(stamm.artikel).%OpenId(id)
	i artobj="" q ""
	s anr=artobj.anr
	s kummsw=artobj.parttyp.kummsw
	d artobj.%Close()
	k artobj
	
	q $LB(anr,kummsw)
]]></Implementation>
</Method>

<Query name="liste">
<Description>
/// QUERY-s //////////////////////////////////////////////////////////////</Description>
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,userid:%String,datum:%Date="",belart:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,pbelart->code,belnr,pkunde->person_name_name1,pkunde->person_name_name2 FROM beleg
where loesw=0 and psite=:siteid and beldat>=:datum and panlmitarb=:userid and (pbelart->code=:belart or :belart="")
order by beldat, %Id]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Method name="repbon">
<Description>
///// Methoden für Reports ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</Description>
<FormalSpec>layid:%String,kopietxt:%String="",p2:%String="",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s kopie=(p2="1")
	s anzkop=0
	
	s rep=##class(system.rep).%New()
	d rep.begin(layid,..status=2)
	
	s beldattime=$ZD(..beldat,4)_" "_$ZT(..beltime)
	i $L(..panlmitarb) s erfasser=..panlmitarb.name1
	
	k ea s swea=0
	s id="",einaus="" f  s einaus=..einaus.GetNext(.id) q:einaus=""  d
	. i einaus.typ=2 s ea(+einaus.pkassaea.einaus)=""
	. i einaus.typ=1 s ea($P(einaus.text1," ",1))=""
	. s swea=1
	
	s sammel=..pkunde.sammel
	s belegbez="KASSABON"
	s intern=..internsw
	i +sammel=0 s intern=0
	s ea=$O(ea(""))
	i ea?.n,$L(ea),$O(ea(""),-1)=ea,..pos.GetNext("")="" d
	. i intern d
	.. i +ea=1 s belegbez="KASSA-EINGANG"
	.. e  s belegbez="KASSA-AUSGANG"


	s swpos=0
	i 'kopie,'intern d rep.line("logo",##this)
	d ..RepBonkopf(rep)
	
	i 'intern,'sammel d ..RepKundKopf(rep)
	d rep.line("header2",##this)
	
	i ..pos.GetNext("")'="" d rep.line("artheader",##this)
	s id="",opos="" f  s opos=..pos.GetNext(.id) q:opos=""  d
	. i opos.ean'="" s artean=opos.ean
	. e  s artean=opos.panr.anr
	. s poswertincl=$TR($FN($J(opos.poswert*(100+opos.panr.pmwcode.mwproz)/100,0,2),",",2),".,",",.")
	. s netto2=$TR($FN(opos.preis.netto2,",",2),".,",",.")
	. s mengepreis=$TR($FN(opos.menge,",",2),".,",",.")_" "_opos.defeinh.code_" x "_netto2_" "_opos.preis.rabtxt
	. i opos.menge'=1!(+opos.preis.brutto'=+opos.preis.netto1) d rep.line("zeile",##this) i 1
	. e  d rep.line("zeilekurz",##this)
	. i $L(opos.preis.preistext) s txt=opos.preis.preistext d rep.line("txtzeile",##this)
	. d opos.postxt.Rewind()
	. s txtbuff=opos.postxt.Read(30000)
	. f i=1:1:$L(txtbuff,$C(10)) d
	.. s txt=$P(txtbuff,$C(10),i) q:txt=""
	.. d rep.line("txtzeile",##this)
	. k txtbuff
	. ;
	. //i ..pos.GetNext(id)="" d rep.setLastLine(1)
	. s swpos=1
	
	s wertincl=$TR($FN(..wertincl,",",2),".,",",.")
	s skontoabs=$TR($FN(..barskabs,",",2),".,",",.")
	s zahlbetrag=$TR($FN(..wertincl-..barskabs,",",2),".,",",.")	
	i ..belnr?.N d
	. i +swpos d
	.. i ..barskabs=0 d rep.line("posfuss",##this) i 1
	.. e  d rep.line("skonto",##this)
	. s id="" f  s omw=..mwkonten.GetNext(.id) q:omw=""  d
	.. s mwproz=omw.mwproz,mwnetto=$TR($FN(omw.betrexcl,",",2),".,",",.")
	.. s mwst=$TR($FN(omw.betrmwst,",",2),".,",",.")
	.. d rep.line("mwst",##this)
	. i ..einaus.GetNext("")'="" d
	.. s id="",einaus="" f  s einaus=..einaus.GetNext(.id) q:einaus=""  d
	... s (einaustxt1,einaustxt2,einausbetr)=""
	... i einaus.typ=2,einaus.printsw d
	.... s einaustxt1=einaus.text1
	.... i einaus.pkassaea.einaus s einausbetr=$TR($FN(einaus.betrag,",",2),".,",",.") i 1
	.... e  s einausbetr=$TR($FN(einaus.betrag,",",2),".,",",.")
	.... d rep.line("einaus",##this) 
	... i einaus.typ=1 d
	.... s einaustxt1="Belegzahlung  "_einaus.text1
	.... s einausbetr=$TR($FN(einaus.betrag,",",2),".,",",.")
	.... d rep.line("einaus",##this)
	.... i +einaus.offen=0,+einaus.skonto s txt="( "_$TR($FN(einaus.betrag+einaus.skonto,",",2),".,",",.")_" - "_$TR($FN(einaus.skonto,",",2),".,",",.")_" Skonto )" d rep.line("txtzeile",##this)
	.. d rep.line("dummy",##this)
	. ;
	. i ..bar d
	.. i ..negativsw s zmtxt="Bar an Kunde",zmbetr=$TR($FN(..bar,",",2),".,",",.") d rep.line("zahlm",##this) i 1 
	.. e  s zmtxt="Gegeben Bar",zmbetr=$TR($FN(..bar,",",2),".,",",.") d rep.line("zahlm",##this)
	. ;
	. s id="" f  s gsobj=..karte.GetNext(.id) q:gsobj=""  d
	.. i ..negativsw s zmtxt="Rückbuchung Karte "_gsobj.pkarttyp.bez,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this) i 1
	.. e  s zmtxt="Belastung Karte "_gsobj.pkarttyp.bez,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	.. d ..txtkarte(rep,gsobj)
	.. d rep.line("dummy",##this)
	. ;
	. s id="" f  s gsobj=..gutsch.GetNext(.id) q:gsobj=""  d
	.. s zmtxt="Gegeben Gutschein "_gsobj.gsnr,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	. ;
	. s id="" f  s acobj=..aconto.GetNext(.id) q:acobj=""  d
	.. s zmtxt="Gegeben Anzahlung "_acobj.acontonr,zmbetr=$TR($FN(acobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	. ;
	. s id="" f  s gsobj=..gsbon.GetNext(.id) q:gsobj=""  d
	.. s zmtxt="Gegeben GS-Bon "_gsobj.gsnr,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	. ;
	. s id="" f  s fwobj=..barfrw.GetNext(.id) q:fwobj=""  d
	.. i '..negativsw s zmtxt="Gegeben "_$TR($FN(fwobj.betragfrw,",",2),".,",",.")_" "_fwobj.pfremdw.kbez_" =",zmbetr=$TR($FN(fwobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	. ;
	. d rep.line("dummy",##this)
	. i ..negativsw s zmtxt="Summe Rück Zahlung/Buchung",zmbetr=$TR($FN(..summezm,",",2),".,",",.") i 1
	. e  s zmtxt="Gegeben gesamt",zmbetr=$TR($FN(..summezm,",",2),".,",",.") 
	. d rep.line("zahlm",##this)
	. ;
	. i +..restg d
	.. i ..negativsw s zmtxt="Retourgeld von Kunde",zmbetr=$TR($FN(..restg,",",2),".,",",.") i 1
	.. e  s zmtxt="Retourgeld an Kunde",zmbetr=$TR($FN(..restg,",",2),".,",",.") 
	.. d rep.line("zahlm",##this)  
	. ;
	. i ..negativsw,+..bar,'intern d:kopie rep.line("besterhalt",##this) s anzkop=1 
	. ;
	. i ..bonuspunkte>0,'kopie d
	.. i ..bonuspunkte'=1 s punktetxt="- Treuebonus-Punkte" i 1 
	.. e  s punktetxt="- Treuebonus-Punkt"
	.. s punkte=..bonuspunkte 
	.. d rep.line("bonus",##this)
	. i 'kopie,'intern d ..nachlauftext(rep)
	. i 'kopie,'intern d rep.line("gruss",##this) i 1
	. e  f k=1:1:3 d rep.line("dummy",##this)
	. i 1
	e  d rep.line("posfussvorschau",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	s scroll=..status=1
	q $LB(repid,scroll,anzkop)
]]></Implementation>
</Method>

<Method name="replibeleg">
<FormalSpec>layid:%String,kopietxt:%String,belegbez:%String="Lieferbeleg",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s kopie=(p2="1")
	s anzkop=0
	
	s rep=##class(system.rep).%New()
	d rep.begin(layid,..status=2)
	
	s beldattime=$ZD(..beldat,4)_" "_$ZT(..beltime)
	i $L(..panlmitarb) s erfasser=..panlmitarb.name1
		
	s sammel=..pkunde.sammel
	s intern=..internsw
	i +sammel=0 s intern=0

	s swpos=0
	
	s psite=##class(system.session).%OpenId($J).psite
	s firmaid=$O(^param.firmaI("index",siteid,0," "_$ZCONVERT(psite.firma,"U"),""))
	s standortid=$O(^param.standortI("index",siteid,0," "_$ZCONVERT(psite.standort,"U"),""))
	
	s objfirma=##class(param.firma).%OpenId(firmaid)
	s objstandort=##class(param.standort).%OpenId(standortid)

	s kopf1=objfirma.name1
	s kopf2=objstandort.adresse.strasse_", "_objstandort.adresse.land_"-"_objstandort.adresse.plz_" "_objstandort.adresse.ort
	s kopf3="Tel.: "_objstandort.kontakt.tel_"    UID: "_objfirma.uid
	
	d objfirma.%Close() k objfirma
	d objstandort.%Close() k objfirma
	d psite.%Close() k psite

	i ..pkunde.sammel d
	. s titel=..kunde.name.titel i titel'="" s titel=titel_" "
	. s addr1=titel_..kunde.name.titel1
	. s addr2=..kunde.name.name1_" "_..kunde.name.name2
	. s addr3=..kunde.adresse.strasse
	. s landplzort=..kunde.adresse.land_"-"_..kunde.adresse.plz_" "_..kunde.adresse.ort
	. i 1
	e  d
	. s titel=..pkunde.person.name.titel i titel'="" s titel=titel_" "
	. s addr1=titel_..pkunde.person.name.titel1
	. s addr2=..pkunde.person.name.name1_" "_..pkunde.person.name.name2
	. s addr3=..pkunde.person.adresse.strasse
	. s landplzort=..pkunde.person.adresse.land_"-"_..pkunde.person.adresse.plz_" "_..pkunde.person.adresse.ort
	
	s uebertragtxt="Übertrag:",uebertrag=0
	s id="",opos="" f  s opos=..pos.GetNext(.id) q:opos=""  d
	. i opos.ean'="" s artean=opos.ean
	. e  s artean=opos.panr.anr
	. s posnr=opos.pos
	. s bez=opos.bez1_" "_opos.bez2_" "_opos.bez3
	. s menge=$TR($FN($J(opos.menge,0,4),",",4),",.",".,")_" "_opos.defeinh.code
	. s menge1="" I opos.preis.prfaktor'=1,+opos.preis.prfaktor s menge1=" = "_$TR($FN($J(opos.menge/opos.preis.prfaktor,0,4),",",4),",.",".,")_" "_opos.preis.preinh.code
	. s preis=$TR($FN($J(opos.preis.netto1,0,4),",",4),",.",".,")
	. i opos.preis.prme'=1 s menge1=menge1_" per "_$TR($FN($J(opos.preis.prme,0,2),",",2),".,",",.")
	. s poswert=$TR($FN($J(opos.poswert,0,2),",",2),".,",",.")
	. s mwproz=$J(opos.panr.pmwcode.mwproz,0,0)
	. d rep.line("zeile",##this) i 1
	. i $L(opos.preis.preistext) s txt=opos.preis.preistext d rep.line("txtzeile",##this)
	. d opos.postxt.Rewind()
	. s txtbuff=opos.postxt.Read(30000)
	. f i=1:1:$L(txtbuff,$C(10)) d
	.. s txt=$P(txtbuff,$C(10),i) q:txt=""
	.. d rep.line("txtzeile",##this)
	. k txtbuff
	. s uebertrag=uebertrag+$J(opos.poswert,0,2)
	. ;
	. //i ..pos.GetNext(id)="" d rep.setLastLine(1)
	. s swpos=1

	s wertincl=$TR($FN(..wertincl,",",2),".,",",.")
	s wertmwst=$TR($FN(..wertincl-..wertexcl,",",2),".,",",.")
	s wertexcl=$TR($FN(..wertexcl,",",2),".,",",.")
	s skontoabs=$TR($FN(..barskabs,",",2),".,",",.")
	s zahlbetrag=$TR($FN(..wertincl-..barskabs,",",2),".,",",.")	
	
	f i=1:1:3 s steuer(i)=""
	s stcnt=0
	s id="" f  s omw=..mwkonten.GetNext(.id) q:omw=""  d
	. s mwproz=+omw.mwproz,mwnetto=$TR($FN(omw.betrexcl,",",2),".,",",.")
	. s mwst=$TR($FN(omw.betrmwst,",",2),".,",",.")
	. s stcnt=stcnt+1,steuer(stcnt)=mwst_" Mwst. "_omw.mwproz_" %  von "_mwnetto_" Netto"
	
	i ..belnr?.N d
	. i +swpos d
	.. i ..barskabs=0 d rep.line("posfuss",##this) i 1
	.. e  d rep.line("skonto",##this)

	s uebertragtxt=""
	
	i ..einaus.GetNext("")'="" d
	. s id="",einaus="" f  s einaus=..einaus.GetNext(.id) q:einaus=""  d
	.. s (einaustxt1,einaustxt2,einausbetr)=""
	.. i einaus.typ=2,einaus.printsw d
	... s einaustxt1=einaus.text1
	... i einaus.pkassaea.einaus s einausbetr=$TR($FN(einaus.betrag,",",2),".,",",.") i 1
	... e  s einausbetr=$TR($FN(-einaus.betrag,",",2),".,",",.")
	... d rep.line("einaus",##this) 
	.. i einaus.typ=1 d
	... s einaustxt1="Belegzahlung  "_einaus.text1
	... s einausbetr=$TR($FN(einaus.betrag,",",2),".,",",.")
	... d rep.line("einaus",##this)
	... i +einaus.offen=0,+einaus.skonto s txt="( "_$TR($FN(einaus.betrag+einaus.skonto,",",2),".,",",.")_" - "_$TR($FN(einaus.skonto,",",2),".,",",.")_" Skonto )" d rep.line("txtzeile1",##this)
	. d rep.line("dummy",##this)
	. ;
	i ..bar d
	. i ..negativsw s zmtxt="Bar an Kunde",zmbetr=$TR($FN(..bar,",",2),".,",",.") d rep.line("zahlm",##this) i 1 
	. e  s zmtxt="Gegeben Bar",zmbetr=$TR($FN(..bar,",",2),".,",",.") d rep.line("zahlm",##this)
	;
	 s id="" f  s gsobj=..karte.GetNext(.id) q:gsobj=""  d
	. i ..negativsw s zmtxt="Rückbuchung Karte "_gsobj.pkarttyp.bez,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this) i 1
	. e  s zmtxt="Belastung Karte "_gsobj.pkarttyp.bez,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	. d ..txtkarte(rep,gsobj)
	. d rep.line("dummy",##this)
	;
	s id="" f  s gsobj=..gutsch.GetNext(.id) q:gsobj=""  d
	. s zmtxt="Gegeben Gutschein "_gsobj.gsnr,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	;
	s id="" f  s acobj=..aconto.GetNext(.id) q:acobj=""  d
	. s zmtxt="Gegeben Anzahlung "_acobj.acontonr,zmbetr=$TR($FN(acobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	;
	s id="" f  s gsobj=..gsbon.GetNext(.id) q:gsobj=""  d
	. s zmtxt="Gegeben GS-Bon "_gsobj.gsnr,zmbetr=$TR($FN(gsobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	;
	s id="" f  s fwobj=..barfrw.GetNext(.id) q:fwobj=""  d
	. i '..negativsw s zmtxt="Gegeben "_$TR($FN(fwobj.betragfrw,",",2),".,",",.")_" "_fwobj.pfremdw.kbez_" =",zmbetr=$TR($FN(fwobj.betrag,",",2),".,",",.") d rep.line("zahlm",##this)
	;
	d rep.line("dummy",##this)
	i ..negativsw s zmtxt="Summe Rück Zahlung/Buchung",zmbetr=$TR($FN(..summezm,",",2),".,",",.") i 1
	e  s zmtxt="Gegeben gesamt",zmbetr=$TR($FN(..summezm,",",2),".,",",.") 
	d rep.line("zahlmgesamt",##this)
	;
	i +..restg d
	. i ..negativsw s zmtxt="Retourgeld von Kunde",zmbetr=$TR($FN(..restg,",",2),".,",",.") i 1
	. e  s zmtxt="Retourgeld an Kunde",zmbetr=$TR($FN(..restg,",",2),".,",",.") 
	. d rep.line("zahlm",##this)  
	;
	//i ..negativsw,+..bar,'intern d:kopie rep.line("besterhalt",##this) s anzkop=1 

	s repid=rep.end()
	d rep.%Close()
	k rep
	s scroll=..status=1
	q $LB(repid,scroll,anzkop)
]]></Implementation>
</Method>

<Method name="nachlauftext">
<FormalSpec>rep:system.rep</FormalSpec>
<Implementation><![CDATA[
	n i,i1,id,objnl,txt
	f i=1:1:$LL(..nachlauftxt) d
	. s id=$LI(..nachlauftxt,i)
	. s objnl=##class(stamm.nachltxt).%OpenId(id)
	. d rep.line("dummy",##this)
	. f i1=1:1:$L(objnl.text,$C(10)) d
	.. s txt=$P(objnl.text,$C(10),i1) d rep.line("txtzeile",##this)
	. d objnl.%Close()
	k objnl
	q
]]></Implementation>
</Method>

<Method name="txtkarte">
<FormalSpec>rep:system.rep,kartobj:basis.kartbezahl</FormalSpec>
<Implementation><![CDATA[
	N erg,ptext,pind,pergebnis,ptext3,txt1,txt,cnt
	s erg=kartobj.zahlungsid
	
	//maestro
	i kartobj.pkarttyp.debitsw d
	. i erg="B-K MANUELL" s txt1=erg,txt2="" d rep.line("txtkarte",##this) q
	. ;
	. s ptext=$E(erg,45,60)
	. s pind=$E(erg,4)
	. s pergebnis=$E(erg,5,44)
	. s ptext3=$E(ptext,1,3)
	. i ptext3="B-K"!(ptext3="edc"),pind="0" s txt1="Maestro"
	. e  i ptext3="B-K",pind'="0" s txt1="B-KASSE"
	. e  i ptext3="QCK" s txt1="Quick"
	. e  i ptext3="KMC" s txt1="Mastercard"
	. e  i ptext3="KVI" s txt1="Visa" 
	. e  i ptext3="KDI" s txt1="Diners Club"
	. e  i ptext3="KAM" s txt1="American Express"
	. e  i ptext3="KJB" s txt1="Jcb"
	. e  s txt1=ptext3
	. s txt2=""
	. s txt1=txt1_": "_$E(ptext,$L(ptext)-10,$L(ptext)) d rep.line("txtkarte",##this)
	. s txt1=pergebnis d rep.line("txtkarte",##this)
	. i $E(erg,2)="1" d
	.. s cnt=$E(erg,63)
	.. i cnt>0 s txt1=$E(erg,64,96) d rep.line("txtkarte",##this)
	.. i cnt>1 s txt1=$E(erg,97,129) d rep.line("txtkarte",##this)
	.. i cnt>2 s txt1=$E(erg,130,162) d rep.line("txtkarte",##this)
	.. i cnt>3 s txt1=$E(erg,163,195) d rep.line("txtkarte",##this)
	.. i cnt>4 s txt1=$E(erg,196,228) d rep.line("txtkarte",##this)
	.. i $E(erg,62)="1" d
	... s txt1="" d rep.line("txtkarte",##this)
	... s txt1="" d rep.line("txtkarte",##this)
	... s txt1="Unterschrift:" d rep.line("txtkarte",##this)
	;
	//Kreditkarten
	i kartobj.pkarttyp.kreditsw d
	. s mergebnis=$E(erg,89,108)
	. s mtid=$E(erg,69,76)
	. s mname=$E(erg,6,25)
	. s mgenehm=$E(erg,83,88)
	. s mtid=$E(erg,69,76)
	. s mkarte=$E(erg,26,46)
	. s mlese=$E(erg,52,52)
	. s mablauf=$E(erg,47,51)
	. s muid=$E(erg,53,68)
	. s mbeleg=$E(erg,77,82)
	. s mbetrag=$E(erg,109,116)
	. s txt1=mergebnis,txt2=mtid d rep.line("txtkarte",##this)
	. s txt1=mname,txt2=mgenehm d rep.line("txtkarte",##this)
	. s txt1=mkarte_" ("_mlese_")",txt2=mablauf d rep.line("txtkarte",##this)
	. s txt1=muid,txt2="Beleg Nr.:"_mbeleg d rep.line("txtkarte",##this)
	. s txt1="",txt2="" d rep.line("txtkarte",##this)
	. s txt1="",txt2="INFO: Betrag = "_$TR($FN(mbetrag/100,",",2),".,",",.")_" EURO" d rep.line("txtkarte",##this)
	. s txt1="",txt2="" d rep.line("txtkarte",##this)
]]></Implementation>
</Method>

<Method name="repkkbeleg">
<FormalSpec>layid:%String,p1:%String,duplikat:%String,p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	
	s belegbez="Kreditkarten-Beleg"
	
	d ..RepBonkopf(rep)
	
	s mergebnis=$E(p1,89,108)
	s mtid=$E(p1,69,76)
	s mname=$E(p1,6,25)
	s mgenehm=$E(p1,83,88)
	s mtid=$E(p1,69,76)
	s mkarte=$E(p1,26,46)
	s mlese=$E(p1,52,52)
	s mablauf=$E(p1,47,51)
	s muid=$E(p1,53,68)
	s mbeleg=$E(p1,77,82)
	s mbetrag=$E(p1,109,116)
	s mrefbetr=$E(p1,117,124)
	s mrefbel=$E(p1,125,130)

	s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1=mname,txt2="" d rep.line("txtkarte",##this)
	s txt1=mkarte_" ("_mlese_")",txt2=mablauf d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1=muid,txt2=mtid d rep.line("txtkarte",##this)

	i $E(p1,4,4)="9" s txt1=mrefbetr,txt2="Referenzbeleg Nr.:"_mrefbel d rep.line("txtkarte",##this)

	s txt1="",txt2="Genehmigungsnummer: "_mgenehm d rep.line("txtkarte",##this)
	s txt1="",txt2="Belegnummer: "_mbeleg d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	i duplikat="J" d
	. s txt1="DUPLIKAT",txt2="" d rep.line("txtkarte",##this)
	. s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1=mergebnis,txt2="Euro "_$TR($FN(mbetrag/100,",",2),".,",",.") d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	S txt1=$ZDT($H,4),txt2="" d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1="Unterschrift:",txt2="" d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	s txt1="",txt2="" d rep.line("txtkarte",##this)
	S txt1="",txt2="INFO: Betrag = "_$TR($FN(mbetrag/100,",",2),".,",",.")_" EURO" d rep.line("txtkarte",##this)
	d rep.line("gruss",##this)
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repausfolge">
<FormalSpec>layid:%String,p1:%String="",p2:%String="",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s rep=##class(system.rep).%New()
	d rep.begin(layid,..status=2)
	
	s beldattime=$ZD(..beldat,4)_" "_$ZT(..beltime)
	i $L(..panlmitarb) s erfasser=..panlmitarb.name1
	
	s sammel=..pkunde.sammel
	s belegbez="AUSFOLGESCHEIN"
	
	d ..RepBonkopf(rep)	
	i 'sammel d ..RepKundKopf(rep)
	d rep.line("header2",##this)
	d rep.line("artheader",##this)
	s id="",opos="" f  s opos=..pos.GetNext(.id) q:opos=""  d
	. I opos.ausfolgesw d
	.. i opos.ean'="" s artean=opos.ean
	.. e  s artean=opos.panr.anr
	.. s postxt=opos.menge_" x "_opos.kbez
	.. d rep.line("zeilekurz",##this)
	d rep.line("linie",##this)
	
	d rep.line("dummy",##this)
	s txt="Mit diesem Ausfolgeschein" d rep.line("txtzeile",##this)
	s txt="können Sie die Ware in" d rep.line("txtzeile",##this)
	s txt="unserem Lager abholen" d rep.line("txtzeile",##this)
	d rep.line("dummy",##this)
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repbankez">
<FormalSpec>layid:%String,kopietxt:%String="",p2:%String="",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
		
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	s belegbez="BANKEINZAHLUNG"
	s beldattime=$ZD(+$P($H,",",1),4)_" "_$ZT(+$P($H,",",2))
	s pobj=##class(system.session).%OpenId($J)
	s erfasser=pobj.puser.name1
	d pobj.%Close()

	d ..RepBonkopf(rep)
	d rep.line("header2",##this)
	
	s sum=0
	f i=1:1:$LL(p2) d
	. s daten1=$LI(p2,i)
	. s stueck=$LI(daten1,1),menge=$LI(daten1,2)
	. s sum=stueck*menge+sum
	. s wert=$TR($FN(stueck*menge,",",2),".,",",.")
	. s stueck=$TR(stueck,".",",")
	. d rep.line("zeile",##this)

	//Fremdwährung
	i p3'="" d
	. d rep.line("dummy",##this)
	. f i=1:1:$LL(p3) d
	.. s daten1=$LI(p3,i)
	.. s stueck=$LI(daten1,1),menge=$LI(daten1,2),wert=$LI(daten1,3)
	.. s sum=sum+wert
	.. s menge=$TR($FN(menge,",",2),".,",",.")
	.. s wert=$TR($FN(wert,",",2),".,",",.")
	.. d rep.line("zeile",##this)

	d rep.line("line",##this)
	s stueck="Summe",menge="",wert=$TR($FN(sum,",",2),".,",",.")
	d rep.line("zeile",##this)
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repbkasseendebk">
<FormalSpec>layid:%String,ergm:%String,hkerg:%String,idj:%String,p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	s belegbez="maestro TAGESENDE"
	s beldattime=$ZD(+$P($H,",",1),4)_" "_$ZT(+$P($H,",",2))
	s pobj=##class(system.session).%OpenId($J)
	s erfasser=pobj.puser.name1
	d pobj.%Close()

	d ..RepBonkopf(rep)
	d rep.line("header2",##this)
	i ergm="" s txt="BK-MANUELL" d rep.line("betrag",##this) I 1
	e  s txt=$E(ergm,5,44) d rep.line("betrag",##this)
	s txt="T-K:"_$J($TR($FN($LI(hkerg,1),",",2),".,",",."),12)_"           TES-Kasse" d rep.line("betrag",##this)
	d rep.line("linie",##this)

	d rep.line("dummy",##this)
	s objj=##class(beweg.bktagesende).%OpenId(idj)
	s jtxt=objj.journal.Read(30000)
	for i=1:1:$L(jtxt,$C(10)) d
	. s txt=$P(jtxt,$C(10),i) d rep.line("txtzeile",##this)
	d objj.%Close()
	k objj
	d rep.line("dummy",##this)
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repbkasseendekk">
<FormalSpec>layid:%String,ergk:%String,hkerg:%String,p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	s belegbez="Kreditkarte TAGESENDE"
	s beldattime=$ZD(+$P($H,",",1),4)_" "_$ZT(+$P($H,",",2))
	s pobj=##class(system.session).%OpenId($J)
	s erfasser=pobj.puser.name1
	d pobj.%Close()

	d ..RepBonkopf(rep)
	d rep.line("header2",##this)
	
	s tsatz=$LI(ergk,1)
	s ttid=$E(tsatz,6,13)
	s tkauf=$E(tsatz,34,53)
	s tstorno=$E(tsatz,54,73)
	s tgutschr=$E(tsatz,74,93)
	
	s txt1="",txt2=ttid d rep.line("txtkarte",##this)

	f i=2:1:$LL(ergk) d
	. s usatz=$LI(ergk,i)
	. s uname=$E(usatz,8,27)
	. s uind=$E(usatz,4,4)
	. s uuid=$E(usatz,28,43)
	. s uergebnis=$E(usatz,44,63)
	. s ukaanz=+$E(usatz,97,100)
	. s ustanz=+$E(usatz,111,114)
	. s uguanz=+$E(usatz,125,128)
	. s udatum=$E(usatz,64,69)
	. s uzeit=$E(usatz,70,75)
	. s ukabetr=$E(usatz,87,96)/100
	. s ustbetr=$E(usatz,101,110)/100
	. s ugubetr=$E(usatz,115,124)/100
	. s usum=$E(usatz,77,86)/100 I $E(usatz,76)="-" s usum=-usum
	. s udiff=$E(usatz,130,139)/100 I $E(usatz,129)="-" s udiff=-udiff
	. ;
	. s hkbetr=0
	. i uname="MASTERCARD          " s hkbetr=$LI(hkerg,1)
	. e  i uname="VISA                " s hkbetr=$LI(hkerg,2)
	. e  i uname="DINERS              " s hkbetr=$LI(hkerg,3)
	. e  i uname="AMEX                " s hkbetr=$LI(hkerg,4)
	. e  i uname="JCB                 " s hkbetr=$LI(hkerg,5)
	. i uind=1 d  q
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uname,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uuid,txt2=udatum_" "_uzeit d rep.line("txtkarte",##this)
	.. s txt1=uergebnis,txt2="" d rep.line("txtkarte",##this)
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=tkauf,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=ukaanz,txt2="Euro "_$J($TR($FN(ukabetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. s txt1=tstorno,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=ustanz,txt2="Euro "_$J($TR($FN(ustbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. s txt1=tgutschr,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uguanz,txt2="Euro "_$J($TR($FN(ugubetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. d rep.line("linie",##this)
	.. s txt1="",txt2="Euro "_$J($TR($FN(usum,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. I $F(uergebnis,"DUPLIKAT")=0 s txt1="T-K:",txt2="Euro "_$J($TR($FN(hkbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	. ;
	. i uind=2 d  q
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uname,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uuid,txt2=udatum_" "_uzeit d rep.line("txtkarte",##this)
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=tkauf,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=ukaanz,txt2="Euro "_$J($TR($FN(ukabetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. s txt1=tstorno,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=ustanz,txt2="Euro "_$J($TR($FN(ustbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. s txt1=tgutschr,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uguanz,txt2="Euro "_$J($TR($FN(ugubetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. d rep.line("linie",##this)
	.. s txt1="",txt2="Euro "_$J($TR($FN(usum,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. I $F(uergebnis,"DUPLIKAT")=0 s txt1="T-K:",txt2="Euro "_$J($TR($FN(hkbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	. ;
	. i uind=3 d  q
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uname,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uuid,txt2=udatum_" "_uzeit d rep.line("txtkarte",##this)
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=tkauf,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=ukaanz,txt2="Euro "_$J($TR($FN(ukabetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. s txt1=tstorno,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=ustanz,txt2="Euro "_$J($TR($FN(ustbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. s txt1=tgutschr,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uguanz,txt2="Euro "_$J($TR($FN(ugubetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. d rep.line("linie",##this)
	.. s txt1="",txt2="Euro "_$J($TR($FN(usum,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. I $F(uergebnis,"DUPLIKAT")=0 s txt1="T-K:",txt2="Euro "_$J($TR($FN(hkbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	. ;
	. i uind=4 d  q
	.. s txt1="",txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uname,txt2="" d rep.line("txtkarte",##this)
	.. s txt1=uuid,txt2=udatum_" "_uzeit d rep.line("txtkarte",##this)
	.. s txt1="T-K:",txt2="Euro "_$J($TR($FN(hkbetr,",",2),".,",",."),11) d rep.line("txtkarte",##this)
	.. d rep.line("linie",##this)
	
	d rep.line("dummy",##this)
	d rep.line("dummy",##this)
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repgsbon">
<FormalSpec>layid:%String,bonnr:%String,betrag,p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
		
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	s belegbez="GUTSCHRIFTS-BON"
	s bonnrtxt="Nr.: "_bonnr
	s betrag=$TR($FN(betrag,",",2),".,",",.")
	s beldattime=$ZD(+$P($H,",",1),4)_" "_$ZT(+$P($H,",",2))
	s pobj=##class(system.session).%OpenId($J)
	s erfasser=pobj.puser.name1
	d pobj.%Close()

	
	d rep.line("logo",##this)
	
	d ..RepBonkopf(rep)
	
	i ..pkunde.sammel=0 d ..RepKundKopf(rep)
	
	d rep.line("header2",##this)
	
	s txt="Die Gutschrift ist uneingeschränkt gültig" d rep.line("txtzeile",##this)
	s txt="und kann bei einem weiteren Einkauf" d rep.line("txtzeile",##this)
	s txt="an einer Kasse in Zahlung gegeben werden" d rep.line("txtzeile",##this)
	
	d rep.line("gruss",##this)
	
	s ean=2207_$E(100000000+bonnr,2,9)
	d rep.line("barcode",##this)
	
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repisterf">
<FormalSpec>layid:%String,kopietxt:%String="",p2:%String="",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
		
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	s belegbez="MÜNZLISTE"
	s beldattime=$ZD(+$P($H,",",1),4)_" "_$ZT(+$P($H,",",2))
	s pobj=##class(system.session).%OpenId($J)
	s erfasser=pobj.puser.name1
	d pobj.%Close()

	d ..RepBonkopf(rep)
	d rep.line("header2",##this)
	
	s sum=0
	f i=1:1:$LL(p2) d
	. s daten1=$LI(p2,i)
	. s stueck=$LI(daten1,1),menge=$LI(daten1,2)
	. s sum=stueck*menge+sum
	. s wert=$TR($FN(stueck*menge,",",2),".,",",.")
	. s stueck=$TR(stueck,".",",")
	. d rep.line("zeile",##this)
	
	d rep.line("dummy",##this)
	s stueck="Gutschein",menge="",wert=$LI(p4,1),sum=sum+wert,wert=$TR($FN(wert,",",2),".,",",.")
	d rep.line("zeile",##this)
	s stueck="GS-Bon",menge="",wert=$LI(p4,2),sum=sum+wert,wert=$TR($FN(wert,",",2),".,",",.")
	d rep.line("zeile",##this)

	//Fremdwährung
	i p3'="" d
	. d rep.line("dummy",##this)
	. f i=1:1:$LL(p3) d
	.. s daten1=$LI(p3,i)
	.. s stueck=$LI(daten1,1),menge=$LI(daten1,2),wert=$LI(daten1,3)
	.. s sum=sum+wert
	.. s menge=$TR($FN(menge,",",2),".,",",.")
	.. s wert=$TR($FN(wert,",",2),".,",",.")
	.. d rep.line("zeile",##this)

	d rep.line("line",##this)
	s stueck="Summe",menge="",wert=$TR($FN(sum,",",2),".,",",.")
	d rep.line("zeile",##this)
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="RepBonkopf">
<ClassMethod>1</ClassMethod>
<FormalSpec>rep:system.rep</FormalSpec>
<Implementation><![CDATA[
	s psite=##class(system.session).%OpenId($J).psite
	
	s firmaid=$O(^param.firmaI("index",siteid,0," "_$ZCONVERT(psite.firma,"U"),""))
	s standortid=$O(^param.standortI("index",siteid,0," "_$ZCONVERT(psite.standort,"U"),""))
	
	s objfirma=##class(param.firma).%OpenId(firmaid)
	s objstandort=##class(param.standort).%OpenId(standortid)

	
	s kopf1=objfirma.name1
	s kopf2=objstandort.adresse.strasse
	s kopf3=objstandort.adresse.land_"-"_objstandort.adresse.plz_" "_objstandort.adresse.ort
	s kopf4="Tel.: "_objstandort.kontakt.tel_"    UID: "_objfirma.uid
	
	d objfirma.%Close() k objfirma
	d objstandort.%Close() k objstandort
	d psite.%Close() k psite
	
	d rep.line("header1",##this)
]]></Implementation>
</Method>

<Method name="RepKundKopf">
<FormalSpec>rep:system.rep</FormalSpec>
<Implementation><![CDATA[
	i ..pkunde.sammel d
	. s titel=..kunde.name.titel i titel'="" s titel=titel_" "
	. s addr1=titel_..kunde.name.titel1
	. s addr2=..kunde.name.name1_" "_..kunde.name.name2
	. s addr3=..kunde.adresse.strasse
	. s landplzort=..kunde.adresse.land_"-"_..kunde.adresse.plz_" "_..kunde.adresse.ort
	. i 1
	e  d
	. s titel=..pkunde.person.name.titel i titel'="" s titel=titel_" "
	. s addr1=titel_..pkunde.person.name.titel1
	. s addr2=..pkunde.person.name.name1_" "_..pkunde.person.name.name2
	. s addr3=..pkunde.person.adresse.strasse
	. s landplzort=..pkunde.person.adresse.land_"-"_..pkunde.person.adresse.plz_" "_..pkunde.person.adresse.ort

	d rep.line("kunde",##this)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.belegD</DataLocation>
<DefaultData>belegDefaultData</DefaultData>
<IdLocation>^beweg.belegD</IdLocation>
<IndexLocation>^beweg.belegI</IndexLocation>
<StreamLocation>^beweg.belegS</StreamLocation>
<Data name="belegDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aconto</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>ausfolgesw</Value>
</Value>
<Value name="6">
<Value>bar</Value>
</Value>
<Value name="7">
<Value>barfrw</Value>
</Value>
<Value name="8">
<Value>barskabs</Value>
</Value>
<Value name="9">
<Value>barskpr</Value>
</Value>
<Value name="10">
<Value>beldat</Value>
</Value>
<Value name="11">
<Value>belnr</Value>
</Value>
<Value name="12">
<Value>beltime</Value>
</Value>
<Value name="13">
<Value>bezahlt</Value>
</Value>
<Value name="14">
<Value>bonusbasis</Value>
</Value>
<Value name="15">
<Value>bonusnegativ</Value>
</Value>
<Value name="16">
<Value>bonuspunkte</Value>
</Value>
<Value name="17">
<Value>empfaction</Value>
</Value>
<Value name="18">
<Value>gesrabpr</Value>
</Value>
<Value name="19">
<Value>gsbon</Value>
</Value>
<Value name="20">
<Value>image</Value>
</Value>
<Value name="21">
<Value>internsw</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
<Value name="23">
<Value>kuadr</Value>
</Value>
<Value name="24">
<Value>kunde</Value>
</Value>
<Value name="25">
<Value>loesw</Value>
</Value>
<Value name="26">
<Value>mwstsw</Value>
</Value>
<Value name="27">
<Value>nachlauftxt</Value>
</Value>
<Value name="28">
<Value>negativsw</Value>
</Value>
<Value name="29">
<Value>nr</Value>
</Value>
<Value name="30">
<Value>ok</Value>
</Value>
<Value name="31">
<Value>pbelart</Value>
</Value>
<Value name="32">
<Value>pkuadr</Value>
</Value>
<Value name="33">
<Value>pkunde</Value>
</Value>
<Value name="34">
<Value>pliadr</Value>
</Value>
<Value name="35">
<Value>plief</Value>
</Value>
<Value name="36">
<Value>psite</Value>
</Value>
<Value name="37">
<Value>pzk</Value>
</Value>
<Value name="38">
<Value>rabtxt</Value>
</Value>
<Value name="39">
<Value>restg</Value>
</Value>
<Value name="40">
<Value>route</Value>
</Value>
<Value name="41">
<Value>rtdelay</Value>
</Value>
<Value name="42">
<Value>rtdelete</Value>
</Value>
<Value name="43">
<Value>skbasis</Value>
</Value>
<Value name="44">
<Value>status</Value>
</Value>
<Value name="45">
<Value>summezm</Value>
</Value>
<Value name="46">
<Value>upddatum</Value>
</Value>
<Value name="47">
<Value>updpers</Value>
</Value>
<Value name="48">
<Value>valutadat</Value>
</Value>
<Value name="49">
<Value>wertexcl</Value>
</Value>
<Value name="50">
<Value>wertincl</Value>
</Value>
<Value name="51">
<Value>zahlb</Value>
</Value>
<Value name="52">
<Value>zkdat</Value>
</Value>
<Value name="53">
<Value>anldatumzeit</Value>
</Value>
<Value name="54">
<Value>panlmitarb</Value>
</Value>
<Value name="55">
<Value>pupdmitarb</Value>
</Value>
<Value name="56">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="gutsch">
<Attribute>gutsch</Attribute>
<Structure>subnode</Structure>
<Subscript>"gutsch"</Subscript>
</Data>
<Data name="karte">
<Attribute>karte</Attribute>
<Structure>subnode</Structure>
<Subscript>"karte"</Subscript>
</Data>
<Data name="mwkonten">
<Attribute>mwkonten</Attribute>
<Structure>subnode</Structure>
<Subscript>"mwkonten"</Subscript>
</Data>
<Data name="pchild">
<Attribute>pchild</Attribute>
<Structure>subnode</Structure>
<Subscript>"pchild"</Subscript>
</Data>
<Data name="pparent">
<Attribute>pparent</Attribute>
<Structure>subnode</Structure>
<Subscript>"pparent"</Subscript>
</Data>
</Storage>
</Class>
<Class name="beweg.belegeinaus">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12128.521681</TimeChanged>
<TimeCreated>61075,48826.984996</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="beleg">
<Type>beweg.beleg</Type>
<Cardinality>parent</Cardinality>
<Inverse>einaus</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="typ">
<Description>
typ 1=Beleg, 2=KassaEA</Description>
<Type>%Integer</Type>
</Property>

<Property name="pkassaea">
<Description>
Ein/Ausgang falls Kassa-Ein/Ausgang </Description>
<Type>param.kassaea</Type>
</Property>

<Property name="pbeleg">
<Description>
Beleg falls Belegzahlung</Description>
<Type>beweg.beleg</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Property name="offen">
<Type>%Float</Type>
</Property>

<Property name="text1">
<Type>%String</Type>
</Property>

<Property name="text2">
<Type>%String</Type>
</Property>

<Property name="cargo">
<Type>%String</Type>
</Property>

<Property name="skonto">
<Type>%Float</Type>
</Property>

<Property name="skontopr">
<Type>%Float</Type>
</Property>

<Property name="printsw">
<Type>%Boolean</Type>
</Property>

<Property name="konten">
<Description>
Kontenzuordnung</Description>
<Type>basis.belkonto</Type>
<Collection>list</Collection>
</Property>

<Method name="getBelegdaten">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s obj1=##class(beweg.beleg).%OpenId(id)
	i obj1="" q ""
	s betrag=obj1.wertincl,skbasis=obj1.skbasis,vdat=obj1.valutadat
	s fdat1=obj1.zkdat.datum1,skpr1=obj1.zkdat.skontopr1
	s fdat2=obj1.zkdat.datum2,skpr2=obj1.zkdat.skontopr2
	s fdatn=obj1.zkdat.datumn,bezahlt=obj1.bezahlt
	s barsw=obj1.pbelart.barsw
	
	d obj1.%Close()
	
	k obj1
	q $LB(betrag,skbasis,vdat,fdat1,skpr1,fdat2,skpr2,fdatn,bezahlt,barsw)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("einaus")</DataLocation>
<DefaultData>belegeinausDefaultData</DefaultData>
<IdLocation>^beweg.belegzC("einaus")</IdLocation>
<IndexLocation>^beweg.belegeinausI</IndexLocation>
<StreamLocation>^beweg.belegeinausS</StreamLocation>
<Data name="belegeinausDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>betrag</Value>
</Value>
<Value name="5">
<Value>cargo</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>loesw</Value>
</Value>
<Value name="8">
<Value>offen</Value>
</Value>
<Value name="9">
<Value>pbeleg</Value>
</Value>
<Value name="10">
<Value>pkassaea</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>text1</Value>
</Value>
<Value name="16">
<Value>text2</Value>
</Value>
<Value name="17">
<Value>typ</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>kaspers</Value>
</Value>
<Value name="21">
<Value>skonto</Value>
</Value>
<Value name="22">
<Value>skontopr</Value>
</Value>
<Value name="23">
<Value>printsw</Value>
</Value>
<Value name="24">
<Value>anldatumzeit</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="konten">
<Attribute>konten</Attribute>
<Structure>subnode</Structure>
<Subscript>"konten"</Subscript>
</Data>
</Storage>
</Class>
<Class name="beweg.belegnextpos">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48826.990053</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="posindex">
<Type>%String</Type>
</Property>

<Property name="posnr">
<Type>%Integer</Type>
</Property>

<Property name="beleg">
<Type>beweg.beleg</Type>
<Cardinality>parent</Cardinality>
<Inverse>nextpos</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>posindex</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("nextpos")</DataLocation>
<DefaultData>belegnextposDefaultData</DefaultData>
<IdLocation>^beweg.belegC("nextpos")</IdLocation>
<IndexLocation>^beweg.belegnextposI</IndexLocation>
<StreamLocation>^beweg.belegnextposS</StreamLocation>
<Data name="belegnextposDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>posnr</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.belegpos">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,basis.belegart,%Persistent</Super>
<TimeChanged>61076,12129.071068</TimeChanged>
<TimeCreated>59921,85741.08332</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="beleg">
<Type>beweg.beleg</Type>
<Cardinality>parent</Cardinality>
<Inverse>pos</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pos">
<Type>%String</Type>
</Property>

<Property name="panr">
<Type>stamm.artikel</Type>
</Property>

<Property name="ean">
<Type>%String</Type>
</Property>

<Property name="preis">
<Type>basis.preis</Type>
</Property>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Property name="plief">
<Type>stamm.lief</Type>
</Property>

<Property name="defeinh">
<Type>param.meeinh</Type>
</Property>

<Property name="einh">
<Description>
key=param.meeinh</Description>
<Type>basis.arteinh</Type>
<Collection>array</Collection>
</Property>

<Property name="menge">
<Type>%Float</Type>
</Property>

<Property name="ausfolgesw">
<Type>%Boolean</Type>
</Property>

<Property name="stornoretoure">
<Description>
Kennung für Negativ 0=normal, 1=Storno, 2=Retoure</Description>
<Type>%Integer</Type>
</Property>

<Property name="belmenge">
<Type>%Float</Type>
<Collection>array</Collection>
</Property>

<Property name="poswert">
<Type>%Float</Type>
</Property>

<Property name="pparent">
<Type>beweg.belegpos</Type>
<Collection>list</Collection>
</Property>

<Property name="pchild">
<Type>beweg.belegpos</Type>
<Collection>list</Collection>
</Property>

<Property name="pgrpposparent">
<Type>%Integer</Type>
</Property>

<Property name="pgrpposchild">
<Type>%Integer</Type>
<Collection>list</Collection>
</Property>

<Property name="postxt">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="psumposparent">
<Type>%Integer</Type>
</Property>

<Property name="psumposchild">
<Type>%Integer</Type>
<Collection>list</Collection>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>pos</Properties>
<Unique>1</Unique>
</Index>

<Query name="pos">
<Description>
/// QUERY-s //////////////////////////////////////////////////////////////</Description>
<Type>%SQLQuery</Type>
<FormalSpec>belid:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT 	pos,panr->anr,panr->bez1,panr->bez2,panr->bez3,
		menge,defeinh->bez,preis_brutto,preis_netto2,
		preis_pmwcode->mwproz from beweg.belegpos
where beleg->%Id=:belid
order by pos]]></SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("pos")</DataLocation>
<DefaultData>belegposDefaultData</DefaultData>
<IdLocation>^beweg.belegD("pos")</IdLocation>
<IndexLocation>^beweg.belegposI</IndexLocation>
<StreamLocation>^beweg.belegposS</StreamLocation>
<Data name="belegposDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez1</Value>
</Value>
<Value name="5">
<Value>bez2</Value>
</Value>
<Value name="6">
<Value>bez3</Value>
</Value>
<Value name="7">
<Value>defeinh</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>kbez</Value>
</Value>
<Value name="10">
<Value>menge</Value>
</Value>
<Value name="11">
<Value>notiz</Value>
</Value>
<Value name="12">
<Value>panr</Value>
</Value>
<Value name="13">
<Value>pchild</Value>
</Value>
<Value name="14">
<Value>pean</Value>
</Value>
<Value name="15">
<Value>peprov</Value>
</Value>
<Value name="16">
<Value>perf</Value>
</Value>
<Value name="17">
<Value>pgrpposchild</Value>
</Value>
<Value name="18">
<Value>pgrpposparent</Value>
</Value>
<Value name="19">
<Value>piprov</Value>
</Value>
<Value name="20">
<Value>pkunde</Value>
</Value>
<Value name="21">
<Value>plief</Value>
</Value>
<Value name="22">
<Value>pparent</Value>
</Value>
<Value name="23">
<Value>preis</Value>
</Value>
<Value name="24">
<Value>psumposchild</Value>
</Value>
<Value name="25">
<Value>psumposparent</Value>
</Value>
<Value name="26">
<Value>route</Value>
</Value>
<Value name="27">
<Value>rtdelay</Value>
</Value>
<Value name="28">
<Value>rtdelete</Value>
</Value>
<Value name="29">
<Value>upddatum</Value>
</Value>
<Value name="30">
<Value>updpers</Value>
</Value>
<Value name="31">
<Value>psite</Value>
</Value>
<Value name="32">
<Value>info</Value>
</Value>
<Value name="33">
<Value>text</Value>
</Value>
<Value name="34">
<Value>site</Value>
</Value>
<Value name="35">
<Value>kbez1</Value>
</Value>
<Value name="36">
<Value>loesw</Value>
</Value>
<Value name="37">
<Value>abtnr</Value>
</Value>
<Value name="38">
<Value>wargr</Value>
</Value>
<Value name="39">
<Value>poswert</Value>
</Value>
<Value name="40">
<Value>postxt</Value>
</Value>
<Value name="41">
<Value>ean</Value>
</Value>
<Value name="42">
<Value>stornoretoure</Value>
</Value>
<Value name="43">
<Value>pabtnr</Value>
</Value>
<Value name="44">
<Value>pwargr</Value>
</Value>
<Value name="45">
<Value>ausfolgesw</Value>
</Value>
<Value name="46">
<Value>anldatumzeit</Value>
</Value>
<Value name="47">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="belmenge">
<Attribute>belmenge</Attribute>
<Structure>subnode</Structure>
<Subscript>"belmenge"</Subscript>
</Data>
<Data name="einh">
<Attribute>einh</Attribute>
<Structure>subnode</Structure>
<Subscript>"einh"</Subscript>
</Data>
</Storage>
</Class>
<Class name="beweg.bktagesende">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,24484.622722</TimeChanged>
<TimeCreated>61075,48827.00393</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="journal">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="typ">
<Description>
typ = BK oder KK</Description>
<Type>%String</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.bktagesendeD</DataLocation>
<DefaultData>bktagesendeDefaultData</DefaultData>
<IdLocation>^beweg.bktagesendeD</IdLocation>
<IndexLocation>^beweg.bktagesendeI</IndexLocation>
<StreamLocation>^beweg.bktagesendeS</StreamLocation>
<Data name="bktagesendeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>journal</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>typ</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>anldatumzeit</Value>
</Value>
<Value name="17">
<Value>panlmitarb</Value>
</Value>
<Value name="18">
<Value>pupdmitarb</Value>
</Value>
<Value name="19">
<Value>upddatumzeit</Value>
</Value>
<Value name="20">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.bonabr">
<ClassType>persistent</ClassType>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,29656.017732</TimeChanged>
<TimeCreated>61075,48827.010654</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="periode">
<Type>%Integer</Type>
</Property>

<Property name="punkte">
<Type>%Integer</Type>
</Property>

<Property name="abrpunkte">
<Type>%Integer</Type>
</Property>

<Property name="gsnr">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,pknr,periode</Properties>
</Index>

<Method name="GetBonusabr">
<ClassMethod>1</ClassMethod>
<FormalSpec>pknr:%String,periode:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^beweg.bonabrI("index",siteid,0,pknr,periode,""))
	i id="" q ""
	
	s objabr=##class(beweg.bonabr).%OpenId(id)
	s erg=$LB(objabr.punkte,objabr.abrpunkte,objabr.gsnr)
	d objabr.%Close()
	k objabr
	
	q erg
]]></Implementation>
</Method>

<Method name="GenBonusScheck">
<ClassMethod>1</ClassMethod>
<FormalSpec>pknr:%String,datum:%Date,abrpkt:%Integer,betrag:%Float,periode:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^beweg.bonabrI("index",siteid,0,pknr,periode,""))
	i id="" q $LB(1)
	s objgs=##class(beweg.bonabr).%OpenId(id)
	i objgs.punkte-objgs.abrpunkte-abrpkt<0 d objgs.%Close() k objgs q $LB(2,objgs.gsnr)

	//Soap Zugriff auf "http://krasv1:1972/csp/baumat/kwws.gutschein.cls?soap_method=GetBonusGsnr"
	Set httprequest=##class(%Net.HttpRequest).%New()
	Set httprequest.Server="krasv1"
	Set httprequest.Port=1972
	Do httprequest.SetParam("soap_method","GetBonusGsnr")
	Do httprequest.Get("/csp/baumat/kwws.gutschein.cls")
	s erg=httprequest.HttpResponse.Data.Read(10000)
	s erg=$P($P(erg,"<GetBonusGsnrResult>",2),"</GetBonusGsnrResult>",1)
	d httprequest.%Close()
	k httprequest
	
	s gsnr=$P(erg,"|",1)
	i gsnr="" d objgs.%Close() k objgs q $LB(3) 
	
	s ean=$P(erg,"|",2)
	s gsnr1=gsnr_"/"_$ZD($H,3)
	I objgs.gsnr="" s objgs.gsnr=gsnr1
	e  s objgs.gsnr=objgs.gsnr_" "_gsnr1
	s objgs.abrpunkte=objgs.abrpunkte+abrpkt
	
	//d objgs.%Save()
	d objgs.%Close()
	k objgs
	
	d ##class(stamm.gutschein).SetAusstellung(gsnr,datum, betrag, pknr, "", 0)
	
	q $LB(gsnr,abrpkt,ean)
]]></Implementation>
</Method>

<Method name="repbonusgs">
<FormalSpec>layid:%String,bonnr:%String,betrag,kundid:%String,ean,per:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
		
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	s belegbez="TREUE-BONUSSCHECK"
	s bonnrtxt="Nr.: "_bonnr
	s per="per "_(per\100+1900)
	s mwst=$J(betrag*0.2,0,2)
	s betrincl=$TR($FN(betrag,",",2),".,",",.")
	s betrmwst=$TR($FN(mwst,",",2),".,",",.")
	s betrexcl=$TR($FN(betrag-mwst,",",2),".,",",.")
	s pkttxt="über "_betrag_" Punkte x 1.-"
	s beldattime=$ZD(+$P($H,",",1),4)_" "_$ZT(+$P($H,",",2))
	s pobj=##class(system.session).%OpenId($J)
	s erfasser=pobj.puser.person.name.name1_" "_pobj.puser.person.name.name2
	d pobj.%Close()

	
	d rep.line("logo",##this)
	
	d ##class(beweg.beleg).RepBonkopf(rep)
	
	s kundobj=##class(stamm.kunde).%OpenId(kundid)
	i kundobj.sammel=0 d
	. s knr=kundobj.knr
	. s titel=kundobj.person.name.titel i titel'="" s titel=titel_" "
	. s addr1=titel_kundobj.person.name.titel1
	. s addr2=kundobj.person.name.name1_" "_kundobj.person.name.name2
	. s addr3=kundobj.person.adresse.strasse
	. s landplzort=kundobj.person.adresse.land_"-"_kundobj.person.adresse.plz_" "_kundobj.person.adresse.ort
	. d rep.line("kunde",##this)
	d kundobj.%Close()
	k kundobj
	
	d rep.line("header2",##this)
	
	d rep.line("gruss",##this)	
	d rep.line("barcode",##this)
	d rep.line("dummy",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,pknr:%String</FormalSpec>
<SqlQuery>	
SELECT %ID,periode,abrpunkte,punkte,gsnr FROM bonabr
 WHERE (pknr = :pknr) and (psite=:siteid) and (:loesw=0)
 order by periode</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.bonabrD</DataLocation>
<DefaultData>bonabrDefaultData</DefaultData>
<IdLocation>^beweg.bonabrD</IdLocation>
<IndexLocation>^beweg.bonabrI</IndexLocation>
<StreamLocation>^beweg.bonabrS</StreamLocation>
<Data name="bonabrDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abrdatum</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>betrag</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>gsnr</Value>
</Value>
<Value name="8">
<Value>loesw</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>periode</Value>
</Value>
<Value name="12">
<Value>pknr</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>punkte</Value>
</Value>
<Value name="15">
<Value>route</Value>
</Value>
<Value name="16">
<Value>rtdelay</Value>
</Value>
<Value name="17">
<Value>rtdelete</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>abrpunkte</Value>
</Value>
<Value name="21">
<Value>anldatumzeit</Value>
</Value>
<Value name="22">
<Value>panlmitarb</Value>
</Value>
<Value name="23">
<Value>pupdmitarb</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
<Value name="25">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.bonusdat">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,25810.895721</TimeChanged>
<TimeCreated>61075,48827.01683</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="zeit">
<Type>%Time</Type>
</Property>

<Property name="basis">
<Type>%Float</Type>
</Property>

<Property name="punkte">
<Type>%Integer</Type>
</Property>

<Property name="beleg">
<Description>
Liste mit Belegart,Belegnummer</Description>
<Type>%List</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,pkunde,datum</Properties>
</Index>

<Method name="getBasisLast">
<ClassMethod>1</ClassMethod>
<FormalSpec>kundeid:%String,seconds:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s (basis,punkte)=0
	s datum=+$P($H,",",1)
	s id="" f  s id=$O(^beweg.bonusdatI("index",siteid,0,kundeid,datum,id)) q:id=""  d
	. s obj1=##class(beweg.bonusdat).%OpenId(id)
	. i $P($H,",",2)-obj1.zeit<seconds s basis=basis+obj1.basis,punkte=punkte+obj1.punkte
	k obj1
	
	q $LB(basis,punkte)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.bonusdatD</DataLocation>
<DefaultData>bonusdatDefaultData</DefaultData>
<IdLocation>^beweg.bonusdatD</IdLocation>
<IndexLocation>^beweg.bonusdatI</IndexLocation>
<StreamLocation>^beweg.bonusdatS</StreamLocation>
<Data name="bonusdatDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>datum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>pkunde</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>punkte</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>umsatz</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>zeit</Value>
</Value>
<Value name="19">
<Value>basis</Value>
</Value>
<Value name="20">
<Value>beleg</Value>
</Value>
<Value name="21">
<Value>anldatumzeit</Value>
</Value>
<Value name="22">
<Value>panlmitarb</Value>
</Value>
<Value name="23">
<Value>pupdmitarb</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
<Value name="25">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.kassabelege">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12143.728026</TimeChanged>
<TimeCreated>61075,48827.022153</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="kassasummen">
<Type>beweg.kassasummen</Type>
<Cardinality>parent</Cardinality>
<Inverse>kassabelege</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pbeleg">
<Type>beweg.beleg</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("kassabelege")</DataLocation>
<DefaultData>kassabelegeDefaultData</DefaultData>
<IdLocation>^beweg.kassasummenC("kassabelege")</IdLocation>
<IndexLocation>^beweg.kassabelegeI</IndexLocation>
<StreamLocation>^beweg.kassabelegeS</StreamLocation>
<Data name="kassabelegeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>psite</Value>
</Value>
<Value name="7">
<Value>route</Value>
</Value>
<Value name="8">
<Value>rtdelay</Value>
</Value>
<Value name="9">
<Value>rtdelete</Value>
</Value>
<Value name="10">
<Value>upddatum</Value>
</Value>
<Value name="11">
<Value>updpers</Value>
</Value>
<Value name="12">
<Value>pebeleg</Value>
</Value>
<Value name="13">
<Value>pbeleg</Value>
</Value>
<Value name="14">
<Value>anldatumzeit</Value>
</Value>
<Value name="15">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.kassasummen">
<ClassType>persistent</ClassType>
<Super>system.base,%Persistent</Super>
<TimeChanged>61111,37771.169343</TimeChanged>
<TimeCreated>61075,48827.033414</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pkassalade">
<Type>param.kassalade</Type>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="istbar">
<Type>%Float</Type>
</Property>

<Property name="saldobar">
<Type>%Float</Type>
</Property>

<Property name="tsaldobar">
<Type>%Float</Type>
</Property>

<Property name="istmuenzen">
<Type>basis.muenze</Type>
<Collection>list</Collection>
</Property>

<Property name="istval">
<Type>%Float</Type>
</Property>

<Property name="istvaluten">
<Type>basis.valute</Type>
<Collection>list</Collection>
</Property>

<Property name="istgutschein">
<Type>%Float</Type>
</Property>

<Property name="istgsbon">
<Type>%Float</Type>
</Property>

<Property name="saldo">
<Type>%Float</Type>
</Property>

<Property name="tsaldo">
<Type>%Float</Type>
</Property>

<Property name="dirtysw">
<Type>%Boolean</Type>
</Property>

<Property name="kassabelege">
<Type>beweg.kassabelege</Type>
<Cardinality>children</Cardinality>
<Inverse>kassasummen</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="index">
<Properties>psite,loesw,pkassalade,datum</Properties>
</Index>

<Method name="KassaBericht">
<ClassMethod>1</ClassMethod>
<FormalSpec>datum:%Date,ladeid:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	k bericht
	s lade="" f  s lade=$O(^beweg.kassasummenI("index",siteid,0,lade)) q:lade=""  d
	. i $L(ladeid),lade'=ladeid Q
	. s erg=##class(beweg.kassasummen).GetVortrag(datum,lade)
	. s (saldo,vortrag)=$LI(erg,1),tsaldo=0
	. s bericht("zm","B")=$G(bericht("zm","B"))+$LI(erg,2)
	. s lid="" f  s lid=$O(^beweg.kassasummenI("index",siteid,0,lade,datum,lid)) q:lid=""  d
	.. s ladobj=##class(beweg.kassasummen).%OpenId(lid)
	.. //Ist
	.. s bericht("istbar")=$G(bericht("istbar"))+ladobj.istbar
	.. s valid="" f  s valobj=ladobj.istvaluten.GetNext(.valid) q:valobj=""  d
	... s valkbez=valobj.pvalute.kbez
	... i '$D(bericht("istval",valkbez)) s bericht("istval",valkbez)=$LB(0,0)
	... s $LI(bericht("istval",valkbez),1)=$LI(bericht("istval",valkbez),1)+valobj.betrval
	... s $LI(bericht("istval",valkbez),2)=$LI(bericht("istval",valkbez),2)+valobj.betr
	... s bericht("istval")=$G(bericht("istval"))+valobj.betr
	.. s bericht("istgutschein")=$G(bericht("istgutschein"))+ladobj.istgutschein
	.. s bericht("istgsbon")=$G(bericht("istgsbon"))+ladobj.istgsbon
	.. //Soll
	.. s id="" f  s belobj=ladobj.kassabelege.GetNext(.id) q:belobj=""  d
	... I '$D(bericht("bon")) s bericht("bon")=$LB(0,0)
	... s bonsw=0
	... s mw="" f  s mwobj=belobj.pbeleg.mwkonten.GetNext(.mw) q:mwobj=""  d
	.... s bonsw=1
	.... s kontoid="" f  s kontoobj=mwobj.konten.GetNext(.kontoid) q:kontoobj=""  d
	..... s konto="S"_kontoobj.gkonto.pkonto.code
	..... I '$D(bericht("bon",mw,konto)) s bericht("bon",mw,konto)=$LB(0,0)
	..... s $LI(bericht("bon",mw,konto),1)=$LI(bericht("bon",mw,konto),1)+kontoobj.betrexcl
	..... s $LI(bericht("bon",mw,konto),2)=$LI(bericht("bon",mw,konto),2)+kontoobj.betrmwst
	..... s $LI(bericht("bon"),2)=$LI(bericht("bon"),2)+kontoobj.betrexcl+kontoobj.betrmwst
	... s $LI(bericht("bon"),1)=$LI(bericht("bon"),1)+bonsw
	... ;
	... ;Zahlungsmittel
	... s vz=1 i belobj.pbeleg.negativsw s vz=-1
	... s bericht("zm","B")=$G(bericht("zm","B"))+(vz*belobj.pbeleg.bar)
	... s kartid="" f  s kartobj=belobj.pbeleg.karte.GetNext(.kartid) q:kartobj=""  d
	.... s bericht("zm","E")=$G(bericht("zm","E"))+(vz*kartobj.betrag)
	.... s bericht("zm","E",belobj.pbeleg.pbelart.code,belobj.pbeleg.belnr,kartobj.pkarttyp.bez)=$LB(vz*kartobj.betrag,kartobj.nr)
	... s gsid="" f  s gsobj=belobj.pbeleg.gutsch.GetNext(.gsid) q:gsobj=""  d
	.... s bericht("zm","D")=$G(bericht("zm","D"))+(vz*gsobj.betrag)
	.... s abeleg="" i $L(gsobj.abeleg) s abeleg=$LI(gsobj.abeleg,1)_$LI(gsobj.abeleg,2)
	.... s bericht("zm","D",belobj.pbeleg.pbelart.code,belobj.pbeleg.belnr,gsobj.gsnr)=$LB(vz*gsobj.betrag,gsobj.adatum,abeleg)
	... s gsid="" f  s gsobj=belobj.pbeleg.gsbon.GetNext(.gsid) q:gsobj=""  d
	.... s bericht("zm","G")=$G(bericht("zm","G"))+(vz*gsobj.betrag)
	.... s bericht("zm","G",belobj.pbeleg.pbelart.code,belobj.pbeleg.belnr,gsobj.gsnr)=$LB(vz*gsobj.betrag)
	... s fwid="" f  s fwobj=belobj.pbeleg.barfrw.GetNext(.fwid) q:fwobj=""  d
	.... s bericht("zm","F")=$G(bericht("zm","F"))+(vz*fwobj.betrag)
	.... i '$D(bericht("zm","F",fwobj.pfremdw.kbez)) s bericht("zm","F",fwobj.pfremdw.kbez)=$LB(0,0)
	.... s $LI(bericht("zm","F",fwobj.pfremdw.kbez),1)=$LI(bericht("zm","F",fwobj.pfremdw.kbez),1)+(vz*fwobj.betragfrw)
	.... s $LI(bericht("zm","F",fwobj.pfremdw.kbez),2)=$LI(bericht("zm","F",fwobj.pfremdw.kbez),2)+(vz*fwobj.betrag)
	... s acid="" f  s acobj=belobj.pbeleg.aconto.GetNext(.acid) q:acobj=""  d
	.... s bericht("zm","A")=$G(bericht("zm","A"))+(vz*acobj.betrag)
	.... s bericht("zm","A",belobj.pbeleg.pbelart.code,belobj.pbeleg.belnr,acobj.acontonr)=$LB(vz*acobj.betrag)
	... ; E/A
	... s eaid="" f  s eaobj=belobj.pbeleg.einaus.GetNext(.eaid) q:eaobj=""  d
	.... i eaobj.typ=1 d
	..... //Belegzahlung
	..... i eaobj.pbeleg.pbelart.barsw d
	...... //Barbeleg
	...... s belart=eaobj.pbeleg.pbelart.code
	...... I '$D(bericht("bb",belart)) s bericht("bb",belart)=$LB(0,0)
	...... s kontoid="" f  s kontoobj=eaobj.konten.GetNext(.kontoid) q:kontoobj=""  d
	....... s mw=kontoobj.mwproz
	....... s konto="S"_kontoobj.gkonto.pkonto.code
	....... I '$D(bericht("bb",belart,mw,konto)) s bericht("bb",belart,mw,konto)=$LB(0,0)
	....... s $LI(bericht("bb",belart,mw,konto),1)=$LI(bericht("bb",belart,mw,konto),1)+kontoobj.betrexcl
	....... s $LI(bericht("bb",belart,mw,konto),2)=$LI(bericht("bb",belart,mw,konto),2)+kontoobj.betrmwst
	....... s $LI(bericht("bb",belart),2)=$LI(bericht("bb",belart),2)+kontoobj.betrexcl+kontoobj.betrmwst
	...... s $LI(bericht("bb",belart),1)=$LI(bericht("bb",belart),1)+1
	..... e  d
	...... //Kreditbeleg
	...... s einzsw=eaobj.pbeleg.pbelart.pkassaea.einzsum
	...... s cnt=1 i einzsw s cnt=$O(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,""))+1
	...... s ad=$G(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code)) i ad="" s ad=$LB(0,0,"")
	...... s bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code)=$LB($LI(ad,1)+1,$LI(ad,2),eaobj.pbeleg.pbelart.pkassaea.bez)
	...... s ad=$G(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt)) i ad="" s ad=$LB(0,0,0,"","","")
	...... s bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt)=$LB($LI(ad,1)+1,$LI(ad,2),$LI(ad,3),"","","")
	...... s gkontoid="" f  s kontobj=eaobj.konten.GetNext(.gkontoid) q:kontobj=""  d
	....... s konto="S"_kontobj.konto.pkonto.code
	....... s gkontotyp=kontobj.gkonto.typ
	....... i gkontotyp="S" s gkonto=kontobj.gkonto.pkonto.code I 1
	....... e  s gkonto=kontobj.gkonto.pkunde.knr
	....... s ad=$G(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code)) i ad="" s ad=$LB(0,0,"")
	....... s bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code)=$LB($LI(ad,1),$LI(ad,2)+kontobj.betrexcl+kontobj.betrmwst,$LI(ad,3))
	....... s ad=$G(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt)) i ad="" s ad=$LB(0,0,0,"","","")
	....... s bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt)=$LB($LI(ad,1),$LI(ad,2)+kontobj.betrexcl+kontobj.betrmwst,$LI(ad,3),eaobj.pbeleg.pbelart.pkassaea.bez,eaobj.text1,eaobj.text2)
	....... s ad=$G(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt,konto)) i ad="" s ad=$LB(0,0,0)
	....... s bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt,konto)=$LB($LI(ad,1)+kontobj.betrexcl+kontobj.betrmwst,$LI(ad,2),1)
	....... s ad=$G(bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt,konto,gkontotyp_gkonto)) i ad="" s ad=$LB(0,0,0)
	....... s bericht("ea",+eaobj.pbeleg.pbelart.pkassaea.einaus,eaobj.pbeleg.pbelart.pkassaea.code,cnt,konto,gkontotyp_gkonto)=$LB($LI(ad,1)+kontobj.betrexcl,$LI(ad,2)+kontobj.betrmwst,kontobj.mwproz)
	.... //
	.... i eaobj.typ=2 d
	..... // Ein/Ausgang
	..... s einzsw=eaobj.pkassaea.einzsum
	..... s cnt=1 i einzsw s cnt=$O(bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,""))+1
	..... s ad=$G(bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code)) i ad="" s ad=$LB(0,0,"")
	..... s bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code)=$LB($LI(ad,1)+1,$LI(ad,2),$LI(ad,3))
	..... s kontoid="" f  s kontobj=eaobj.konten.GetNext(.kontoid) q:kontobj=""  d
	...... i kontobj.konto.typ="S" s konto="S"_kontobj.konto.pkonto.code i 1
	...... e  s konto=kontobj.konto.typ_kontobj.konto.pkunde.knr
	...... i kontobj.gkonto.typ="S" s gkonto="S"_kontobj.gkonto.pkonto.code i 1
	...... e  s gkonto=kontobj.gkonto.typ_kontobj.gkonto.pkunde.knr
	...... s ad=$G(bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code)) i ad="" s ad=$LB(0,0,"")
	...... s bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code)=$LB($LI(ad,1),$LI(ad,2)+kontobj.betrexcl+kontobj.betrmwst,eaobj.pkassaea.bez)
	...... s ad=$G(bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,cnt)) i ad="" s ad=$LB(0,0,0,"","","")
	...... s bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,cnt)=$LB($LI(ad,1)+1,$LI(ad,2)+kontobj.betrexcl+kontobj.betrmwst,$LI(ad,3),eaobj.pkassaea.bez,eaobj.text1,eaobj.text2)
	...... s ad=$G(bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,cnt,konto)) i ad="" s ad=$LB(0,0,0)
	...... s bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,cnt,konto)=$LB($LI(ad,1)+kontobj.betrexcl+kontobj.betrmwst,$LI(ad,2),eaobj.pkassaea.sollhab)
	...... s ad=$G(bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,cnt,konto,gkonto)) i ad="" s ad=$LB(0,0,0)
	...... s bericht("ea",+eaobj.pkassaea.einaus,eaobj.pkassaea.code,cnt,konto,gkonto)=$LB($LI(ad,1)+kontobj.betrexcl,$LI(ad,2)+kontobj.betrmwst,kontobj.mwproz)
	.. ;
	.. s saldo=$G(bericht("zm","F"))+$G(bericht("zm","B"))
	.. s tsaldo=saldo-vortrag
	.. d ladobj.%Close()
	. s bericht("tsaldo")=$G(bericht("tsaldo"))+tsaldo
	. s bericht("saldo")=$G(bericht("saldo"))+saldo
	. s bericht("vortrag")=$G(bericht("vortrag"))+vortrag
	
	k ^beweg.bericht(datum,$S(ladeid="":0,1:ladeid))
	M ^beweg.bericht(datum,$S(ladeid="":0,1:ladeid))=bericht
	
	k ladobj,eaobj,kontobj,fwobj,valobj,kontoobj,mwobj
]]></Implementation>
</Method>

<Method name="GetVortrag">
<ClassMethod>1</ClassMethod>
<FormalSpec>datum:%Date,ladeid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	n (datum,ladeid)
	s siteid=$LI(^system.session($J),1)
	s datumv=$O(^beweg.kassasummenI("index",siteid,0,ladeid,datum),-1)
	i datumv="" q $LB(0,0)
	s idl=$O(^beweg.kassasummenI("index",siteid,0,ladeid,datumv,""))
	s saldobj=##class(beweg.kassasummen).%OpenId(idl)
	i 'saldobj.dirtysw s saldo=saldobj.saldo,saldobar=saldobj.saldobar I 1
	e  d
	. s tsaldo=0,tsaldobar=0
	. s id="" f  s belobj=saldobj.kassabelege.GetNext(.id) q:belobj=""  d
	.. s vz=1 i belobj.pbeleg.negativsw s vz=-1
	.. s tsaldo=tsaldo+(belobj.pbeleg.summezm*vz) 
	.. s tsaldobar=tsaldobar+(belobj.pbeleg.bar*vz)
	. s saldobj.tsaldo=tsaldo
	. s saldobj.tsaldobar=tsaldobar
	. s erg=##class(beweg.kassasummen).GetVortrag(datumv,ladeid)
	. s saldo=tsaldo+$LI(erg,1)
	. s saldobar=tsaldobar+$LI(erg,2)
	. s saldobj.saldo=saldo
	. s saldobj.saldobar=saldobar
	. s saldobj.dirtysw=0
	. d saldobj.%Save(0)
	
	d saldobj.%Close()
	k saldobj,belobj
	
	q $LB(saldo,saldobar)
]]></Implementation>
</Method>

<Method name="BelegZuordnen">
<ClassMethod>1</ClassMethod>
<FormalSpec>belegid:%String</FormalSpec>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s objb=##class(beweg.beleg).%OpenId(belegid)
	i objb="" q 0
	s kasdat=objb.beldat
	s ladeid=objb.panlmitarb.pkassalade.%Id()
	d objb.%Close()
	k objb
	
	s ids=$O(^beweg.kassasummenI("index",siteid,0,ladeid,kasdat,""))
	i ids="" d
	. s objs=##class(beweg.kassasummen).%New()
	. d objs.pkassaladeSetObjectId(ladeid)
	. s objs.datum=kasdat
	e  s objs=##class(beweg.kassasummen).%OpenId(ids)
	
	s objkb=##class(beweg.kassabelege).%New()
	d objkb.pbelegSetObjectId(belegid)
	d objkb.%Save(0)
	d objkb.%Close()
	d objs.kassabelege.Insert(objkb)
	s objs.dirtysw=1
	d objs.%Save(0)
	d objs.%Close()
	
	s dat=kasdat f  s dat=$O(^beweg.kassasummenI("index",siteid,0,ladeid,dat)) q:dat=""  d
	. s ids=$O(^beweg.kassasummenI("index",siteid,0,ladeid,dat,""))
	. i $L(ids) s objs=##class(beweg.kassasummen).%OpenId(ids) i $L(objs) d
	.. s objs.dirtysw=1
	.. d objs.%Save(0)
	.. d objs.%Close()
	
	k objb,objkb,objs
	q 1
]]></Implementation>
</Method>

<Method name="repkassabuch">
<FormalSpec>layid:%String,datum:%Date="",ladeid:%String="",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
		
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	
	s datumzeit=$ZDT($H,4)
	s psite=##class(system.session).%OpenId($J).psite
	s firmaid=$O(^param.firmaI("index",siteid,0," "_$ZCONVERT(psite.firma,"U"),""))
	s standortid=$O(^param.standortI("index",siteid,0," "_$ZCONVERT(psite.standort,"U"),""))
	
	s objfirma=##class(param.firma).%OpenId(firmaid)
	s objstandort=##class(param.standort).%OpenId(standortid)

	s kopf1=objfirma.name1
	s kopf2=objstandort.adresse.strasse
	s kopf3=objstandort.adresse.land_"-"_objstandort.adresse.plz_" "_objstandort.adresse.ort
	s kopf4="Tel.: "_objstandort.kontakt.tel_"    UID: "_objfirma.uid

	d objfirma.%Close() k objfirma
	d objstandort.%Close() k objstandort
	d psite.%Close() k psite

	s datumtxt=$ZD(datum,4)
	i ladeid="" s ladebez=""
	e  d
	. s objlade=##class(param.kassalade).%OpenId(ladeid)
	. s ladebez=objlade.bez1
	. d objlade.%Close()
	
	d ##class(beweg.kassasummen).KassaBericht(datum,ladeid)
		
	s txt="" d rep.line("txtzeile",##this)
	s txt="Zahlungsmittelstand",betr1="Soll",betr2="Ist",betr3="Differenz" d rep.line("titel",##this)
	;
	s txt="   Bargeld"
	s betr1=$TR($FN($G(bericht("zm","B")),",",2),".,",",.")
	s sum1=$G(bericht("zm","B"))
	s betr2=$TR($FN($G(bericht("istbar")),",",2),".,",",.")
	s sum2=$G(bericht("istbar"))
	s betr3=$TR($FN($G(bericht("istbar"))-$G(bericht("zm","B")),",",2),".,",",.")
	d rep.line("sollist",##this)
	s fw="" f  s fw=$O(bericht("zm","F",fw)) q:fw=""  d
	. s txt="   Valuten "_fw
	. s betr1=$TR($FN($LI($G(bericht("zm","F",fw)),2),",",2),".,",",.")
	. s sum1=sum1+$LI(bericht("zm","F",fw),2)
	. s betr3=-$LI($G(bericht("zm","F",fw)),2)
	. s betr2="" i $D(bericht("istval",fw)) d
	.. s betr2=$TR($FN($LI(bericht("istval",fw),2),",",2),".,",",.")
	.. s betr3=betr3+$LI(bericht("istval",fw),2)
	.. s sum2=sum2+$LI(bericht("istval",fw),2)
	. s betr3=$TR($FN(betr3,",",2),".,",",.")
	. d rep.line("sollist",##this)
	d rep.line("linie",##this)
	i sum1=sum2 s txt="Summe Zahlungsmittel"
	e  i sum1>sum2 s txt="Summe Zahlungsmittel( =MANKO )"
	e  s txt="Summe Zahlungsmittel( =ÜBERSCHUSS )"
	s betr1=$TR($FN(sum1,",",2),".,",",.")
	s betr2=$TR($FN(sum2,",",2),".,",",.")
	s betr3=$TR($FN(sum2-sum1,",",2),".,",",.")
	d rep.line("titel",##this)
	s betr3=""	
	s txt="" d rep.line("txtzeile",##this)
	s txt="" d rep.line("txtzeile",##this)
	s txt="Umsätze",betr1="Summe",betr2="Anzahl" d rep.line("titel",##this)
	
	s swlinie=0
	i $D(bericht("bon")) d
	. s txt="     Kassabons"
	. s betr1=$TR($FN($LI(bericht("bon"),2),",",2),".,",",.")
	. s betr2=$LI(bericht("bon"),1) d rep.line("sollist",##this)
	. s swlinie=1
	
	s bb="" f  s bb=$O(bericht("bb",bb)) q:bb=""  d
	. s txt="     Barbeleg "_bb,betr1=$TR($FN($LI(bericht("bb",bb),2),",",2),".,",",.")
	. s betr2=$LI(bericht("bb",bb),1) d rep.line("sollist",##this)
	. s swlinie=1
	i swlinie d rep.line("linie",##this)

	i $D(bericht("ea",1)) d
	. s sum=0
	. s ea="" f  s ea=$O(bericht("ea",1,ea)) q:ea=""  s sum=sum+$LI(bericht("ea",1,ea),2)
	. s txt="" d rep.line("txtzeile",##this)
	. s txt="+ Kassaeingänge",betr1=$TR($FN(sum,",",2),".,",",."),betr2="" d rep.line("titel",##this)
	. s swlinie=0
	. s ea="" f  s ea=$O(bericht("ea",1,ea)) q:ea=""  d
	.. s txt="     "_ea_" "_$LI(bericht("ea",1,ea),3)
	.. s betr1=$TR($FN($LI(bericht("ea",1,ea),2),",",2),".,",",.")
	.. s betr2=$LI(bericht("ea",1,ea),1) d rep.line("sollist",##this)
	.. s swlinie=1
	. i swlinie d rep.line("linie",##this)
	
	i $D(bericht("ea",0)) d
	. s sum=0
	. s ea="" f  s ea=$O(bericht("ea",0,ea)) q:ea=""  s sum=sum+$LI(bericht("ea",0,ea),2)
	. s txt="" d rep.line("txtzeile",##this)
	. s txt="- Kassaausgänge",betr1=$TR($FN(sum,",",2),".,",",."),betr2="" d rep.line("titel",##this)
	. s swlinie=0
	. s ea="" f  s ea=$O(bericht("ea",0,ea)) q:ea=""  d
	.. s txt="     "_ea_" "_$LI(bericht("ea",0,ea),3)
	.. s betr1=$TR($FN($LI(bericht("ea",0,ea),2),",",2),".,",",.")
	.. s betr2=$LI(bericht("ea",0,ea),1) d rep.line("sollist",##this)
	.. s swlinie=1
	. i swlinie d rep.line("linie",##this)
	
	s txt="" d rep.line("txtzeile",##this)
	s txt="=  Tagessaldo",betr1=$TR($FN($G(bericht("tsaldo")),",",2),".,",",.")
	s betr2="" d rep.line("titel",##this)
	d rep.line("linie",##this)
	s txt="+  Vortrag",betr1=$TR($FN($G(bericht("vortrag")),",",2),".,",",.")
	s betr2="" d rep.line("titel",##this)
	s txt="=  Kassasaldo",betr1=$TR($FN($G(bericht("saldo")),",",2),".,",",.")
	s betr2="" d rep.line("titel",##this)
	d rep.line("dlinie",##this)
	
	d rep.page()
	s belart="" f  s belart=$O(bericht("zm","E",belart)) q:belart=""  d
	. s belnr="" f  s belnr=$O(bericht("zm","E",belart,belnr)) q:belnr=""  d
	.. s karte="" f  s karte=$O(bericht("zm","E",belart,belnr,karte)) q:karte=""  d
	... s ad=bericht("zm","E",belart,belnr,karte)
	... s txt=karte,beleg=belart_belnr,betr=$TR($FN($LI(ad,1),",",2),".,",",.")
	... d rep.line("kartenz",##this)
	
	s belart="" f  s belart=$O(bericht("zm","D",belart)) q:belart=""  d
	. s belnr="" f  s belnr=$O(bericht("zm","D",belart,belnr)) q:belnr=""  d
	.. s gsnr="" f  s gsnr=$O(bericht("zm","D",belart,belnr,gsnr)) q:gsnr=""  d
	... s ad=bericht("zm","D",belart,belnr,gsnr)
	... s txt=gsnr,beleg=belart_belnr,betr=$TR($FN($LI(ad,1),",",2),".,",",.")
	... s adatum=$ZD($LI(ad,2),4),abeleg=$LI(ad,3)
	... d rep.line("gutscheine",##this)
	
	s belart="" f  s belart=$O(bericht("zm","G",belart)) q:belart=""  d
	. s belnr="" f  s belnr=$O(bericht("zm","G",belart,belnr)) q:belnr=""  d
	.. s gsnr="" f  s gsnr=$O(bericht("zm","G",belart,belnr,gsnr)) q:gsnr=""  d
	... s ad=bericht("zm","G",belart,belnr,gsnr)
	... s txt=gsnr,beleg=belart_belnr,betr=$TR($FN($LI(ad,1),",",2),".,",",.")
	... d rep.line("gsbons",##this)
	
	
	s repid=rep.end()
	d rep.%Close()
	k rep,objlade
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="repkassakonten">
<FormalSpec>layid:%String,datum:%Date="",ladeid:%String="",p3:%String="",p4:%String="",p5:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
		
	s rep=##class(system.rep).%New()
	d rep.begin(layid)
	
	s datumzeit=$ZDT($H,4)
	s psite=##class(system.session).%OpenId($J).psite
	s firmaid=$O(^param.firmaI("index",siteid,0," "_$ZCONVERT(psite.firma,"U"),""))
	s standortid=$O(^param.standortI("index",siteid,0," "_$ZCONVERT(psite.standort,"U"),""))
	
	s objfirma=##class(param.firma).%OpenId(firmaid)
	s objstandort=##class(param.standort).%OpenId(standortid)

	s kopf1=objfirma.name1
	s kopf2=objstandort.adresse.strasse
	s kopf3=objstandort.adresse.land_"-"_objstandort.adresse.plz_" "_objstandort.adresse.ort
	s kopf4="Tel.: "_objstandort.kontakt.tel_"    UID: "_objfirma.uid

	d objfirma.%Close() k objfirma
	d objstandort.%Close() k objstandort
	d psite.%Close() k psite
	
	s datumtxt=$ZD(datum,4)
	i ladeid="" s ladebez=""
	e  d
	. s objlade=##class(param.kassalade).%OpenId(ladeid)
	. s ladebez=objlade.bez1
	. d objlade.%Close()
	
	d ##class(beweg.kassasummen).KassaBericht(datum,ladeid)
	s kaskonto="S200000"

	s sum=0
	s tsaldo=0
	s mw="" f  s mw=$O(bericht("bon",mw)) q:mw=""  d
	. s konto="" f  s konto=$O(bericht("bon",mw,konto)) q:konto=""  d
	.. s sum=sum+$LI(bericht("bon",mw,konto),1)+$LI(bericht("bon",mw,konto),2)	
	i $O(bericht("bon",""))'="" d
	. s txt="Kassabons" d rep.line("titel",##this)
	. d rep.line("linie",##this)
	. s txt="    "_kaskonto_" "_##class(beweg.kassasummen).KontoName(kaskonto)
	. s betr1=$TR($FN(sum,",",2),".,",",."),(betr2,betr3,betr4)=""
	. d rep.line("zeile",##this)
	. s mw="" f  s mw=$O(bericht("bon",mw)) q:mw=""  d
	.. s konto="" f  s konto=$O(bericht("bon",mw,konto)) q:konto=""  d
	... s ad=bericht("bon",mw,konto)
	... s txt="        "_konto_" "_##class(beweg.kassasummen).KontoName(konto)
	... s (betr1,betr2)="",betr3=$TR($FN($LI(ad,1),",",2),".,",",.")
	... s betr4=$TR($FN($LI(ad,2),",",2),".,",",.") 
	... d rep.line("zeile",##this)
	. d rep.line("linie",##this)
	. s txt="" d rep.line("titel",##this)
	. s tsaldo=tsaldo+sum

	s sum=0
	s belart="" f  s belart=$O(bericht("bb",belart)) q:belart=""  d
	. s txt="Barbelege "_belart d rep.line("titel",##this)
	. d rep.line("linie",##this)
	. s txt="    "_kaskonto_" "_##class(beweg.kassasummen).KontoName(kaskonto)
	. s betr1=$TR($FN($LI(bericht("bb",belart),2),",",2),".,",",."),(betr2,betr3,betr4)=""
	. d rep.line("zeile",##this)
	. s tsaldo=tsaldo+$LI(bericht("bb",belart),2)
	. s mw="" f  s mw=$O(bericht("bb",belart,mw)) q:mw=""  d
	.. s konto="" f  s konto=$O(bericht("bb",belart,mw,konto)) q:konto=""  d
	... s ad=bericht("bb",belart,mw,konto)
	... s txt="        "_konto_" "_##class(beweg.kassasummen).KontoName(konto)
	... s (betr1,betr2)="",betr3=$TR($FN($LI(ad,1),",",2),".,",",.")
	... s betr4=$TR($FN($LI(ad,2),",",2),".,",",.") 
	... d rep.line("zeile",##this)
	. d rep.line("linie",##this)
	. s txt="" d rep.line("titel",##this)

	i $D(bericht("ea",1)) d
	. s txt="Kassa-Eingänge" d rep.line("titel",##this)
	. s code="" f  s code=$O(bericht("ea",1,code)) q:code=""  d
	.. s cnt="" f  s cnt=$O(bericht("ea",1,code,cnt)) q:cnt=""  d
	... d rep.line("linie",##this)
	... s bez1=$LI(bericht("ea",1,code,cnt),5)
	... s bez2=$LI(bericht("ea",1,code,cnt),6) 
	... s txt=code_" "_bez1_"  "_bez2_" ("_$LI(bericht("ea",1,code,cnt),1)_")"
	... d rep.line("titel1",##this)
	... s konto="" f  s konto=$O(bericht("ea",1,code,cnt,konto)) q:konto=""  d
	.... s ad=bericht("ea",1,code,cnt,konto)
	.... s soha=$LI(ad,3)
	.... i soha d
	..... s txt="    "_konto_" "_##class(beweg.kassasummen).KontoName(konto)
	..... s betr1=$TR($FN($LI(ad,1),",",2),".,",",.")
	..... s betr2=$TR($FN($LI(ad,2),",",2),".,",",."),(betr3,betr4)=""
	..... i konto=kaskonto s tsaldo=tsaldo+$LI(ad,1)+$LI(ad,2)
	.... e  d
	..... s txt="        "_konto_" "_##class(beweg.kassasummen).KontoName(konto)
	..... s betr3=$TR($FN($LI(ad,1),",",2),".,",",.")
	..... s betr4=$TR($FN($LI(ad,2),",",2),".,",",."),(betr1,betr2)=""
	..... i konto=kaskonto s tsaldo=tsaldo-$LI(ad,1)-$LI(ad,2)
	.... d rep.line("zeile",##this)
	.... s gkonto="" f  s gkonto=$O(bericht("ea",1,code,cnt,konto,gkonto)) q:gkonto=""  d
	..... s ad=bericht("ea",1,code,cnt,konto,gkonto)
	..... i soha d
	...... s txt="        "_gkonto_" "_##class(beweg.kassasummen).KontoName(gkonto)
	...... s betr3=$TR($FN($LI(ad,1),",",2),".,",",.")
	...... s betr4=$TR($FN($LI(ad,2),",",2),".,",",."),(betr1,betr2)=""
	...... i gkonto=kaskonto s tsaldo=tsaldo-$LI(ad,1)-$LI(ad,2)
	..... e  d
	...... s txt="    "_gkonto_" "_##class(beweg.kassasummen).KontoName(gkonto)
	...... s betr1=$TR($FN($LI(ad,1),",",2),".,",",.")
	...... s betr2=$TR($FN($LI(ad,2),",",2),".,",",."),(betr3,betr4)=""
	...... i gkonto=kaskonto s tsaldo=tsaldo+$LI(ad,1)+$LI(ad,2)
	..... d rep.line("zeile",##this)
	. d rep.line("linie",##this)
	. s txt="" d rep.line("titel",##this)	

	i $D(bericht("ea",0)) d
	. s txt="Kassa-Ausgänge" d rep.line("titel",##this)
	. s code="" f  s code=$O(bericht("ea",0,code)) q:code=""  d
	.. s cnt="" f  s cnt=$O(bericht("ea",0,code,cnt)) q:cnt=""  d
	... d rep.line("linie",##this)
	... s bez1=$LI(bericht("ea",0,code,cnt),5)
	... s bez2=$LI(bericht("ea",0,code,cnt),6) 
	... s txt=code_" "_bez1_"  "_bez2_" ("_$LI(bericht("ea",0,code,cnt),1)_")"
	... d rep.line("titel1",##this)
	... s konto="" f  s konto=$O(bericht("ea",0,code,cnt,konto)) q:konto=""  d
	.... s ad=bericht("ea",0,code,cnt,konto)
	.... s soha=$LI(ad,3)
	.... i soha d
	..... s txt="    "_konto_" "_##class(beweg.kassasummen).KontoName(konto)
	..... s betr1=$TR($FN($LI(ad,1),",",2),".,",",.")
	..... s betr2=$TR($FN($LI(ad,2),",",2),".,",",."),(betr3,betr4)=""
	..... i konto=kaskonto s tsaldo=tsaldo+$LI(ad,1)+$LI(ad,2)
	.... e  d
	..... s txt="        "_konto_" "_##class(beweg.kassasummen).KontoName(konto)
	..... s betr3=$TR($FN($LI(ad,1),",",2),".,",",.")
	..... s betr4=$TR($FN($LI(ad,2),",",2),".,",",."),(betr1,betr2)=""
	..... i konto=kaskonto s tsaldo=tsaldo-$LI(ad,1)-$LI(ad,2)
	.... d rep.line("zeile",##this)
	.... s gkonto="" f  s gkonto=$O(bericht("ea",0,code,cnt,konto,gkonto)) q:gkonto=""  d
	..... s ad=bericht("ea",0,code,cnt,konto,gkonto)
	..... i soha d
	...... s txt="        "_gkonto_" "_##class(beweg.kassasummen).KontoName(gkonto)
	...... s betr3=$TR($FN($LI(ad,1),",",2),".,",",.")
	...... s betr4=$TR($FN($LI(ad,2),",",2),".,",",."),(betr1,betr2)=""
	...... i gkonto=kaskonto s tsaldo=tsaldo-$LI(ad,1)-$LI(ad,2)
	..... e  d
	...... s txt="    "_gkonto_" "_##class(beweg.kassasummen).KontoName(gkonto)
	...... s betr1=$TR($FN($LI(ad,1),",",2),".,",",.")
	...... s betr2=$TR($FN($LI(ad,2),",",2),".,",",."),(betr3,betr4)=""
	...... i gkonto=kaskonto s tsaldo=tsaldo+$LI(ad,1)+$LI(ad,2)
	..... d rep.line("zeile",##this)
	. d rep.line("linie",##this)
	. s txt="" d rep.line("titel",##this)	


	
	s txt="   Vortrag",betr1=$TR($FN(+$G(bericht("vortrag")),",",2),".,",",.")
	d rep.line("zeile1",##this)
	s txt="+ Tagessaldo",betr1=$TR($FN(tsaldo,",",2),".,",",.")
	d rep.line("zeile1",##this)
	s txt="= Kassasaldo",betr1=$TR($FN($G(bericht("vortrag"))+tsaldo,",",2),".,",",.")
	d rep.line("zeile1",##this)
	d rep.line("dlinie",##this)
	
	s repid=rep.end()
	d rep.%Close()
	k rep,objlade
	
	q $LB(repid,0,0)
]]></Implementation>
</Method>

<Method name="KontoName">
<ClassMethod>1</ClassMethod>
<FormalSpec>konto:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s name=""
	i $E(konto,1)="S" d
	. s idk=$O(^stamm.kontoI("index",siteid,0," "_$ZCONVERT($E(konto,2,$L(konto)),"U"),""),-1)
	. s objk=##class(stamm.konto).%OpenId(idk) 
	. i $L(objk) s name=objk.bez1 d objk.%Close()
	i $E(konto,1)="K" d
	. s idk=$O(^stamm.kundeI("keyid",siteid,0,$ZCONVERT($E(konto,2,$L(konto)),"U"),""))
	. s objk=##class(stamm.kunde).%OpenId(idk) 
	. i $L(objk) s name=objk.person.name.name1_" "_objk.person.name.name2 d objk.%Close()
	
	k idk,objk
	
	q name
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.kassasummenD</DataLocation>
<DefaultData>kassasummenDefaultData</DefaultData>
<IdLocation>^beweg.kassasummenD</IdLocation>
<IndexLocation>^beweg.kassasummenI</IndexLocation>
<StreamLocation>^beweg.kassasummenS</StreamLocation>
<Data name="istmuenzen">
<Attribute>istmuenzen</Attribute>
<Structure>node</Structure>
<Subscript>"istmuenzen"</Subscript>
</Data>
<Data name="istvaluten">
<Attribute>istvaluten</Attribute>
<Structure>node</Structure>
<Subscript>"istvaluten"</Subscript>
</Data>
<Data name="kassasummenDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>datum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>pkassalade</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>istbar</Value>
</Value>
<Value name="17">
<Value>istval</Value>
</Value>
<Value name="18">
<Value>istgsbon</Value>
</Value>
<Value name="19">
<Value>istgutschein</Value>
</Value>
<Value name="20">
<Value>saldo</Value>
</Value>
<Value name="21">
<Value>taldo</Value>
</Value>
<Value name="22">
<Value>tsaldo</Value>
</Value>
<Value name="23">
<Value>dirtysw</Value>
</Value>
<Value name="24">
<Value>sollbar</Value>
</Value>
<Value name="25">
<Value>saldobar</Value>
</Value>
<Value name="26">
<Value>tsaldobar</Value>
</Value>
<Value name="27">
<Value>anldatumzeit</Value>
</Value>
<Value name="28">
<Value>panlmitarb</Value>
</Value>
<Value name="29">
<Value>pupdmitarb</Value>
</Value>
<Value name="30">
<Value>upddatumzeit</Value>
</Value>
<Value name="31">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.konto">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<StorageStrategy/>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,26231.125546</TimeChanged>
<TimeCreated>61075,48827.041802</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="belegart">
<Type>%String</Type>
</Property>

<Property name="belegnr">
<Type>%String</Type>
</Property>

<Property name="pos">
<Type>%String</Type>
</Property>

<Property name="menge">
<Type>%Float</Type>
</Property>

<Property name="defeinh">
<Type>param.meeinh</Type>
</Property>

<Property name="brutto">
<Type>%Float</Type>
</Property>

<Property name="rab1">
<Type>%Float</Type>
</Property>

<Property name="rab2">
<Type>%Float</Type>
</Property>

<Property name="rab3">
<Type>%Float</Type>
</Property>

<Property name="netto">
<Type>%Float</Type>
</Property>

<Property name="peinh">
<Type>param.meeinh</Type>
</Property>

<Property name="prfaktor">
<Description>
Faktor zwischen Defeinheit und Preiseinheit</Description>
<Type>%Float</Type>
</Property>

<Property name="prme">
<Type>%Float</Type>
</Property>

<Property name="panr">
<Type>stamm.artikel</Type>
<Parameter name="SELECTIVITY" value="{%%EXTENTSIZE}/{%%REFEXTENTSIZE}"/>
</Property>

<Property name="pknr">
<Type>stamm.kunde</Type>
<Parameter name="SELECTIVITY" value="{%%EXTENTSIZE}/{%%REFEXTENTSIZE}"/>
</Property>

<Property name="paktion">
<Type>stamm.aktion</Type>
</Property>

<Index name="anr">
<Properties>psite,loesw,panr,pknr,datum</Properties>
</Index>

<Index name="knr">
<Properties>psite,loesw,pknr,panr,datum</Properties>
</Index>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,datum:%Date,knrid:%String,anrid:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,datum,panr->bez1,pknr->person_name_name1,pknr->person_name_name2,belegart,belegnr,pos,menge,brutto,rab1,rab2,rab3,netto,panr->pmwcode->mwproz,paktion->bez,defeinh->code,peinh->code,prfaktor,prme FROM konto
 WHERE (panr = :anrid or :anrid is null)
   AND (pknr = :knrid or :knrid is null)
   AND (datum >= :datum or :datum is null)
   AND (psite=:siteid) AND (:loesw=0)
 ORDER by datum]]></SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.kontoD</DataLocation>
<DefaultData>kontoDefaultData</DefaultData>
<IdLocation>^beweg.kontoD</IdLocation>
<IndexLocation>^beweg.kontoI</IndexLocation>
<StreamLocation>^beweg.kontoS</StreamLocation>
<Data name="kontoDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>belegart</Value>
</Value>
<Value name="3">
<Value>belegnr</Value>
</Value>
<Value name="4">
<Value>brutto</Value>
</Value>
<Value name="5">
<Value>datum</Value>
</Value>
<Value name="6">
<Value>defeinh</Value>
</Value>
<Value name="7">
<Value>menge</Value>
</Value>
<Value name="8">
<Value>netto</Value>
</Value>
<Value name="9">
<Value>paktion</Value>
</Value>
<Value name="10">
<Value>panr</Value>
</Value>
<Value name="11">
<Value>peinh</Value>
</Value>
<Value name="12">
<Value>pknr</Value>
</Value>
<Value name="13">
<Value>pos</Value>
</Value>
<Value name="14">
<Value>prfaktor</Value>
</Value>
<Value name="15">
<Value>prme</Value>
</Value>
<Value name="16">
<Value>rab1</Value>
</Value>
<Value name="17">
<Value>rab2</Value>
</Value>
<Value name="18">
<Value>anldatum</Value>
</Value>
<Value name="19">
<Value>anlpers</Value>
</Value>
<Value name="20">
<Value>empfaction</Value>
</Value>
<Value name="21">
<Value>loesw</Value>
</Value>
<Value name="22">
<Value>nr</Value>
</Value>
<Value name="23">
<Value>ok</Value>
</Value>
<Value name="24">
<Value>psite</Value>
</Value>
<Value name="25">
<Value>route</Value>
</Value>
<Value name="26">
<Value>rtdelay</Value>
</Value>
<Value name="27">
<Value>rtdelete</Value>
</Value>
<Value name="28">
<Value>upddatum</Value>
</Value>
<Value name="29">
<Value>updpers</Value>
</Value>
<Value name="30">
<Value>rab3</Value>
</Value>
<Value name="31">
<Value>anldatumzeit</Value>
</Value>
<Value name="32">
<Value>panlmitarb</Value>
</Value>
<Value name="33">
<Value>pupdmitarb</Value>
</Value>
<Value name="34">
<Value>upddatumzeit</Value>
</Value>
<Value name="35">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.nachltxtcnt">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,26264.758694</TimeChanged>
<TimeCreated>61075,48827.047992</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Property name="pnachltxt">
<Type>stamm.nachltxt</Type>
</Property>

<Property name="cnt">
<Type>%Integer</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,pkunde,pnachltxt</Properties>
</Index>

<Method name="GetCounter">
<ClassMethod>1</ClassMethod>
<FormalSpec>kundeid:%String,nachltxtid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^beweg.nachltxtcntI("index",siteid,0,kundeid,nachltxtid,""))
	q:id="" 0
	s objnl=##class(beweg.nachltxtcnt).%OpenId(id)
	s cnt=objnl.cnt
	d objnl.%Save()
	k objnl
	
	q cnt
]]></Implementation>
</Method>

<Method name="SetCounter">
<ClassMethod>1</ClassMethod>
<FormalSpec>kundeid:%String,nachltxtid:%String</FormalSpec>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^beweg.nachltxtcntI("index",siteid,0,kundeid,nachltxtid,""))
	i id="" d
	. s objnl=##class(beweg.nachltxtcnt).%New()
	. d objnl.pkundeSetObjectId(kundeid)
	. d objnl.pnachltxtSetObjectId(nachltxtid)
	i $L(id) s objnl=##class(beweg.nachltxtcnt).%OpenId(id)
	s objnl.cnt=objnl.cnt+1
	d objnl.%Save(),objnl.%Close()
	k objnl
	
	q
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.nachltxtcntD</DataLocation>
<DefaultData>nachltxtcntDefaultData</DefaultData>
<IdLocation>^beweg.nachltxtcntD</IdLocation>
<IndexLocation>^beweg.nachltxtcntI</IndexLocation>
<StreamLocation>^beweg.nachltxtcntS</StreamLocation>
<Data name="nachltxtcntDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>cnt</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>pkunde</Value>
</Value>
<Value name="10">
<Value>pnachltxt</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>anldatumzeit</Value>
</Value>
<Value name="18">
<Value>panlmitarb</Value>
</Value>
<Value name="19">
<Value>pupdmitarb</Value>
</Value>
<Value name="20">
<Value>upddatumzeit</Value>
</Value>
<Value name="21">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="beweg.openbeleg">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,26344.559676</TimeChanged>
<TimeCreated>61075,48827.053606</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="puser">
<Type>system.mitarb</Type>
</Property>

<Property name="pbeleg">
<Type>beweg.beleg</Type>
</Property>

<Index name="keyuser">
<Properties>psite,loesw,puser,pbeleg</Properties>
</Index>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,puser:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,pbeleg->%Id,pbeleg->anldatumzeit,pbeleg->pbelart->code,pbeleg->belnr,pbeleg->pkunde->person_name_name1,pbeleg->pkunde->person_name_name2,pbeleg->wertincl FROM openbeleg
 where puser=:puser and psite=:siteid and loesw=0
 order by pbeleg->anldatumzeit DESC, pbeleg->%Id DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^beweg.openbelegD</DataLocation>
<DefaultData>openbelegDefaultData</DefaultData>
<IdLocation>^beweg.openbelegD</IdLocation>
<IndexLocation>^beweg.openbelegI</IndexLocation>
<StreamLocation>^beweg.openbelegS</StreamLocation>
<Data name="openbelegDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>nr</Value>
</Value>
<Value name="7">
<Value>ok</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>upddatum</Value>
</Value>
<Value name="13">
<Value>updpers</Value>
</Value>
<Value name="14">
<Value>pbeleg</Value>
</Value>
<Value name="15">
<Value>puser</Value>
</Value>
<Value name="16">
<Value>pfiliale</Value>
</Value>
<Value name="17">
<Value>pmandant</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>panlmitarb</Value>
</Value>
<Value name="20">
<Value>pupdmitarb</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Project name="kwws" LastModified="2008-05-24 10:47:18">
  <Items>
    <ProjectItem name="KWWEAN.INT" type="MAC"/>
    <ProjectItem name="KWWIMPALL.INT" type="MAC"/>
    <ProjectItem name="KWWIMPART.int" type="MAC"/>
    <ProjectItem name="KWWIMPBEW.INT" type="MAC"/>
    <ProjectItem name="KWWIMPKUND.INT" type="MAC"/>
    <ProjectItem name="KWWIMPPAR.INT" type="MAC"/>
    <ProjectItem name="KWWSABT.INT" type="MAC"/>
    <ProjectItem name="KWWSART.int" type="MAC"/>
    <ProjectItem name="KWWSBELEG.INT" type="MAC"/>
    <ProjectItem name="KWWSETINDEX.INT" type="MAC"/>
    <ProjectItem name="KWWSKUND.INT" type="MAC"/>
    <ProjectItem name="KWWSONDER.int" type="MAC"/>
    <ProjectItem name="KWWSWARGR.INT" type="MAC"/>
    <ProjectItem name="KWWUTIL.INT" type="MAC"/>
    <ProjectItem name="XDELACT.int" type="MAC"/>
    <ProjectItem name="basis.acontobezahl" type="CLS"/>
    <ProjectItem name="basis.adresse" type="CLS"/>
    <ProjectItem name="basis.artber" type="CLS"/>
    <ProjectItem name="basis.artbez" type="CLS"/>
    <ProjectItem name="basis.arteinh" type="CLS"/>
    <ProjectItem name="basis.artek" type="CLS"/>
    <ProjectItem name="basis.artfolge" type="CLS"/>
    <ProjectItem name="basis.artkontierung" type="CLS"/>
    <ProjectItem name="basis.artmasse" type="CLS"/>
    <ProjectItem name="basis.averband" type="CLS"/>
    <ProjectItem name="basis.belegart" type="CLS"/>
    <ProjectItem name="basis.belkonto" type="CLS"/>
    <ProjectItem name="basis.belkost" type="CLS"/>
    <ProjectItem name="basis.belmwtab" type="CLS"/>
    <ProjectItem name="basis.fremdwbezahl" type="CLS"/>
    <ProjectItem name="basis.gsbonbezahl" type="CLS"/>
    <ProjectItem name="basis.gutschbezahl" type="CLS"/>
    <ProjectItem name="basis.gutschein" type="CLS"/>
    <ProjectItem name="basis.kartbezahl" type="CLS"/>
    <ProjectItem name="basis.kbonus" type="CLS"/>
    <ProjectItem name="basis.kontakt" type="CLS"/>
    <ProjectItem name="basis.konto" type="CLS"/>
    <ProjectItem name="basis.kost" type="CLS"/>
    <ProjectItem name="basis.kuliadresse" type="CLS"/>
    <ProjectItem name="basis.liverband" type="CLS"/>
    <ProjectItem name="basis.muenze" type="CLS"/>
    <ProjectItem name="basis.name" type="CLS"/>
    <ProjectItem name="basis.person" type="CLS"/>
    <ProjectItem name="basis.preis" type="CLS"/>
    <ProjectItem name="basis.valute" type="CLS"/>
    <ProjectItem name="basis.zkdat" type="CLS"/>
    <ProjectItem name="beweg.beleg" type="CLS"/>
    <ProjectItem name="beweg.belegeinaus" type="CLS"/>
    <ProjectItem name="beweg.belegnextpos" type="CLS"/>
    <ProjectItem name="beweg.belegpos" type="CLS"/>
    <ProjectItem name="beweg.bktagesende" type="CLS"/>
    <ProjectItem name="beweg.bonabr" type="CLS"/>
    <ProjectItem name="beweg.bonusdat" type="CLS"/>
    <ProjectItem name="beweg.kassabelege" type="CLS"/>
    <ProjectItem name="beweg.kassasummen" type="CLS"/>
    <ProjectItem name="beweg.konto" type="CLS"/>
    <ProjectItem name="beweg.nachltxtcnt" type="CLS"/>
    <ProjectItem name="beweg.openbeleg" type="CLS"/>
    <ProjectItem name="param.abt" type="CLS"/>
    <ProjectItem name="param.arttyp" type="CLS"/>
    <ProjectItem name="param.belart" type="CLS"/>
    <ProjectItem name="param.bewcode" type="CLS"/>
    <ProjectItem name="param.bonustab" type="CLS"/>
    <ProjectItem name="param.eagszuord" type="CLS"/>
    <ProjectItem name="param.eazuord" type="CLS"/>
    <ProjectItem name="param.ekgrp" type="CLS"/>
    <ProjectItem name="param.feiertag" type="CLS"/>
    <ProjectItem name="param.fil" type="CLS"/>
    <ProjectItem name="param.firma" type="CLS"/>
    <ProjectItem name="param.fremdw" type="CLS"/>
    <ProjectItem name="param.fzone" type="CLS"/>
    <ProjectItem name="param.karttyp" type="CLS"/>
    <ProjectItem name="param.kassaea" type="CLS"/>
    <ProjectItem name="param.kassalade" type="CLS"/>
    <ProjectItem name="param.kgrp" type="CLS"/>
    <ProjectItem name="param.lager" type="CLS"/>
    <ProjectItem name="param.land" type="CLS"/>
    <ProjectItem name="param.meeinh" type="CLS"/>
    <ProjectItem name="param.muenz" type="CLS"/>
    <ProjectItem name="param.mwcode" type="CLS"/>
    <ProjectItem name="param.param" type="CLS"/>
    <ProjectItem name="param.plzzus" type="CLS"/>
    <ProjectItem name="param.post" type="CLS"/>
    <ProjectItem name="param.prliste" type="CLS"/>
    <ProjectItem name="param.serial" type="CLS"/>
    <ProjectItem name="param.standort" type="CLS"/>
    <ProjectItem name="param.text" type="CLS"/>
    <ProjectItem name="param.titel" type="CLS"/>
    <ProjectItem name="param.verband" type="CLS"/>
    <ProjectItem name="param.wargr" type="CLS"/>
    <ProjectItem name="param.wj" type="CLS"/>
    <ProjectItem name="param.zahlungsm" type="CLS"/>
    <ProjectItem name="param.zk" type="CLS"/>
    <ProjectItem name="stamm.aktion" type="CLS"/>
    <ProjectItem name="stamm.artbrutto" type="CLS"/>
    <ProjectItem name="stamm.artikel" type="CLS"/>
    <ProjectItem name="stamm.artkond" type="CLS"/>
    <ProjectItem name="stamm.artlager" type="CLS"/>
    <ProjectItem name="stamm.artlief" type="CLS"/>
    <ProjectItem name="stamm.artmatch" type="CLS"/>
    <ProjectItem name="stamm.artvk" type="CLS"/>
    <ProjectItem name="stamm.artzuab" type="CLS"/>
    <ProjectItem name="stamm.ean" type="CLS"/>
    <ProjectItem name="stamm.gsbon" type="CLS"/>
    <ProjectItem name="stamm.gutschein" type="CLS"/>
    <ProjectItem name="stamm.katalog" type="CLS"/>
    <ProjectItem name="stamm.konto" type="CLS"/>
    <ProjectItem name="stamm.kost" type="CLS"/>
    <ProjectItem name="stamm.kuadr" type="CLS"/>
    <ProjectItem name="stamm.kuadrperson" type="CLS"/>
    <ProjectItem name="stamm.kukarte" type="CLS"/>
    <ProjectItem name="stamm.kunde" type="CLS"/>
    <ProjectItem name="stamm.kundmatch" type="CLS"/>
    <ProjectItem name="stamm.kuperson" type="CLS"/>
    <ProjectItem name="stamm.liadr" type="CLS"/>
    <ProjectItem name="stamm.liadrperson" type="CLS"/>
    <ProjectItem name="stamm.lief" type="CLS"/>
    <ProjectItem name="stamm.liperson" type="CLS"/>
    <ProjectItem name="stamm.nachltxt" type="CLS"/>
    <ProjectItem name="stamm.notiz" type="CLS"/>
    <ProjectItem name="stamm.notize" type="CLS"/>
    <ProjectItem name="stamm.sonderpreis" type="CLS"/>
    <ProjectItem name="system.actions" type="CLS"/>
    <ProjectItem name="system.base" type="CLS"/>
    <ProjectItem name="system.baser" type="CLS"/>
    <ProjectItem name="system.buttons" type="CLS"/>
    <ProjectItem name="system.dbcombo" type="CLS"/>
    <ProjectItem name="system.dbnav" type="CLS"/>
    <ProjectItem name="system.dbtable" type="CLS"/>
    <ProjectItem name="system.defaction" type="CLS"/>
    <ProjectItem name="system.defaults" type="CLS"/>
    <ProjectItem name="system.komm" type="CLS"/>
    <ProjectItem name="system.layout" type="CLS"/>
    <ProjectItem name="system.menu" type="CLS"/>
    <ProjectItem name="system.message" type="CLS"/>
    <ProjectItem name="system.mitarb" type="CLS"/>
    <ProjectItem name="system.mitarbgrp" type="CLS"/>
    <ProjectItem name="system.mitarbgrpmitarb" type="CLS"/>
    <ProjectItem name="system.param" type="CLS"/>
    <ProjectItem name="system.paramitem" type="CLS"/>
    <ProjectItem name="system.pictkubs" type="CLS"/>
    <ProjectItem name="system.rechte" type="CLS"/>
    <ProjectItem name="system.rep" type="CLS"/>
    <ProjectItem name="system.report" type="CLS"/>
    <ProjectItem name="system.repstream" type="CLS"/>
    <ProjectItem name="system.route" type="CLS"/>
    <ProjectItem name="system.routgrp" type="CLS"/>
    <ProjectItem name="system.search" type="CLS"/>
    <ProjectItem name="system.searchpar" type="CLS"/>
    <ProjectItem name="system.session" type="CLS"/>
    <ProjectItem name="system.sites" type="CLS"/>
    <ProjectItem name="system.sprache" type="CLS"/>
    <ProjectItem name="system.wk" type="CLS"/>
    <ProjectItem name="system.wkstream" type="CLS"/>
    <ProjectItem name="system.zcpp" type="CLS"/>
    <ProjectItem name="test.test" type="CLS"/>
  </Items>
</Project>
<Class name="param.abt">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,60512.225578</TimeChanged>
<TimeCreated>59921,85741.120598</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Abteilung</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez1,bez2,bez3,pparent,kost</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Code,Bezeichnung 1,Bez. 2,Bez. 3,Übergeordnet,Kostenstelle</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,20%,10%,10%,20%,20%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>10%,70%</Default>
</Parameter>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>

<Property name="pparent">
<Type>param.abt</Type>
</Property>

<Property name="kost">
<Type>stamm.kost</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.abtI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez1)
	s nid=$O(^param.abtI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez1)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.abtI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez1)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,code,bez1,pparent->code FROM abt
 WHERE (psite=:siteid) and (loesw=0)
 ORDER by $$deep^KWWSABT(%ID)]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.abtD</DataLocation>
<DefaultData>abtDefaultData</DefaultData>
<IdLocation>^param.abtD</IdLocation>
<IndexLocation>^param.abtI</IndexLocation>
<StreamLocation>^param.abtS</StreamLocation>
<Data name="abtDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez1</Value>
</Value>
<Value name="5">
<Value>bez2</Value>
</Value>
<Value name="6">
<Value>bez3</Value>
</Value>
<Value name="7">
<Value>code</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>pparent</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>loesw</Value>
</Value>
<Value name="19">
<Value>pfiliale</Value>
</Value>
<Value name="20">
<Value>pmandant</Value>
</Value>
<Value name="21">
<Value>kost</Value>
</Value>
<Value name="22">
<Value>anldatumzeit</Value>
</Value>
<Value name="23">
<Value>panlmitarb</Value>
</Value>
<Value name="24">
<Value>pupdmitarb</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
<Value name="26">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.arttyp">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent,%XML.Adaptor</Super>
<TimeChanged>61109,52649.490848</TimeChanged>
<TimeCreated>59921,85741.128419</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Artikeltyp</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez,dezimalsw,sammelsw,einkaufsw,lagersw,kummsw</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%,10%,10%,10%,10%,10%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="dezimalsw">
<Type>%Boolean</Type>
</Property>

<Property name="sammelsw">
<Type>%Boolean</Type>
</Property>

<Property name="einkaufsw">
<Type>%Boolean</Type>
</Property>

<Property name="lagersw">
<Type>%Boolean</Type>
</Property>

<Property name="kummsw">
<Type>%Boolean</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="%OnNew">
<FormalSpec>InitialValue:%CacheString</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	I $G(InitialValue)="0" Q $$$OK
	s ..bez="NEU"
	Q $$$OK
]]></Implementation>
</Method>

<Method name="LoeTest">
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	q $O(^param.arttypI("index",siteid,1," "_$ZCONVERT(code,"U"),""))
]]></Implementation>
</Method>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.arttypI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.arttypI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,..%OpenId(nid).code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.arttypI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT %ID,code,bez FROM arttyp
 WHERE (psite=:siteid) and (loesw=0)
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.arttypD</DataLocation>
<DefaultData>arttypDefaultData</DefaultData>
<IdLocation>^param.arttypD</IdLocation>
<IndexLocation>^param.arttypI</IndexLocation>
<StreamLocation>^param.arttypS</StreamLocation>
<Data name="arttypDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>dezimalsw</Value>
</Value>
<Value name="7">
<Value>einkaufsw</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>loesw</Value>
</Value>
<Value name="10">
<Value>nr</Value>
</Value>
<Value name="11">
<Value>ok</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>sammelsw</Value>
</Value>
<Value name="17">
<Value>upddatum</Value>
</Value>
<Value name="18">
<Value>updpers</Value>
</Value>
<Value name="19">
<Value>lagersw</Value>
</Value>
<Value name="20">
<Value>kummsw</Value>
</Value>
<Value name="21">
<Value>pfiliale</Value>
</Value>
<Value name="22">
<Value>pmandant</Value>
</Value>
<Value name="23">
<Value>anldatumzeit</Value>
</Value>
<Value name="24">
<Value>panlmitarb</Value>
</Value>
<Value name="25">
<Value>pupdmitarb</Value>
</Value>
<Value name="26">
<Value>upddatumzeit</Value>
</Value>
<Value name="27">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.belart">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61115,1429.168372</TimeChanged>
<TimeCreated>61075,48827.081914</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Belegart</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bezpos</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bezpos</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bezpos</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>10%,70%</Default>
</Parameter>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bezpos</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
///////////////////////////////////////////////////</Description>
<Type>%String</Type>
<Parameter name="CAPTION" value="Code"/>
</Property>

<Property name="bezpos">
<Type>%String</Type>
<Parameter name="CAPTION" value="Bezeichnung pos."/>
</Property>

<Property name="bezneg">
<Type>%String</Type>
<Parameter name="CAPTION" value="Bezeichnungs neg."/>
</Property>

<Property name="barsw">
<Type>%Boolean</Type>
</Property>

<Property name="selektsw">
<Type>%Boolean</Type>
</Property>

<Property name="belarten">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Property name="belegsw">
<Description>
0=Angebot, 1=Auftrag, 2=Komission, 3=Bevorschlag,
4=Bestellung,5=Urgenz, 6=Zugang, 7=Eingangsrechnung,
8=Korrektur, 9=Geliefert, 10=Verrechnet, 11=Bezahlt</Description>
<Type>%List</Type>
</Property>

<Property name="preistyp">
<Description>
Preistyp "0"=Verkauf, "1"=Einkauf</Description>
<Type>%Integer</Type>
</Property>

<Property name="kassasw">
<Type>%Boolean</Type>
</Property>

<Property name="kassanrsw">
<Type>%Boolean</Type>
</Property>

<Property name="endesw">
<Type>%Boolean</Type>
</Property>

<Property name="printsw">
<Type>%Boolean</Type>
</Property>

<Property name="stornosw">
<Type>%Boolean</Type>
</Property>

<Property name="datesw">
<Type>%Boolean</Type>
</Property>

<Property name="pkassaea">
<Type>param.kassaea</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Index name="kassasw">
<Properties>psite,loesw,kassasw,code</Properties>
</Index>

<Index name="kassaea">
<Properties>psite,loesw,pkassaea</Properties>
</Index>

<Method name="GetSw">
<ClassMethod>1</ClassMethod>
<FormalSpec>belart:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^param.belartI("index",siteid,0," "_$ZCONVERT(belart,"U"),""))
	q:id="" ""
	s belarto=##class(param.belart).%OpenId(id)
	s erg=$LB(belarto.kassasw,belarto.endesw,belarto.printsw,
			  belarto.stornosw,belarto.datesw,id)
	d belarto.%Close()
	k belarto
	q erg
]]></Implementation>
</Method>

<Method name="GetBelartKassaEa">
<ClassMethod>1</ClassMethod>
<FormalSpec>belart:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s idbelart=$O(^param.belartI("index",siteid,0," "_$ZCONVERT(belart,"U"),""))
	s (belartbez,barsw)="" 
	i $L(idbelart) d
	. s objba=##class(param.belart).%OpenId(idbelart)
	. I $L(objba.pkassaea) s belartbez=objba.pkassaea.bez d objba.%Close()
	. E  s belartbez="ZAHLUNG "_$ZCONVERT(objba.bezpos,"U")
	. s barsw=objba.barsw
	k objba
	q $LB(idbelart,belartbez,barsw)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bezpos,bezneg,preistyp,selektsw FROM belart
WHERE loesw=0 and psite=:siteid
 ORDER BY code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.belartD</DataLocation>
<DefaultData>belartDefaultData</DefaultData>
<IdLocation>^param.belartD</IdLocation>
<IndexLocation>^param.belartI</IndexLocation>
<StreamLocation>^param.belartS</StreamLocation>
<Data name="belartDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>barsw</Value>
</Value>
<Value name="5">
<Value>belegsw</Value>
</Value>
<Value name="6">
<Value>bezneg</Value>
</Value>
<Value name="7">
<Value>bezpos</Value>
</Value>
<Value name="8">
<Value>code</Value>
</Value>
<Value name="9">
<Value>datesw</Value>
</Value>
<Value name="10">
<Value>empfaction</Value>
</Value>
<Value name="11">
<Value>endesw</Value>
</Value>
<Value name="12">
<Value>kassasw</Value>
</Value>
<Value name="13">
<Value>loesw</Value>
</Value>
<Value name="14">
<Value>nr</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>peabelegz</Value>
</Value>
<Value name="17">
<Value>playout</Value>
</Value>
<Value name="18">
<Value>preistyp</Value>
</Value>
<Value name="19">
<Value>printsw</Value>
</Value>
<Value name="20">
<Value>psite</Value>
</Value>
<Value name="21">
<Value>route</Value>
</Value>
<Value name="22">
<Value>rtdelay</Value>
</Value>
<Value name="23">
<Value>rtdelete</Value>
</Value>
<Value name="24">
<Value>stornosw</Value>
</Value>
<Value name="25">
<Value>upddatum</Value>
</Value>
<Value name="26">
<Value>updpers</Value>
</Value>
<Value name="27">
<Value>preport</Value>
</Value>
<Value name="28">
<Value>pkassaea</Value>
</Value>
<Value name="29">
<Value>kassanrsw</Value>
</Value>
<Value name="30">
<Value>defbelegsw</Value>
</Value>
<Value name="31">
<Value>pfiliale</Value>
</Value>
<Value name="32">
<Value>pmandant</Value>
</Value>
<Value name="33">
<Value>reports</Value>
</Value>
<Value name="34">
<Value>anldatumzeit</Value>
</Value>
<Value name="35">
<Value>panlmitarb</Value>
</Value>
<Value name="36">
<Value>pupdmitarb</Value>
</Value>
<Value name="37">
<Value>upddatumzeit</Value>
</Value>
<Value name="38">
<Value>kassa</Value>
</Value>
<Value name="39">
<Value>selektsw</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.bewcode">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,52850.026626</TimeChanged>
<TimeCreated>61075,48827.088056</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Artikelcode</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.bewcodeI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.bewcodeI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.bewcodeI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez FROM bewcode
WHERE loesw=0 and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.bewcodeD</DataLocation>
<DefaultData>bewcodeDefaultData</DefaultData>
<IdLocation>^param.bewcodeD</IdLocation>
<IndexLocation>^param.bewcodeI</IndexLocation>
<StreamLocation>^param.bewcodeS</StreamLocation>
<Data name="bewcodeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>bez1</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>pfiliale</Value>
</Value>
<Value name="18">
<Value>pmandant</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.bonustab">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61112,44857.459515</TimeChanged>
<TimeCreated>61075,48827.093795</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Bonustabelle</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>umsatz,punkte</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Umsatz,Punkte</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>umsatz</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>20%,20%</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>umsatz,punkte</Default>
</Parameter>

<Property name="datum">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%Date</Type>
</Property>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Property name="pkgrp">
<Type>param.kgrp</Type>
</Property>

<Property name="umsatz">
<Type>%Float</Type>
</Property>

<Property name="punkte">
<Type>%Integer</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,datum,pkgrp,pkunde,umsatz</Properties>
</Index>

<Method name="GetPunkte">
<ClassMethod>1</ClassMethod>
<FormalSpec>kundeid:%String,umsatz:%Float</FormalSpec>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s vsw=1 i umsatz<0 s umsatz=-umsatz,vsw=-1
	
	s kobj=##class(stamm.kunde).%OpenId(kundeid)
	i kobj="" q 0
	s kgrpid=kobj.pkgrp.%Id()
	d kobj.%Close()
	k kobj
	
	s datum=$H+1,sw=0
	f  s datum=$O(^param.bonustabI(siteid,0,"index",datum),-1) Q:datum=""  d  q:+sw
	. I $D(^param.bonustabI("index",siteid,0,datum,kgrpid,-100000000000000)) s skgrp=kgrpid,skunde=-100000000000000,sw=1
	. e  I $D(^param.bonustabI("index",siteid,0,datum,-100000000000000,kundeid)) s skgrp=-100000000000000,skunde=kundeid,sw=1
	. e  I $D(^param.bonustabI("index",siteid,0,datum,-100000000000000,-100000000000000)) s skgrp=-100000000000000,skunde=-100000000000000,sw=1
	. e  q
	i sw=0 Q 0
	
	s swums=""
	s ums="" f  s ums=$O(^param.bonustabI("index",siteid,0,datum,skgrp,skunde,ums)) q:ums=""  d
	. i umsatz'<ums s swums=ums
	i swums="" q 0
	
	s id=$O(^param.bonustabI("index",siteid,0,datum,skgrp,skunde,swums,""))
	i id="" q 0
	
	s punkte=0
	s objtab=##class(param.bonustab).%OpenId(id)
	i $L(objtab) s punkte=objtab.punkte d objtab.%Close()
	k objtab
	
	q punkte*vsw
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.bonustabD</DataLocation>
<DefaultData>bonustabDefaultData</DefaultData>
<IdLocation>^param.bonustabD</IdLocation>
<IndexLocation>^param.bonustabI</IndexLocation>
<StreamLocation>^param.bonustabS</StreamLocation>
<Data name="bonustabDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>datum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>pkgrp</Value>
</Value>
<Value name="10">
<Value>pkunde</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>punkte</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>umsatz</Value>
</Value>
<Value name="17">
<Value>upddatum</Value>
</Value>
<Value name="18">
<Value>updpers</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.eagszuord">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61116,37324.082324</TimeChanged>
<TimeCreated>61075,48827.099385</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Zahlungsmittel - Kassa E/A</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>pgutstyp,pkassaea</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Zahlungsmittel,Kassa E/A</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>pgutstyp</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>40%,40%</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,pgutstyp,pkassaea</Default>
</Parameter>

<Property name="pgutstyp">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>param.zahlungsm</Type>
</Property>

<Property name="pkassaea">
<Type>param.kassaea</Type>
</Property>

<Property name="jahr">
<Type>%Integer</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,jahr,pgutstyp</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.eagszuordD</DataLocation>
<DefaultData>eagszuordDefaultData</DefaultData>
<IdLocation>^param.eagszuordD</IdLocation>
<IndexLocation>^param.eagszuordI</IndexLocation>
<StreamLocation>^param.eagszuordS</StreamLocation>
<Data name="eagszuordDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>ea</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>jahr</Value>
</Value>
<Value name="7">
<Value>loesw</Value>
</Value>
<Value name="8">
<Value>nr</Value>
</Value>
<Value name="9">
<Value>ok</Value>
</Value>
<Value name="10">
<Value>pgutstyp</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>pkassaea</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>panlmitarb</Value>
</Value>
<Value name="20">
<Value>pupdmitarb</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.eazuord">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61116,42134.379559</TimeChanged>
<TimeCreated>61075,48827.104605</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Zuordnung Kassa E/A</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,pkassaea</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Code,Kassa E/A</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>20%,70%</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
/////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="pkassaea">
<Type>param.kassaea</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.eazuordD</DataLocation>
<DefaultData>eazuordDefaultData</DefaultData>
<IdLocation>^param.eazuordD</IdLocation>
<IndexLocation>^param.eazuordI</IndexLocation>
<StreamLocation>^param.eazuordS</StreamLocation>
<Data name="eazuordDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>code</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>pkassaea</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>anldatumzeit</Value>
</Value>
<Value name="17">
<Value>panlmitarb</Value>
</Value>
<Value name="18">
<Value>pupdmitarb</Value>
</Value>
<Value name="19">
<Value>upddatumzeit</Value>
</Value>
<Value name="20">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.ekgrp">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,24493.753136</TimeChanged>
<TimeCreated>59921,85741.145979</TimeCreated>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="preis">
<Type>basis.artek</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.ekgrpD</DataLocation>
<DefaultData>ekgrpDefaultData</DefaultData>
<IdLocation>^param.ekgrpD</IdLocation>
<IndexLocation>^param.ekgrpI</IndexLocation>
<StreamLocation>^param.ekgrpS</StreamLocation>
<Data name="ekgrpDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>datum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kbez</Value>
</Value>
<Value name="7">
<Value>netto</Value>
</Value>
<Value name="8">
<Value>nr</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>rab1</Value>
</Value>
<Value name="11">
<Value>rab2</Value>
</Value>
<Value name="12">
<Value>rab3</Value>
</Value>
<Value name="13">
<Value>rab4</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>upddatum</Value>
</Value>
<Value name="18">
<Value>updpers</Value>
</Value>
<Value name="19">
<Value>preis</Value>
</Value>
<Value name="20">
<Value>ok</Value>
</Value>
<Value name="21">
<Value>loesw</Value>
</Value>
<Value name="22">
<Value>pfiliale</Value>
</Value>
<Value name="23">
<Value>pmandant</Value>
</Value>
<Value name="24">
<Value>anldatumzeit</Value>
</Value>
<Value name="25">
<Value>panlmitarb</Value>
</Value>
<Value name="26">
<Value>pupdmitarb</Value>
</Value>
<Value name="27">
<Value>upddatumzeit</Value>
</Value>
<Value name="28">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.feiertag">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61130,52802.198059</TimeChanged>
<TimeCreated>59921,85741.152897</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Feiertage</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>datum,bez</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>datum</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>15%,40%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>datum</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>datum,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>datum,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth;

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>datum,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,datum</Default>
</Parameter>

<Index name="index">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Properties>psite,datum</Properties>
</Index>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,von:%Date,bis:%Date</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,bez,datum FROM feiertag
 WHERE (loesw=0 and datum >= :von AND datum <= :bis) and loesw=0 and psite=:siteid]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.feiertagD</DataLocation>
<DefaultData>feiertagDefaultData</DefaultData>
<IdLocation>^param.feiertagD</IdLocation>
<IndexLocation>^param.feiertagI</IndexLocation>
<StreamLocation>^param.feiertagS</StreamLocation>
<Data name="feiertagDefaultData">
<Structure>listnode</Structure>
<Subscript>"feiertag"</Subscript>
<Value name="1">
<Value>bez</Value>
</Value>
<Value name="2">
<Value>datum</Value>
</Value>
<Value name="3">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="4">
<Value>anldatum</Value>
</Value>
<Value name="5">
<Value>anlpers</Value>
</Value>
<Value name="6">
<Value>site</Value>
</Value>
<Value name="7">
<Value>upddatum</Value>
</Value>
<Value name="8">
<Value>updpers</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>empfaction</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>pfiliale</Value>
</Value>
<Value name="18">
<Value>pmandant</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.fil">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,system.base</Super>
<TimeChanged>61110,35416.50138</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Filiale</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,name1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,name1,name2</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>15%,40%,40%</Default>
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="pfirma">
<Type>param.firma</Type>
</Property>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="name2">
<Type>%String</Type>
</Property>

<Property name="adresse">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Property name="uid">
<Type>%String</Type>
</Property>

<Property name="iln">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.filD</DataLocation>
<DefaultData>filDefaultData</DefaultData>
<IdLocation>^param.filD</IdLocation>
<IndexLocation>^param.filI</IndexLocation>
<StreamLocation>^param.filS</StreamLocation>
<Data name="filDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>adresse</Value>
</Value>
<Value name="3">
<Value>code</Value>
</Value>
<Value name="4">
<Value>iln</Value>
</Value>
<Value name="5">
<Value>kontakt</Value>
</Value>
<Value name="6">
<Value>name1</Value>
</Value>
<Value name="7">
<Value>name2</Value>
</Value>
<Value name="8">
<Value>pfirma</Value>
</Value>
<Value name="9">
<Value>uid</Value>
</Value>
<Value name="10">
<Value>anldatumzeit</Value>
</Value>
<Value name="11">
<Value>idkey</Value>
</Value>
<Value name="12">
<Value>kassa</Value>
</Value>
<Value name="13">
<Value>loesw</Value>
</Value>
<Value name="14">
<Value>panlmitarb</Value>
</Value>
<Value name="15">
<Value>psite</Value>
</Value>
<Value name="16">
<Value>pupdmitarb</Value>
</Value>
<Value name="17">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.firma">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61108,38738.31864</TimeChanged>
<TimeCreated>61075,48827.121763</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Firma</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,name1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,name1,name2</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>15%,40%,40%</Default>
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Type>%String</Type>
<Required>1</Required>
<Parameter name="CAPTION" value="Code"/>
</Property>

<Property name="name1">
<Type>%String</Type>
<Required>1</Required>
<Parameter name="CAPTION" value="Name1"/>
</Property>

<Property name="name2">
<Type>%String</Type>
<Parameter name="CAPTION" value="Name2"/>
</Property>

<Property name="uid">
<Type>%String</Type>
<Required>1</Required>
</Property>

<Property name="iln">
<Type>%String</Type>
</Property>

<Property name="adresse">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.firmaD</DataLocation>
<DefaultData>firmaDefaultData</DefaultData>
<IdLocation>^param.firmaD</IdLocation>
<IndexLocation>^param.firmaI</IndexLocation>
<StreamLocation>^param.firmaS</StreamLocation>
<Data name="firmaDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>bez1</Value>
</Value>
<Value name="3">
<Value>bez2</Value>
</Value>
<Value name="4">
<Value>bez3</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>anldatum</Value>
</Value>
<Value name="7">
<Value>anlpers</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>loesw</Value>
</Value>
<Value name="10">
<Value>nr</Value>
</Value>
<Value name="11">
<Value>ok</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>name1</Value>
</Value>
<Value name="19">
<Value>name2</Value>
</Value>
<Value name="20">
<Value>uid</Value>
</Value>
<Value name="21">
<Value>adresse</Value>
</Value>
<Value name="22">
<Value>kontakt</Value>
</Value>
<Value name="23">
<Value>iln</Value>
</Value>
<Value name="24">
<Value>anldatumzeit</Value>
</Value>
<Value name="25">
<Value>panlmitarb</Value>
</Value>
<Value name="26">
<Value>pupdmitarb</Value>
</Value>
<Value name="27">
<Value>upddatumzeit</Value>
</Value>
<Value name="28">
<Value>kassa</Value>
</Value>
<Value name="29">
<Value>pfirma</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.fremdw">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,41517.017506</TimeChanged>
<TimeCreated>59921,85741.160389</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Fremdwährung</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>kbez,bez1,datum,umr,kassasw</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>kbez</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>kbez</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>kbez,bez1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>kbez</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>kbez,bez1</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,kbez</Default>
</Parameter>

<Property name="kbez">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="umr">
<Description>
Faktor auf Fremdwährung z.b: USD=1.3 d.h. 1 Euro*1.3=1.3 USD</Description>
<Type>%Float</Type>
</Property>

<Property name="kassasw">
<Type>%Boolean</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,kbez,datum</Properties>
</Index>

<Method name="GetAktKurse">
<FormalSpec>kassasw:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s kurse="",n=0
	s kbez="" f  s kbez=$O(^param.fremdwI("index",siteid,0,kbez)) q:kbez=""  d
	. s datum=$O(^param.fremdwI("index",siteid,0,kbez,$H+1),-1)
	. i $L(datum) d
	.. s id=$O(^param.fremdwI("index",siteid,0,kbez,datum,""))
	.. i $L(id) d
	... s objk=##class(param.fremdw).%OpenId(id)
	... i $L(objk) d
	.... i kassasw=""!(+kassasw=+objk.kassasw) s n=n+1,$LI(kurse,n)=$LB($E(kbez,2,99),objk.umr)
	.... d objk.%Close()
	k objk
	
	q kurse
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.fremdwD</DataLocation>
<DefaultData>fremdwDefaultData</DefaultData>
<IdLocation>^param.fremdwD</IdLocation>
<IndexLocation>^param.fremdwI</IndexLocation>
<StreamLocation>^param.fremdwS</StreamLocation>
<Data name="fremdwDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>datum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kbez</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>umr</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>pfiliale</Value>
</Value>
<Value name="18">
<Value>pmandant</Value>
</Value>
<Value name="19">
<Value>kassasw</Value>
</Value>
<Value name="20">
<Value>anldatumzeit</Value>
</Value>
<Value name="21">
<Value>panlmitarb</Value>
</Value>
<Value name="22">
<Value>pupdmitarb</Value>
</Value>
<Value name="23">
<Value>upddatumzeit</Value>
</Value>
<Value name="24">
<Value>kassa</Value>
</Value>
<Value name="25">
<Value>bez1</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.fzone">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,50797.221112</TimeChanged>
<TimeCreated>61075,48827.133186</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Frachtzone</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
<Parameter name="CAPTION" value="Code"/>
</Property>

<Property name="bez">
<Type>%String</Type>
<Parameter name="CAPTION" value="Bezeichnung"/>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.fzoneD</DataLocation>
<DefaultData>fzoneDefaultData</DefaultData>
<IdLocation>^param.fzoneD</IdLocation>
<IndexLocation>^param.fzoneI</IndexLocation>
<StreamLocation>^param.fzoneS</StreamLocation>
<Data name="fzoneDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>loesw</Value>
</Value>
<Value name="16">
<Value>pfiliale</Value>
</Value>
<Value name="17">
<Value>pmandant</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>panlmitarb</Value>
</Value>
<Value name="20">
<Value>pupdmitarb</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.karttyp">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61134,43738.158861</TimeChanged>
<TimeCreated>59921,85741.174794</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Kartentyp</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez,kreditsw,debitsw,kundkartsw,numlen</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%,10%,10%,10%,10%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="kreditsw">
<Type>%Boolean</Type>
</Property>

<Property name="debitsw">
<Type>%Boolean</Type>
</Property>

<Property name="kundkartsw">
<Type>%Boolean</Type>
</Property>

<Property name="numlen">
<Type>%Integer</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Index name="bez">
<Properties>psite,loesw,bez</Properties>
</Index>

<Index name="debit">
<Properties>psite,loesw,debitsw</Properties>
</Index>

<Index name="kredit">
<Properties>psite,loesw,kreditsw</Properties>
</Index>

<Index name="kunde">
<Properties>psite,loesw,kundkartsw</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.karttypI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.karttypI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$ZCONVERT($E(ncode,2,99),"L"),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.karttypI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,bez,kundkartsw,kreditsw,debitsw FROM karttyp
WHERE loesw=0 and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.karttypD</DataLocation>
<DefaultData>karttypDefaultData</DefaultData>
<IdLocation>^param.karttypD</IdLocation>
<IndexLocation>^param.karttypI</IndexLocation>
<StreamLocation>^param.karttypS</StreamLocation>
<Data name="karttypDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>debitsw</Value>
</Value>
<Value name="7">
<Value>empfaction</Value>
</Value>
<Value name="8">
<Value>kreditsw</Value>
</Value>
<Value name="9">
<Value>kundkartsw</Value>
</Value>
<Value name="10">
<Value>loesw</Value>
</Value>
<Value name="11">
<Value>nr</Value>
</Value>
<Value name="12">
<Value>numlen</Value>
</Value>
<Value name="13">
<Value>ok</Value>
</Value>
<Value name="14">
<Value>psite</Value>
</Value>
<Value name="15">
<Value>route</Value>
</Value>
<Value name="16">
<Value>rtdelay</Value>
</Value>
<Value name="17">
<Value>rtdelete</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>pfiliale</Value>
</Value>
<Value name="21">
<Value>pmandant</Value>
</Value>
<Value name="22">
<Value>anldatumzeit</Value>
</Value>
<Value name="23">
<Value>panlmitarb</Value>
</Value>
<Value name="24">
<Value>pupdmitarb</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
<Value name="26">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.kassaea">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61130,12207.074015</TimeChanged>
<TimeCreated>59921,85741.182855</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Kassa E/A Parameter</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez,einaus,pkonto,pkost,sollhab,posneg,einzsum,sachpersk,anzahl,aktiv,bonussw,pmwcode</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Code,Bezeichnung,Eingang,Konto,Kostenstelle,Soll,Positiv,Einzeln,Sachkonto,Anzahl,Aktiv,Bonus,Steuer</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
</Parameter>

<Parameter name="NavSortColumn">
<Default>code,bez,einaus,pkonto,pkost,sollhab,posneg,einzsum,sachpersk,anzahl,aktiv,bonussw,pmwcode</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
///////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="einaus">
<Description>
true=Eingang false=Ausgang</Description>
<Type>%Boolean</Type>
</Property>

<Property name="pkonto">
<Type>stamm.konto</Type>
</Property>

<Property name="pkost">
<Type>stamm.kost</Type>
</Property>

<Property name="sollhab">
<Description>
soll=true, haben=false</Description>
<Type>%Boolean</Type>
</Property>

<Property name="posneg">
<Description>
pos=true,neg=false</Description>
<Type>%Boolean</Type>
</Property>

<Property name="einzsum">
<Description>
einzeln=true, sumarisch=false</Description>
<Type>%Boolean</Type>
</Property>

<Property name="sachpersk">
<Description>
Gegenkonto true=kassakonto,false=personenkonto</Description>
<Type>%Boolean</Type>
</Property>

<Property name="anzahl">
<Type>%Integer</Type>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="bonussw">
<Type>%Boolean</Type>
</Property>

<Property name="pmwcode">
<Type>param.mwcode</Type>
</Property>

<Index name="code">
<Properties>psite,loesw,code</Properties>
</Index>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez,einaus FROM kassaea
where loesw=0 and aktiv=1 and psite=:siteid
ORDER by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.kassaeaD</DataLocation>
<DefaultData>kassaeaDefaultData</DefaultData>
<IdLocation>^param.kassaeaD</IdLocation>
<IndexLocation>^param.kassaeaI</IndexLocation>
<StreamLocation>^param.kassaeaS</StreamLocation>
<Data name="kassaeaDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktiv</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>anzahl</Value>
</Value>
<Value name="6">
<Value>bez</Value>
</Value>
<Value name="7">
<Value>bonussw</Value>
</Value>
<Value name="8">
<Value>code</Value>
</Value>
<Value name="9">
<Value>einaus</Value>
</Value>
<Value name="10">
<Value>einzsum</Value>
</Value>
<Value name="11">
<Value>empfaction</Value>
</Value>
<Value name="12">
<Value>kaspers</Value>
</Value>
<Value name="13">
<Value>loesw</Value>
</Value>
<Value name="14">
<Value>nr</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>pkonto</Value>
</Value>
<Value name="17">
<Value>pkost</Value>
</Value>
<Value name="18">
<Value>posneg</Value>
</Value>
<Value name="19">
<Value>psite</Value>
</Value>
<Value name="20">
<Value>route</Value>
</Value>
<Value name="21">
<Value>rtdelay</Value>
</Value>
<Value name="22">
<Value>rtdelete</Value>
</Value>
<Value name="23">
<Value>sollhab</Value>
</Value>
<Value name="24">
<Value>upddatum</Value>
</Value>
<Value name="25">
<Value>updpers</Value>
</Value>
<Value name="26">
<Value>pmwcode</Value>
</Value>
<Value name="27">
<Value>sachpersk</Value>
</Value>
<Value name="28">
<Value>anldatumzeit</Value>
</Value>
<Value name="29">
<Value>panlmitarb</Value>
</Value>
<Value name="30">
<Value>pupdmitarb</Value>
</Value>
<Value name="31">
<Value>upddatumzeit</Value>
</Value>
<Value name="32">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.kassalade">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61140,37380.745352</TimeChanged>
<TimeCreated>61075,48827.156093</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Kassalade</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez1,bez2,bez3</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,25%,25%,25%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>bez1</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
///////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.kassaladeI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez1)
	s nid=$O(^param.kassaladeI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez1)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.kassaladeI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez1)
]]></Implementation>
</Method>

<Method name="GetLadeUser">
<ClassMethod>1</ClassMethod>
<FormalSpec>userid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s userobj=##class(system.mitarb).%OpenId(userid)
	i userobj="" q ""
	s ladbez=userobj.pkassalade.bez1
	s ladid=userobj.pkassalade.%Id()
	d userobj.%Close()
	k userobj
	
	q $LB(ladid,ladbez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez1 FROM kassalade
WHERE loesw=0 and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.kassaladeD</DataLocation>
<DefaultData>kassaladeDefaultData</DefaultData>
<IdLocation>^param.kassaladeD</IdLocation>
<IndexLocation>^param.kassaladeI</IndexLocation>
<StreamLocation>^param.kassaladeS</StreamLocation>
<Data name="kassaladeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez1</Value>
</Value>
<Value name="5">
<Value>bez2</Value>
</Value>
<Value name="6">
<Value>bez3</Value>
</Value>
<Value name="7">
<Value>code</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>loesw</Value>
</Value>
<Value name="10">
<Value>nr</Value>
</Value>
<Value name="11">
<Value>ok</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>panlmitarb</Value>
</Value>
<Value name="20">
<Value>pupdmitarb</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.kgrp">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61112,37595.352883</TimeChanged>
<TimeCreated>61075,48827.162246</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Kundengruppe</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez,aktiv</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%,10%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>10%,50%</Default>
</Parameter>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
///////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.kgrpI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.kgrpI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.kgrpI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez FROM kgrp
 WHERE (loesw=0) and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.kgrpD</DataLocation>
<DefaultData>kgrpDefaultData</DefaultData>
<IdLocation>^param.kgrpD</IdLocation>
<IndexLocation>^param.kgrpI</IndexLocation>
<StreamLocation>^param.kgrpS</StreamLocation>
<Data name="kgrpDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>aktiv</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>pfiliale</Value>
</Value>
<Value name="18">
<Value>pmandant</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.lager">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61112,2009.806859</TimeChanged>
<TimeCreated>59921,85741.191897</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Lager</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,name1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,name1,name2</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>15%,40%,40%</Default>
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="name2">
<Type>%String</Type>
</Property>

<Property name="name3">
<Type>%String</Type>
</Property>

<Property name="adresse">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.lagerD</DataLocation>
<DefaultData>lagerDefaultData</DefaultData>
<IdLocation>^param.lagerD</IdLocation>
<IndexLocation>^param.lagerI</IndexLocation>
<StreamLocation>^param.lagerS</StreamLocation>
<Data name="lagerDefaultData">
<Structure>listnode</Structure>
<Subscript>"lager"</Subscript>
<Value name="1">
<Value>adresse</Value>
</Value>
<Value name="2">
<Value>bez</Value>
</Value>
<Value name="3">
<Value>kontakt</Value>
</Value>
<Value name="4">
<Value>name1</Value>
</Value>
<Value name="5">
<Value>name2</Value>
</Value>
<Value name="6">
<Value>name3</Value>
</Value>
<Value name="7">
<Value>kbez</Value>
</Value>
<Value name="8">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="9">
<Value>anldatum</Value>
</Value>
<Value name="10">
<Value>anlpers</Value>
</Value>
<Value name="11">
<Value>site</Value>
</Value>
<Value name="12">
<Value>upddatum</Value>
</Value>
<Value name="13">
<Value>updpers</Value>
</Value>
<Value name="14">
<Value>nr</Value>
</Value>
<Value name="15">
<Value>psite</Value>
</Value>
<Value name="16">
<Value>pquellsite</Value>
</Value>
<Value name="17">
<Value>empfaction</Value>
</Value>
<Value name="18">
<Value>route</Value>
</Value>
<Value name="19">
<Value>rtdelay</Value>
</Value>
<Value name="20">
<Value>rtdelete</Value>
</Value>
<Value name="21">
<Value>ok</Value>
</Value>
<Value name="22">
<Value>code</Value>
</Value>
<Value name="23">
<Value>loesw</Value>
</Value>
<Value name="24">
<Value>pfiliale</Value>
</Value>
<Value name="25">
<Value>pmandant</Value>
</Value>
<Value name="26">
<Value>anldatumzeit</Value>
</Value>
<Value name="27">
<Value>panlmitarb</Value>
</Value>
<Value name="28">
<Value>pupdmitarb</Value>
</Value>
<Value name="29">
<Value>upddatumzeit</Value>
</Value>
<Value name="30">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.land">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61127,25803.187735</TimeChanged>
<TimeCreated>61075,48827.174441</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Land</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
<Required>1</Required>
<Parameter name="CAPTION" value="Code"/>
</Property>

<Property name="bez">
<Type>%String</Type>
<Required>1</Required>
<Parameter name="CAPTION" value="Name"/>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.landI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.landI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.landI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT %ID,code,bez FROM land
 WHERE (loesw=0) and psite=:siteid
 order by code</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.landD</DataLocation>
<DefaultData>landDefaultData</DefaultData>
<IdLocation>^param.landD</IdLocation>
<IndexLocation>^param.landI</IndexLocation>
<StreamLocation>^param.landS</StreamLocation>
<Data name="landDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kbez</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>upddatum</Value>
</Value>
<Value name="13">
<Value>updpers</Value>
</Value>
<Value name="14">
<Value>ok</Value>
</Value>
<Value name="15">
<Value>code</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>pfiliale</Value>
</Value>
<Value name="18">
<Value>pmandant</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.meeinh">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,39241.825525</TimeChanged>
<TimeCreated>59921,85741.199989</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Mengeneinheit</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,40%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.meeinhI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.meeinhI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.meeinhI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez FROM meeinh
 WHERE (loesw=0) and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.meeinhD</DataLocation>
<DefaultData>meeinhDefaultData</DefaultData>
<IdLocation>^param.meeinhD</IdLocation>
<IndexLocation>^param.meeinhI</IndexLocation>
<StreamLocation>^param.meeinhS</StreamLocation>
<Data name="meeinhDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>loesw</Value>
</Value>
<Value name="16">
<Value>pfiliale</Value>
</Value>
<Value name="17">
<Value>pmandant</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>panlmitarb</Value>
</Value>
<Value name="20">
<Value>pupdmitarb</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.muenz">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,64043.248329</TimeChanged>
<TimeCreated>61075,48827.191843</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pic">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="wert">
<Type>%Float</Type>
</Property>

<Method name="ladenEuro">
<ClassMethod>1</ClassMethod>
<Implementation><![CDATA[
	d ##class(system.session).SetTestSession()
	
	k ^param.muenzD
	k ^param.muenzI
	k ^param.muenzS
	s dir="c:/software/kwws/muenz/"
	f m="1","2","5","10","20","50","100","200","500","1000","2000","5000","10000","20000","50000" d
	. s obj1=##class(param.muenz).%New()
	. s file=##class(%File).%New(dir_m_".png")
 	. d file.Open("RU")
 	. d obj1.pic.CopyFrom(file)
 	. d file.%Close()
 	. k file
 	. s obj1.wert=m/100
 	. d obj1.%Save()
 	. d obj1.%Close()
 	. k obj1
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT %ID,wert FROM muenz
WHERE loesw=0 and psite=:siteid</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.muenzD</DataLocation>
<DefaultData>muenzDefaultData</DefaultData>
<IdLocation>^param.muenzD</IdLocation>
<IndexLocation>^param.muenzI</IndexLocation>
<StreamLocation>^param.muenzS</StreamLocation>
<Data name="muenzDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>nr</Value>
</Value>
<Value name="7">
<Value>ok</Value>
</Value>
<Value name="8">
<Value>pic</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>wert</Value>
</Value>
<Value name="16">
<Value>anldatumzeit</Value>
</Value>
<Value name="17">
<Value>panlmitarb</Value>
</Value>
<Value name="18">
<Value>pupdmitarb</Value>
</Value>
<Value name="19">
<Value>upddatumzeit</Value>
</Value>
<Value name="20">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.mwcode">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,27263.922492</TimeChanged>
<TimeCreated>59921,85741.208009</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="mwproz">
<Type>%Float</Type>
</Property>

<Property name="pmwkonto">
<Type>stamm.konto</Type>
</Property>

<Property name="pvokonto">
<Type>stamm.konto</Type>
</Property>

<Property name="pskakonto">
<Type>stamm.konto</Type>
</Property>

<Property name="pskekonto">
<Type>stamm.konto</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Index name="mwproz">
<Properties>psite,loesw,mwproz</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.mwcodeI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),$J(..%OpenId(lid).mwproz,0,2)_" %")
	s nid=$O(^param.mwcodeI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),$J(..%OpenId(nid).mwproz,0,2)_" %")
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.mwcodeI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,$J(..%OpenId(nid).mwproz,0,2)_" %")
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,mwproz FROM mwcode
 WHERE (loesw=0) and psite=:siteid
 ORDER BY code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.mwcodeD</DataLocation>
<DefaultData>mwcodeDefaultData</DefaultData>
<IdLocation>^param.mwcodeD</IdLocation>
<IndexLocation>^param.mwcodeI</IndexLocation>
<StreamLocation>^param.mwcodeS</StreamLocation>
<Data name="mwcodeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>code</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>mwproz</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>ok</Value>
</Value>
<Value name="9">
<Value>pmwkonto</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>pskkonto</Value>
</Value>
<Value name="12">
<Value>pvokonto</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>loesw</Value>
</Value>
<Value name="19">
<Value>pskakonto</Value>
</Value>
<Value name="20">
<Value>pskekonto</Value>
</Value>
<Value name="21">
<Value>pfiliale</Value>
</Value>
<Value name="22">
<Value>pmandant</Value>
</Value>
<Value name="23">
<Value>anldatumzeit</Value>
</Value>
<Value name="24">
<Value>panlmitarb</Value>
</Value>
<Value name="25">
<Value>pupdmitarb</Value>
</Value>
<Value name="26">
<Value>upddatumzeit</Value>
</Value>
<Value name="27">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.param">
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,system.base</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.213264</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>gruppe,element</Properties>
<Unique>1</Unique>
</Index>

<Property name="gruppe">
<Type>%String</Type>
</Property>

<Property name="element">
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="inh">
<Type>%List</Type>
</Property>
</Class>
<Class name="param.plzzus">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,system.base</Super>
<TimeChanged>61134,39066.990288</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Zusätzliche Plz</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>plz,plzzus</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Plz,Zusätzliche Plz,Plz,..</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>plz</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>20%,70%</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,plz</Default>
</Parameter>

<Property name="land">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="plz">
<Type>%String</Type>
</Property>

<Property name="plzzus">
<Type>%List</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,land,plz</Properties>
</Index>

<Method name="getZusatz">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,land:%String,plz:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id=$O(^param.plzzusI("index",siteid,0," "_$ZCONVERT(land,"U")," "_$ZCONVERT(plz,"U"),""))	
	i id="" q ""
	
	s erg=""
	s obj1=##class(param.plzzus).%OpenId(id)
	i $L(obj1) s erg=obj1.plzzus d obj1.%Close() k obj1
	
	q erg
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.plzzusD</DataLocation>
<DefaultData>plzzusDefaultData</DefaultData>
<IdLocation>^param.plzzusD</IdLocation>
<IndexLocation>^param.plzzusI</IndexLocation>
<StreamLocation>^param.plzzusS</StreamLocation>
<Data name="plzzusDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatumzeit</Value>
</Value>
<Value name="3">
<Value>idkey</Value>
</Value>
<Value name="4">
<Value>kassa</Value>
</Value>
<Value name="5">
<Value>land</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>panlmitarb</Value>
</Value>
<Value name="8">
<Value>plz</Value>
</Value>
<Value name="9">
<Value>plzzus</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>pupdmitarb</Value>
</Value>
<Value name="12">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.post">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,system.base</Super>
<TimeChanged>61130,8822.140164</TimeChanged>
<TimeCreated>61075,48827.221939</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="id">
<Type>%Integer</Type>
</Property>

<Property name="ort">
<Type>%String</Type>
</Property>

<Property name="land">
<Type>%String</Type>
</Property>

<Property name="bezhm">
<Type>%String</Type>
</Property>

<Property name="bezger">
<Type>%String</Type>
</Property>

<Property name="gemeinde">
<Type>%String</Type>
</Property>

<Property name="plz">
<Type>%String</Type>
</Property>

<Property name="postamt">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>id</Properties>
<Unique>1</Unique>
</Index>

<Index name="plz">
<Properties>psite,loesw,plz</Properties>
</Index>

<Index name="ort">
<Properties>psite,loesw,ort</Properties>
</Index>

<Index name="land">
<Properties>psite,loesw,land</Properties>
</Index>

<Index name="gemeinde">
<Properties>psite,loesw,gemeinde</Properties>
</Index>

<Index name="postamt">
<Properties>psite,loesw,postamt</Properties>
</Index>

<Method name="Import">
<ClassMethod>1</ClassMethod>
<FormalSpec>file:%String=""</FormalSpec>
<Implementation><![CDATA[
	d ##class(system.session).SetTestSession()
	
	s file1=file
	i file1="" s file1="c:/software/kwws/doks/postlexikon.csv"
	s f=##class(%FileCharacterStream).%New()
	s f.Filename=file1
	s n=0,u=0,tr=";"
	s line=f.ReadLine()
	f  q:f.AtEnd  d
	. s line=f.ReadLine()
	. s id=$P(line,tr,1)
	. s obj=..%OpenId(id)
	. i obj="" s obj=..%New() s n=n+1 i 1
	. e  s u=u+1
	. s obj.id=id,obj.ort=$P(line,tr,2)
	. s obj.land=$P(line,tr,3)
	. s obj.bezhm=$P(line,tr,4)
	. s obj.bezger=$P(line,tr,5)
	. s obj.gemeinde=$P(line,tr,6)
	. s obj.plz=$P(line,tr,7)
	. s obj.postamt=$P(line,tr,8)
	. d obj.%Save()
	. d obj.%Close()
	k obj
	k f
	w n," neue Objekte",!
	w u," geänderte Objekte",!
	
	d ##class(system.session).KillSession()
	
	q
]]></Implementation>
</Method>

<Query name="land">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT distinct land FROM post
WHERE psite=:siteid and loesw=0
ORDER by land</SqlQuery>
</Query>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,suland:%String,sutxt:%String</FormalSpec>
<SqlQuery>SELECT distinct %Id,land,plz,postamt,ort FROM post
WHERE psite=:siteid and loesw=0 and (land=:suland or :suland is null) and upper(ort) like :sutxt 
ORDER by ort</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.postD</DataLocation>
<DefaultData>postDefaultData</DefaultData>
<IdLocation>^param.postD</IdLocation>
<IndexLocation>^param.postI</IndexLocation>
<StreamLocation>^param.postS</StreamLocation>
<Data name="postDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatumzeit</Value>
</Value>
<Value name="3">
<Value>bezger</Value>
</Value>
<Value name="4">
<Value>bezhm</Value>
</Value>
<Value name="5">
<Value>gemeinde</Value>
</Value>
<Value name="6">
<Value>idkey</Value>
</Value>
<Value name="7">
<Value>kassa</Value>
</Value>
<Value name="8">
<Value>land</Value>
</Value>
<Value name="9">
<Value>loesw</Value>
</Value>
<Value name="10">
<Value>ort</Value>
</Value>
<Value name="11">
<Value>panlmitarb</Value>
</Value>
<Value name="12">
<Value>plz</Value>
</Value>
<Value name="13">
<Value>postamt</Value>
</Value>
<Value name="14">
<Value>psite</Value>
</Value>
<Value name="15">
<Value>pupdmitarb</Value>
</Value>
<Value name="16">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.prliste">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,39971.928242</TimeChanged>
<TimeCreated>59921,85741.228735</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Preisliste(Preiskennzeichen)</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,typ,bez,vondat,bisdat,bisdatjn</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,10%,30%,15%,15%,10%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,typ,code</Default>
</Parameter>

<Property name="typ">
<Description>
//////////////////////////////////////////////////////////////
typ Kunde/Lieferant</Description>
<Type>%String</Type>
</Property>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="vondat">
<Type>%Date</Type>
</Property>

<Property name="bisdat">
<Type>%Date</Type>
</Property>

<Property name="bisdatjn">
<Type>%Boolean</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,typ,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String,typ:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.prlisteI("index",siteid,0," "_$ZCONVERT(typ,"U"),$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^param.prlisteI("index",siteid,0," "_$ZCONVERT(typ,"U"),ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String,typ:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.prlisteI("index",siteid,0," "_$ZCONVERT(typ,"U")," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="listek">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez,vondat,bisdat,bisdatjn FROM prliste
 WHERE (loesw=0) and (typ="K") and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="listel">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,bez,vondat,bisdat,bisdatjn FROM prliste
 WHERE (loesw=0) and (typ="L") and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.prlisteD</DataLocation>
<DefaultData>prlisteDefaultData</DefaultData>
<IdLocation>^param.prlisteD</IdLocation>
<IndexLocation>^param.prlisteI</IndexLocation>
<StreamLocation>^param.prlisteS</StreamLocation>
<Data name="prlisteDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>bisdat</Value>
</Value>
<Value name="6">
<Value>bisdatjn</Value>
</Value>
<Value name="7">
<Value>code</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>typ</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>vondat</Value>
</Value>
<Value name="19">
<Value>loesw</Value>
</Value>
<Value name="20">
<Value>pfiliale</Value>
</Value>
<Value name="21">
<Value>pmandant</Value>
</Value>
<Value name="22">
<Value>anldatumzeit</Value>
</Value>
<Value name="23">
<Value>panlmitarb</Value>
</Value>
<Value name="24">
<Value>pupdmitarb</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
<Value name="26">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.serial">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61092,27537.946285</TimeChanged>
<TimeCreated>59921,85741.236632</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="class">
<Type>%String</Type>
</Property>

<Property name="param1">
<Description>
Parameter wie Kassanr,Belegart oder Typ;</Description>
<Type>%String</Type>
</Property>

<Property name="param2">
<Type>%String</Type>
</Property>

<Property name="pwj">
<Type>param.wj</Type>
</Property>

<Property name="nextnr">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>class,param1,param2,pwj</Properties>
</Index>

<Method name="GetLastnr">
<ClassMethod>1</ClassMethod>
<FormalSpec>class:%String,idwj:%String,param1:%String,param2:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	ZA ^param.serialD
	
	s id=$O(^param.serialI("index"," "_$ZConvert(class,"U")," "_$ZCONVERT(param1,"U")," "_$ZCONVERT(param2,"U"),idwj,""))
	i $L(id) s obj1=##class(param.serial).%OpenId(id) I 1
	E  d
	. s obj1=##class(param.serial).%New()
	. s obj1.class=class,obj1.param1=param1,obj1.param2=param2
	. d obj1.pwjSetObjectId(idwj)
	s lastnr=obj1.nextnr-1 s:+lastnr=-1 lastnr=""
	d obj1.%Close() k obj1
	
	ZD ^param.serialD
	q lastnr
]]></Implementation>
</Method>

<Method name="GetNextnr">
<ClassMethod>1</ClassMethod>
<FormalSpec>class:%String,idwj:%String,param1:%String,param2:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	ZA ^param.serialD
	
	s id=$O(^param.serialI("index"," "_$ZConvert(class,"U")," "_$ZCONVERT(param1,"U")," "_$ZCONVERT(param2,"U"),idwj,""))
	i $L(id) s obj1=##class(param.serial).%OpenId(id) I 1
	E  d
	. s obj1=##class(param.serial).%New()
	. s obj1.class=class,obj1.param1=param1,obj1.param2=param2
	. d obj1.pwjSetObjectId(idwj)
	s nextnr=obj1.nextnr s:nextnr="" nextnr=1
	s obj1.nextnr=nextnr+1
	d obj1.%Save(),obj1.%Close() k obj1
	
	ZD ^param.serialD
	q nextnr
]]></Implementation>
</Method>

<Method name="getKassaJn">
<ClassMethod>1</ClassMethod>
<FormalSpec>belart:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	s id=$O(^param.belartI("index"," "_$ZCONVERT(belart,"U"),""))
	i id="" q 0
	s obj1=##class(param.belart).%OpenId(id)
	s kassasw=obj1.kassanrsw
	d obj1.%Close()
	k obj1
	q kassasw
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.serialD</DataLocation>
<DefaultData>serialDefaultData</DefaultData>
<IdLocation>^param.serialD</IdLocation>
<IndexLocation>^param.serialI</IndexLocation>
<StreamLocation>^param.serialS</StreamLocation>
<Data name="serialDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>class</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>nextnr</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>param</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>pwj</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>param1</Value>
</Value>
<Value name="17">
<Value>param2</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.standort">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61110,34586.764808</TimeChanged>
<TimeCreated>61075,48827.242156</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Standort</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,name1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,name1,name2</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>15%,40%,40%</Default>
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="pfirma">
<Type>param.firma</Type>
</Property>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="name2">
<Type>%String</Type>
</Property>

<Property name="adresse">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Property name="uid">
<Type>%String</Type>
</Property>

<Property name="iln">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.standortD</DataLocation>
<DefaultData>standortDefaultData</DefaultData>
<IdLocation>^param.standortD</IdLocation>
<IndexLocation>^param.standortI</IndexLocation>
<StreamLocation>^param.standortS</StreamLocation>
<Data name="standortDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>bez1</Value>
</Value>
<Value name="3">
<Value>bez2</Value>
</Value>
<Value name="4">
<Value>bez3</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>anldatum</Value>
</Value>
<Value name="7">
<Value>anlpers</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>loesw</Value>
</Value>
<Value name="10">
<Value>nr</Value>
</Value>
<Value name="11">
<Value>ok</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>land</Value>
</Value>
<Value name="19">
<Value>name</Value>
</Value>
<Value name="20">
<Value>ort</Value>
</Value>
<Value name="21">
<Value>plz</Value>
</Value>
<Value name="22">
<Value>strasse</Value>
</Value>
<Value name="23">
<Value>telefon</Value>
</Value>
<Value name="24">
<Value>pfirma</Value>
</Value>
<Value name="25">
<Value>name1</Value>
</Value>
<Value name="26">
<Value>telefax</Value>
</Value>
<Value name="27">
<Value>adresse</Value>
</Value>
<Value name="28">
<Value>kontakt</Value>
</Value>
<Value name="29">
<Value>name2</Value>
</Value>
<Value name="30">
<Value>iln</Value>
</Value>
<Value name="31">
<Value>uid</Value>
</Value>
<Value name="32">
<Value>anldatumzeit</Value>
</Value>
<Value name="33">
<Value>panlmitarb</Value>
</Value>
<Value name="34">
<Value>pupdmitarb</Value>
</Value>
<Value name="35">
<Value>upddatumzeit</Value>
</Value>
<Value name="36">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.text">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,27584.814432</TimeChanged>
<TimeCreated>59921,85741.243833</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="text">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Index name="index">
<Properties>psite,loesw,kbez</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.textD</DataLocation>
<DefaultData>textDefaultData</DefaultData>
<IdLocation>^param.textD</IdLocation>
<IndexLocation>^param.textI</IndexLocation>
<StreamLocation>^param.textS</StreamLocation>
<Data name="textDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kbez</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>text</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>pfiliale</Value>
</Value>
<Value name="18">
<Value>pmandant</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.titel">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61127,19093.746823</TimeChanged>
<TimeCreated>59921,85741.250529</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Titel</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>bez</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
<Default>Titel</Default>
</Parameter>

<Parameter name="TableSortColumns">
<Default>bez</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>85%</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>bez</Default>
</Parameter>

<Property name="bez">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,bez</Properties>
</Index>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,bez FROM titel
 WHERE (loesw=0) and psite=:siteid
 ORDER BY bez</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.titelD</DataLocation>
<DefaultData>titelDefaultData</DefaultData>
<IdLocation>^param.titelD</IdLocation>
<IndexLocation>^param.titelI</IndexLocation>
<StreamLocation>^param.titelS</StreamLocation>
<Data name="titelDefaultData">
<Structure>listnode</Structure>
<Subscript>"titel"</Subscript>
<Value name="1">
<Value>titel</Value>
</Value>
<Value name="2">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>site</Value>
</Value>
<Value name="6">
<Value>upddatum</Value>
</Value>
<Value name="7">
<Value>updpers</Value>
</Value>
<Value name="8">
<Value>nr</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>pquellsite</Value>
</Value>
<Value name="11">
<Value>empfaction</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>bez</Value>
</Value>
<Value name="17">
<Value>loesw</Value>
</Value>
<Value name="18">
<Value>pfiliale</Value>
</Value>
<Value name="19">
<Value>pmandant</Value>
</Value>
<Value name="20">
<Value>anldatumzeit</Value>
</Value>
<Value name="21">
<Value>panlmitarb</Value>
</Value>
<Value name="22">
<Value>pupdmitarb</Value>
</Value>
<Value name="23">
<Value>upddatumzeit</Value>
</Value>
<Value name="24">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.verband">
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,41386.23912</TimeChanged>
<TimeCreated>59921,85741.255541</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Verband</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez1,bez2,bez3</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%,30%,20%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>
</Class>
<Class name="param.wargr">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,27657.713778</TimeChanged>
<TimeCreated>59921,85741.262345</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>

<Property name="pparent">
<Type>param.wargr</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^param.wargrI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez1)
	s nid=$O(^param.wargrI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez1)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^param.wargrI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez1)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,code,bez1,pparent->code FROM wargr
 WHERE (loesw=0) and (psite=:siteid)
 order by $$deep^KWWSWARGR(%ID)]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.wargrD</DataLocation>
<DefaultData>wargrDefaultData</DefaultData>
<IdLocation>^param.wargrD</IdLocation>
<IndexLocation>^param.wargrI</IndexLocation>
<StreamLocation>^param.wargrS</StreamLocation>
<Data name="wargrDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez1</Value>
</Value>
<Value name="5">
<Value>bez2</Value>
</Value>
<Value name="6">
<Value>bez3</Value>
</Value>
<Value name="7">
<Value>code</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>pparent</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>loesw</Value>
</Value>
<Value name="19">
<Value>pfiliale</Value>
</Value>
<Value name="20">
<Value>pmandant</Value>
</Value>
<Value name="21">
<Value>anldatumzeit</Value>
</Value>
<Value name="22">
<Value>panlmitarb</Value>
</Value>
<Value name="23">
<Value>pupdmitarb</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
<Value name="25">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.wj">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61136,31147.090373</TimeChanged>
<TimeCreated>59921,85741.269631</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Wirtschaftsjahr</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>jahr,vondat,bisdat</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
<Default>QLineEdit,KDateEdit,KDateEdit</Default>
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>jahr</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,20%,20%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>jahr</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>jahr,jahr</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>jahr</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>jahr</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>jahr</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,jahr</Default>
</Parameter>

<Property name="jahr">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="vondat">
<Type>%Date</Type>
</Property>

<Property name="bisdat">
<Type>%Date</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.wjD</DataLocation>
<DefaultData>wjDefaultData</DefaultData>
<IdLocation>^param.wjD</IdLocation>
<IndexLocation>^param.wjI</IndexLocation>
<StreamLocation>^param.wjS</StreamLocation>
<Data name="wjDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bisdat</Value>
</Value>
<Value name="5">
<Value>nr</Value>
</Value>
<Value name="6">
<Value>site</Value>
</Value>
<Value name="7">
<Value>upddatum</Value>
</Value>
<Value name="8">
<Value>updpers</Value>
</Value>
<Value name="9">
<Value>vondat</Value>
</Value>
<Value name="10">
<Value>jahr</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>pquellsite</Value>
</Value>
<Value name="13">
<Value>empfaction</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>ok</Value>
</Value>
<Value name="18">
<Value>loesw</Value>
</Value>
<Value name="19">
<Value>pfiliale</Value>
</Value>
<Value name="20">
<Value>pmandant</Value>
</Value>
<Value name="21">
<Value>anldatumzeit</Value>
</Value>
<Value name="22">
<Value>panlmitarb</Value>
</Value>
<Value name="23">
<Value>pupdmitarb</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
<Value name="25">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.zahlungsm">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,40739.27427</TimeChanged>
<TimeCreated>59921,85741.276383</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Zahlungsmittel</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez,rabsw,bonussw,kennung</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,30%,10%,10%,20%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="rabsw">
<Type>%Boolean</Type>
</Property>

<Property name="bonussw">
<Type>%Boolean</Type>
</Property>

<Property name="kennung">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Index name="kennung">
<Properties>psite,loesw,kennung</Properties>
</Index>

<Method name="getBonus">
<ClassMethod>1</ClassMethod>
<FormalSpec>code</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^param.zahlungsmI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i id="" q 0
	s erg=0
	s objzm=##class(param.zahlungsm).%OpenId(id)
	i objzm'="" s erg=objzm.bonussw d objzm.%Close()
	k objzm
	
	q erg
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.zahlungsmD</DataLocation>
<DefaultData>zahlungsmDefaultData</DefaultData>
<IdLocation>^param.zahlungsmD</IdLocation>
<IndexLocation>^param.zahlungsmI</IndexLocation>
<StreamLocation>^param.zahlungsmS</StreamLocation>
<Data name="zahlungsmDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez1</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kbez</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>upddatum</Value>
</Value>
<Value name="13">
<Value>updpers</Value>
</Value>
<Value name="14">
<Value>ok</Value>
</Value>
<Value name="15">
<Value>loesw</Value>
</Value>
<Value name="16">
<Value>pfiliale</Value>
</Value>
<Value name="17">
<Value>pmandant</Value>
</Value>
<Value name="18">
<Value>bonussw</Value>
</Value>
<Value name="19">
<Value>code</Value>
</Value>
<Value name="20">
<Value>kennung</Value>
</Value>
<Value name="21">
<Value>rabsw</Value>
</Value>
<Value name="22">
<Value>bez</Value>
</Value>
<Value name="23">
<Value>anldatumzeit</Value>
</Value>
<Value name="24">
<Value>panlmitarb</Value>
</Value>
<Value name="25">
<Value>pupdmitarb</Value>
</Value>
<Value name="26">
<Value>upddatumzeit</Value>
</Value>
<Value name="27">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="param.zk">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61109,41040.198338</TimeChanged>
<TimeCreated>59921,85741.28429</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Einstellungen für Gui-QT</Description>
<Default>Zahlungskondition</Default>
</Parameter>

<Parameter name="TableColumns">
<Default>code,bez,proz1,tage1,proz2,tage2,tage3</Default>
</Parameter>

<Parameter name="TableColumnsEditor">
</Parameter>

<Parameter name="TableColumnsTitel">
</Parameter>

<Parameter name="TableSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="TableColWidth">
<Default>10%,20%,10%,10%,10%,10%,10%</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez</Default>
</Parameter>

<UDLText name="T">
<Content><![CDATA[
//Parameter NavColWidth = "10%,70%";

]]></Content>
</UDLText>

<Parameter name="ComboSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="ComboCodeColumns">
<Default>code,bez</Default>
</Parameter>

<Parameter name="DbInitMethod">
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
//////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="proz1">
<Type>%Float</Type>
</Property>

<Property name="tage1">
<Type>%Integer</Type>
</Property>

<Property name="proz2">
<Type>%Float</Type>
</Property>

<Property name="tage2">
<Type>%Integer</Type>
</Property>

<Property name="tage3">
<Type>%Integer</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^param.zkD</DataLocation>
<DefaultData>zkDefaultData</DefaultData>
<IdLocation>^param.zkD</IdLocation>
<IndexLocation>^param.zkI</IndexLocation>
<StreamLocation>^param.zkS</StreamLocation>
<Data name="zkDefaultData">
<Structure>listnode</Structure>
<Subscript>"zk"</Subscript>
<Value name="1">
<Value>bez</Value>
</Value>
<Value name="2">
<Value>proz1</Value>
</Value>
<Value name="3">
<Value>proz2</Value>
</Value>
<Value name="4">
<Value>tage1</Value>
</Value>
<Value name="5">
<Value>tage2</Value>
</Value>
<Value name="6">
<Value>tage3</Value>
</Value>
<Value name="7">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="8">
<Value>anldatum</Value>
</Value>
<Value name="9">
<Value>anlpers</Value>
</Value>
<Value name="10">
<Value>site</Value>
</Value>
<Value name="11">
<Value>upddatum</Value>
</Value>
<Value name="12">
<Value>updpers</Value>
</Value>
<Value name="13">
<Value>nr</Value>
</Value>
<Value name="14">
<Value>psite</Value>
</Value>
<Value name="15">
<Value>pquellsite</Value>
</Value>
<Value name="16">
<Value>empfaction</Value>
</Value>
<Value name="17">
<Value>route</Value>
</Value>
<Value name="18">
<Value>rtdelay</Value>
</Value>
<Value name="19">
<Value>rtdelete</Value>
</Value>
<Value name="20">
<Value>ok</Value>
</Value>
<Value name="21">
<Value>loesw</Value>
</Value>
<Value name="22">
<Value>code</Value>
</Value>
<Value name="23">
<Value>pfiliale</Value>
</Value>
<Value name="24">
<Value>pmandant</Value>
</Value>
<Value name="25">
<Value>anldatumzeit</Value>
</Value>
<Value name="26">
<Value>panlmitarb</Value>
</Value>
<Value name="27">
<Value>pupdmitarb</Value>
</Value>
<Value name="28">
<Value>upddatumzeit</Value>
</Value>
<Value name="29">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.aktion">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,30014.871279</TimeChanged>
<TimeCreated>61075,48827.313657</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="abdat">
<Type>%Date</Type>
</Property>

<Property name="bisdat">
<Type>%Date</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,abdat,code</Properties>
</Index>

<Index name="index1">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode="",abdat=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code,abdat=..%OpenId(lid).abdat
	s ncode="" i $L(abdat) s ncode=$O(^stamm.aktionI("index",siteid,0,abdat,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" s abdat=$O(^stamm.aktionI("index",siteid,0,abdat),$S(lr="R":1,1:-1)) i $L(abdat) s ncode=$O(^stamm.aktionI("index",siteid,0,abdat,""),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).bez)
	s nid=$O(^stamm.aktionI("index",siteid,0,abdat,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,$E(ncode,2,99),..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^stamm.aktionI("index1",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).bez)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,code,bez,abdat,bisdat FROM aktion
 WHERE (loesw=0) and bisdat>59900 and psite=:siteid
 order by abdat]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.aktionD</DataLocation>
<DefaultData>aktionDefaultData</DefaultData>
<IdLocation>^stamm.aktionD</IdLocation>
<IndexLocation>^stamm.aktionI</IndexLocation>
<StreamLocation>^stamm.aktionS</StreamLocation>
<Data name="aktionDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abdat</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>bez</Value>
</Value>
<Value name="6">
<Value>bisdat</Value>
</Value>
<Value name="7">
<Value>code</Value>
</Value>
<Value name="8">
<Value>empfaction</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>loesw</Value>
</Value>
<Value name="18">
<Value>pfiliale</Value>
</Value>
<Value name="19">
<Value>pmandant</Value>
</Value>
<Value name="20">
<Value>anldatumzeit</Value>
</Value>
<Value name="21">
<Value>panlmitarb</Value>
</Value>
<Value name="22">
<Value>pupdmitarb</Value>
</Value>
<Value name="23">
<Value>upddatumzeit</Value>
</Value>
<Value name="24">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.artbrutto">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12143.912657</TimeChanged>
<TimeCreated>61075,48827.319749</TimeCreated>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>kbez</Properties>
<Unique>1</Unique>
</Index>

<Property name="artlief">
<Type>stamm.artlief</Type>
<Cardinality>parent</Cardinality>
<Inverse>brutto</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="brutto">
<Type>%Float</Type>
</Property>

<Property name="preinh">
<Type>param.meeinh</Type>
</Property>

<Property name="pbeeinh">
<Type>param.meeinh</Type>
</Property>

<Property name="prme">
<Type>%Float</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("brutto")</DataLocation>
<DefaultData>artbruttoDefaultData</DefaultData>
<IdLocation>^stamm.artliefD("brutto")</IdLocation>
<IndexLocation>^stamm.artbruttoI</IndexLocation>
<StreamLocation>^stamm.artbruttoS</StreamLocation>
<Data name="artbruttoDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>brutto</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>pbeeinh</Value>
</Value>
<Value name="7">
<Value>preinh</Value>
</Value>
<Value name="8">
<Value>prme</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>route</Value>
</Value>
<Value name="11">
<Value>rtdelay</Value>
</Value>
<Value name="12">
<Value>rtdelete</Value>
</Value>
<Value name="13">
<Value>upddatum</Value>
</Value>
<Value name="14">
<Value>updpers</Value>
</Value>
<Value name="15">
<Value>bez</Value>
</Value>
<Value name="16">
<Value>site</Value>
</Value>
<Value name="17">
<Value>loesw</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.artikel">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,basis.artmasse,basis.artbez,basis.averband,basis.artber,%Persistent</Super>
<TimeChanged>61118,57323.750724</TimeChanged>
<TimeCreated>61075,48827.332526</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Artikel</Default>
</Parameter>

<Parameter name="NavSortColumn">
<Default>kbez</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>anr,bez1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>anr,bez1</Default>
</Parameter>

<Property name="DefEan">
<Description>
Zugriffsfelder</Description>
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Property name="Eantable">
<Type>%List</Type>
<Calculated>1</Calculated>
</Property>

<Property name="Einhtab">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Property name="Lagerstand">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Property name="VkPreise">
<Type>%List</Type>
<Calculated>1</Calculated>
</Property>

<Property name="anr">
<Description>
////////////////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="artvk">
<Type>stamm.artvk</Type>
<Cardinality>children</Cardinality>
<Inverse>artikel</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pabt">
<Type>param.abt</Type>
<Parameter name="SELECTIVITY" value="20.00000%"/>
</Property>

<Property name="pdeflager">
<Type>stamm.artlager</Type>
</Property>

<Property name="lager">
<Type>stamm.artlager</Type>
<Cardinality>children</Cardinality>
<Inverse>artikel</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pwargr">
<Type>param.wargr</Type>
<Parameter name="SELECTIVITY" value="1.00000%"/>
</Property>

<Property name="pbewcode">
<Type>param.bewcode</Type>
</Property>

<Property name="pdefeinh">
<Type>param.meeinh</Type>
</Property>

<Property name="vkkonto">
<Type>basis.artkontierung</Type>
</Property>

<Property name="ekkonto">
<Type>basis.artkontierung</Type>
</Property>

<Property name="nkkonto">
<Type>basis.artkontierung</Type>
</Property>

<Property name="einh">
<Description>
key=id von param.meeinh</Description>
<Type>basis.arteinh</Type>
<Collection>array</Collection>
</Property>

<Property name="bewpreis">
<Type>%Float</Type>
</Property>

<Property name="ean">
<Type>stamm.ean</Type>
<Cardinality>children</Cardinality>
<Inverse>artikel</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="parttyp">
<Type>param.arttyp</Type>
</Property>

<Property name="picture">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="folge">
<Type>basis.artfolge</Type>
<Collection>list</Collection>
</Property>

<Property name="kbezall">
<Type>%List</Type>
<Calculated>1</Calculated>
</Property>

<Property name="pdeflief">
<Type>stamm.artlief</Type>
</Property>

<Property name="lief">
<Type>stamm.artlief</Type>
<Cardinality>children</Cardinality>
<Inverse>artikel</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="keyid">
<Properties>psite,loesw,anr</Properties>
</Index>

<Index name="keyabtnr">
<Properties>psite,loesw,pabt</Properties>
</Index>

<Index name="keywargr">
<Properties>psite,loesw,pwargr</Properties>
</Index>

<Index name="keykbez">
<Properties>psite,loesw,kbez</Properties>
</Index>

<Index name="keyvean">
<Properties>psite,loesw,vean</Properties>
</Index>

<Index name="keyvanr">
<Properties>psite,loesw,vanr</Properties>
</Index>

<Method name="SearchArtikel">
<ClassMethod>1</ClassMethod>
<FormalSpec>userid:%String,sutxt:%String,abtnrid:%String="",wargrid:%String="",aktiv:%Boolean=1</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	q $$SearchArtikel^KWWSART(userid,sutxt,$G(abtnrid),$G(wargrid),$G(aktiv))
]]></Implementation>
</Method>

<Method name="%OnNew">
<FormalSpec>InitialValue:%CacheString</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	I $G(InitialValue)="0" Q $$$OK

	s ..anr="NEU"
	S id=$O(^param.meeinhI("index",siteid,0," ST",""))
	i $L(id) d
	. d ..pdefeinhSetObjectId(id)
	. s obj1=##class(basis.arteinh).%New()
	. s obj1.faktor=1
	. s obj1.einh=..pdefeinh
	. d ..einh.SetAt(obj1,id)
	. d obj1.%Close()
	. k obj1
	s id=$O(^param.mwcodeI("index",siteid,0," 2",""))
	i $L(id) d ..pmwcodeSetObjectId(id)
	
	Q $$$OK
]]></Implementation>
</Method>

<Method name="%OnAfterSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	;Löschen gemerkte Verkaufspreise
	I +Insert=0 s id="" f  s obj1=..artvk.GetNext(.id) q:obj1=""  d
	. i obj1.delsw d obj1.%DeleteId(..%Id()_"||"_obj1.pprliste.%Id()_"||"_obj1.abdatum)
	
	s bez=$ZCONVERT(..bez1_..bez2,"U")
	s bez1="" F i=1:1:$L(bez) d
	. s c=$E(bez,i)
	. i c="Ä" s bez1=bez1_"AE"
	. e  i c="Ö" s bez1=bez1_"OE"
	. e  i c="Ü" s bez1=bez1_"UE"
	. e  i c="ß" s bez1=bez1_"SS"
	. e  s bez1=bez1_c
	s idart=..%Id()
	s siteid=..psite.siteid
	&sql(delete from stamm.artmatch where site=:siteid and partikel=:idart)
	I $L(bez1) d
	. s sysobj1=##class(stamm.artmatch).%New()
	. s sysobj1.siteid=siteid
	. d sysobj1.partikelSetObjectId(idart)
	. s sysobj1.sutext=bez1
	. d sysobj1.%Save()
	. d sysobj1.%Close()
	I $L(..kbez) d
	. s sysobj1=##class(stamm.artmatch).%New()
	. s sysobj1.siteid=siteid
	. d sysobj1.partikelSetObjectId(idart)
	. s sysobj1.sutext=..kbez
	. d sysobj1.%Save()
	. d sysobj1.%Close()
	s key="" f  s kbez1=..kbez1.GetNext(.key) q:key=""  d
	. s sysobj1=##class(stamm.artmatch).%New()
	. s sysobj1.siteid=siteid
	. d sysobj1.partikelSetObjectId(idart)
	. s sysobj1.sutext=kbez1
	. d sysobj1.%Save()
	. d sysobj1.%Close()
	k sysobj1
	;
	q $$$OK
]]></Implementation>
</Method>

<Method name="%OnDelete">
<ClassMethod>1</ClassMethod>
<FormalSpec>OID:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s sysobj1=##class(stamm.artikel).%Open(OID)
	s id=sysobj1.%Id()
	d sysobj1.%Close()
	k sysobj1
	&sql(delete from stamm.artmatch where partikel=:id)
	q $$$OK
]]></Implementation>
</Method>

<Method name="kbezallGet">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s i=0,kbez=""
	s key="" f  s kbez1=..kbez1.GetNext(.key) q:key=""  d
	. s i=i+1,$LI(kbez,i)=kbez1
	Q kbez
]]></Implementation>
</Method>

<Method name="EinhtabGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",erg="",n=0
	f  s ehobj=..einh.GetNext(.id) q:ehobj=""  d
	. s n=n+1,$LI(erg,n)=$LB(ehobj.einh.bez,ehobj.faktor,ehobj.einh.%Id())
	Quit erg
]]></Implementation>
</Method>

<Method name="EinhtabSet">
<FormalSpec>einh:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	d ..einh.Clear()
	f i=1:1:$LL(einh) d
	. s einh1=$LI(einh,i)
	. q:einh1=""
	. s ideinh=$LI(einh1,1),faktor=$LI(einh1,2)
	. s obj1=##class(basis.arteinh).%New()
	. s obj1.faktor=faktor
	. d obj1.einhSetObjectId(ideinh)
	. d obj1.%Close()
	. d ..einh.SetAt(obj1,ideinh)
	k obj1
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="kbezallSet">
<FormalSpec>Arg:%List</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	d ..kbez1.Clear()
	f i=1:1:$LL(Arg) d ..kbez1.Insert($LI(Arg,i))
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="DefEanGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",erg="",n=0
	f  s eanobj=..ean.GetNext(.id) q:eanobj=""  d  q:$L(erg)
	. i eanobj.defean s erg=eanobj.ean
	Quit erg
]]></Implementation>
</Method>

<Method name="EantableGet">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s id="",erg="",n=0
	f  s eanobj=..ean.GetNext(.id) q:eanobj=""  d
	. s n=n+1,$LI(erg,n)=$LB(eanobj.ean,eanobj.faktor,eanobj.defean)
	Quit erg
]]></Implementation>
</Method>

<Method name="EantableSet">
<FormalSpec>ean:%List</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	d ..ean.Clear()
	f i=1:1:$LL(ean) d
	. s ean1=$LI(ean,i)
	. q:ean1=""
	. s ean13=$LI(ean1,1),faktor=$LI(ean1,2),defean=$LI(ean1,3)
	. s obj1=##class(stamm.ean).%New()
	. s obj1.ean=ean13
	. s obj1.defean=defean
	. s obj1.faktor=faktor
	. s obj1.aktiv=1
	. d obj1.%Close()
	. d ..ean.Insert(obj1)
	k obj1
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="LagerstandGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",n=0,erg=""
	f  s obj1=..lager.GetNext(.id) q:obj1=""  d
	. s lager="" I $L(obj1.plager) s lager=obj1.plager.bez1
	. s einh="" I $L(..pdefeinh) s einh=..pdefeinh.bez
	. s n=n+1,$LI(erg,n)=$LB(lager,$J(obj1.menge,0,4),einh)
	. d obj1.%Close()
	k obj1
	Quit erg
]]></Implementation>
</Method>

<Method name="VkPreiseGet">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	
	s id="" k tab
	f  s obj2=..artvk.GetNext(.id) q:obj2=""  d
	. i obj2.delsw q
	. s vkexcl=$LI(obj2.preis.GetAt(1),1)
	. s bisdatum=obj2.bisdatum I $L(bisdatum) s bisdatum=$ZD(bisdatum,3)
	. s tab(obj2.abdatum,id)=$LB(id,$ZD(obj2.abdatum,3),obj2.pprliste.code,obj2.paktion.code,bisdatum,obj2.prme_" "_obj2.peinh.code,$FN(vkexcl,".",4),$FN(vkexcl*(100+..pmwcode.mwproz)/100,".",2))
	k obj2
	s erg="",n=0
	s dat="" f  s dat=$O(tab(dat)) q:dat=""  d
	. s id="" f  s id=$O(tab(dat,id)) q:id=""  d
	.. s n=n+1,$LI(erg,n)=tab(dat,id)
	Quit erg
]]></Implementation>
</Method>

<Method name="CheckDatum">
<FormalSpec>datum:%Date,pprliste:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s key="",sw=0
	f  s obj1=..artvk.GetNext(.key) q:obj1=""  d  q:+sw
	. i obj1.abdatum=datum,obj1.pprliste.%Id()=pprliste,obj1.delsw=0 s sw=1
	k obj1
	q sw
]]></Implementation>
</Method>

<Method name="Lock">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	ZA ^stamm.artikel(..%Id()):3
	E  q 0
	q 1
]]></Implementation>
</Method>

<Method name="UnLock">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	ZD ^stamm.artikel(..%Id())
	q 1
]]></Implementation>
</Method>

<Method name="GetVkp">
<ClassMethod>1</ClassMethod>
<FormalSpec>anrid:%String,datum:%Date,menge:%Float,schiene:%Integer,incl:%Boolean,manrab:%Float=0,ean:%String=""</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s objart=##class(stamm.artikel).%OpenId(anrid)
	s skontosw=objart.skontosw
	i menge=0 s menge=1
	i menge<0 s menge=-menge
	s minpreis=""
	s idprliste="" f  s idprliste=$O(^stamm.artikelD(anrid,"artvk",idprliste)) Q:idprliste=""  d
	. s objprliste=##class(param.prliste).%OpenId(idprliste)
	. q:objprliste=""
	. s bisdatjn=objprliste.bisdatjn
	. d objprliste.%Close()
	. ;
	. s datum1=datum+1
	. s sw=0
	. s datum1=$O(^stamm.artikelD(anrid,"artvk",idprliste,datum1),-1) q:datum1=""  d  q:+sw
	.. s id=$O(^stamm.artikelD(anrid,"artvk",idprliste,datum1,"preis",""))
	.. q:id=""
	.. s objpr=##class(stamm.artvk).%OpenId(anrid_"||"_idprliste_"||"_datum1)
	.. q:objpr=""
	.. i +bisdatjn,datum>objpr.bisdatum d objpr.%Close() q
	.. ;gültiger Preis gefunden
	.. s sw=1
	.. s me="" f  s pr=objpr.preis.GetNext(.me) q:pr=""  s st(me)=pr
	.. s st=$O(st(menge+1),-1) i st="" q
	.. s preis=st(st) 
	.. i $LI(preis,schiene)<minpreis!(minpreis="") d
	... s minpreis=$LI(preis,schiene)
	... s prme=objpr.prme
	... s (idpeinh,peinhbez)="",faktor=1 i $L(objpr.peinh) s idpeinh=objpr.peinh.%Id(),peinhbez=objpr.peinh.bez,faktor=objart.einh.GetAt(idpeinh).faktor
	... s idprliste=objpr.pprliste.%Id(),prlistebez=objpr.pprliste.bez
	... s (idaktion,aktionbez)="" 
	... I $L(objpr.paktion) s idaktion=objpr.paktion.%Id(),aktionbez=objpr.paktion.bez
	.. d objpr.%Close()
	
	i minpreis="" d objart.%Close() k objprliste,objpr,objart Q ""
	
	s (rab1,rab2,rab3)=""
	i +manrab s rab3=manrab
	s brutto=minpreis
	s netto=$J(brutto*(100-rab1/100)*(100-rab2/100)*(100-rab3/100),0,4)
	
	i +incl d
	. s mwproz=objart.pmwcode.mwproz
	. s netto=$J(brutto*(100+mwproz)/100,0,2)
	d objart.%Close()
	k objprliste,objpr,objart

	s est=""
	s erg=$$bruttoest^KWWEAN(ean) //Brutto/Einstand von EAN
	i $L(erg) d
	. i $L($LI(erg,1)) s brutto=$LI(erg,1),rab1="",rab2=""
	. i $L($LI(erg,2)) s est=$LI(erg,2)

	q $LB(me,brutto,prme,idpeinh,peinhbez,faktor,idprliste,prlistebez,idaktion,aktionbez,skontosw,rab1,rab2,rab3,netto,est)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.artikelD</DataLocation>
<DefaultData>artikelDefaultData</DefaultData>
<IdLocation>^stamm.artikelD</IdLocation>
<IndexLocation>^stamm.artikelI</IndexLocation>
<StreamLocation>^stamm.artikelS</StreamLocation>
<Data name="artikelDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktiv</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>anr</Value>
</Value>
<Value name="6">
<Value>bewpreis</Value>
</Value>
<Value name="7">
<Value>bez1</Value>
</Value>
<Value name="8">
<Value>bez2</Value>
</Value>
<Value name="9">
<Value>bez3</Value>
</Value>
<Value name="10">
<Value>breite</Value>
</Value>
<Value name="11">
<Value>ekkonto</Value>
</Value>
<Value name="12">
<Value>empfaction</Value>
</Value>
<Value name="13">
<Value>folge</Value>
</Value>
<Value name="14">
<Value>gew</Value>
</Value>
<Value name="15">
<Value>hoehe</Value>
</Value>
<Value name="16">
<Value>info</Value>
</Value>
<Value name="17">
<Value>kbez</Value>
</Value>
<Value name="18">
<Value>kbez1</Value>
</Value>
<Value name="19">
<Value>loesw</Value>
</Value>
<Value name="20">
<Value>masseeinh</Value>
</Value>
<Value name="21">
<Value>nkkonto</Value>
</Value>
<Value name="22">
<Value>notiz</Value>
</Value>
<Value name="23">
<Value>nr</Value>
</Value>
<Value name="24">
<Value>ok</Value>
</Value>
<Value name="25">
<Value>pabt</Value>
</Value>
<Value name="26">
<Value>parttyp</Value>
</Value>
<Value name="27">
<Value>pbewcode</Value>
</Value>
<Value name="28">
<Value>pdefeinh</Value>
</Value>
<Value name="29">
<Value>pdeflager</Value>
</Value>
<Value name="30">
<Value>pdeflief</Value>
</Value>
<Value name="31">
<Value>picture</Value>
</Value>
<Value name="32">
<Value>pmwcode</Value>
</Value>
<Value name="33">
<Value>psite</Value>
</Value>
<Value name="34">
<Value>pwargr</Value>
</Value>
<Value name="35">
<Value>rabvkjn</Value>
</Value>
<Value name="36">
<Value>route</Value>
</Value>
<Value name="37">
<Value>rtdelay</Value>
</Value>
<Value name="38">
<Value>rtdelete</Value>
</Value>
<Value name="39">
<Value>skontosw</Value>
</Value>
<Value name="40">
<Value>text</Value>
</Value>
<Value name="41">
<Value>tiefe</Value>
</Value>
<Value name="42">
<Value>upddatum</Value>
</Value>
<Value name="43">
<Value>updpers</Value>
</Value>
<Value name="44">
<Value>vanr</Value>
</Value>
<Value name="45">
<Value>vean</Value>
</Value>
<Value name="46">
<Value>vkkonto</Value>
</Value>
<Value name="47">
<Value>vlistkz</Value>
</Value>
<Value name="48">
<Value>anldatumzeit</Value>
</Value>
<Value name="49">
<Value>panlmitarb</Value>
</Value>
<Value name="50">
<Value>pupdmitarb</Value>
</Value>
<Value name="51">
<Value>upddatumzeit</Value>
</Value>
<Value name="52">
<Value>kassa</Value>
</Value>
</Data>
<Data name="einh">
<Attribute>einh</Attribute>
<Structure>subnode</Structure>
<Subscript>"einh"</Subscript>
</Data>
</Storage>
</Class>
<Class name="stamm.artkond">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,system.baser</Super>
<TimeChanged>61076,12144.277719</TimeChanged>
<TimeCreated>59921,85741.331742</TimeCreated>

<Property name="artlief">
<Type>stamm.artlief</Type>
<Cardinality>parent</Cardinality>
<Inverse>kond</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="bisdatum">
<Type>%Date</Type>
</Property>

<Property name="paktion">
<Type>stamm.aktion</Type>
</Property>

<Property name="pprliste">
<Type>param.prliste</Type>
</Property>

<Property name="pbrutto">
<Type>stamm.artbrutto</Type>
</Property>

<Property name="pekgrp">
<Type>param.ekgrp</Type>
</Property>

<Property name="mstaffel">
<Description>
key=menge ab</Description>
<Type>basis.artek</Type>
<Collection>array</Collection>
</Property>

<Property name="wstaffel">
<Description>
key=wert ab</Description>
<Type>basis.artek</Type>
<Collection>array</Collection>
</Property>

<Property name="pzuabbasis">
<Type>stamm.artzuab</Type>
</Property>

<Property name="zuabfakt">
<Type>%Float</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>pprliste,datum</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("kond")</DataLocation>
<DefaultData>artkondDefaultData</DefaultData>
<IdLocation>^stamm.artliefC("kond")</IdLocation>
<IndexLocation>^stamm.artkondI</IndexLocation>
<StreamLocation>^stamm.artkondS</StreamLocation>
<Data name="artkondDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bisdatum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>paktion</Value>
</Value>
<Value name="7">
<Value>pbrutto</Value>
</Value>
<Value name="8">
<Value>pekgrp</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>pzuabbasis</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>zuabfakt</Value>
</Value>
<Value name="17">
<Value>site</Value>
</Value>
<Value name="18">
<Value>loesw</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="mstaffel">
<Attribute>mstaffel</Attribute>
<Structure>subnode</Structure>
<Subscript>"mstaffel"</Subscript>
</Data>
<Data name="wstaffel">
<Attribute>wstaffel</Attribute>
<Structure>subnode</Structure>
<Subscript>"wstaffel"</Subscript>
</Data>
</Storage>
</Class>
<Class name="stamm.artlager">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12138.874989</TimeChanged>
<TimeCreated>59921,85741.340353</TimeCreated>

<Property name="artikel">
<Type>stamm.artikel</Type>
<Cardinality>parent</Cardinality>
<Inverse>lager</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="plager">
<Type>param.lager</Type>
</Property>

<Property name="menge">
<Type>%Float</Type>
</Property>

<Property name="mengezug">
<Description>
key=Zugangsdatum</Description>
<Type>%Float</Type>
<Collection>array</Collection>
</Property>

<Property name="mengeabl">
<Description>
key=Ablaufdatum</Description>
<Type>%Float</Type>
<Collection>array</Collection>
</Property>

<Property name="mengeest">
<Description>
key=Einstand</Description>
<Type>%Float</Type>
<Collection>array</Collection>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>plager</Properties>
<Unique>1</Unique>
</Index>

<Method name="GetLagerExecute">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[&qHandle:%Binary,objid:%String]]></FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s qHandle=$LB(objid,"","")
	s obj1=##class(stamm.artikel).%OpenId(objid)
	s id=""
	K ^XW($J,objid)
	f  s obj2=obj1.lager.GetNext(.id) q:obj2=""  d
	. s lager=obj2.plager.bez1
	. s ^XW($J,objid,lager,id)=$LB(id,lager,$J(obj2.menge,0,4),obj1.pdefeinh.bez)
	d obj1.%Close()
	k obj1,obj2
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="GetLagerFetch">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[&qHandle:%Binary,&Row:%List,&AtEnd:%Integer=0]]></FormalSpec>
<PlaceAfter>GetLagerExecute</PlaceAfter>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s objid=$LI(qHandle,1),lager=$LI(qHandle,2),id=$LI(qHandle,3)
S1	i id="" s lager=$O(^XW($J,objid,lager)) i lager="" s AtEnd=1,Row="" Q $$$OK
	s id=$O(^XW($J,objid,lager,id)) g:id="" S1
	s Row=^(id)
	s qHandle=$LB(objid,lager,id)
	Quit $$$OK
]]></Implementation>
</Method>

<Query name="GetLager">
<Type>%Query</Type>
<FormalSpec>objid:%String</FormalSpec>
<SqlQuery>	</SqlQuery>
<Parameter name="ROWSPEC" value="id:%String,Lager:%String,Menge:%Float,Einheit:%String"/>
</Query>

<Method name="GetLagerClose">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[&qHandle:%Binary]]></FormalSpec>
<PlaceAfter>GetLagerExecute</PlaceAfter>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s objid=$LI(qHandle,1)
	K ^XW($J,objid)
	Quit $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("lager")</DataLocation>
<DefaultData>artlagerDefaultData</DefaultData>
<IdLocation>^stamm.artikelC("lager")</IdLocation>
<IndexLocation>^stamm.artlagerI</IndexLocation>
<StreamLocation>^stamm.artlagerS</StreamLocation>
<Data name="artlagerDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>menge</Value>
</Value>
<Value name="6">
<Value>psite</Value>
</Value>
<Value name="7">
<Value>route</Value>
</Value>
<Value name="8">
<Value>rtdelay</Value>
</Value>
<Value name="9">
<Value>rtdelete</Value>
</Value>
<Value name="10">
<Value>upddatum</Value>
</Value>
<Value name="11">
<Value>updpers</Value>
</Value>
<Value name="12">
<Value>plager</Value>
</Value>
<Value name="13">
<Value>site</Value>
</Value>
<Value name="14">
<Value>loesw</Value>
</Value>
<Value name="15">
<Value>anldatumzeit</Value>
</Value>
<Value name="16">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="mengeabl">
<Attribute>mengeabl</Attribute>
<Structure>subnode</Structure>
<Subscript>"mengeabl"</Subscript>
</Data>
<Data name="mengeest">
<Attribute>mengeest</Attribute>
<Structure>subnode</Structure>
<Subscript>"mengeest"</Subscript>
</Data>
<Data name="mengezug">
<Attribute>mengezug</Attribute>
<Structure>subnode</Structure>
<Subscript>"mengezug"</Subscript>
</Data>
</Storage>
</Class>
<Class name="stamm.artlief">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12139.102574</TimeChanged>
<TimeCreated>59921,85741.3531</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="artikel">
<Type>stamm.artikel</Type>
<Cardinality>parent</Cardinality>
<Inverse>lief</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="plief">
<Type>stamm.lief</Type>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="bestnr">
<Type>%String</Type>
</Property>

<Property name="beean">
<Type>%String</Type>
</Property>

<Property name="mibeme">
<Type>%Float</Type>
</Property>

<Property name="pdefbrutto">
<Type>stamm.artbrutto</Type>
</Property>

<Property name="brutto">
<Type>stamm.artbrutto</Type>
<Cardinality>children</Cardinality>
<Inverse>artlief</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="kond">
<Type>stamm.artkond</Type>
<Cardinality>children</Cardinality>
<Inverse>artlief</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pfremdw">
<Type>param.fremdw</Type>
</Property>

<Property name="nebkost">
<Description>
key=Bezeichnungs Nebenkosten</Description>
<Type>%Float</Type>
<Collection>array</Collection>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>plief</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("lief")</DataLocation>
<DefaultData>artliefDefaultData</DefaultData>
<IdLocation>^stamm.artikelD("lief")</IdLocation>
<IndexLocation>^stamm.artliefI</IndexLocation>
<StreamLocation>^stamm.artliefS</StreamLocation>
<Data name="artliefDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktiv</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>beean</Value>
</Value>
<Value name="6">
<Value>bestnr</Value>
</Value>
<Value name="7">
<Value>empfaction</Value>
</Value>
<Value name="8">
<Value>mibeme</Value>
</Value>
<Value name="9">
<Value>pdefbrutto</Value>
</Value>
<Value name="10">
<Value>pfremdw</Value>
</Value>
<Value name="11">
<Value>plief</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>site</Value>
</Value>
<Value name="19">
<Value>loesw</Value>
</Value>
<Value name="20">
<Value>anldatumzeit</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="brutto">
<Attribute>brutto</Attribute>
<Structure>subnode</Structure>
<Subscript>"brutto"</Subscript>
</Data>
<Data name="nebkost">
<Attribute>nebkost</Attribute>
<Structure>subnode</Structure>
<Subscript>"nebkost"</Subscript>
</Data>
<Data name="pbrutto">
<Attribute>pbrutto</Attribute>
<Structure>subnode</Structure>
<Subscript>"pbrutto"</Subscript>
</Data>
</Storage>
</Class>
<Class name="stamm.artmatch">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48827.360803</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="site">
<Type>%String</Type>
</Property>

<Property name="sutext">
<Type>%String</Type>
</Property>

<Property name="partikel">
<Type>stamm.artikel</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>sutext</Properties>
<Unique>1</Unique>
</Index>

<Index name="artikel">
<Properties>partikel</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.artmatchD</DataLocation>
<DefaultData>artmatchDefaultData</DefaultData>
<IdLocation>^stamm.artmatchD</IdLocation>
<IndexLocation>^stamm.artmatchI</IndexLocation>
<StreamLocation>^stamm.artmatchS</StreamLocation>
<Data name="artmatchDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>partikel</Value>
</Value>
<Value name="3">
<Value>site</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.artvk">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61092,27995.700776</TimeChanged>
<TimeCreated>59921,85741.359795</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="PreisStaffel">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Property name="delsw">
<Type>%Boolean</Type>
</Property>

<Property name="pprliste">
<Type>param.prliste</Type>
</Property>

<Property name="paktion">
<Type>stamm.aktion</Type>
</Property>

<Property name="abdatum">
<Type>%Date</Type>
</Property>

<Property name="artikel">
<Type>stamm.artikel</Type>
<Cardinality>parent</Cardinality>
<Inverse>artvk</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="bisdatum">
<Type>%Date</Type>
</Property>

<Property name="peinh">
<Type>param.meeinh</Type>
</Property>

<Property name="prme">
<Type>%Float</Type>
</Property>

<Property name="kfsoll">
<Type>%Float</Type>
</Property>

<Property name="preis">
<Description>
key=menge ab</Description>
<Type>%List</Type>
<Collection>array</Collection>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>pprliste,abdatum</Properties>
<Unique>1</Unique>
</Index>

<Index name="aktion">
<Properties>psite,loesw,paktion,pprliste,abdatum</Properties>
</Index>

<Method name="PreisStaffelGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s me="",pr="",n=0
	f  s inh=..preis.GetNext(.me) q:inh=""  d
	. s pr1=$LI(inh,1),pr2=$LI(inh,2),pr3=$LI(inh,3),pr4=$LI(inh,4)
	. s pr1incl=pr1*(100+..artikel.pmwcode.mwproz)/100
	. s spa="0.00 %" i +pr1 s spa=$J(pr1-..artikel.bewpreis/pr1*100,0,2)_" %"
	. s n=n+1,$LI(pr,n)=$LB(me,$FN(pr1,".",4),$FN(pr1incl,".",2),spa,$FN(pr2,".",4),$FN(pr3,".",4),$FN(pr4,".",4))
	Quit pr
]]></Implementation>
</Method>

<Method name="PreisStaffelSet">
<FormalSpec>preise:%List</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	d ..preis.Clear()
	F i=1:1:$LL(preise) d
	. s preis=$LI(preise,i)
	. d ..preis.SetAt($LB($LI(preis,2),$LI(preis,3),$LI(preis,4),$LI(preis,5)),$LI(preis,1))
	Quit $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("artvk")</DataLocation>
<DefaultData>artvkDefaultData</DefaultData>
<IdLocation>^stamm.artikelD("artvk")</IdLocation>
<IndexLocation>^stamm.artvkI</IndexLocation>
<StreamLocation>^stamm.artvkS</StreamLocation>
<Data name="artvkDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bisdatum</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kfsoll</Value>
</Value>
<Value name="7">
<Value>paktion</Value>
</Value>
<Value name="8">
<Value>peinh</Value>
</Value>
<Value name="9">
<Value>prme</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>delsw</Value>
</Value>
<Value name="17">
<Value>loesw</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>upddatumzeit</Value>
</Value>
</Data>
<Data name="preis">
<Attribute>preis</Attribute>
<Structure>subnode</Structure>
<Subscript>"preis"</Subscript>
</Data>
</Storage>
</Class>
<Class name="stamm.artzuab">
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,28013.945054</TimeChanged>
<TimeCreated>59921,85741.364837</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="preis">
<Type>%Float</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,kbez,datum</Properties>
</Index>
</Class>
<Class name="stamm.ean">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61092,28029.121205</TimeChanged>
<TimeCreated>59921,85741.37259</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="ean">
<Type>%String</Type>
<Parameter name="MAXLEN" value="13"/>
<Parameter name="MINLEN" value="8"/>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="defean">
<Type>%Boolean</Type>
</Property>

<Property name="faktor">
<Type>%Float</Type>
</Property>

<Property name="artikel">
<Type>stamm.artikel</Type>
<Cardinality>parent</Cardinality>
<Inverse>ean</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="keyean">
<Properties>psite,loesw,ean,aktiv,artikel</Properties>
</Index>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>psite,ean</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("ean")</DataLocation>
<DefaultData>eanDefaultData</DefaultData>
<IdLocation>^stamm.artikelD("ean")</IdLocation>
<IndexLocation>^stamm.eanI</IndexLocation>
<StreamLocation>^stamm.eanS</StreamLocation>
<Data name="eanDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktiv</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>faktor</Value>
</Value>
<Value name="7">
<Value>psite</Value>
</Value>
<Value name="8">
<Value>route</Value>
</Value>
<Value name="9">
<Value>rtdelay</Value>
</Value>
<Value name="10">
<Value>rtdelete</Value>
</Value>
<Value name="11">
<Value>upddatum</Value>
</Value>
<Value name="12">
<Value>updpers</Value>
</Value>
<Value name="13">
<Value>defean</Value>
</Value>
<Value name="14">
<Value>loesw</Value>
</Value>
<Value name="15">
<Value>anldatumzeit</Value>
</Value>
<Value name="16">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.gsbon">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,28106.429306</TimeChanged>
<TimeCreated>61075,48827.385335</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pgutstyp">
<Type>param.zahlungsm</Type>
</Property>

<Property name="gsnr">
<Type>%String</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Property name="adatum">
<Type>%Date</Type>
</Property>

<Property name="edatum">
<Type>%Date</Type>
</Property>

<Property name="paknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="peknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="bonussw">
<Type>%Boolean</Type>
</Property>

<Property name="abeleg">
<Description>
$LB(belart,belnr)</Description>
<Type>%List</Type>
</Property>

<Property name="ebeleg">
<Description>
$LB(belart,belnr)</Description>
<Type>%List</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,gsnr</Properties>
</Index>

<Method name="GetGsbon">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String,kassa:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)

	s gsnrm=""
	s id=$O(^param.zahlungsmI("kennung",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i $L(id) d  q:$L(gsnrm) $LB(gsnrm,+$H,"","")
	. s objgsart=##class(param.zahlungsm).%OpenId(id)
	. i $L(objgsart) d
	.. s jj=$E($ZD($H),9,10)
	.. s gsnrm=$E(objgsart.code,2)_"M"_kassa_$E(100000+$P($H,",",2),2,6)
	.. d objgsart.%Close()
	q:'(gsnr?.N) $LB("","","","")

	i $L(gsnr)=13 d  q:$L(gsnr)=13 $LB("","","","")
	. s erg=$$GET^KWWEAN(gsnr) 
	. i +$P(erg,"|",1)=5 s gsnr=+$P(erg,"|",2)	
	
	s id=$O(^stamm.gsbonI("index",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i id="" q $LB(gsnr,"","","")
	s objgs=##class(stamm.gsbon).%OpenId(id)
	i objgs="" q $LB(gsnr,"","","")
	s erg=$LB(gsnr,objgs.adatum,objgs.betrag,objgs.edatum,objgs.ebeleg)
	d objgs.%Close()
	k objgs,objgsart
	
	q erg
]]></Implementation>
</Method>

<Method name="getBonus">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^stamm.gsbonI("index",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i id="" q 1
	
	s erg=1
	s objgs=##class(stamm.gsbon).%OpenId(id)
	i $L(objgs) s erg=objgs.bonussw d objgs.%Close()
	k objgs
	
	q erg
]]></Implementation>
</Method>

<Method name="SetAusstellung">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String,adatum:%Date,betrag:%Float,aknrid:%String,abeleg:%List,bonussw:%Boolean=1,komm:%Boolean=1</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^stamm.gsbonI("index",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i id="" s objgs=##class(stamm.gsbon).%New() s objgs.gsnr=gsnr
	e  s objgs=##class(stamm.gsbon).%OpenId(id)
	s objgs.adatum=adatum,objgs.betrag=betrag,objgs.abeleg=abeleg,objgs.bonussw=bonussw
    i aknrid'="" d objgs.paknrSetObjectId(aknrid)
	d objgs.%Save(),objgs.%Close()
	k objgs
	q 1
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.gsbonD</DataLocation>
<DefaultData>gsbonDefaultData</DefaultData>
<IdLocation>^stamm.gsbonD</IdLocation>
<IndexLocation>^stamm.gsbonI</IndexLocation>
<StreamLocation>^stamm.gsbonS</StreamLocation>
<Data name="gsbonDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abeleg</Value>
</Value>
<Value name="3">
<Value>adatum</Value>
</Value>
<Value name="4">
<Value>anldatum</Value>
</Value>
<Value name="5">
<Value>anlpers</Value>
</Value>
<Value name="6">
<Value>betrag</Value>
</Value>
<Value name="7">
<Value>bonussw</Value>
</Value>
<Value name="8">
<Value>ebeleg</Value>
</Value>
<Value name="9">
<Value>edatum</Value>
</Value>
<Value name="10">
<Value>empfaction</Value>
</Value>
<Value name="11">
<Value>gsnr</Value>
</Value>
<Value name="12">
<Value>loesw</Value>
</Value>
<Value name="13">
<Value>nr</Value>
</Value>
<Value name="14">
<Value>ok</Value>
</Value>
<Value name="15">
<Value>paknr</Value>
</Value>
<Value name="16">
<Value>peknr</Value>
</Value>
<Value name="17">
<Value>pgutstyp</Value>
</Value>
<Value name="18">
<Value>psite</Value>
</Value>
<Value name="19">
<Value>route</Value>
</Value>
<Value name="20">
<Value>rtdelay</Value>
</Value>
<Value name="21">
<Value>rtdelete</Value>
</Value>
<Value name="22">
<Value>upddatum</Value>
</Value>
<Value name="23">
<Value>updpers</Value>
</Value>
<Value name="24">
<Value>anldatumzeit</Value>
</Value>
<Value name="25">
<Value>panlmitarb</Value>
</Value>
<Value name="26">
<Value>pupdmitarb</Value>
</Value>
<Value name="27">
<Value>upddatumzeit</Value>
</Value>
<Value name="28">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.gutschein">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61098,59296.138327</TimeChanged>
<TimeCreated>59921,85741.380871</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Gutschein</Default>
</Parameter>

<Parameter name="NavSortColumn">
<Default>adatum</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>gsnr,adatum</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>gsnr,adatum,betrag,paknr.person.name.name2</Default>
</Parameter>

<Parameter name="NavColumnsTitel">
<Default>Nummer,A-Datum,Betrag,Kunde</Default>
</Parameter>

<Property name="pgutstyp">
<Type>param.zahlungsm</Type>
</Property>

<Property name="gsnr">
<Type>%String</Type>
</Property>

<Property name="betrag">
<Type>%Float</Type>
</Property>

<Property name="adatum">
<Type>%Date</Type>
</Property>

<Property name="edatum">
<Type>%Date</Type>
</Property>

<Property name="paknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="peknr">
<Type>stamm.kunde</Type>
</Property>

<Property name="bonussw">
<Type>%Boolean</Type>
</Property>

<Property name="abeleg">
<Description>
$LB(belart,belnr)</Description>
<Type>%List</Type>
</Property>

<Property name="ebeleg">
<Description>
$LB(belart,belnr)</Description>
<Type>%List</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,gsnr</Properties>
</Index>

<Method name="GetGutschein">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String,kassa:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)

	s gsnrm=""
	s id=$O(^param.zahlungsmI("kennung",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i $L(id) d  q:$L(gsnrm) $LB(gsnrm,+$H,"","")
	. s objgsart=##class(param.zahlungsm).%OpenId(id)
	. i $L(objgsart) d
	.. s jj=$E($ZD($H),9,10)
	.. s gsnrm=$E(objgsart.code,2)_"M"_kassa_$E(100000+$P($H,",",2),2,6)
	.. d objgsart.%Close()
	q:'(gsnr?.N) $LB("","","","")

	i $L(gsnr)=13 d  q:$L(gsnr)=13 $LB("","","","")
	. s erg=$$GET^KWWEAN(gsnr) 
	. i +$P(erg,"|",1)=4 s gsnr=+$P(erg,"|",2)
	
	i $L(gsnr)'=8 q $LB("","","","")	
	
	s id=$O(^stamm.gutscheinI("index",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i id="" q $LB(gsnr,"","","")
	s objgs=##class(stamm.gutschein).%OpenId(id)
	i objgs="" q $LB(gsnr,"","","")
	s erg=$LB(gsnr,objgs.adatum,objgs.betrag,objgs.edatum,objgs.ebeleg)
	d objgs.%Close()
	k objgs,objgsart
	
	q erg
]]></Implementation>
</Method>

<Method name="getBonus">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^stamm.gutscheinI("index",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i id="" q 1
	
	s erg=1
	s objgs=##class(stamm.gutschein).%OpenId(id)
	i $L(objgs) s erg=objgs.bonussw d objgs.%Close()
	k objgs
	
	q erg
]]></Implementation>
</Method>

<Method name="SetAusstellung">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String,adatum:%Date,betrag:%Float,aknrid:%String,abeleg:%List,bonussw:%Boolean=1,komm:%Boolean=1,gstyp:%String=""</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^stamm.gutscheinI("index",siteid,0," "_$ZCONVERT(gsnr,"U"),""))
	i id="" s objgs=##class(stamm.gutschein).%New() s objgs.gsnr=gsnr
	e  s objgs=##class(stamm.gutschein).%OpenId(id)
	s objgs.adatum=adatum,objgs.betrag=betrag,objgs.abeleg=abeleg,objgs.bonussw=bonussw
    i aknrid'="" d objgs.paknrSetObjectId(aknrid)
    i gstyp="" s gstyp="D"_$E(gsnr,1,1)
    s gstypid=$O(^param.zahlungsmI("index",siteid,0," "_$ZCONVERT(gstyp,"U"),""))
    i $L(gstypid) d objgs.pgutstypSetObjectId(gstypid)
	d objgs.%Save(),objgs.%Close()
	k objgs
	q 1
]]></Implementation>
</Method>

<Method name="GetBetrag">
<ClassMethod>1</ClassMethod>
<FormalSpec>gsnr:%String,system:%String</FormalSpec>
<ReturnType>%Float</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s erg=$LB(1)
	
	i system="default" d
	. i $L(gsnr)'=13,$L(gsnr)'=8 s erg=LB(1) q
	. i $L(gsnr)=13,$E(gsnr,1,4)'="2204" s erg=$LB(2) q
	. i $L(gsnr)=13 s gsnr=$E(gsnr,5,12)
	. 
	. I $D(^stamm.gutscheinI("index",siteid,0," "_$ZCONVERT(gsnr,"U"))) s erg=$LB(3) q
	. 
	. s betrag=0
	. i $E(gsnr,4)="5" s betrag=10
	. i $E(gsnr,4)="6" s betrag=50
	. i $E(gsnr,4)="7" s betrag=100
	. s erg=$LB(gsnr,betrag)
	
	q erg
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.gutscheinD</DataLocation>
<DefaultData>gutscheinDefaultData</DefaultData>
<IdLocation>^stamm.gutscheinD</IdLocation>
<IndexLocation>^stamm.gutscheinI</IndexLocation>
<StreamLocation>^stamm.gutscheinS</StreamLocation>
<Data name="gutscheinDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>adatum</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>betrag</Value>
</Value>
<Value name="6">
<Value>edatum</Value>
</Value>
<Value name="7">
<Value>empfaction</Value>
</Value>
<Value name="8">
<Value>gsnr</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>pabeleg</Value>
</Value>
<Value name="11">
<Value>pebeleg</Value>
</Value>
<Value name="12">
<Value>pgstyp</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>upddatum</Value>
</Value>
<Value name="18">
<Value>updpers</Value>
</Value>
<Value name="19">
<Value>pqbeleg</Value>
</Value>
<Value name="20">
<Value>pgutstyp</Value>
</Value>
<Value name="21">
<Value>abeleg</Value>
</Value>
<Value name="22">
<Value>ebeleg</Value>
</Value>
<Value name="23">
<Value>qbeleg</Value>
</Value>
<Value name="24">
<Value>info</Value>
</Value>
<Value name="25">
<Value>ok</Value>
</Value>
<Value name="26">
<Value>loesw</Value>
</Value>
<Value name="27">
<Value>pfiliale</Value>
</Value>
<Value name="28">
<Value>pmandant</Value>
</Value>
<Value name="29">
<Value>paknr</Value>
</Value>
<Value name="30">
<Value>peknr</Value>
</Value>
<Value name="31">
<Value>bonussw</Value>
</Value>
<Value name="32">
<Value>kennung</Value>
</Value>
<Value name="33">
<Value>anldatumzeit</Value>
</Value>
<Value name="34">
<Value>panlmitarb</Value>
</Value>
<Value name="35">
<Value>pupdmitarb</Value>
</Value>
<Value name="36">
<Value>upddatumzeit</Value>
</Value>
<Value name="37">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.katalog">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,28267.391023</TimeChanged>
<TimeCreated>61075,48827.401967</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="katalog">
<Type>%String</Type>
</Property>

<Property name="anr">
<Type>stamm.artikel</Type>
</Property>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="sort">
<Type>%String</Type>
</Property>

<Index name="katalog">
<Properties>psite,loesw,katalog,sort</Properties>
</Index>

<Query name="katalog">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT distinct katalog FROM katalog
 WHERE psite=:siteid and loesw=0
 ORDER BY katalog</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="listealph">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,katalog:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %Id,anr->anr,bez,sort FROM katalog
 WHERE katalog=:katalog and loesw=0 and psite=:siteid
 ORDER BY sort,bez]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.katalogD</DataLocation>
<DefaultData>katalogDefaultData</DefaultData>
<IdLocation>^stamm.katalogD</IdLocation>
<IndexLocation>^stamm.katalogI</IndexLocation>
<StreamLocation>^stamm.katalogS</StreamLocation>
<Data name="katalogDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>anr</Value>
</Value>
<Value name="5">
<Value>bez</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>katalog</Value>
</Value>
<Value name="8">
<Value>loesw</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>sort</Value>
</Value>
<Value name="18">
<Value>anldatumzeit</Value>
</Value>
<Value name="19">
<Value>panlmitarb</Value>
</Value>
<Value name="20">
<Value>pupdmitarb</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
<Value name="22">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.konto">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,28280.564177</TimeChanged>
<TimeCreated>59921,85741.425775</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="pskkonto">
<Type>stamm.konto</Type>
</Property>

<Property name="pkost">
<Description>
key=Prozentsatz</Description>
<Type>stamm.kost</Type>
<Collection>array</Collection>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.kontoD</DataLocation>
<DefaultData>kontoDefaultData</DefaultData>
<IdLocation>^stamm.kontoD</IdLocation>
<IndexLocation>^stamm.kontoI</IndexLocation>
<StreamLocation>^stamm.kontoS</StreamLocation>
<Data name="kontoDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez1</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>konto</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>upddatum</Value>
</Value>
<Value name="13">
<Value>updpers</Value>
</Value>
<Value name="14">
<Value>pskkonto</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>code</Value>
</Value>
<Value name="18">
<Value>kbez</Value>
</Value>
<Value name="19">
<Value>bez2</Value>
</Value>
<Value name="20">
<Value>pfiliale</Value>
</Value>
<Value name="21">
<Value>pmandant</Value>
</Value>
<Value name="22">
<Value>anldatumzeit</Value>
</Value>
<Value name="23">
<Value>panlmitarb</Value>
</Value>
<Value name="24">
<Value>pupdmitarb</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
<Value name="26">
<Value>kassa</Value>
</Value>
</Data>
<Data name="pkost">
<Attribute>pkost</Attribute>
<Structure>subnode</Structure>
<Subscript>"pkost"</Subscript>
</Data>
</Storage>
</Class>
<Class name="stamm.kost">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61096,62145.028493</TimeChanged>
<TimeCreated>59922,78548.889052</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Kostenstellen</Default>
</Parameter>

<Parameter name="NavSortColumn">
<Default>kbez</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code,bez1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code,bez1,bez2</Default>
</Parameter>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.kostD</DataLocation>
<DefaultData>kostDefaultData</DefaultData>
<IdLocation>^stamm.kostD</IdLocation>
<IndexLocation>^stamm.kostI</IndexLocation>
<StreamLocation>^stamm.kostS</StreamLocation>
<Data name="kostDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bez</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kost</Value>
</Value>
<Value name="7">
<Value>nr</Value>
</Value>
<Value name="8">
<Value>psite</Value>
</Value>
<Value name="9">
<Value>route</Value>
</Value>
<Value name="10">
<Value>rtdelay</Value>
</Value>
<Value name="11">
<Value>rtdelete</Value>
</Value>
<Value name="12">
<Value>upddatum</Value>
</Value>
<Value name="13">
<Value>updpers</Value>
</Value>
<Value name="14">
<Value>bez1</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>code</Value>
</Value>
<Value name="18">
<Value>bez2</Value>
</Value>
<Value name="19">
<Value>kbez</Value>
</Value>
<Value name="20">
<Value>pfiliale</Value>
</Value>
<Value name="21">
<Value>pmandant</Value>
</Value>
<Value name="22">
<Value>anldatumzeit</Value>
</Value>
<Value name="23">
<Value>panlmitarb</Value>
</Value>
<Value name="24">
<Value>pupdmitarb</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
<Value name="26">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.kuadr">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12144.587386</TimeChanged>
<TimeCreated>61075,48827.422171</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="code">
<Type>%String</Type>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="notiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="info1">
<Type>%String</Type>
</Property>

<Property name="info2">
<Type>%String</Type>
</Property>

<Property name="pfzone">
<Type>param.fzone</Type>
</Property>

<Property name="kunde">
<Type>stamm.kunde</Type>
<Cardinality>parent</Cardinality>
<Inverse>adr</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="kperson">
<Type>stamm.kuadrperson</Type>
<Cardinality>children</Cardinality>
<Inverse>kuadr</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>code</Properties>
<Unique>1</Unique>
</Index>

<Method name="NewPerson">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s persobj=##class(stamm.kuadrperson).%New()
	s ref=$H
	s persobj.funktion=ref
	d ..kperson.Insert(persobj)
	d persobj.%Close()
	s id="",idpers=""
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d  q:$L(idpers)
	. i persobj.funktion=ref s persobj.funktion="",idpers=id
	k persobj
	q idpers
]]></Implementation>
</Method>

<Method name="testKuadr">
<ClassMethod>1</ClassMethod>
<FormalSpec>o:%Persistent</FormalSpec>
<Implementation><![CDATA[
	
	i +o.adr.Count() q  
	s bau=##class(stamm.kuadr).%New()
	s bau.code="0"
	s bau.person.name.kbez=o.person.name.kbez
	s bau.person.name.kbez1=o.person.name.kbez1
	s bau.person.name.name1=o.person.name.name1
	s bau.person.name.name2=o.person.name.name2
	s bau.person.name.kbez=o.person.name.kbez
	s bau.person.adresse.strasse=o.person.adresse.strasse
	s bau.person.adresse.land=o.person.adresse.land
	s bau.person.adresse.plz=o.person.adresse.plz
	s bau.person.adresse.ort=o.person.adresse.ort
	s bau.person.kontakt.tel=o.person.kontakt.tel
	s bau.person.kontakt.fax=o.person.kontakt.fax
	s bau.person.kontakt.email=o.person.kontakt.email
	s bau.person.kontakt.www=o.person.kontakt.www
	s bau.person.kontakt.mobil=o.person.kontakt.mobil
	d o.adr.Insert(bau)
	d bau.%Close()
	k bau
]]></Implementation>
</Method>

<Method name="LoePerson">
<FormalSpec>idsu:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s id="",idloe=""
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d  q:$L(idloe)
	. i id=idsu s idloe=id,persobj.loesw=1
	q 1
]]></Implementation>
</Method>

<Property name="personen">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Method name="personenGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",erg="",n=0
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d
	. I 'persobj.loesw s n=n+1,$LI(erg,n)=$LB(id,persobj.funktion,persobj.person.name.titel,persobj.person.name.name1_" "_persobj.person.name.name2,persobj.person.kontakt.tel,persobj.person.kontakt.mobil)
	Quit erg
]]></Implementation>
</Method>

<Method name="personenSet">
<FormalSpec>Arg:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[	Quit $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("adr")</DataLocation>
<DefaultData>kuadrDefaultData</DefaultData>
<IdLocation>^stamm.kundeC("adr")</IdLocation>
<IndexLocation>^stamm.kuadrI</IndexLocation>
<StreamLocation>^stamm.kuadrS</StreamLocation>
<Data name="kuadrDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>adr</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kontakt</Value>
</Value>
<Value name="7">
<Value>name1</Value>
</Value>
<Value name="8">
<Value>name2</Value>
</Value>
<Value name="9">
<Value>notiz</Value>
</Value>
<Value name="10">
<Value>pperson</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>person</Value>
</Value>
<Value name="18">
<Value>site</Value>
</Value>
<Value name="19">
<Value>info1</Value>
</Value>
<Value name="20">
<Value>info2</Value>
</Value>
<Value name="21">
<Value>pfzone</Value>
</Value>
<Value name="22">
<Value>kbez</Value>
</Value>
<Value name="23">
<Value>kontakt1</Value>
</Value>
<Value name="24">
<Value>kontakt2</Value>
</Value>
<Value name="25">
<Value>aktiv</Value>
</Value>
<Value name="26">
<Value>loesw</Value>
</Value>
<Value name="27">
<Value>code</Value>
</Value>
<Value name="28">
<Value>anldatumzeit</Value>
</Value>
<Value name="29">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.kuadrperson">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12144.827279</TimeChanged>
<TimeCreated>61075,48827.428762</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="funktion">
<Type>%String</Type>
</Property>

<Property name="abteilung1">
<Type>%String</Type>
</Property>

<Property name="abteilung2">
<Type>%String</Type>
</Property>

<Property name="teldw">
<Type>%String</Type>
</Property>

<Property name="faxdw">
<Type>%String</Type>
</Property>

<Property name="email">
<Type>%String</Type>
</Property>

<Property name="kuadr">
<Type>stamm.kuadr</Type>
<Cardinality>parent</Cardinality>
<Inverse>kperson</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("kperson")</DataLocation>
<DefaultData>kuadrpersonDefaultData</DefaultData>
<IdLocation>^stamm.kuadrC("kperson")</IdLocation>
<IndexLocation>^stamm.kuadrpersonI</IndexLocation>
<StreamLocation>^stamm.kuadrpersonS</StreamLocation>
<Data name="kuadrpersonDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abteilung1</Value>
</Value>
<Value name="3">
<Value>abteilung2</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>email</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>faxdw</Value>
</Value>
<Value name="8">
<Value>funktion</Value>
</Value>
<Value name="9">
<Value>person</Value>
</Value>
<Value name="10">
<Value>pmitarb</Value>
</Value>
<Value name="11">
<Value>pnotiz</Value>
</Value>
<Value name="12">
<Value>pperson</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>teldw</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>site</Value>
</Value>
<Value name="21">
<Value>anldatum</Value>
</Value>
<Value name="22">
<Value>loesw</Value>
</Value>
<Value name="23">
<Value>anldatumzeit</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.kukarte">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61134,39956.870895</TimeChanged>
<TimeCreated>61075,48827.434853</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Kundenkarte</Default>
</Parameter>

<Parameter name="NavSortColumn">
<Default>kunde.knr</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>kartnr,kunde.person.name.name1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>kartnr,kunde.knr,kunde.person.name.name1</Default>
</Parameter>

<Parameter name="NavColumnsTitel">
<Default>Kartennummer,Kund.-Nr.,Kunde</Default>
</Parameter>

<Property name="kartnr">
<Type>%String</Type>
</Property>

<Property name="pkarttyp">
<Type>param.karttyp</Type>
</Property>

<Property name="abldatum">
<Type>%Date</Type>
</Property>

<Property name="datum">
<Type>%Date</Type>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="pruefz">
<Type>%String</Type>
</Property>

<Property name="kunde">
<Type>stamm.kunde</Type>
<Cardinality>parent</Cardinality>
<Inverse>karte</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="karte">
<Properties>psite,loesw,kartnr,aktiv,datum</Properties>
</Index>

<Index name="kartesw">
<Properties>psite,loesw,pkarttyp</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("karte")</DataLocation>
<DefaultData>kukarteDefaultData</DefaultData>
<IdLocation>^stamm.kundeC("karte")</IdLocation>
<IndexLocation>^stamm.kukarteI</IndexLocation>
<StreamLocation>^stamm.kukarteS</StreamLocation>
<Data name="kukarteDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abldatum</Value>
</Value>
<Value name="3">
<Value>aktiv</Value>
</Value>
<Value name="4">
<Value>anldatum</Value>
</Value>
<Value name="5">
<Value>anlpers</Value>
</Value>
<Value name="6">
<Value>datum</Value>
</Value>
<Value name="7">
<Value>empfaction</Value>
</Value>
<Value name="8">
<Value>kartnr</Value>
</Value>
<Value name="9">
<Value>person</Value>
</Value>
<Value name="10">
<Value>pkarttyp</Value>
</Value>
<Value name="11">
<Value>pnotiz</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>pruefz</Value>
</Value>
<Value name="19">
<Value>altgrp</Value>
</Value>
<Value name="20">
<Value>loesw</Value>
</Value>
<Value name="21">
<Value>anldatumzeit</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.kunde">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,basis.kbonus,%XML.Adaptor,%Persistent</Super>
<TimeChanged>61134,41827.465209</TimeChanged>
<TimeCreated>61075,48827.445602</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Description>
Definition für Db-Tools</Description>
<Default>Kunde</Default>
</Parameter>

<Parameter name="NavSortColumn">
<Default>person.name.kbez</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>knr,person.name.name2</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>knr,person.name.name2,person.adresse.plz</Default>
</Parameter>

<Parameter name="NavColumnsTitel">
<Default>Kund.-Nr,Name,Plz</Default>
</Parameter>

<Property name="adr">
<Type>stamm.kuadr</Type>
<Cardinality>children</Cardinality>
<Inverse>kunde</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="kperson">
<Type>stamm.kuperson</Type>
<Cardinality>children</Cardinality>
<Inverse>kunde</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="karte">
<Type>stamm.kukarte</Type>
<Cardinality>children</Cardinality>
<Inverse>kunde</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="pkgrp">
<Type>param.kgrp</Type>
</Property>

<Property name="knr">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="aktiv">
<Type>%Boolean</Type>
</Property>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="sammel">
<Type>%Boolean</Type>
</Property>

<Property name="pfzone">
<Type>param.fzone</Type>
</Property>

<Property name="barskpr">
<Type>%Float</Type>
</Property>

<Property name="pzk">
<Type>param.zk</Type>
</Property>

<Index name="keyid">
<Properties>psite,loesw,knr</Properties>
</Index>

<Index name="keykbez">
<Properties>psite,loesw,kbez</Properties>
</Index>

<Index name="keybonus">
<Properties>psite,loesw,kbonusjn</Properties>
</Index>

<Index name="keykgrp">
<Properties>psite,loesw,pkgrp</Properties>
</Index>

<Method name="SearchKunde">
<ClassMethod>1</ClassMethod>
<FormalSpec>userid:%String,sutxt:%String,kgrpid:%String="",aktiv:%Integer=1,karte:%Integer=0,plz:%String="",plzzusatz:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	q $$SearchKunde^KWWSKUND(userid,sutxt,kgrpid,aktiv,karte,plz,plzzusatz)
]]></Implementation>
</Method>

<Method name="%OnAfterSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[

	s name=$ZCONVERT(..person.name.name1_..person.name.name2,"U")
	s name1="" F i=1:1:$L(name) d
	. s c=$E(name,i)
	. i c="Ä" s name1=name1_"AE"
	. e  i c="Ö" s name1=name1_"OE"
	. e  i c="Ü" s name1=name1_"UE"
	. e  i c="ß" s name1=name1_"SS"
	. e  s name1=name1_c
	s idkund=..%Id()
	s site=..psite.siteid
	&sql(delete from stamm.kundmatch where site=:site and pkunde=:idkund)
	I $L(name1) d
	. s sysobj1=##class(stamm.kundmatch).%New()
	. s sysobj1.siteid=site
	. d sysobj1.pkundeSetObjectId(idkund)
	. s sysobj1.sutext=name1
	. d sysobj1.%Save()
	. d sysobj1.%Close()
	I $L(..person.name.kbez) d
	. s sysobj1=##class(stamm.kundmatch).%New()
	. s sysobj1.siteid=site
	. d sysobj1.pkundeSetObjectId(idkund)
	. s sysobj1.sutext=..person.name.kbez
	. d sysobj1.%Save()
	. d sysobj1.%Close()
	s key="" f  s kbez1=..person.name.kbez1.GetNext(.key) q:key=""  d
	. s sysobj1=##class(stamm.kundmatch).%New()
	. s sysobj1.siteid=site
	. d sysobj1.pkundeSetObjectId(idkund)
	. s sysobj1.sutext=kbez1
	. d sysobj1.%Save()
	. d sysobj1.%Close()
	k sysobj1
	;
	q $$$OK
]]></Implementation>
</Method>

<Method name="%OnNew">
<FormalSpec>InitialValue:%CacheString</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	I $G(InitialValue)="0" Q $$$OK

	s ..knr="NEU"
	s ..aktiv=1
	s ..person.adresse.land="A"
	s ..person.name.titel="Herrn"
	S id=$O(^param.kgrpI("index",siteid,0," P0",""))
	i id'="" d ..pkgrpSetObjectId(id)
	Q $$$OK
]]></Implementation>
</Method>

<Method name="Lock">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	ZA ^stamm.kunde(..%Id()):3
	E  q 0
	q 1
]]></Implementation>
</Method>

<Method name="UnLock">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	ZD ^stamm.kunde(..%Id())
	q 1
]]></Implementation>
</Method>

<Method name="testKarte">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,kartid:%String,kundid:%String</FormalSpec>
<Implementation><![CDATA[	q $$testKarte^KWWSKUND(siteid, kartid, kundid)
]]></Implementation>
</Method>

<Method name="NextLadr">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="" k tab
	f  s ladrobj=..adr.GetNext(.id) q:ladrobj=""  d  s tab(ladrobj.code)=""
	s ladr=$O(tab(""),-1)+1
	s ladrobj=##class(stamm.kuadr).%New()
	s ladrobj.code=ladr
	d ..adr.Insert(ladrobj)
	d ladrobj.%Close()
	s id="",idladr=""
	f  s ladrobj=..adr.GetNext(.id) q:ladrobj=""  d  q:$L(idladr)
	. i ladrobj.code=ladr s idladr=id
	k ladrobj
	q $LB(idladr,ladr,"")
]]></Implementation>
</Method>

<Method name="LoeLadr">
<FormalSpec>ladr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s id="",idloe=""
	f  s ladrobj=..adr.GetNext(.id) q:ladrobj=""  d  q:$L(idloe)
	. i ladrobj.code=ladr s idloe=id,ladrobj.loesw=1
	q ..LeftRightLadr("L",idloe)
]]></Implementation>
</Method>

<Method name="GetLadr">
<FormalSpec>ladr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s id="",erg=""
	f  s ladrobj=..adr.GetNext(.id) q:ladrobj=""  d  q:$L(erg)
	. i ladrobj.code=ladr s erg=$LB(id,ladrobj.code,ladrobj.person.name.name1)
	q erg
]]></Implementation>
</Method>

<Method name="SucheLadr">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="" k tab s cnt=0
	s jobid=$increment(^system.wkD)
	k ^system.wkD(jobid)
	f  s ladrobj=..adr.GetNext(.id) q:ladrobj=""  d
	. i 'ladrobj.loesw s cnt=cnt+1,^system.wkD(jobid,cnt)=$LB("",$E(100000+ladrobj.code,2,6),ladrobj.person.name.name1_" "_ladrobj.person.name.name2,ladrobj.person.adresse.plz,ladrobj.person.adresse.ort,id)
	k tab
	q jobid
]]></Implementation>
</Method>

<Method name="LeftRightLadr">
<FormalSpec>lire:%String,idold:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	k tab s id=""
	f  s ladrobj=..adr.GetNext(.id) q:ladrobj=""  d
	. i 'ladrobj.loesw s tab(ladrobj.code)=$LB(id,ladrobj.code,ladrobj.person.name.name1) 
	s ladr="" I idold'="" s ladr=..adr.GetAt(idold).code	
	s ladr1=$O(tab(ladr),$S(lire="L":-1,1:1))
	i ladr1="" s ladr1=$O(tab(""),$S(lire="L":-1,1:1))
	s erg=tab(ladr1) k tab
	q erg
]]></Implementation>
</Method>

<Method name="GetKarten">
<FormalSpec>kartnr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s id="",erg=""
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d  q:$L(erg)
	. i kartobj.kartnr=kartnr s erg=$LB(id,kartobj.kartnr,$$DATTXT^KWWUTIL(kartobj.datum))
	q erg
]]></Implementation>
</Method>

<Method name="SucheKarten">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="" k tab s cnt=0
	s jobid=$increment(^system.wkD)
	k ^system.wkD(jobid)
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d
	. i 'kartobj.loesw s cnt=cnt+1,^system.wkD(jobid,cnt)=$LB("",kartobj.kartnr,kartobj.datum,"","",id)
	k tab
	q jobid
]]></Implementation>
</Method>

<Method name="LoeKarte">
<FormalSpec>kartnr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s id="",idloe=""
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d  q:$L(idloe)
	. i kartobj.kartnr=kartnr s idloe=id,kartobj.loesw=1
	q ..LastKarte()
]]></Implementation>
</Method>

<Method name="LeftRightKarte">
<FormalSpec>lire:%String,idold:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	k tab s id=""
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d
	. i 'kartobj.loesw s tab(kartobj.kartnr)=$LB(id,kartobj.kartnr,$$DATTXT^KWWUTIL(kartobj.datum)) 
	s karte="" I idold'="" s karte=..karte.GetAt(idold).kartnr
	s karte1=$O(tab(karte),$S(lire="L":-1,1:1))
	i karte1="" k tab q $LB("","","")
	s erg=tab(karte1) k tab
	q erg
]]></Implementation>
</Method>

<Method name="LastKarte">
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	k tab s id=""
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d
	. i 'kartobj.loesw s tab(+kartobj.datum,kartobj.kartnr)=$LB(id,kartobj.kartnr,$$DATTXT^KWWUTIL(kartobj.datum)) 
	s id=$O(tab(""),-1)
	i id="" q $LB("","","")
	s id1=$O(tab(id,""))
	s erg=tab(id,id1)
	k tab
	q erg
]]></Implementation>
</Method>

<Method name="NewKarte">
<FormalSpec>kartnr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id="",idkart=""
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d  q:$L(idkart)
	. i kartobj.kartnr=kartnr s kartobj.loesw=0,idkart=id
	i $L(idkart) k kartobj q idkart
	s kartobj=##class(stamm.kukarte).%New()
	s kartobj.kartnr=kartnr
	
	s kundkartid=$O(^param.karttypI("index",siteid,0," KU",""))
	d kartobj.pkarttypSetObjectId(kundkartid)
	d ..karte.Insert(kartobj)
	d kartobj.%Close()
	s id="",idkart=""
	f  s kartobj=..karte.GetNext(.id) q:kartobj=""  d  q:$L(idkart)
	. i kartobj.kartnr=kartnr s idkart=id
	k kartobj
	q idkart
]]></Implementation>
</Method>

<Method name="NewPerson">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s persobj=##class(stamm.kuperson).%New()
	s ref=$H
	s persobj.funktion=ref
	d ..kperson.Insert(persobj)
	d persobj.%Close()
	s id="",idpers=""
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d  q:$L(idpers)
	. i persobj.funktion=ref s persobj.funktion="",idpers=id
	k persobj
	q idpers
]]></Implementation>
</Method>

<Method name="LoePerson">
<FormalSpec>idsu:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s id="",idloe=""
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d  q:$L(idloe)
	. i id=idsu s idloe=id,persobj.loesw=1
	q 1
]]></Implementation>
</Method>

<Property name="personen">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Method name="personenGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",erg="",n=0
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d
	. I 'persobj.loesw s n=n+1,$LI(erg,n)=$LB(id,persobj.funktion,persobj.person.name.titel,persobj.person.name.name1_" "_persobj.person.name.name2,persobj.person.kontakt.tel,persobj.person.kontakt.mobil)
	Quit erg
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.kundeD</DataLocation>
<DefaultData>kundeDefaultData</DefaultData>
<IdLocation>^stamm.kundeD</IdLocation>
<IndexLocation>^stamm.kundeI</IndexLocation>
<StreamLocation>^stamm.kundeS</StreamLocation>
<Data name="kundeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktiv</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>empfaction</Value>
</Value>
<Value name="6">
<Value>kbabrdatum</Value>
</Value>
<Value name="7">
<Value>kbabrpkt</Value>
</Value>
<Value name="8">
<Value>kbaktpkt</Value>
</Value>
<Value name="9">
<Value>kbdatum</Value>
</Value>
<Value name="10">
<Value>kbez</Value>
</Value>
<Value name="11">
<Value>kbonusjn</Value>
</Value>
<Value name="12">
<Value>knr</Value>
</Value>
<Value name="13">
<Value>nr</Value>
</Value>
<Value name="14">
<Value>ok</Value>
</Value>
<Value name="15">
<Value>person</Value>
</Value>
<Value name="16">
<Value>pfzone</Value>
</Value>
<Value name="17">
<Value>pkgrp</Value>
</Value>
<Value name="18">
<Value>pnotiz</Value>
</Value>
<Value name="19">
<Value>psite</Value>
</Value>
<Value name="20">
<Value>route</Value>
</Value>
<Value name="21">
<Value>rtdelay</Value>
</Value>
<Value name="22">
<Value>rtdelete</Value>
</Value>
<Value name="23">
<Value>upddatum</Value>
</Value>
<Value name="24">
<Value>updpers</Value>
</Value>
<Value name="25">
<Value>aktiv1</Value>
</Value>
<Value name="26">
<Value>delsw</Value>
</Value>
<Value name="27">
<Value>loesw</Value>
</Value>
<Value name="28">
<Value>sammel</Value>
</Value>
<Value name="29">
<Value>barsk</Value>
</Value>
<Value name="30">
<Value>pzk</Value>
</Value>
<Value name="31">
<Value>barskpr</Value>
</Value>
<Value name="32">
<Value>pfiliale</Value>
</Value>
<Value name="33">
<Value>pmandant</Value>
</Value>
<Value name="34">
<Value>anldatumzeit</Value>
</Value>
<Value name="35">
<Value>panlmitarb</Value>
</Value>
<Value name="36">
<Value>pupdmitarb</Value>
</Value>
<Value name="37">
<Value>upddatumzeit</Value>
</Value>
<Value name="38">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.kundmatch">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61094,43301.844002</TimeChanged>
<TimeCreated>61075,48827.45134</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="site">
<Type>%String</Type>
</Property>

<Property name="sutext">
<Type>%String</Type>
</Property>

<Property name="pkunde">
<Type>stamm.kunde</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>sutext</Properties>
<Unique>1</Unique>
</Index>

<Index name="kunde">
<Properties>pkunde</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.kundmatchD</DataLocation>
<DefaultData>kundmatchDefaultData</DefaultData>
<IdLocation>^stamm.kundmatchD</IdLocation>
<IndexLocation>^stamm.kundmatchI</IndexLocation>
<StreamLocation>^stamm.kundmatchS</StreamLocation>
<Data name="kundmatchDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>pkunde</Value>
</Value>
<Value name="3">
<Value>site</Value>
</Value>
<Value name="4">
<Value>anldatumzeit</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>psite</Value>
</Value>
<Value name="7">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.kuperson">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12141.727163</TimeChanged>
<TimeCreated>61075,48827.457459</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="kunde">
<Type>stamm.kunde</Type>
<Cardinality>parent</Cardinality>
<Inverse>kperson</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="funktion">
<Type>%String</Type>
</Property>

<Property name="abteilung1">
<Type>%String</Type>
</Property>

<Property name="abteilung2">
<Type>%String</Type>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("kperson")</DataLocation>
<DefaultData>kupersonDefaultData</DefaultData>
<IdLocation>^stamm.kundeC("kperson")</IdLocation>
<IndexLocation>^stamm.kupersonI</IndexLocation>
<StreamLocation>^stamm.kupersonS</StreamLocation>
<Data name="kupersonDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abteilung1</Value>
</Value>
<Value name="3">
<Value>abteilung2</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>email</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>faxdw</Value>
</Value>
<Value name="8">
<Value>funktion</Value>
</Value>
<Value name="9">
<Value>person</Value>
</Value>
<Value name="10">
<Value>pmitarb</Value>
</Value>
<Value name="11">
<Value>pnotiz</Value>
</Value>
<Value name="12">
<Value>pperson</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>teldw</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>site</Value>
</Value>
<Value name="21">
<Value>anldatum</Value>
</Value>
<Value name="22">
<Value>loesw</Value>
</Value>
<Value name="23">
<Value>anldatumzeit</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.liadr">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12141.997504</TimeChanged>
<TimeCreated>61075,48827.464331</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="lief">
<Type>stamm.lief</Type>
<Cardinality>parent</Cardinality>
<Inverse>liadr</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="kbez">
<Type>%String</Type>
</Property>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="name2">
<Type>%String</Type>
</Property>

<Property name="adr">
<Type>basis.adresse</Type>
</Property>

<Property name="kontakt">
<Type>basis.kontakt</Type>
</Property>

<Property name="kperson">
<Type>stamm.liadrperson</Type>
<Cardinality>children</Cardinality>
<Inverse>liadr</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="notiz">
<Type>stamm.notiz</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>kbez</Properties>
<Unique>1</Unique>
</Index>

<Method name="NewPerson">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s persobj=##class(stamm.kuperson).%New()
	s ref=$H
	s persobj.funktion=ref
	d ..kperson.Insert(persobj)
	d persobj.%Close()
	s id="",idpers=""
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d  q:$L(idpers)
	. i persobj.funktion=ref s persobj.funktion="",idpers=id
	k persobj
	q idpers
]]></Implementation>
</Method>

<Method name="LoePerson">
<FormalSpec>idsu:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s id="",idloe=""
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d  q:$L(idloe)
	. i id=idsu s idloe=id,persobj.loesw=1
	q 1
]]></Implementation>
</Method>

<Property name="personen">
<Type>%String</Type>
<Calculated>1</Calculated>
</Property>

<Method name="personenGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id="",erg="",n=0
	f  s persobj=..kperson.GetNext(.id) q:persobj=""  d
	. I 'persobj.loesw s n=n+1,$LI(erg,n)=$LB(id,persobj.funktion,persobj.person.name.titel,persobj.person.name.name1_" "_persobj.person.name.name2,persobj.person.kontakt.tel)
	Quit erg
]]></Implementation>
</Method>

<Method name="personenSet">
<FormalSpec>Arg:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[	Quit $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("liadr")</DataLocation>
<DefaultData>liadrDefaultData</DefaultData>
<IdLocation>^stamm.liefC("liadr")</IdLocation>
<IndexLocation>^stamm.liadrI</IndexLocation>
<StreamLocation>^stamm.liadrS</StreamLocation>
<Data name="liadrDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>adr</Value>
</Value>
<Value name="3">
<Value>kontakt</Value>
</Value>
<Value name="4">
<Value>name1</Value>
</Value>
<Value name="5">
<Value>name2</Value>
</Value>
<Value name="6">
<Value>pperson</Value>
</Value>
<Value name="7">
<Value>notiz</Value>
</Value>
<Value name="8">
<Value>anldatum</Value>
</Value>
<Value name="9">
<Value>anlpers</Value>
</Value>
<Value name="10">
<Value>empfaction</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>person</Value>
</Value>
<Value name="18">
<Value>site</Value>
</Value>
<Value name="19">
<Value>loesw</Value>
</Value>
<Value name="20">
<Value>anldatumzeit</Value>
</Value>
<Value name="21">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.liadrperson">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12142.175248</TimeChanged>
<TimeCreated>61075,48827.470719</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="funktion">
<Type>%String</Type>
</Property>

<Property name="abteilung1">
<Type>%String</Type>
</Property>

<Property name="abteilung2">
<Type>%String</Type>
</Property>

<Property name="liadr">
<Type>stamm.liadr</Type>
<Cardinality>parent</Cardinality>
<Inverse>kperson</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>anldatumzeit</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("kperson")</DataLocation>
<DefaultData>liadrpersonDefaultData</DefaultData>
<IdLocation>^stamm.liadrC("kperson")</IdLocation>
<IndexLocation>^stamm.liadrpersonI</IndexLocation>
<StreamLocation>^stamm.liadrpersonS</StreamLocation>
<Data name="liadrpersonDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abteilung1</Value>
</Value>
<Value name="3">
<Value>abteilung2</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>email</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>faxdw</Value>
</Value>
<Value name="8">
<Value>funktion</Value>
</Value>
<Value name="9">
<Value>person</Value>
</Value>
<Value name="10">
<Value>pmitarb</Value>
</Value>
<Value name="11">
<Value>pnotiz</Value>
</Value>
<Value name="12">
<Value>pperson</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>teldw</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>site</Value>
</Value>
<Value name="21">
<Value>loesw</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.lief">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%Persistent</Super>
<TimeChanged>61092,28519.235994</TimeChanged>
<TimeCreated>61075,48827.476273</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="kperson">
<Type>stamm.liperson</Type>
<Cardinality>children</Cardinality>
<Inverse>lief</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="liadr">
<Type>stamm.liadr</Type>
<Cardinality>children</Cardinality>
<Inverse>lief</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.liefD</DataLocation>
<DefaultData>liefDefaultData</DefaultData>
<IdLocation>^stamm.liefD</IdLocation>
<IndexLocation>^stamm.liefI</IndexLocation>
<StreamLocation>^stamm.liefS</StreamLocation>
<Data name="liefDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>pnotiz</Value>
</Value>
<Value name="3">
<Value>pperson</Value>
</Value>
<Value name="4">
<Value>person</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.liperson">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61076,12142.509831</TimeChanged>
<TimeCreated>61075,48827.482897</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="lief">
<Type>stamm.lief</Type>
<Cardinality>parent</Cardinality>
<Inverse>kperson</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="funktion">
<Type>%String</Type>
</Property>

<Property name="abteilung1">
<Type>%String</Type>
</Property>

<Property name="abteilung2">
<Type>%String</Type>
</Property>

<Property name="teldw">
<Type>%String</Type>
</Property>

<Property name="faxdw">
<Type>%String</Type>
</Property>

<Property name="email">
<Type>%String</Type>
</Property>

<Property name="person">
<Type>basis.person</Type>
</Property>

<Property name="pnotiz">
<Type>stamm.notiz</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>anldatumzeit</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.lipersonD</DataLocation>
<DefaultData>lipersonDefaultData</DefaultData>
<IdLocation>^stamm.lipersonD</IdLocation>
<IndexLocation>^stamm.lipersonI</IndexLocation>
<StreamLocation>^stamm.lipersonS</StreamLocation>
<Data name="lipersonDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abteilung1</Value>
</Value>
<Value name="3">
<Value>abteilung2</Value>
</Value>
<Value name="4">
<Value>anldatum</Value>
</Value>
<Value name="5">
<Value>anlpers</Value>
</Value>
<Value name="6">
<Value>email</Value>
</Value>
<Value name="7">
<Value>empfaction</Value>
</Value>
<Value name="8">
<Value>faxdw</Value>
</Value>
<Value name="9">
<Value>funktion</Value>
</Value>
<Value name="10">
<Value>person</Value>
</Value>
<Value name="11">
<Value>pnotiz</Value>
</Value>
<Value name="12">
<Value>pperson</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>rtdelay</Value>
</Value>
<Value name="16">
<Value>rtdelete</Value>
</Value>
<Value name="17">
<Value>teldw</Value>
</Value>
<Value name="18">
<Value>upddatum</Value>
</Value>
<Value name="19">
<Value>updpers</Value>
</Value>
<Value name="20">
<Value>kbez</Value>
</Value>
<Value name="21">
<Value>pmitarb</Value>
</Value>
<Value name="22">
<Value>site</Value>
</Value>
<Value name="23">
<Value>loesw</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.nachltxt">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61131,54527.014581</TimeChanged>
<TimeCreated>61075,48827.498145</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Nachlauftexte</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>code</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>60%</Default>
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,code</Default>
</Parameter>

<Property name="code">
<Description>
/////////////////////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="datumab">
<Type>%Date</Type>
</Property>

<Property name="datumbis">
<Type>%Date</Type>
</Property>

<Property name="anzahl">
<Type>%Integer</Type>
</Property>

<Property name="vonabrpkt">
<Type>%String</Type>
</Property>

<Property name="bisabrpkt">
<Type>%String</Type>
</Property>

<Property name="vonpkt">
<Type>%String</Type>
</Property>

<Property name="bispkt">
<Type>%String</Type>
</Property>

<Property name="text">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,code</Properties>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>lr:%String,lid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s lcode=""
	i $L(lid) s lcode=" "_..%OpenId(lid).code
	s ncode=$O(^stamm.nachltxtI("index",siteid,0,$ZCONVERT(lcode,"U")),$S(lr="R":1,1:-1))
	i ncode="" q:lid="" $LB("","","") q $LB(lid,$E(lcode,2,99),..%OpenId(lid).code)
	s nid=$O(^stamm.nachltxtI("index",siteid,0,ncode,""))
	i nid="" q $LB("","","")
	q $LB(nid,..%OpenId(nid).code,..%OpenId(nid).code)
]]></Implementation>
</Method>

<Method name="Search">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s nid=$O(^stamm.nachltxtI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i nid="" q $LB("","")
	q $LB(nid,code,..%OpenId(nid).code)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery>SELECT %ID,code,code FROM stamm.nachltxt
 WHERE (loesw=0) and psite=:siteid
 order by code DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Method name="SetNachlauf">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%String,datumab:%Date,datumbis:%Date,vonpkt:%String,bispkt:%String,vonabrpkt:%String,bisabrpkt:%String,anzahl:%String,text:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^stamm.nachltxtI("index",siteid,0," "_$ZCONVERT(code,"U"),""))
	i $L(id) s objnl=##class(stamm.nachltxt).%OpenId(id) i 1
	e  s objnl=##class(stamm.nachltxt).%New(),objnl.code=code
	s objnl.datumab=datumab
	s objnl.datumbis=datumbis
	s objnl.anzahl=anzahl
	s objnl.vonabrpkt=vonabrpkt
	s objnl.bisabrpkt=bisabrpkt
	s objnl.vonpkt=vonpkt
	s objnl.bispkt=bispkt
	s objnl.text=text
	d objnl.%Save()
	s id=objnl.%Id()
	d objnl.%Close()
	k objnl
	
	q id
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.nachltxtD</DataLocation>
<DefaultData>nachltxtDefaultData</DefaultData>
<IdLocation>^stamm.nachltxtD</IdLocation>
<IndexLocation>^stamm.nachltxtI</IndexLocation>
<StreamLocation>^stamm.nachltxtS</StreamLocation>
<Data name="nachltxtDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anzahl</Value>
</Value>
<Value name="3">
<Value>bispkt</Value>
</Value>
<Value name="4">
<Value>bonusabr</Value>
</Value>
<Value name="5">
<Value>code</Value>
</Value>
<Value name="6">
<Value>datumab</Value>
</Value>
<Value name="7">
<Value>datumbis</Value>
</Value>
<Value name="8">
<Value>vonpkt</Value>
</Value>
<Value name="9">
<Value>text</Value>
</Value>
<Value name="10">
<Value>anldatum</Value>
</Value>
<Value name="11">
<Value>anlpers</Value>
</Value>
<Value name="12">
<Value>empfaction</Value>
</Value>
<Value name="13">
<Value>loesw</Value>
</Value>
<Value name="14">
<Value>nr</Value>
</Value>
<Value name="15">
<Value>ok</Value>
</Value>
<Value name="16">
<Value>psite</Value>
</Value>
<Value name="17">
<Value>route</Value>
</Value>
<Value name="18">
<Value>rtdelay</Value>
</Value>
<Value name="19">
<Value>rtdelete</Value>
</Value>
<Value name="20">
<Value>upddatum</Value>
</Value>
<Value name="21">
<Value>updpers</Value>
</Value>
<Value name="22">
<Value>bisabrpkt</Value>
</Value>
<Value name="23">
<Value>vonabrpkt</Value>
</Value>
<Value name="24">
<Value>anldatumzeit</Value>
</Value>
<Value name="25">
<Value>panlmitarb</Value>
</Value>
<Value name="26">
<Value>pupdmitarb</Value>
</Value>
<Value name="27">
<Value>upddatumzeit</Value>
</Value>
<Value name="28">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.notiz">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,24516.160011</TimeChanged>
<TimeCreated>59921,85741.458031</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="notiz">
<Type>stamm.notize</Type>
<Cardinality>children</Cardinality>
<Inverse>notiz</Inverse>
<Relationship>1</Relationship>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.notizD</DataLocation>
<DefaultData>notizDefaultData</DefaultData>
<IdLocation>^stamm.notizD</IdLocation>
<IndexLocation>^stamm.notizI</IndexLocation>
<StreamLocation>^stamm.notizS</StreamLocation>
<Data name="notizDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>nr</Value>
</Value>
<Value name="5">
<Value>parentclass</Value>
</Value>
<Value name="6">
<Value>parentid</Value>
</Value>
<Value name="7">
<Value>site</Value>
</Value>
<Value name="8">
<Value>text</Value>
</Value>
<Value name="9">
<Value>titel</Value>
</Value>
<Value name="10">
<Value>upddatum</Value>
</Value>
<Value name="11">
<Value>updpers</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>pquellsite</Value>
</Value>
<Value name="14">
<Value>empfaction</Value>
</Value>
<Value name="15">
<Value>route</Value>
</Value>
<Value name="16">
<Value>rtdelay</Value>
</Value>
<Value name="17">
<Value>rtdelete</Value>
</Value>
<Value name="18">
<Value>ok</Value>
</Value>
<Value name="19">
<Value>loesw</Value>
</Value>
<Value name="20">
<Value>pfiliale</Value>
</Value>
<Value name="21">
<Value>pmandant</Value>
</Value>
<Value name="22">
<Value>anldatumzeit</Value>
</Value>
<Value name="23">
<Value>panlmitarb</Value>
</Value>
<Value name="24">
<Value>pupdmitarb</Value>
</Value>
<Value name="25">
<Value>upddatumzeit</Value>
</Value>
<Value name="26">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.notize">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61092,62120.321781</TimeChanged>
<TimeCreated>59923,39577.161139</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="inhalt">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="notiz">
<Type>stamm.notiz</Type>
<Cardinality>parent</Cardinality>
<Inverse>notiz</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="text">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>anldatumzeit</Properties>
<Unique>1</Unique>
</Index>

<Query name="list">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,notiz:%String</FormalSpec>
<SqlQuery>SELECT %ID,text,anldatumzeit,upddatumzeit FROM notize
where notiz=:notiz and psite=:siteid
order by anldatumzeit desc</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("notiz")</DataLocation>
<DefaultData>notizeDefaultData</DefaultData>
<IdLocation>^stamm.notizD("notiz")</IdLocation>
<IndexLocation>^stamm.notizeI</IndexLocation>
<StreamLocation>^stamm.notizeS</StreamLocation>
<Data name="notizeDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>datum</Value>
</Value>
<Value name="3">
<Value>inhalt</Value>
</Value>
<Value name="4">
<Value>text</Value>
</Value>
<Value name="5">
<Value>zeit</Value>
</Value>
<Value name="6">
<Value>anldatum</Value>
</Value>
<Value name="7">
<Value>anlpers</Value>
</Value>
<Value name="8">
<Value>upddatum</Value>
</Value>
<Value name="9">
<Value>updpers</Value>
</Value>
<Value name="10">
<Value>empfaction</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>psite</Value>
</Value>
<Value name="15">
<Value>site</Value>
</Value>
<Value name="16">
<Value>loesw</Value>
</Value>
<Value name="17">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="stamm.sonderpreis">
<ProcedureBlock>1</ProcedureBlock>
<Super>%RegisteredObject</Super>
<TimeChanged>61127,13994.587434</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Method name="GetVkp">
<ClassMethod>1</ClassMethod>
<FormalSpec>knr,anr:%String,datum:%Date,menge:%Float,schiene:%Integer,incl:%Boolean,mapr:%String,ean:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s ad=$G(^system.sessionSonder($J))
	s (typ,conn)="" i $L(ad) s typ=$LI(ad,1),conn=$LI(ad,2)

	i typ="off" q ""

	i typ=""!(conn="") d
	. s typ=##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "Typ")
	. s conn=##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "Connection")	
	. s ^system.sessionSonder($J)=$LB(typ,conn,"S1")
	
	i typ="BaumatPort" s ad=$$BaumatPort^KWWSONDER(conn,knr,anr,datum,menge,schiene,incl,mapr,ean)
	i $L(ad),$LI(ad,1)="0" q $LI(ad,2) 
	i $L(ad),$LI(ad,1)="1" q "" //Wurde mit Fehler beendet

	s typ=##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "TypAlt")
	s conn=##class(system.paramitem).getparam(siteid, "G|KWWS|Sonderpreise", "ConnectionAlt")	
	s ^system.sessionSonder($J)=$LB(typ,conn,"S2")
	
	i typ="BaumatPort" s ad=$$BaumatPort^KWWSONDER(conn,knr,anr,datum,menge,schiene,incl,mapr,ean) 
	i $L(ad),$LI(ad,1)="0" q $LI(ad,2)
	i $L(ad),$LI(ad,1)="1" q "" //Wurde mit Fehler beendet
	
	s ^system.sessionSonder($J)=$LB("off","off","NO")
	
	q ""
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^stamm.sonderpreisD</DataLocation>
<DefaultData>sonderpreisDefaultData</DefaultData>
<IdLocation>^stamm.sonderpreisD</IdLocation>
<IndexLocation>^stamm.sonderpreisI</IndexLocation>
<StreamLocation>^stamm.sonderpreisS</StreamLocation>
<Data name="sonderpreisDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.actions">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61120,77832.111608</TimeChanged>
<TimeCreated>61075,48827.540298</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="aktion">
<Type>%String</Type>
</Property>

<Property name="icon">
<Type>%String</Type>
</Property>

<Property name="keytab">
<Type>%String</Type>
</Property>

<Property name="toolbar">
<Type>%Integer</Type>
</Property>

<Property name="toolbarbez">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,aktion</Properties>
</Index>

<Method name="getBez">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktion:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^system.actionsI("index",siteid,0," "_$ZCONVERT(aktion,"U"),""))
	i id="" Q ""
	s objact=##class(system.actions).%OpenId(id)
	i $L(objact) s bez=objact.bez d objact.%Close()
	k objact
	
	q bez
]]></Implementation>
</Method>

<Method name="loeschen">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	 &sql(delete from system.actions where psite=:siteid)
	 
	 q $$$OK
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT %ID,bez,aktion,icon,keytab,toolbar,toolbarbez FROM actions
WHERE loesw=0 and psite=:siteid
order by aktion DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="listebez">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT %ID,bez,aktion,icon,keytab,toolbar,toolbarbez FROM actions
WHERE loesw=0 and psite=:siteid
order by bez DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="listetoolbar">
<Type>%SQLQuery</Type>
<FormalSpec>siteid</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,bez,aktion,icon,keytab,toolbar,toolbarbez FROM actions
WHERE toolbar>0 and loesw=0 and psite=:siteid
order by toolbar DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.actionsD</DataLocation>
<DefaultData>actionsDefaultData</DefaultData>
<IdLocation>^system.actionsD</IdLocation>
<IndexLocation>^system.actionsI</IndexLocation>
<StreamLocation>^system.actionsS</StreamLocation>
<Data name="actionsDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktion</Value>
</Value>
<Value name="3">
<Value>anldatum</Value>
</Value>
<Value name="4">
<Value>anlpers</Value>
</Value>
<Value name="5">
<Value>bez</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>icon</Value>
</Value>
<Value name="8">
<Value>loesw</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>upddatum</Value>
</Value>
<Value name="16">
<Value>updpers</Value>
</Value>
<Value name="17">
<Value>keytab</Value>
</Value>
<Value name="18">
<Value>toolbar</Value>
</Value>
<Value name="19">
<Value>toolbarbez</Value>
</Value>
<Value name="20">
<Value>anldatumzeit</Value>
</Value>
<Value name="21">
<Value>panlmitarb</Value>
</Value>
<Value name="22">
<Value>pupdmitarb</Value>
</Value>
<Value name="23">
<Value>upddatumzeit</Value>
</Value>
<Value name="24">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.base">
<Abstract>1</Abstract>
<ProcedureBlock>1</ProcedureBlock>
<TimeChanged>61111,33613.170019</TimeChanged>
<TimeCreated>60705,84521.410494</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="psite">
<Type>system.sites</Type>
</Property>

<Property name="anldatumzeit">
<Type>%String</Type>
</Property>

<Property name="panlmitarb">
<Type>system.mitarb</Type>
</Property>

<Property name="upddatumzeit">
<Type>%String</Type>
</Property>

<Property name="pupdmitarb">
<Type>system.mitarb</Type>
</Property>

<Property name="kassa">
<Type>%String</Type>
</Property>

<Property name="loesw">
<Type>%Boolean</Type>
<InitialExpression>0</InitialExpression>
</Property>

<Property name="idkey">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>idkey</Properties>
<Unique>1</Unique>
</Index>

<Method name="%OnAddToSaveSet">
<FormalSpec>SaveDepth:%Integer,Insert:%Integer,CallCount:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	;
	s %ad=^system.session($J)
	s siteid=$LI(%ad,1)
	s userid=$LI(%ad,2)
	s kassa=$LI(%ad,4)
	
	I Insert d
	. s:..idkey="" ..idkey=100+siteid_$Increment(^serial.serialD(..%ClassName(1)))
	. d ..psiteSetObjectId(siteid)
	. s ..kassa=kassa
	. s ..anldatumzeit=$H
	. d ..panlmitarbSetObjectId(userid)
	.
	. I ..%ClassName(1)="stamm.kunde" d ##class(stamm.kuadr).testKuadr(##this)
	
	;
	s ..upddatumzeit=$H
	d ..pupdmitarbSetObjectId(userid)
	
	Q $$$OK
]]></Implementation>
</Method>
</Class>
<Class name="system.baser">
<Abstract>1</Abstract>
<ClassType/>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor</Super>
<TimeChanged>61092,24812.430226</TimeChanged>
<TimeCreated>59923,39576.352674</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="loesw">
<Type>%Boolean</Type>
<InitialExpression>0</InitialExpression>
</Property>

<Property name="anldatumzeit">
<Type>%String</Type>
</Property>

<Property name="upddatumzeit">
<Type>%String</Type>
</Property>

<Property name="psite">
<Type>system.sites</Type>
</Property>

<Method name="%OnAddToSaveSet">
<FormalSpec>SaveDepth:%Integer,Insert:%Integer,CallCount:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	;	
	I Insert s ..anldatumzeit=$H
	s ..upddatumzeit=$H
	;
	
	Q $$$OK
]]></Implementation>
</Method>
</Class>
<Class name="system.buttons">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,63389.960065</TimeChanged>
<TimeCreated>61075,48827.547494</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="mname">
<Type>%String</Type>
</Property>

<Property name="bname">
<Type>%String</Type>
</Property>

<Property name="aktion">
<Type>%String</Type>
</Property>

<Property name="pos">
<Type>%String</Type>
</Property>

<Property name="color">
<Type>%String</Type>
</Property>

<Property name="fontsize">
<Type>%Float</Type>
</Property>

<Property name="zusatz">
<Type>%String</Type>
</Property>

<Property name="bildanz">
<Type>%Boolean</Type>
</Property>

<Property name="bildsw">
<Type>%Integer</Type>
</Property>

<Property name="image">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="menuwind">
<Type>%Boolean</Type>
</Property>

<Index name="mname">
<Properties>psite,loesw,mname</Properties>
</Index>

<Method name="LoescheMenu">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,mname:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	&sql(delete from system.buttons where mname=:mname and psite=:siteid)
	q 1
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,mname:%String</FormalSpec>
<SqlQuery>SELECT %ID,bname,aktion,pos,color,fontsize,zusatz,bildanz,menuwind,bildsw FROM buttons
 WHERE (mname = :mname) and loesw=0 and psite=:siteid</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="menus">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT distinct mname FROM buttons
WHERE loesw=0 and psite=:siteid
ORDER by mname</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.buttonsD</DataLocation>
<DefaultData>buttonsDefaultData</DefaultData>
<IdLocation>^system.buttonsD</IdLocation>
<IndexLocation>^system.buttonsI</IndexLocation>
<StreamLocation>^system.buttonsS</StreamLocation>
<Data name="buttonsDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>bname</Value>
</Value>
<Value name="5">
<Value>color</Value>
</Value>
<Value name="6">
<Value>empfaction</Value>
</Value>
<Value name="7">
<Value>loesw</Value>
</Value>
<Value name="8">
<Value>mname</Value>
</Value>
<Value name="9">
<Value>nr</Value>
</Value>
<Value name="10">
<Value>ok</Value>
</Value>
<Value name="11">
<Value>pos</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>aktion</Value>
</Value>
<Value name="19">
<Value>fontsize</Value>
</Value>
<Value name="20">
<Value>zusatz</Value>
</Value>
<Value name="21">
<Value>bildanz</Value>
</Value>
<Value name="22">
<Value>image</Value>
</Value>
<Value name="23">
<Value>menuwind</Value>
</Value>
<Value name="24">
<Value>bildsw</Value>
</Value>
<Value name="25">
<Value>anldatumzeit</Value>
</Value>
<Value name="26">
<Value>panlmitarb</Value>
</Value>
<Value name="27">
<Value>pupdmitarb</Value>
</Value>
<Value name="28">
<Value>upddatumzeit</Value>
</Value>
<Value name="29">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.dbcombo">
<ClassType>persistent</ClassType>
<Super>%Persistent</Super>
<TimeChanged>61108,52079.79326</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Method name="setCombo">
<ClassMethod>1</ClassMethod>
<FormalSpec>klasse:%String,titelKlasse:%String="",sortColumns:%String="",codeColumns:%String=""</FormalSpec>
<Implementation><![CDATA[
	n (klasse,titelKlasse,sortColumns,codeColumns)
	//s siteid=$LI(^system.session($J),1)

	i titelKlasse="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||Titel")
	. i $L(objdb) s:$L(objdb.Default) titelKlasse=objdb.Default d objdb.%Close() k objdb	
	i sortColumns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||ComboSortColumns")
	. i $L(objdb) s:$L(objdb.Default) sortColumns=objdb.Default d objdb.%Close() k objdb
	i sortColumns="" s sortColumns="%Id"
	i codeColumns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||ComboCodeColumns")
	. i $L(objdb) s:$L(objdb.Default) codeColumns=$TR(objdb.Default," ","") d objdb.%Close() k objdb

	q $LB(titelKlasse,sortColumns,codeColumns)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.dbcomboD</DataLocation>
<DefaultData>dbcomboDefaultData</DefaultData>
<IdLocation>^system.dbcomboD</IdLocation>
<IndexLocation>^system.dbcomboI</IndexLocation>
<StreamLocation>^system.dbcomboS</StreamLocation>
<Data name="dbcomboDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.dbnav">
<ClassType>persistent</ClassType>
<Super>%Persistent</Super>
<TimeChanged>61131,56808.158574</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Method name="setNav">
<ClassMethod>1</ClassMethod>
<FormalSpec>klasse:%String,titelKlasse:%String="",setold:%Integer=0,sortColumns:%String="",codeColumns:%String="",columns:%String="",columnsTitel:%String="",colWidth:%String,columnsType:%String,initMethod:%String="",dbIdentity:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (klasse,titelKlasse,setold,sortColumns,codeColumns,columns,columnsTitel,colWidth,columnsType,initMethod,dbIdentity)	

	s siteid=$LI(^system.session($J),1)

	i titelKlasse="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||Titel")
	. i $L(objdb) s:$L(objdb.Default) titelKlasse=objdb.Default d objdb.%Close() k objdb	
	i sortColumns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||NavSortColumns")
	. i $L(objdb) s:$L(objdb.Default) sortColumns=objdb.Default d objdb.%Close() k objdb
	i sortColumns="" s sortColumns="%Id"
	i codeColumns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||NavCodeColumns")
	. i $L(objdb) s:$L(objdb.Default) codeColumns=$TR(objdb.Default," ","") d objdb.%Close() k objdb
	i columns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||NavColumns")
	. i $L(objdb) s:$L(objdb.Default) columns=$TR(objdb.Default," ","") d objdb.%Close() k objdb
	. i columns="" s columns=codeColumns
	. i columns="" s columns="*"
	i columnsTitel="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||NavColumnsTitel")
	. i $L(objdb) s:$L(objdb.Default) columnsTitel=$TR(objdb.Default," ","") d objdb.%Close() k objdb
	i columnsType="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||NavColumnsTyp")
	. i $L(objdb) s:$L(objdb.Default) columnsTitel=$TR(objdb.Default," ","") d objdb.%Close() k objdb
	i colWidth="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||NavColWidth")
	. i $L(objdb) s:$L(objdb.Default) colWidth=$TR(objdb.Default," ","") d objdb.%Close() k objdb

	i initMethod="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||DbInitMethod")
	. i $L(objdb) s:$L(objdb.Default) initMethod=$TR(objdb.Default," ","") d objdb.%Close() k objdb
	i dbIdentity="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||DbIdentity")
	. i $L(objdb) s:$L(objdb.Default) dbIdentity=$TR(objdb.Default," ","") d objdb.%Close() k objdb

	i titelKlasse="" s titelKlasse=klasse

	s ind=$INCREMENT(^system.dbnav)

	f i=1:1:$L(columns,",") d
	. s column=$P(columns,",",i) q:column=""
	. s name=$ZCONVERT($E(column,1),"U")_$ZCONVERT($E(column,2,$L(column)),"L"),typ=""
	. i $P(columnsTitel,",",i)="",name'="" s $P(columnsTitel,",",i)=name
	. q:$F(column,".")
	. s obj1=##class(%Dictionary.CompiledProperty).%OpenId(klasse_"||"_column)
	. q:obj1=""
	. s name=obj1.Parameters.GetAt("CAPTION")
	. i $P(columnsTitel,",",i)="",name'="" s $P(columnsTitel,",",i)=name
	. s typ=obj1.Type
	. i $P(columnsType,",",i)="",typ'="" s $P(columnsType,",",i)=typ 
	. d obj1.%Close()
	. k obj1
	
	s code=""
	s id=$G(^system.dbnavhist(siteid,klasse)) 
	i $L(id) d
	. s x="s obj1=##class("_klasse_").%OpenId("""_id_""")" x x q:obj1=""
	. s x="s code=obj1."_$P($TR(codeColumns,"_->",".."),",",1) x x
	. i $L($P(codeColumns,",",2)) s x="s code=code_"" ""_obj1."_$P($TR(codeColumns,"_->",".."),",",2) x x
	. d obj1.%Close() k obj1
	
	k ^system.dbnav(ind)
	s ^system.dbnav(ind)=$LB(klasse,titelKlasse,sortColumns,codeColumns,columns,columnsTitel,colWidth,columnsType,initMethod,dbIdentity)

	q $LB(ind,id,code,titelKlasse,sortColumns,codeColumns,columns,columnsTitel,colWidth,columnsType,initMethod,dbIdentity)
]]></Implementation>
</Method>

<Method name="test">
<ClassMethod>1</ClassMethod>
<Implementation><![CDATA[
	s result=##class(%Library.ResultSet).%New()
	s sql="select * from stamm.artikel where loesw=0 order by kbez"
	d result.Prepare(sql)
	d result.Execute()
]]></Implementation>
</Method>

<Method name="loadNav">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String,id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (ind,id)
	s siteid=$LI(^system.session($J),1)

	s ad=^system.dbnav(ind)
	s klasse=$LI(ad,1),sortColumn=$LI(ad,3),codeColumns=$LI(ad,4),columns=$LI(ad,5)
	f i=3:1:5 k ^system.dbnav(ind,i)

	
	s sinh="",x="s obj1=##class("_klasse_").%OpenId("_id_") i $L(obj1) s sinh=obj1."_$TR(sortColumn,"_->","..")_" d obj1.%Close() k obj1" x x
	i $TR(sinh,"01234567890.","")'=""!(sinh="") s sinh=""""_sinh_""""
	s result=##class(%Library.ResultSet).%New()
	s sql="select top(500) %Id from "_klasse_" where loesw=0 and psite="_siteid_" and ("_sortColumn_"<"_sinh_") or ("_sortColumn_"="_sinh_" and %Id<"_id_") order by "_sortColum_" desc,%Id desc"
	d result.Prepare(sql)
	d result.Execute()
	s i=0 k tab
	f  q:'result.Next()  s i=i+1,tab(i)=result.GetData(1)
	d result.%Close() k result
	s cnt=0
	f j=i:-1:1 d
	. s cnt=cnt+1
	. s id=tab(j)
	. s ad1=$LB(id)
	. s x="s obj1=##class("_klasse_").%OpenId("""_id_""")" x x
	. i obj1="" k obj1 q
	. s x="s code=obj1."_$P($TR(codeColumns,"_->",".."),",",1) x x
	. i $L($P(codeColumns,",",2)) s x="s code=code_"" ""_obj1."_$P($TR(codeColumns,"_->",".."),",",2) x x
	. s ^system.dbnav(ind,3,cnt)=$LB(id,code)
	. s ^system.dbnav(ind,5,id)=cnt
	. d obj1.%Close()
	. k obj1

	s result=##class(%Library.ResultSet).%New()
	s sql="select top(500) %Id,"_codeColumns_" from "_klasse_" where loesw=0 and psite="_siteid_" and ("_sortColumn_">="_sinh_") or ("_sortColumn_"="_sinh_" and %Id>="_id_") order by "_sortColumn_",%Id"
	d result.Prepare(sql)
	d result.Execute()
	f  q:'result.Next()  d
	. s cnt=cnt+1
	. s id=result.GetData(1)
	. s code=result.GetData(2) i $L($P(codeColumns,",",2)) s code=code_" "_result.GetData(3)
	. s ^system.dbnav(ind,3,cnt)=$LB(id,code)
	. s ^system.dbnav(ind,5,id)=cnt
	
	s id1="" i cnt>0 s id1=1
	i $L(id1) d
	. s id=$LI(^system.dbnav(ind,3,id1),1),code=$LI(^system.dbnav(ind,3,id1),2)
	. s ^system.dbnav(ind,2)=$LB(id,code)
	
	q 1
]]></Implementation>
</Method>

<Method name="killNav">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	k ^system.dbnav(ind)
	
	q 1
]]></Implementation>
</Method>

<Method name="setIdListe">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String,id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s cnt="",ad=""
	s i="" f  s i=$O(^system.dbnav(ind,3,i)) q:i=""  d  q:$L(cnt)
	. s ad=^(i)
	. i $LI(ad,1)=id s cnt=i
	
	s code=""
	i $L(cnt) d
	. s code=$LI(ad,2)_" "_$LI(ad,3)
	. s ^system.dbnav(ind,2)=$LB(id,code,cnt)
	
	q code
]]></Implementation>
</Method>

<Method name="first">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (ind)
	
	s siteid=$LI(^system.session($J),1)

	s ad=^system.dbnav(ind)
	s klasse=$LI(ad,1),sortColumn=$LI(ad,3),codeColumns=$LI(ad,4),columns=$LI(ad,5)
	f i=3:1:5 k ^system.dbnav(ind,i)
	
	s code="",id1=""
	s result=##class(%Library.ResultSet).%New()
	s sql="select top(1000) %Id,"_codeColumns_" from "_klasse_" where loesw=0 and psite="_siteid_" order by "_sortColumn_",%Id"
	d result.Prepare(sql)
	d result.Execute()
	s cnt=0
	f  q:'result.Next()  d
	. s cnt=cnt+1
	. s id=result.GetData(1)
	. s code=result.GetData(2) i $L($P(codeColumns,",",2)) s code=code_" "_result.GetData(3)
	. s ^system.dbnav(ind,3,cnt)=$LB(id,code)
	. s ^system.dbnav(ind,5,id)=cnt
	d result.Close()
	k result
		
	s (id,id1)="" i cnt>0 s id1=1,id=$LI(^system.dbnav(ind,3,id1),1),code=$LI(^system.dbnav(ind,3,id1),2)
	s:code="" code="Keine Daten vorhhanden"
		
	s ^system.dbnav(ind,2)=$LB(id,code)
	s ^system.dbnavhist(siteid,klasse)=id
	q $LB(ind,id,code)
]]></Implementation>
</Method>

<Method name="last">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (ind)
	s siteid=$LI(^system.session($J),1)

	s ad=^system.dbnav(ind)
	s klasse=$LI(ad,1),sortColumn=$LI(ad,3),codeColumns=$LI(ad,4),columns=$LI(ad,5)
	f i=3:1:5 k ^system.dbnav(ind,i)
		
	s result=##class(%Library.ResultSet).%New()
	s sql="select top(1000) %Id from "_klasse_" where loesw=0 and psite="_siteid_" order by "_sortColumn_" desc,%Id desc"
	d result.Prepare(sql)
	d result.Execute()
	s i=0 k tab
	f  q:'result.Next()  s i=i+1,tab(i)=result.GetData(1)
	d result.%Close() k result
	s cnt=0
	f j=i:-1:1 d
	. s cnt=cnt+1
	. s id=tab(j)
	. s ad1=$LB(id)
	. s x="s obj1=##class("_klasse_").%OpenId("""_id_""")" x x
	. i obj1="" k obj1 q
	. s x="s code=obj1."_$P($TR(codeColumns,"_->",".."),",",1) x x
	. i $L($P(codeColumns,",",2)) s x="s code=code_"" ""_obj1."_$P($TR(codeColumns,"_->",".."),",",2) x x
	. s ^system.dbnav(ind,3,cnt)=$LB(id,code)
	. s ^system.dbnav(ind,5,id)=cnt
	. d obj1.%Close()
	. k obj1

	s (id1,id,code)=""
	i cnt>0 s id1=cnt,id=$LI(^system.dbnav(ind,3,id1),1),code=$LI(^system.dbnav(ind,3,id1),2)
	s:code="" code="Keine Daten vorhanden"
				
	s ^system.dbnav(ind,2)=$LB(id,code)
	s ^system.dbnavhist(siteid,klasse)=id
	q $LB(ind,id,code)
]]></Implementation>
</Method>

<Method name="next">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String,id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (ind,id)
	s siteid=$LI(^system.session($J),1)
	s ad=^system.dbnav(ind)
	s klasse=$LI(ad,1),sortColumn=$LI(ad,3),codeColumns=$LI(ad,4),columns=$LI(ad,5)
	s id1="",code=""
	i $L(id) d
	. s id1=$G(^system.dbnav(ind,5,id))
	. s x="s obj1=##class("_klasse_").%OpenId("""_id_""")" x x q:obj1=""
	. s x="s code=obj1."_$P($TR(codeColumns,"_->",".."),",",1) x x
	. i $L($P(codeColumns,",",2)) s x="s code=code_"" ""_obj1."_$P($TR(codeColumns,"_->",".."),",",2) x x
	. d obj1.%Close() k obj1

	I $L(id1) s x="s id1=$O(^system.dbnav("_ind_",3,"_(+id1)_"))" x x 
	i $L(id),id1="" d
	. s sinh="",x="s obj1=##class("_klasse_").%OpenId("_id_") i $L(obj1) s sinh=obj1."_$TR(sortColumn,"_->","..")_" d obj1.%Close() k obj1" x x
	. i $TR(sinh,"01234567890.","")'=""!(sinh="") s sinh=""""_sinh_""""
	. f i=3:1:5 k ^system.dbnav(ind,i)
	. s result=##class(%Library.ResultSet).%New()
	. s sql="select top(1000) %Id,"_codeColumns_" from "_klasse_" where loesw=0 and psite="_siteid_" and ("_sortColumn_">"_sinh_") or ("_sortColumn_"="_sinh_" and %Id>"_id_") order by "_sortColumn_",%Id"
	. d result.Prepare(sql)
	. d result.Execute()
	. s cnt=0
	. f  q:'result.Next()  d
	.. s cnt=cnt+1
	.. s id=result.GetData(1)
	.. s code=result.GetData(2) i $L($P(codeColumns,",",2)) s code=code_" "_result.GetData(3)
	.. s ^system.dbnav(ind,3,cnt)=$LB(id,code)
	.. s ^system.dbnav(ind,5,id)=cnt
	.. s id1="" i cnt>0 s id1=1
	
	i $L(id1) d
	. s id=$LI(^system.dbnav(ind,3,id1),1),code=$LI(^system.dbnav(ind,3,id1),2)
	. s ^system.dbnav(ind,2)=$LB(id,code)
	s:code="" code="Keine Daten vorhhanden"
	
	q $LB(ind,id,code)
]]></Implementation>
</Method>

<Method name="prev">
<ClassMethod>1</ClassMethod>
<FormalSpec>ind:%String,id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (ind,id)
	s siteid=$LI(^system.session($J),1)
	
	s ad=^system.dbnav(ind)
	s klasse=$LI(ad,1),sortColumn=$LI(ad,3),codeColumns=$LI(ad,4),columns=$LI(ad,5)
	s id1="",code=""
	i $L(id) d
	. s id1=$G(^system.dbnav(ind,5,id))
	. s x="s obj1=##class("_klasse_").%OpenId("""_id_""")" x x q:obj1=""
	. s x="s code=obj1."_$P($TR(codeColumns,"_->",".."),",",1) x x
	. i $L($P(codeColumns,",",2)) s x="s code=code_"" ""_obj1."_$P($TR(codeColumns,"_->",".."),",",2) x x
	. d obj1.%Close() k obj1

	I $L(id1) s x="s id1=$O(^system.dbnav("_ind_",3,"_(+id1)_"),-1)" x x 
	i $L(id),id1="" d
	. s sinh="",x="s obj1=##class("_klasse_").%OpenId("_id_") i $L(obj1) s sinh=obj1."_$TR(sortColumn,"_->","..")_" d obj1.%Close() k obj1" x x
	. i $TR(sinh,"01234567890.","")'=""!(sinh="") s sinh=""""_sinh_""""
	. f i=3:1:5 k ^system.dbnav(ind,i)
	. s result=##class(%Library.ResultSet).%New()
	. s sql="select top(1000) %Id from "_klasse_" where loesw=0 and psite="_siteid_" and ("_sortColumn_"<"_sinh_") or ("_sortColumn_"="_sinh_" and %Id<"_id_") order by "_sortColumn_" desc,%Id desc"
	. d result.Prepare(sql)
	. d result.Execute()
	. s i=0 k tab
	. f  q:'result.Next()  s i=i+1,tab(i)=result.GetData(1)
	. d result.%Close() k result
	. s cnt=0
	. f j=i:-1:1 d
	.. s cnt=cnt+1
	.. s id=tab(j)
	.. s ad1=$LB(id)
	.. s x="s obj1=##class("_klasse_").%OpenId("""_id_""")" x x
	.. i obj1="" k obj1 q
	.. s x="s code=obj1."_$P($TR(codeColumns,"_->",".."),",",1) x x
	.. i $L($P(codeColumns,",",2)) s x="s code=code_"" ""_obj1."_$P($TR(codeColumns,"_->",".."),",",2) x x
	.. s ^system.dbnav(ind,3,cnt)=$LB(id,code)
	.. s ^system.dbnav(ind,5,id)=cnt
	.. d obj1.%Close()
	.. k obj1
	.. s id1="" i cnt>0 s id1=cnt
	
	i $L(id1) d
	. s id=$LI(^system.dbnav(ind,3,id1),1),code=$LI(^system.dbnav(ind,3,id1),2)
	. s ^system.dbnav(ind,2)=$LB(id,code)
	s:code="" code="Keine Daten vorhhanden"
	
	q $LB(ind,id,code)
]]></Implementation>
</Method>

<Method name="search">
<ClassMethod>1</ClassMethod>
<FormalSpec>scode:%String,ind:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (scode,ind)
	s siteid=$LI(^system.session($J),1)
	s ad=^system.dbnav(ind)
	s klasse=$LI(ad,1),sortColumn=$LI(ad,3),codeColumns=$LI(ad,4),columns=$LI(ad,5)

	s (id,code)=""

	s scode1=$ZCONVERT($TR(scode,"%*",""),"U")
	s scode2=$ZCONVERT($TR(scode,"*","%"),"U")
		
	s result=##class(%Library.ResultSet).%New()
	i $F(scode2,"%") s sql="select top(1) %Id,"_codeColumns_" from "_klasse_" where loesw=0 and psite="_siteid_" and UCASE("_$P(codeColumns,",",2)_") like """_scode2_""""
	e  s sql="select top(1) %Id,"_codeColumns_" from "_klasse_" where loesw=0 and psite="_siteid_" and UCASE("_$P(codeColumns,",",1)_")= """_scode1_""""
	d result.Prepare(sql)
	d result.Execute()
	i result.Next() d
	. s id=result.GetData(1)
	. s code=result.GetData(2) i $L($P(codeColumns,",",2)) s code=code_" "_result.GetData(3)
	d result.%Close() k result

	i $L(id) d
	. f i=3:1:5 k ^system.dbnav(ind,i)
	. s ^system.dbnav(ind,2)=$LB(id,code)
	
	q $LB(ind,id,code)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.dbnavD</DataLocation>
<DefaultData>dbnavDefaultData</DefaultData>
<IdLocation>^system.dbnavD</IdLocation>
<IndexLocation>^system.dbnavI</IndexLocation>
<StreamLocation>^system.dbnavS</StreamLocation>
<Data name="dbnavDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>dummy</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.dbtable">
<ClassType>persistent</ClassType>
<Super>%Persistent</Super>
<TimeChanged>61131,83729.340045</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Method name="setTable">
<ClassMethod>1</ClassMethod>
<FormalSpec>klasse:%String,columnsEditor:%String="",titelKlasse:%String="",sortColumns:%String="",columns:%String="",columnsTitel:%String="",colWidth:%String="",initMethod:%String="",dbIdentity:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n (klasse,columnsEditor,titelKlasse,sortColumns,columns,columnsTitel,colWidth,initMethod,dbIdentity)	

	s siteid=$LI(^system.session($J),1)

	i titelKlasse="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||Titel")
	. i $L(objdb) s:$L(objdb.Default) titelKlasse=objdb.Default d objdb.%Close() k objdb	
	i sortColumns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||TableSortColumns")
	. i $L(objdb) s:$L(objdb.Default) sortColumns=objdb.Default d objdb.%Close() k objdb
	i sortColumns="" s sortColumns="%Id"
	i columns="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||TableColumns")
	. i $L(objdb) s:$L(objdb.Default) columns=objdb.Default d objdb.%Close() k objdb
	. i columns="" s columns=codeColumns
	. i columns="" s columns="*"
	i columnsEditor="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||TableColumnsEditor")
	. i $L(objdb) s:$L(objdb.Default) columnsEditor=objdb.Default d objdb.%Close() k objdb
	i columnsTitel="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||TableColumnsTitel")
	. i $L(objdb) s:$L(objdb.Default) columnsTitel=objdb.Default d objdb.%Close() k objdb
	i colWidth="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||TableColWidth")
	. i $L(objdb) s:$L(objdb.Default) colWidth=objdb.Default d objdb.%Close() k objdb

	i initMethod="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||DbInitMethod")
	. i $L(objdb) s:$L(objdb.Default) initMethod=objdb.Default d objdb.%Close() k objdb
	i dbIdentity="" d
	. s objdb=##class(%Dictionary.CompiledParameter).%OpenId(klasse_"||DbIdentity")
	. i $L(objdb) s:$L(objdb.Default) dbIdentity=objdb.Default d objdb.%Close() k objdb
	
	s columnsType="",columnsTypeName="",columnsEditor=""
	f i=1:1:$L(columns,",") d
	. s column=$P(columns,",",i) q:column=""
	. s name=$ZCONVERT($E(column,1),"U")_$ZCONVERT($E(column,2,$L(column)),"L"),typ=""
	. i $P(columnsTitel,",",i)="",name'="" S $P(columnsTitel,",",i)=name
	. q:$F(column,".")
	. s obj1=##class(%Dictionary.CompiledProperty).%OpenId(klasse_"||"_column)
	. q:obj1=""
	. s name=obj1.Parameters.GetAt("CAPTION")
	. i $P(columnsTitel,",",i)="",name'="" s $P(columnsTitel,",",i)=name
	. s typeName=obj1.Type
	. s typ=0
	. i typeName'="",'$F(typeName,"%") d
	.. s obj2=##class(%Dictionary.CompiledClass).%OpenId(typeName)
	.. q:obj2=""
	.. s classtype=obj2.ClassType
	.. i $F(classtype,"persistent") s typ=1
	.. i $F(classtype,"serial") s typ=2
	.. d obj2.%Close() k obj2
	. d obj1.%Close() k obj1
	. s $P(columnsType,",",i)=typ
	. s $P(columnsTypeName,",",i)=typeName

	q $LB(titelKlasse,columnsEditor,sortColumns,columns,columnsTitel,colWidth,columnsType,columnsTypeName,initMethod,dbIdentity)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.dbtableD</DataLocation>
<DefaultData>dbtableDefaultData</DefaultData>
<IdLocation>^system.dbtableD</IdLocation>
<IndexLocation>^system.dbtableI</IndexLocation>
<StreamLocation>^system.dbtableS</StreamLocation>
<Data name="dbtableDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.defaction">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.506367</TimeCreated>

<Property name="classname">
<Type>%String</Type>
</Property>

<Property name="sitelevel">
<Description>
Beschränkung auf Sitelevel, wenn nicht gewünsch==0</Description>
<Type>%Integer</Type>
</Property>

<Property name="defaction">
<Description>
action=Methodenaufruf()</Description>
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>classname,sitelevel</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.defactionD</DataLocation>
<DefaultData>defactionDefaultData</DefaultData>
<IdLocation>^system.defactionD</IdLocation>
<IndexLocation>^system.defactionI</IndexLocation>
<StreamLocation>^system.defactionS</StreamLocation>
<Data name="defactionDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>classname</Value>
</Value>
<Value name="3">
<Value>defaction</Value>
</Value>
<Value name="4">
<Value>site</Value>
</Value>
<Value name="5">
<Value>sitelevel</Value>
</Value>
<Value name="6">
<Value>bedingung</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.defaults">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.513576</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="psite">
<Type>system.sites</Type>
</Property>

<Property name="pwj">
<Type>param.wj</Type>
</Property>

<Property name="lager">
<Type>param.lager</Type>
</Property>

<Property name="psprache">
<Type>system.sprache</Type>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.defaultsD</DataLocation>
<DefaultData>defaultsDefaultData</DefaultData>
<IdLocation>^system.defaultsD</IdLocation>
<IndexLocation>^system.defaultsI</IndexLocation>
<StreamLocation>^system.defaultsS</StreamLocation>
<Data name="defaultsDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>site</Value>
</Value>
<Value name="3">
<Value>wj</Value>
</Value>
<Value name="4">
<Value>lager</Value>
</Value>
<Value name="5">
<Value>psite</Value>
</Value>
<Value name="6">
<Value>pwj</Value>
</Value>
<Value name="7">
<Value>psprache</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.komm">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.522837</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="dtcreate">
<Type>%TimeStamp</Type>
</Property>

<Property name="dtinsert">
<Type>%TimeStamp</Type>
</Property>

<Property name="dttransfer">
<Type>%TimeStamp</Type>
</Property>

<Property name="pquellsite">
<Type>system.sites</Type>
</Property>

<Property name="pdestsite">
<Type>system.sites</Type>
</Property>

<Property name="route">
<Type>%List</Type>
</Property>

<Property name="status">
<Description>
Status 0=gespeichert,1=übertragen</Description>
<Type>%Integer</Type>
</Property>

<Property name="class">
<Type>%String</Type>
</Property>

<Property name="id">
<Type>%String</Type>
</Property>

<Property name="dir">
<Description>
Richtung I=in,O=out</Description>
<Type>%String</Type>
</Property>

<Property name="typ">
<Description>
Typ U=Update, D=Delete </Description>
<Type>%String</Type>
</Property>

<Property name="xmldata">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Index name="index">
<Properties>dir,dtinsert</Properties>
</Index>

<Method name="%OnAddToSaveSet">
<FormalSpec>SaveDepth:%Integer,Insert:%Integer,CallCount:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
 i +Insert s ..dtinsert=$ZDT($H,3),..status=0
 
 Q $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.kommD</DataLocation>
<DefaultData>kommDefaultData</DefaultData>
<IdLocation>^system.kommD</IdLocation>
<IndexLocation>^system.kommI</IndexLocation>
<StreamLocation>^system.kommS</StreamLocation>
<Data name="kommDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>class</Value>
</Value>
<Value name="3">
<Value>dir</Value>
</Value>
<Value name="4">
<Value>dsite</Value>
</Value>
<Value name="5">
<Value>dtinsert</Value>
</Value>
<Value name="6">
<Value>dttransfer</Value>
</Value>
<Value name="7">
<Value>qsite</Value>
</Value>
<Value name="8">
<Value>status</Value>
</Value>
<Value name="9">
<Value>xmldata</Value>
</Value>
<Value name="10">
<Value>pdestsite</Value>
</Value>
<Value name="11">
<Value>pquellsite</Value>
</Value>
<Value name="12">
<Value>typ</Value>
</Value>
<Value name="13">
<Value>id</Value>
</Value>
<Value name="14">
<Value>route</Value>
</Value>
<Value name="15">
<Value>dtcreate</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.layout">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%Persistent</Super>
<TimeChanged>61077,10420.221106</TimeChanged>
<TimeCreated>60653,54433.45006</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="layout">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="anldatum">
<Type>%String</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Property name="loesw">
<Type>%Boolean</Type>
<InitialExpression>0</InitialExpression>
</Property>

<Index name="bez">
<Properties>bez</Properties>
</Index>

<Method name="hilfe">
<ClassMethod>1</ClassMethod>
<Implementation><![CDATA[
	s id="" f  s id=$O(^system.reportD(id)) q:id=""  d
	. s obj=##class(system.report).%OpenId(id)
	. q:obj=""
	. w obj.report,!
	. s obj.report="kwws."_obj.report
	. d obj.%Save()
	. d obj.%Close()
	k obj
	q
]]></Implementation>
</Method>

<Method name="%OnAddToSaveSet">
<FormalSpec>SaveDepth:%Integer,Insert:%Integer,CallCount:%Integer</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	I Insert d
	. s ..anldatum=$H
	. d ..pmitarbSetObjectId($LI(^system.session($J),2))
	Q $$$OK
]]></Implementation>
</Method>

<Method name="%OnAfterSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	d SET^%zclayout(..%Id())
	Q $$$OK
]]></Implementation>
</Method>

<Method name="setLayout">
<ClassMethod>1</ClassMethod>
<FormalSpec>layid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	d SET^%zclayout(layid)
]]></Implementation>
</Method>

<Method name="GetDefault">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	q $O(^system.layoutI("bez",$ZCONVERT(" default","U"),""))
]]></Implementation>
</Method>

<Method name="GetLayout">
<ClassMethod>1</ClassMethod>
<FormalSpec>layout:%String</FormalSpec>
<Implementation><![CDATA[	q $O(^system.layoutI("bez",$ZCONVERT(" "_layout,"U"),""))
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>loesw:%Boolean=0</FormalSpec>
<SqlQuery>SELECT %ID,bez,anldatum,loesw FROM layout
where (loesw is null or loesw=0 or :loesw=0)
ORDER BY bez</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.layoutD</DataLocation>
<DefaultData>layoutDefaultData</DefaultData>
<IdLocation>^system.layoutD</IdLocation>
<IndexLocation>^system.layoutI</IndexLocation>
<StreamLocation>^system.layoutS</StreamLocation>
<Data name="layoutDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>bez</Value>
</Value>
<Value name="3">
<Value>layout</Value>
</Value>
<Value name="4">
<Value>datum</Value>
</Value>
<Value name="5">
<Value>anldatum</Value>
</Value>
<Value name="6">
<Value>pmitarb</Value>
</Value>
<Value name="7">
<Value>loesw</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.menu">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61093,26007.971905</TimeChanged>
<TimeCreated>61075,48827.578151</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="mname">
<Type>%String</Type>
</Property>

<Property name="name">
<Type>%String</Type>
</Property>

<Property name="aktion">
<Type>%String</Type>
</Property>

<Property name="pparent">
<Type>system.menu</Type>
</Property>

<Property name="expand">
<Type>%Boolean</Type>
</Property>

<Index name="index">
<Properties>psite,loesw,mname</Properties>
</Index>

<Method name="AddMenu">
<ClassMethod>1</ClassMethod>
<FormalSpec>text:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	i $O(^system.menuI("index",siteid,0," "_$ZCONVERT(text,"U"),""))'="" q 0
	
	s objm=##class(system.menu).%New()
	s objm.mname=text
	d objm.%Save(0)
	d objm.%Close()
	q 1
]]></Implementation>
</Method>

<Method name="LoeMenu">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,text:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	&sql(delete from system.menu where mname=:text and psite=:siteid)
	q 1
]]></Implementation>
</Method>

<Method name="SetMenu">
<ClassMethod>1</ClassMethod>
<FormalSpec>mname:%String,menues:%List</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	k zz
	&sql(delete from system.menu where mname=:mname and psite=:siteid)
	f i=1:1:$LL(menues) d
	. s menu=$LI(menues,i)
	. s objm=##class(system.menu).%New()
	. s objm.mname=mname
	. s objm.name=$LI(menu,1)
	. s objm.aktion=$LI(menu,2)
	. i $L($LI(menu,3)) d objm.pparentSetObjectId(zz($LI(menu,3)))
	. s objm.expand=$LI(menu,4)
	. d objm.%Save(0)
	. s zz(i)=objm.%Id()
	. d objm.%Close()
	k objm,zz
	
	q 1
]]></Implementation>
</Method>

<Method name="GetMenu">
<ClassMethod>1</ClassMethod>
<FormalSpec>mname:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	k zz
	s menus="",nn=0
	s id="" f  s id=$O(^system.menuI("index",siteid,0," "_$ZCONVERT(mname,"U"),id)) q:id=""  d
	. s objm=##class(system.menu).%OpenId(id)
	. s nn=nn+1
	. s bez=##class(system.actions).getBez(objm.aktion)
	. i bez="" s bez=objm.name
	. i objm.pparent'="" s $LI(menus,nn)=$LB(bez,objm.aktion,zz(objm.pparent.%Id()),objm.expand) i 1
	. e  d
	.. i $L(objm.aktion) s $LI(menus,nn)=$LB(bez,objm.aktion,"",objm.expand) i 1
	.. e  s $LI(menus,nn)=$LB(bez,"","",objm.expand) i 1
	. d objm.%Close()
	. s zz(id)=nn
	k objm,zz
	
	q menus
]]></Implementation>
</Method>

<Query name="menues">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT distinct mname FROM system.menu
where loesw=0 and psite=:siteid
order by mname DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="menutree">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,mname:%String</FormalSpec>
<SqlQuery>SELECT %ID,name,aktion,pparent,expand FROM system.menu
WHERE mname=:mname and loesw=0 and psite=:siteid
order by pparent,%ID ASC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.menuD</DataLocation>
<DefaultData>menuDefaultData</DefaultData>
<IdLocation>^system.menuD</IdLocation>
<IndexLocation>^system.menuI</IndexLocation>
<StreamLocation>^system.menuS</StreamLocation>
<Data name="menuDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>mname</Value>
</Value>
<Value name="7">
<Value>name</Value>
</Value>
<Value name="8">
<Value>nr</Value>
</Value>
<Value name="9">
<Value>ok</Value>
</Value>
<Value name="10">
<Value>paction</Value>
</Value>
<Value name="11">
<Value>pparent</Value>
</Value>
<Value name="12">
<Value>psite</Value>
</Value>
<Value name="13">
<Value>route</Value>
</Value>
<Value name="14">
<Value>rtdelay</Value>
</Value>
<Value name="15">
<Value>rtdelete</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>deep</Value>
</Value>
<Value name="19">
<Value>expand</Value>
</Value>
<Value name="20">
<Value>aktion</Value>
</Value>
<Value name="21">
<Value>anldatumzeit</Value>
</Value>
<Value name="22">
<Value>panlmitarb</Value>
</Value>
<Value name="23">
<Value>pupdmitarb</Value>
</Value>
<Value name="24">
<Value>upddatumzeit</Value>
</Value>
<Value name="25">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.message">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.535722</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="id">
<Type>%String</Type>
</Property>

<Property name="psprache">
<Type>system.sprache</Type>
</Property>

<Property name="text">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>id</Properties>
<Unique>1</Unique>
</Index>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>sprache:%String</FormalSpec>
<SqlQuery>SELECT id,text FROM message</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.messageD</DataLocation>
<DefaultData>messageDefaultData</DefaultData>
<IdLocation>^system.messageD</IdLocation>
<IndexLocation>^system.messageI</IndexLocation>
<StreamLocation>^system.messageS</StreamLocation>
<Data name="messageDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>sprache</Value>
</Value>
<Value name="3">
<Value>text</Value>
</Value>
<Value name="4">
<Value>psprache</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.mitarb">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61140,37580.116222</TimeChanged>
<TimeCreated>60705,84521.429053</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Parameter name="Titel">
<Default>Mitarbeiter</Default>
</Parameter>

<Parameter name="NavSortColumns">
<Default>pcode</Default>
</Parameter>

<Parameter name="NavCodeColumns">
<Default>pcode,name1</Default>
</Parameter>

<Parameter name="NavColumns">
<Default>pcode,name1</Default>
</Parameter>

<Parameter name="NavColWidth">
<Default>25%,50%</Default>
</Parameter>

<Parameter name="DbIdentity">
<Default>psite,pcode</Default>
</Parameter>

<Property name="pcode">
<Description>
////////////////////////////////////////////</Description>
<Type>%String</Type>
</Property>

<Property name="pnr">
<Type>%String</Type>
</Property>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="password">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Index name="pcode">
<Properties>psite,loesw,pcode</Properties>
</Index>

<Index name="password">
<Properties>psite,loesw,password</Properties>
</Index>

<Property name="aktiv">
<Description>
Kassa-Erweiterungen</Description>
<Type>%Boolean</Type>
</Property>

<Property name="pkassalade">
<Type>param.kassalade</Type>
</Property>

<Property name="key1">
<Type>%String</Type>
</Property>

<Index name="key1">
<Properties>psite,loesw,key1</Properties>
</Index>

<Method name="getUser">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,password:%String,name:%String="",usersw:%Boolean=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	//Wenn usersw=true wird zusätzlich der Username getestet
	//
	
	//Superuser testen
	s id=$O(^system.mitarbI("password",0,0,password,""))
	i 'usersw,+id=99999 q id
	
	s sw=0
	i +id=99999 d
	. s obj=##class(system.mitarb).%OpenId(id)
	. i obj.name1=name s sw=1
	. d obj.%Close()
	i +sw q 99999
	
	//User testen
	s erg=""
	s id="" f  s id=$O(^system.mitarbI("password",siteid,0,password,id)) q:id=""  d  q:$L(erg)
	. i 'usersw s erg=id q
	. s obj=##class(system.mitarb).%OpenId(id)
	. i obj.name1=name s erg=id
	. d obj.%Close()
	k obj
	
	q erg
]]></Implementation>
</Method>

<Method name="testKey">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,key:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id=$O(^system.mitarbI("key1",siteid,0," "_$ZCONVERT(key,"U"),""))
	i id="" q $LB("","")
	s objp=##class(system.mitarb).%OpenId(id)
	s name="" i $L(objp) s name=objp.name1 d objp.%Close() k objp
	
	q $LB(id,name)
]]></Implementation>
</Method>

<Method name="setSuper">
<ClassMethod>1</ClassMethod>
<FormalSpec>password:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s ^system.session($J)=$LB(1,99999,1)
	
	s obj=##class(system.mitarb).%OpenId(99999)
	i obj="" s obj=##class(system.mitarb).%New()
	s obj.name1="Superuser"
	s obj.password=password
	s obj.pcode="root"
	s obj.idkey=99999
	s idlade=$O(^param.kassaladeD(""))
	i $L(idlade) d obj.pkassaladeSetObjectId(idlade)
	d obj.%Save()
	d obj.%Close()
	k obj
	
	k ^system.session($J)
]]></Implementation>
</Method>

<Method name="setUser">
<ClassMethod>1</ClassMethod>
<FormalSpec>user:%String,password:%String,name:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s ^system.session($J)=$LB(1,99999,1)
	
	s obj=##class(system.mitarb).%New()
	s obj.name1=name
	s obj.password=password
	s obj.pcode=user
	s idlade=$O(^param.kassaladeD(""))
	i $L(idlade) d obj.pkassaladeSetObjectId(idlade)
	d obj.%Save()
	d obj.%Close()
	k obj
	
	k ^system.session($J)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,pnr,pcode,name1 FROM mitarb
WHERE (loesw is null or loesw=0 or :loesw=0) and %ID<>99999 and psite=:siteid
ORDER by pcode]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.mitarbD</DataLocation>
<DefaultData>mitarbDefaultData</DefaultData>
<IdLocation>^system.mitarbD</IdLocation>
<IndexLocation>^system.mitarbI</IndexLocation>
<StreamLocation>^system.mitarbS</StreamLocation>
<Data name="mitarbDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>aktiv</Value>
</Value>
<Value name="3">
<Value>anldatumzeit</Value>
</Value>
<Value name="4">
<Value>key1</Value>
</Value>
<Value name="5">
<Value>loedatumzeit</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>name1</Value>
</Value>
<Value name="8">
<Value>panlmitarb</Value>
</Value>
<Value name="9">
<Value>password</Value>
</Value>
<Value name="10">
<Value>pcode</Value>
</Value>
<Value name="11">
<Value>pkassalade</Value>
</Value>
<Value name="12">
<Value>ploemitarb</Value>
</Value>
<Value name="13">
<Value>pnr</Value>
</Value>
<Value name="14">
<Value>powner</Value>
</Value>
<Value name="15">
<Value>psite</Value>
</Value>
<Value name="16">
<Value>pupdmitarb</Value>
</Value>
<Value name="17">
<Value>upddatumzeit</Value>
</Value>
<Value name="18">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.mitarbgrp">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,72146.208684</TimeChanged>
<TimeCreated>60950,66597.202433</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="mitarb">
<Type>system.mitarbgrpmitarb</Type>
<Cardinality>children</Cardinality>
<Inverse>mitarbgrp</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="mitarbgrp">
<Type>%String</Type>
</Property>

<Index name="mitarbgrp">
<Properties>psite,mitarbgrp</Properties>
</Index>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery>SELECT %ID,mitarbgrp,loesw FROM mitarbgrp
WHERE (loesw is null or loesw=0 or :loesw=0) and psite=:siteid
ORDER by mitarbgrp</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.mitarbgrpD</DataLocation>
<DefaultData>mitarbgrpDefaultData</DefaultData>
<IdLocation>^system.mitarbgrpD</IdLocation>
<IndexLocation>^system.mitarbgrpI</IndexLocation>
<StreamLocation>^system.mitarbgrpS</StreamLocation>
<Data name="mitarbgrpDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatumzeit</Value>
</Value>
<Value name="3">
<Value>anlpcode</Value>
</Value>
<Value name="4">
<Value>loedatumzeit</Value>
</Value>
<Value name="5">
<Value>loepcode</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>mitarb</Value>
</Value>
<Value name="8">
<Value>mitarbgrp</Value>
</Value>
<Value name="9">
<Value>owner</Value>
</Value>
<Value name="10">
<Value>site</Value>
</Value>
<Value name="11">
<Value>upddatumzeit</Value>
</Value>
<Value name="12">
<Value>updpcode</Value>
</Value>
<Value name="13">
<Value>panlmitarb</Value>
</Value>
<Value name="14">
<Value>ploemitarb</Value>
</Value>
<Value name="15">
<Value>powner</Value>
</Value>
<Value name="16">
<Value>psite</Value>
</Value>
<Value name="17">
<Value>pupdmitarb</Value>
</Value>
<Value name="18">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.mitarbgrpmitarb">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61092,69207.252984</TimeChanged>
<TimeCreated>60950,66597.258628</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="mitarbgrp">
<Type>system.mitarbgrp</Type>
<Cardinality>parent</Cardinality>
<Inverse>mitarb</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Index name="mitarb">
<Properties>pmitarb,mitarbgrp</Properties>
</Index>

<Method name="setMitarb">
<ClassMethod>1</ClassMethod>
<FormalSpec>mitarbgrpid:%String,mitarbid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	i $D(^system.mitarbgrpmitarbI("mitarb",mitarbid,mitarbgrpid)) q 0
	
	s obj=##class(system.mitarbgrpmitarb).%New()
	d obj.mitarbgrpSetObjectId(mitarbgrpid)
	d obj.pmitarbSetObjectId(mitarbid)
	d obj.%Save()
	d obj.%Close()
	k obj
	
	q 1
]]></Implementation>
</Method>

<Method name="loeMitarb">
<ClassMethod>1</ClassMethod>
<FormalSpec>mitarbgrpid:%String,mitarbid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	s id=$O(^system.mitarbgrpmitarbI("mitarb",mitarbid,mitarbgrpid,""))
	i id="" q 0
	
	s obj=##class(system.mitarbgrpmitarb).%OpenId(mitarbgrpid_"||"_id)
	d obj.%DeleteId(mitarbgrpid_"||"_id)
	d obj.%Close()
	k obj
	
	q 1
]]></Implementation>
</Method>

<Query name="listeMitarb">
<Type>%SQLQuery</Type>
<FormalSpec>mitarbgrpid:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,pmitarb,pmitarb->name1 FROM mitarbgrpmitarb
WHERE (loesw is null or loesw=0 or :loesw=0) and mitarbgrp=:mitarbgrpid
ORDER by pmitarb->pcode]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("mitarb")</DataLocation>
<DefaultData>mitarbgrpmitarbDefaultData</DefaultData>
<IdLocation>{%%PARENT}("mitarb")</IdLocation>
<IndexLocation>^system.mitarbgrpmitarbI</IndexLocation>
<StreamLocation>^system.mitarbgrpmitarbS</StreamLocation>
<Data name="mitarbgrpmitarbDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>pmitarb</Value>
</Value>
<Value name="3">
<Value>anldatumzeit</Value>
</Value>
<Value name="4">
<Value>loedatumzeit</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>panlmitarb</Value>
</Value>
<Value name="7">
<Value>ploemitarb</Value>
</Value>
<Value name="8">
<Value>powner</Value>
</Value>
<Value name="9">
<Value>psite</Value>
</Value>
<Value name="10">
<Value>pupdmitarb</Value>
</Value>
<Value name="11">
<Value>upddatumzeit</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.param">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,70627.418116</TimeChanged>
<TimeCreated>60705,84521.439009</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="pfad">
<Type>%String</Type>
<Parameter name="MAXLEN"/>
</Property>

<Property name="pfadtext">
<Description>
Pfad Ausgabetext</Description>
<Type>%String</Type>
<Parameter name="MAXLEN"/>
</Property>

<Property name="memory">
<Type>%Boolean</Type>
</Property>

<Property name="paramitem">
<Type>paramitem</Type>
<Cardinality>children</Cardinality>
<Inverse>param</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="pfad">
<Properties>psite,pfad</Properties>
</Index>

<Method name="setGroupName">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,pfad:%String,ointern:%String,intern:%String,text:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s siteid=$LI(^system.session($J),1)
	
	i text=intern s text=""
	s pfadlong=$ZCONVERT(pfad_"|"_ointern,"U")
	s ll=$L(pfadlong,"|")
	
	s pfad1="" f  s pfad1=$O(^system.paramI("pfad",siteid,pfad1)) q:pfad1=""  d
	. s pfad2=$E(pfad1,2,$L(pfad1))
	. i $E(pfad2,1,$L(pfadlong))'=pfadlong q
	. s id="" f  s id=$O(^system.paramI("pfad",siteid,pfad1,id)) q:id=""  d
	.. s obj=##class(system.param).%OpenId(id) q:obj=""
	.. s s=obj.pfad,$P(s,"|",ll)=intern,obj.pfad=s
	.. i $L(text),text'=intern d
	... s s=obj.pfadtext
	... i s="" s s=obj.pfad
	... s $P(s,"|",ll)=text
	... s obj.pfadtext=s
	.. i text="" s obj.pfadtext=""
	.. d obj.%Save()
	.. d obj.%Close()
	k obj
	
	q $$$OK
]]></Implementation>
</Method>

<Method name="killLoesw">
<ClassMethod>1</ClassMethod>
<FormalSpec>psite:%String</FormalSpec>
<Implementation><![CDATA[	&sql(delete from system.paramitem where loesw=1 and psite=:siteid)
]]></Implementation>
</Method>

<Method name="testglobal">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	//Wurzel testen und wenn nicht vorhanden erzeugen
	s id=$O(^system.paramI("pfad",siteid," "_$ZCONVERT("G","U"),""))
	i id="" d
	. s obj=##class(system.param).%New()
	. s obj.pfad="G"
	. d obj.%Save()
	. d obj.%Close()
	. k obj
	
	q $$$OK
]]></Implementation>
</Method>

<Method name="paramloeschen">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s obj=##class(system.param).%OpenId(id)
	if obj="" q 2
	
	s loepfad1=$ZCONVERT(obj.pfad,"U")
	s loepfad2=$ZCONVERT(obj.pfad_"|","U")
	s loesite=obj.psite.%Id()
	d obj.%Close()
	k obj
	
	&sql(delete from system.param where psite=:loesite and pfad %startswith :loepfad2)
	&sql(delete from system.param where psite=:loesite and pfad=:loepfad1)
	
	q 0
]]></Implementation>
</Method>

<Query name="pfad">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,pathselect:%String="",pathselect1:%String=""</FormalSpec>
<SqlQuery>SELECT %ID,pfad,pfadtext,memory FROM param
WHERE  (loesw is null or loesw=0) and psite=:siteid and (pfad="G" or pfad %startswith :pathselect or pfad %startswith :pathselect1)
ORDER by pfad</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.paramD</DataLocation>
<DefaultData>paramDefaultData</DefaultData>
<IdLocation>^system.paramD</IdLocation>
<IndexLocation>^system.paramI</IndexLocation>
<StreamLocation>^system.paramS</StreamLocation>
<Data name="paramDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatumzeit</Value>
</Value>
<Value name="3">
<Value>loedatumzeit</Value>
</Value>
<Value name="4">
<Value>loesw</Value>
</Value>
<Value name="5">
<Value>memory</Value>
</Value>
<Value name="6">
<Value>powner</Value>
</Value>
<Value name="7">
<Value>panlmitarb</Value>
</Value>
<Value name="8">
<Value>pfad</Value>
</Value>
<Value name="9">
<Value>ploemitarb</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>pupdmitarb</Value>
</Value>
<Value name="12">
<Value>upddatumzeit</Value>
</Value>
<Value name="13">
<Value>pfadtext</Value>
</Value>
<Value name="14">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.paramitem">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.baser,%Persistent</Super>
<TimeChanged>61093,31509.571198</TimeChanged>
<TimeCreated>60705,84521.449474</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="cargo">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="cargotyp">
<Type>%String</Type>
</Property>

<Property name="code">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="inh1">
<Type>%String</Type>
</Property>

<Property name="datentyp">
<Type>%String</Type>
</Property>

<Property name="text">
<Type>%String</Type>
<Parameter name="MAXLEN"/>
</Property>

<Property name="param">
<Type>system.param</Type>
<Cardinality>parent</Cardinality>
<Inverse>paramitem</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="code">
<Properties>code</Properties>
</Index>

<Method name="getParamId">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String,code:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	q $O(^system.paramitemI("code",code,id,""))
]]></Implementation>
</Method>

<Method name="getParamitemId">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,gruppe:%String,code:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id=$O(^system.paramI("pfad",siteid," "_$ZCONVERT(gruppe,"U"),""))
	i id="" q ""
	s idit=$O(^system.paramitemI("code",code,id,""))
	i idit="" q ""
	q id_"||"_idit
]]></Implementation>
</Method>

<Method name="getparam">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,gruppe:%String,code:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s id=$O(^system.paramI("pfad",siteid," "_$ZCONVERT(gruppe,"U"),""))
	i id="" q ""
	s idit=$O(^system.paramitemI("code",code,id,""))
	i idit="" q ""
	s obj=##class(system.paramitem).%OpenId(id_"||"_idit)
	i obj="" q ""
	s erg=obj.inh1
	d obj.%Close()
	
	q erg
]]></Implementation>
</Method>

<Method name="loeschenall">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[	&sql(delete from system.paramitem where param=:id)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>id:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery>SELECT %ID,code,datentyp,inh1,text,loesw,cargotyp FROM paramitem
WHERE (loesw is null or loesw=0 or :loesw=0) and param=:id 
ORDER BY code</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="listeparam">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,pfad:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,code,datentyp,inh1,text,loesw,cargotyp FROM paramitem
WHERE (loesw is null or loesw=0 or :loesw=0) and param->psite=:siteid and param->pfad=:pfad  
ORDER BY code]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="listememory">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,param->pfad,code,datentyp,inh1,text,loesw,cargotyp FROM paramitem
WHERE (loesw is null or loesw=0 or :loesw=0) and param->psite=:siteid and param->memory=1  
ORDER BY code]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("paramitem")</DataLocation>
<DefaultData>paramitemDefaultData</DefaultData>
<IdLocation>{%%PARENT}("paramitem")</IdLocation>
<IndexLocation>^system.paramitemI</IndexLocation>
<StreamLocation>^system.paramitemS</StreamLocation>
<Data name="paramitemDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>code</Value>
</Value>
<Value name="3">
<Value>datentyp</Value>
</Value>
<Value name="4">
<Value>inh1</Value>
</Value>
<Value name="5">
<Value>loesw</Value>
</Value>
<Value name="6">
<Value>anldatumzeit</Value>
</Value>
<Value name="7">
<Value>loedatumzeit</Value>
</Value>
<Value name="8">
<Value>panlmitarb</Value>
</Value>
<Value name="9">
<Value>ploemitarb</Value>
</Value>
<Value name="10">
<Value>powner</Value>
</Value>
<Value name="11">
<Value>psite</Value>
</Value>
<Value name="12">
<Value>pupdmitarb</Value>
</Value>
<Value name="13">
<Value>upddatumzeit</Value>
</Value>
<Value name="14">
<Value>cargo</Value>
</Value>
<Value name="15">
<Value>cargotyp</Value>
</Value>
<Value name="16">
<Value>text</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.pictkubs">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,63861.092436</TimeChanged>
<TimeCreated>61075,48827.590527</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="image">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Property name="name">
<Type>%String</Type>
</Property>

<Property name="dauer">
<Type>%Integer</Type>
</Property>

<Property name="vonzeit">
<Type>%Time</Type>
</Property>

<Property name="biszeit">
<Type>%Time</Type>
</Property>

<Index name="name">
<Properties>psite,loesw,name</Properties>
</Index>

<Method name="GetId">
<ClassMethod>1</ClassMethod>
<FormalSpec>name:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	q $O(^system.pictkubsI("name"," "_$ZCONVERT(name,"U"),""))
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>siteid:%String</FormalSpec>
<SqlQuery>SELECT %ID,name,dauer,vonzeit,biszeit FROM pictkubs
WHERE (loesw=0) and psite=:siteid</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.pictkubsD</DataLocation>
<DefaultData>pictkubsDefaultData</DefaultData>
<IdLocation>^system.pictkubsD</IdLocation>
<IndexLocation>^system.pictkubsI</IndexLocation>
<StreamLocation>^system.pictkubsS</StreamLocation>
<Data name="pictkubsDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>image</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>name</Value>
</Value>
<Value name="8">
<Value>nr</Value>
</Value>
<Value name="9">
<Value>ok</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>route</Value>
</Value>
<Value name="12">
<Value>rtdelay</Value>
</Value>
<Value name="13">
<Value>rtdelete</Value>
</Value>
<Value name="14">
<Value>upddatum</Value>
</Value>
<Value name="15">
<Value>updpers</Value>
</Value>
<Value name="16">
<Value>dauer</Value>
</Value>
<Value name="17">
<Value>biszeit</Value>
</Value>
<Value name="18">
<Value>vonzeit</Value>
</Value>
<Value name="19">
<Value>anldatumzeit</Value>
</Value>
<Value name="20">
<Value>panlmitarb</Value>
</Value>
<Value name="21">
<Value>pupdmitarb</Value>
</Value>
<Value name="22">
<Value>upddatumzeit</Value>
</Value>
<Value name="23">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.rechte">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>system.base,%Persistent</Super>
<TimeChanged>61092,70249.609322</TimeChanged>
<TimeCreated>60950,66597.535021</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="prechte">
<Type>system.paramitem</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Property name="pmitarbgrp">
<Type>system.mitarbgrp</Type>
</Property>

<Property name="erteilen">
<Type>%Boolean</Type>
</Property>

<Property name="entziehen">
<Type>%Boolean</Type>
</Property>

<Index name="mitarb">
<Properties>psite,pmitarb,prechte</Properties>
</Index>

<Index name="mitarbgrp">
<Properties>psite,pmitarbgrp,prechte</Properties>
</Index>

<Method name="getErtEntz">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,typ:%String,mid:%String,rid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s (ert,entz)=0,id1=""
	i typ="m" s id1=$O(^system.rechteI("mitarb",siteid,mid,rid,"")) i $L(id1) d
	. s objr=##class(system.rechte).%OpenId(id1)
	. s ert=+objr.erteilen,entz=+objr.entziehen
	. d objr.%Close()
	i typ="g" s id1=$O(^system.rechteI("mitarbgrp",siteid,mid,rid,"")) i $L(id1) d
	. s objr=##class(system.rechte).%OpenId(id1)
	. s ert=+objr.erteilen,entz=+objr.entziehen
	. d objr.%Close()
	
	q $LB(ert,entz,id1)
]]></Implementation>
</Method>

<Method name="setProgrammRechte">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,mid:%String,anw:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s spfad="G|"_anw_"|%Security|"
	s ll=$L(spfad)
	k recht

	s mgid=""  f  s mgid=$O(^system.mitarbgrpmitarbI("mitarb",mid,mgid)) q:mgid=""  d
	. s rid="" f  s rid=$O(^system.rechteI("mitarbgrp",siteid,mgid,rid)) q:rid=""  d
	.. s urid="" f  s urid=$O(^system.rechteI("mitarbgrp",siteid,mgid,rid,urid)) q:urid=""  d
	... s obj=##class(system.rechte).%OpenId(urid) q:obj=""
	... s recht1=obj.prechte.code
	... s pfad=obj.prechte.param.pfad
	... i $E(pfad,1,ll)=spfad d
	.... i obj.erteilen s recht($P(pfad,"|",$L(pfad,"|")),recht1)=""
	... d obj.%Close()

	s rid="" f  s rid=$O(^system.rechteI("mitarb",siteid,mid,rid)) q:rid=""  d
	. s urid="" f  s urid=$O(^system.rechteI("mitarb",siteid,mid,rid,urid)) q:urid=""  d
	.. s obj=##class(system.rechte).%OpenId(urid) q:obj=""
	.. s recht1=obj.prechte.code
	.. s pfad=obj.prechte.param.pfad
	.. i $E(pfad,1,ll)=spfad d
	... i obj.entziehen k recht($P(pfad,"|",$L(pfad,"|")),recht1) i 1
	... e  i obj.erteilen s recht($P(pfad,"|",$L(pfad,"|")),recht1)=""
	.. d obj.%Close()
	
	K ^system.session($J,"rechte")
	M ^system.session($J,"rechte",0)=recht	

	s spfad="G|%Global|%Security|"
	s ll=$L(spfad)

	k recht
	s mgid=""  f  s mgid=$O(^system.mitarbgrpmitarbI("mitarb",mid,mgid)) q:mgid=""  d
	. s rid="" f  s rid=$O(^system.rechteI("mitarbgrp",siteid,mgid,rid)) q:rid=""  d
	.. s urid="" f  s urid=$O(^system.rechteI("mitarbgrp",siteid,mgid,rid,urid)) q:urid=""  d
	... s obj=##class(system.rechte).%OpenId(urid) q:obj=""
	... s recht1=obj.prechte.code
	... s pfad=obj.prechte.param.pfad
	... i $E(pfad,1,ll)=spfad d
	.... i obj.erteilen s recht($P(pfad,"|",$L(pfad,"|")),recht1)=""
	... d obj.%Close()

	s rid="" f  s rid=$O(^system.rechteI("mitarb",siteid,mid,rid)) q:rid=""  d
	. s urid="" f  s urid=$O(^system.rechteI("mitarb",siteid,mid,rid,urid)) q:urid=""  d
	.. s obj=##class(system.rechte).%OpenId(urid) q:obj=""
	.. s recht1=obj.prechte.code
	.. s pfad=obj.prechte.param.pfad
	.. i $E(pfad,1,ll)=spfad d
	... i obj.entziehen k recht($P(pfad,"|",$L(pfad,"|")),recht1) i 1
	... e  i obj.erteilen s recht($P(pfad,"|",$L(pfad,"|")),recht1)=""
	.. d obj.%Close()
	
	M ^system.session($J,"rechte",1)=recht	

	
	q $$$OK
]]></Implementation>
</Method>

<Method name="getRechte">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,anw:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s cnt=0
	
	s rsp=##class(%Library.ResultSet).%New("system.param:pfad")
	d rsp.Execute(siteid,"G|"_anw,"G|"_anw)
	k ^system.wkD($J)
	
	f  q:'rsp.Next()  d
	. s pfad=rsp.Get("pfad")
	. i $P(pfad,"|",3)'="%Security" q
	. s pfadtext=rsp.Get("pfadtext") i pfadtext="" s pfadtext=pfad
	. i $P(pfad,"|",4)="" s cnt=cnt+1,^system.wkD($J,cnt)=$LB("",$P(pfadtext,"|",2),"","","","") Q
	. s cnt=cnt+1,^system.wkD($J,cnt)=$LB("",$P(pfadtext,"|",2)_"|"_$P(pfadtext,"|",4),"","","","")
	. s rsi=##class(%Library.ResultSet).%New("system.paramitem:listeparam")
	. d rsi.Execute(siteid,pfad,1)
	. f  q:'rsi.Next()  d
	.. s rid=rsi.GetData(1)
	.. s cnt=cnt+1,^system.wkD($J,cnt)=$LB("",$P(pfadtext,"|",2)_"|"_$P(pfadtext,"|",4),rsi.Get("inh1"),"","",rid)
	. d rsi.Close()
	d rsp.Close()
	k rsp,rsi

	q $J
]]></Implementation>
</Method>

<Method name="testRechtExec">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%Integer,anw:%String,mid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	///Testen auf Recht exec der Anwendung anw
	
	i mid=99999 q 1
	
	s pid=$O(^system.paramI("pfad",siteid," G|"_$ZCONVERT(anw,"U")_"|%SECURITY|"_$ZCONVERT(anw,"U"),""))
	i pid="" q 0
	
	s rid=$O(^system.paramitemI("code","exec",pid,""))
	i rid="" q 0
	
	s rid=pid_"||"_rid

	s erg=0
	s mgid=""  f  s mgid=$O(^system.mitarbgrpmitarbI("mitarb",mid,mgid)) q:mgid=""  d
	. s urid="" f  s urid=$O(^system.rechteI("mitarbgrp",siteid,mgid,rid,urid)) q:urid=""  d
	.. s obj=##class(system.rechte).%OpenId(urid) q:obj=""
	.. i obj.erteilen s erg=1
	.. d obj.%Close()

	s urid="" f  s urid=$O(^system.rechteI("mitarb",siteid,mid,rid,urid)) q:urid=""  d
	. s obj=##class(system.rechte).%OpenId(urid) q:obj=""
	. i obj.entziehen s erg=0
	. e  i obj.erteilen s erg=1
	. d obj.%Close()

	q erg
]]></Implementation>
</Method>

<Method name="setRecht">
<ClassMethod>1</ClassMethod>
<FormalSpec>rid:%String,typ:%String,mid:%String,ert:%Boolean,entz:%Boolean</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	i $L($P(rid,";",2)) s obj=##class(system.rechte).%OpenId($P(rid,";",2)) I 1
	e  d
	. s obj=##class(system.rechte).%New()
	. d obj.prechteSetObjectId($P(rid,";",1))
	. i typ="m" d obj.pmitarbSetObjectId(mid) q
	. i typ="g" d obj.pmitarbgrpSetObjectId(mid)
	s obj.erteilen=ert,obj.entziehen=entz 
	d obj.%Save()
	d obj.%Close()
	
	k obj
	
	q $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.rechteD</DataLocation>
<DefaultData>rechteDefaultData</DefaultData>
<IdLocation>^system.rechteD</IdLocation>
<IndexLocation>^system.rechteI</IndexLocation>
<StreamLocation>^system.rechteS</StreamLocation>
<Data name="rechteDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatumzeit</Value>
</Value>
<Value name="3">
<Value>entziehen</Value>
</Value>
<Value name="4">
<Value>erteilen</Value>
</Value>
<Value name="5">
<Value>loedatumzeit</Value>
</Value>
<Value name="6">
<Value>loesw</Value>
</Value>
<Value name="7">
<Value>panlmitarb</Value>
</Value>
<Value name="8">
<Value>ploemitarb</Value>
</Value>
<Value name="9">
<Value>pmitarb</Value>
</Value>
<Value name="10">
<Value>pmitarbgrp</Value>
</Value>
<Value name="11">
<Value>powner</Value>
</Value>
<Value name="12">
<Value>prechte</Value>
</Value>
<Value name="13">
<Value>psite</Value>
</Value>
<Value name="14">
<Value>pupdmitarb</Value>
</Value>
<Value name="15">
<Value>upddatumzeit</Value>
</Value>
<Value name="16">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.rep">
<Super>%RegisteredObject</Super>
<TimeChanged>61085,59034.176723</TimeChanged>
<TimeCreated>60653,54433.506832</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="section">
<Type>%String</Type>
</Property>

<Property name="pages">
<Type>%Integer</Type>
</Property>

<Property name="possw">
<Type>%Integer</Type>
</Property>

<Property name="layid">
<Type>%String</Type>
</Property>

<Property name="ypos">
<Type>%Integer</Type>
</Property>

<Property name="left">
<Type>%Integer</Type>
</Property>

<Property name="endsw">
<Type>%Integer</Type>
</Property>

<Property name="titel">
<Type>%String</Type>
</Property>

<Property name="repname">
<Type>%String</Type>
</Property>

<Property name="format">
<Type>%String</Type>
</Property>

<Property name="portrait">
<Type>%Integer</Type>
</Property>

<Property name="topmargin">
<Type>%Integer</Type>
</Property>

<Property name="bottommargin">
<Type>%Integer</Type>
</Property>

<Property name="rightmargin">
<Type>%Integer</Type>
</Property>

<Property name="leftmargin">
<Type>%Integer</Type>
</Property>

<Property name="pageheight">
<Type>%Integer</Type>
</Property>

<Property name="pagewidth">
<Type>%Integer</Type>
</Property>

<Property name="repstream">
<Type>system.repstream</Type>
</Property>

<Property name="o">
<Type>%Persistent</Type>
</Property>

<Property name="proz">
<Type>%Float</Type>
</Property>

<Property name="coloroffs">
<Type>%Integer</Type>
</Property>

<Property name="ind">
<Type>%Integer</Type>
</Property>

<Property name="break">
<Type>%Integer</Type>
</Property>

<Property name="breakypos">
<Type>%Integer</Type>
</Property>

<Property name="breaksh">
<Type>%Integer</Type>
</Property>

<Property name="group">
<Type>%String</Type>
</Property>

<Property name="ref">
<Type>%String</Type>
</Property>

<Property name="grouplevel">
<Type>%Integer</Type>
</Property>

<Property name="faktor">
</Property>

<Method name="begin">
<FormalSpec>%layid:%String,%endsw:%Integer=1</FormalSpec>
<Implementation><![CDATA[
	n %adk
	
	K ^XWREPORT($J,%layid)
	K XWREPORT,%grptxt,%ogrptxt
	
	s ..faktor=3
	s ..layid=%layid
	s ..pages=0
	s ..possw=0
	s ..endsw=%endsw
	s ..proz=0
	s ..ind=0
	s ..break=0
	s ..group="",..section="",..ref="",..grouplevel=0
	;
	s %adk=^system.layout(%layid)
	s ..titel=$LI(%adk,1) 
	s ..repname=$LI(%adk,2)
	s ..format=$LI(%adk,3)
	s ..portrait=$LI(%adk,4)
	s ..topmargin=$LI(%adk,5)
	s ..bottommargin=$LI(%adk,6)
	s ..rightmargin=$LI(%adk,7)
	s ..leftmargin=$LI(%adk,8)
	
	s ..ypos=..topmargin*..faktor,..left=..leftmargin*..faktor
	
	i ..format="A4",+..portrait d
	. s ..pageheight=$J(297.0/25.4*..faktor*100.0,0,0) //100 dpi from Designer
 	. s ..pagewidth=$J(210.0/25.4*..faktor*100.0,0,0)
	i ..format="A4",+..portrait=0 d
	. s ..pagewidth=$J(297.0/25.4*..faktor*100.0,0,0)
	. s ..pageheight=$J(210.0/25.4*..faktor*100.0,0,0)
	i ..format="Pos" d
	. s ..pageheight=$J(120.0/25.4*..faktor*100.0,0,0)
	. s ..pagewidth=$J(72.0/25.4*..faktor*100.0,0,0)
]]></Implementation>
</Method>

<Method name="write">
<FormalSpec>%str:%String</FormalSpec>
<Implementation><![CDATA[
	
	n %bef
	
	s ..ind=..ind+1,^XWREPORT($J,..layid,0,..ind)=%str
	s %bef=$P(%str,"|",1) 
	i %bef="dalt"!(%bef="daltreset")!(%bef="dp") s ^XWREPORT($J,..layid,1,..ind)=""
	k %bef
]]></Implementation>
</Method>

<Method name="newDocument">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n %i,%sh,%rfsh

	K ^XWREPORT($J)
	K XWREPORT,%grptxt,%ogrptxt

	I ..possw,..endsw d
	. s %i="" f  s %i=$O(^system.layout(..layid,..section,"group",%i),-1) q:%i=""  i $D(^system.layout(..layid,..section,"foot"_%i)) d ..section(..section,"foot"_%i,1)
	. //
	. s %rfsh=0 i $D(^system.layout(..layid,"rptfoot","all")) s %rfsh=$LI(^system.layout(..layid,"rptfoot","all"),1)*..faktor
	. I ..pages#2=0,$D(^system.layout(..layid,"pgfoot","odd")) d
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","odd"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","odd",1)
	. E  I ..pages#2,$D(^system.layout(..layid,"pgfoot","even")) d
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","even"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","even",1)
	. E  I $D(^system.layout(..layid,"pgfoot","last")) d
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","last"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","last",1)
	. E  I $D(^system.layout(..layid,"pgfoot","all")) d 
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","all"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","all",1)
	. i $D(^system.layout(..layid,"rptfoot")) d 
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%rfsh
	.. d ..section("rptfoot","all",1)

	s ..pages=0
	s ..possw=0
	s ..break=0
	s ..group="",..ref="",..grouplevel=0
]]></Implementation>
</Method>

<Method name="end">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	n %i,%sh,%rfsh,%inh,%altind,%alternate,%id
	
	I ..possw,..endsw d
	. s %i="" f  s %i=$O(^system.layout(..layid,..section,"group",%i),-1) q:%i=""  i $D(^system.layout(..layid,..ref,"foot"_%i)) d ..section(..ref,"foot"_%i,1)
	. //
	. s %rfsh=0 i $D(^system.layout(..layid,"rptfoot","all")) s %rfsh=$LI(^system.layout(..layid,"rptfoot","all"),1)*..faktor
	. I ..pages#2=0,$D(^system.layout(..layid,"pgfoot","odd")) d
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","odd"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","odd",1)
	. E  I ..pages#2,$D(^system.layout(..layid,"pgfoot","even")) d
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","even"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","even",1)
	. E  I $D(^system.layout(..layid,"pgfoot","last")) d
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","last"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","last",1)
	. E  I $D(^system.layout(..layid,"pgfoot","all")) d 
	.. s %sh=$LI(^system.layout(..layid,"pgfoot","all"),1)*..faktor
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%sh-%rfsh
	.. d ..section("pgfoot","all",1)
	. i $D(^system.layout(..layid,"rptfoot")) d
	.. i ..format="A4" s ..ypos=..pageheight-..bottommargin-%rfsh
	.. d ..section("rptfoot","all",1)
	
	i ..pages>0 d ..write("dpend|"_..ypos)
	
	s %altind="",%alternate=1

	s %i="" f  s %i=$O(^XWREPORT($J,..layid,1,%i)) q:%i=""  d
	. s %inh=^XWREPORT($J,..layid,0,%i)
	. i $P(%inh,"|",1)="dp"!($P(%inh,"|",1)="daltreset") s %alternate=1,%altind="" q
	. i $P(%inh,"|",1)="dalt" d
	.. i %altind'="" d
	... i %alternate s ^XWREPORT($J,..layid,0,%altind)="dbox|"_(..leftmargin*..faktor)_"|"_($P(^XWREPORT($J,..layid,0,%altind),"|",2))_"|"_(..pagewidth-(..rightmargin*..faktor))_"|"_($P(%inh,"|",2))_"|200|230|200" i 1
	... e  k ^XWREPORT($J,..layid,0,%altind)
	... s %alternate='%alternate
	.. s %altind=%i  

	s ..repstream=##class(system.repstream).%New()
	s %i="" f  s %i=$O(^XWREPORT($J,..layid,0,%i)) q:%i=""  d ..repstream.report.Write(^XWREPORT($J,..layid,0,%i)_$C(10))
	d ..repstream.%Save()
	s %id=..repstream.%Id()
	d ..repstream.%Close()
	K ^XWREPORT($J,..layid)
	
	q %id
]]></Implementation>
</Method>

<Method name="newpage">
<Private>1</Private>
<Implementation><![CDATA[
	s ..pages=..pages+1
	s ..ypos=..topmargin*..faktor,..left=..leftmargin*..faktor
	d ..write("dp|"_..pagewidth_"|"_..pageheight_"|"_..format_"|"_..portrait)
]]></Implementation>
</Method>

<Method name="page">
<Implementation><![CDATA[	s ..ypos=1000000
]]></Implementation>
</Method>

<Method name="alternateColor">
<FormalSpec>%coloroffs:%Integer=-10</FormalSpec>
<Implementation><![CDATA[	d ..write("dalt|"_(..ypos+(%coloroffs/10)))
]]></Implementation>
</Method>

<Method name="lineBgColor">
<FormalSpec>%bgcolor:%String,%section:%String=" ",%section1:%String=" "</FormalSpec>
<Implementation><![CDATA[	s ^XWREPORT($J,..layid,2,%section,%section1)=%bgcolor
]]></Implementation>
</Method>

<Method name="setBreak">
<Implementation><![CDATA[
	K XWREPORT(..layid,5)
	s ..break=..ind
	s ..breakypos=..ypos,..breaksh=0
]]></Implementation>
</Method>

<Method name="addLine">
<FormalSpec>%section:%String,%section1:%String,%add:%String</FormalSpec>
<Implementation><![CDATA[
	n %i
	s %i=$O(^XWREPORT($J,..layid,6,%section,%section1,""),-1)
	s ^XWREPORT($J,..layid,6,%section,%section1,%i+1)=%add
]]></Implementation>
</Method>

<Method name="groupNewPage">
<FormalSpec>%grp:%String,%level</FormalSpec>
<Implementation><![CDATA[	s ^XWREPORT($J,..layid,3,%grp,%level)=""
]]></Implementation>
</Method>

<Method name="line">
<FormalSpec>%section:%String,%o:%Persistent,%bgcolor:%String=""</FormalSpec>
<Implementation><![CDATA[
	s ..o=%o		
	d ..section(%section,"detail",0,%bgcolor)
]]></Implementation>
</Method>

<Method name="section">
<FormalSpec>%section:%String,%section1:%String=" ",%head:%Integer=0,%bgcolor:%String=""</FormalSpec>
<Private>1</Private>
<Implementation><![CDATA[
	n %ad,%op,%f,%field,%sh,%i,%grouplevel,%group,%ref,%grnp
	n %x,%y,%w,%h,%x1,%x2,%y1,%y2
	n %image,%typ,%barcode
	n %face,%size,%weight,%align,%data
	n %red,%green,%blue
		
	s %sh=$LI(^system.layout(..layid,%section,%section1),1)*..faktor
	s %group="",%ref="",%grouplevel=0
	s %inh=$G(^system.layout(..layid,%section,"group"))
	i $L(%inh) s %group=$LI(%inh,1),%ref=$LI(%inh,2)
	i '%head,$L(%ref) s %grouplevel=+$O(^system.layout(..layid,%ref,"group",""),-1)
	
	i $D(^XWREPORT($J,..layid,2,%section,%section1))#2 s %bgcolor=^(%section1)
		
	I '..possw d
	. s ..possw=1
	. d ..newpage()
	. i '%head d
	.. //Report/Seiten Header
	.. I $D(^system.layout(..layid,"rpthead")) d ..section("rpthead","all",1)
	.. I $D(^system.layout(..layid,"pghead","first")) d ..section("pghead","first",1) i 1
	.. e  I $D(^system.layout(..layid,"pghead","odd")) d ..section("pghead","odd",1) i 1
	.. e  I $D(^system.layout(..layid,"pghead","all")) d ..section("pghead","all",1)
	
	i %group'=..group,$L(..group) K %ogrptxt //Gruppentexte bei Gruppenwechsel löschen

	s %grnp=0
	i '%head d
	. K %ogrptxt m %ogrptxt=%grptxt
	. k %grptxt
	. f %i=1:1:%grouplevel d
	.. s %grptxt(%i)=""
	.. s %field="" f  s %field=$O(^system.layout(..layid,%ref,"head"_%i,%field)) q:%field=""  d
	... s %ad=^(%field)
	... I $LI(%ad,1)="field" d
	.... s %data=$LI(%ad,10) i $L(%data) s %data=$$EXEC^%zcrep(%data)
	.... i %grptxt(%i)="" s %grptxt(%i)=%data
	.... e  s %grptxt(%i)=$G(%grptxt(%i))_"|"_%data
	.. i $D(^XWREPORT($J,..layid,3,%group,%i)),$D(%ogrptxt(%i)),%ogrptxt(%i)'=%grptxt(%i),$L(%ogrptxt(%i)) s %grnp=1
	
	
	s %first=$O(^system.layout(..layid,%section,%section1,""))
	s %field="" f  s %field=$O(^system.layout(..layid,%section,%section1,%field)) q:%field=""  d
	. s %ad=^(%field),%op=$LI(%ad,1)
	. i '%head d
	.. //Fusshöhe berechnen
	.. s %f=0
	.. f %i=..grouplevel:-1:1 i $D(^system.layout(..layid,..ref,"foot"_%i)) s %f=%f+$LI(^("foot"_%i),1)
	.. i ..endsw d
	... i ..pages#2,$D(^system.layout(..layid,"pgfoot","odd")) s %f=..faktor*$LI(^system.layout(..layid,"pgfoot","odd"),1)+%f i 1
	... e  i ..pages#2=0,$D(^system.layout(..layid,"pgfoot","even")) s %f=..faktor*$LI(^system.layout(..layid,"pgfoot","even"),1)+%f i 1 
	... e  i $D(^system.layout(..layid,"pgfoot","all")) s %f=..faktor*$LI(^system.layout(..layid,"pgfoot","all"),1)+%f
	... i $D(^system.layout(..layid,"rptfoot","all")) s %f=..faktor*$LI(^system.layout(..layid,"rptfoot","all"),1)+%f
	.. //
	.. //Berücksichtigung ev. Gruppenwechsel
	.. i %group'=..group d
	... f %i=..grouplevel:-1:1 i $D(^system.layout(..layid,..ref,"foot"_%i)) s %f=..faktor*$LI(^system.layout(..layid,..ref,"foot"_%i),1)+%f
	.. e  i ..grouplevel>0 d
	... f %i=1:1:%grouplevel i $D(^system.layout(..layid,%ref,"head"_%i)) s %f=..faktor*$LI(^system.layout(..layid,%ref,"head"_%i),1)+%f
	... f %i=1:1:%grouplevel i $D(^system.layout(..layid,%ref,"foot"_%i)) s %f=..faktor*$LI(^system.layout(..layid,%ref,"foot"_%i),1)+%f
	.. i $D(%ogrptxt) d
	... s %grpchl=""
	... f %i=1:1:%grouplevel d  Q:+%grpchl  
	.... I $G(%grptxt(%i))'=$G(%ogrptxt(%i)),$L($G(%ogrptxt(%i))) s %grpchl=%i
	... i +%grpchl d
	.... d ..write("daltreset|")
	.... f %i=..grouplevel:-1:%grpchl i $D(^system.layout(..layid,..ref,"foot"_%i)) s %f=..faktor*$LI(^system.layout(..layid,..ref,"foot"_%i),1)+%f
	.... f %i=%grpchl:1:%grouplevel i $D(^system.layout(..layid,%ref,"head"_%i)) s %f=..faktor*$LI(^system.layout(..layid,%ref,"head"_%i),1)+%f
	..
	.. //Test auf neue Seite
	.. i (%sh+..ypos)>(..pageheight-..bottommargin-%f)!%grnp d
	... //Neue Seite
	... s %grnp=0
	... //Test auf Breakmarke für Seitenumbruch
	... s %breaksw=0
	... i ..break>0 d
	.... s %i=..break f  s %i=$O(^XWREPORT($J,..layid,0,%i)) q:%i=""  d
	..... K ^XWREPORT($J,..layid,0,%i),^XWREPORT($J,..layid,1,%i),^XWREPORT($J,..layid,2,%i)
	.... s %breaksw=1,..break=0
	... //
	... i ..pages>0 d
	.... i ..format="A4" s ..ypos=..pageheight-..bottommargin-%f
	.... ///Gruppenfüsse
	.... f %i=..grouplevel:-1:1 i $D(^system.layout(..layid,..ref,"foot"_%i)) d ..section(..ref,"foot"_%i,1)
	.... //Seitenfuss
	.... I $D(^system.layout(..layid,"pgfoot","all")) d ..section("pgfoot","all",1) i 1 
	.... e  I ..pages#2=0,$D(^system.layout(..layid,"pgfoot","odd")) d ..section("pgfoot","odd",1) i 1
	.... e  I ..pages#2,$D(^system.layout(..layid,"pgfoot","even")) d ..section("pgfoot","even",1)
	... //
	... d ..write("dpend|"_..ypos)
	... d ..newpage()
	... //
	... I ..pages#2=0,$D(^system.layout(..layid,"pghead","odd")) d ..section("pghead","odd",1) i 1
	... e  I ..pages#2,$D(^system.layout(..layid,"pghead","even")) d ..section("pghead","even",1) i 1
	... e  I $D(^system.layout(..layid,"pghead","all")) d ..section("pghead","all",1)
	... //Gruppenheader
	... f %i=1:1:..grouplevel i $D(^system.layout(..layid,%ref,"head"_%i)) d ..section(%ref,"head"_%i,1)
	... //
	... //Test auf Breakmarke und Transaktionen auf neuer Seite nachziehen
	... i %breaksw>0 d
	.... s %i="" f  s %i=$O(XWREPORT(..layid,5,%i)) q:%i=""  d
	..... s %inh=XWREPORT(..layid,5,%i)
	..... s %bef=$P(%inh,"|",1)
	..... i %bef="dt" s $P(%inh,"|",6)=$P(%inh,"|",6)+..ypos
	..... e  s $P(%inh,"|",3)=$P(%inh,"|",3)+..ypos i %bef="dl" s $P(%inh,"|",5)=$P(%inh,"|",5)+..ypos
	..... d ..write(%inh)
	.... K XWREPORT(..layid,5),%inh,%bef
	.... s ..ypos=..ypos+..breaksh
	... k %breaksw
	.. //
	.. //Gruppenwechsel
	.. i %group'=..group d
	... d ..write("daltreset|")
	... f %i=..grouplevel:-1:1 i $D(^system.layout(..layid,..ref,"foot"_%i)) d ..section(..ref,"foot"_%i,1)
	... f %i=1:1:%grouplevel i $D(^system.layout(..layid,%ref,"head"_%i)) d ..section(%ref,"head"_%i,1)
	.. //
	.. //Wechsel Level durch Zeile
	.. e  i ..grouplevel>0 d
	... i %grouplevel>..grouplevel d ..write("daltreset|") f %i=..grouplevel+1:1:%grouplevel i $D(^system.layout(..layid,%ref,"head"_%i)) d ..section(%ref,"head"_%i,1)
	... i %grouplevel<..grouplevel d ..write("daltreset|") f %i=..grouplevel-1:-1:%grouplevel i $D(^system.layout(..layid,%ref,"foot"_%i)) d ..section(%ref,"foot"_%i,1)
	.. //
	.. //Änderung Gruppen-Header
	.. i $D(%ogrptxt) d
	... s %grpchl=""
	... f %i=1:1:%grouplevel d  Q:+%grpchl  
	.... I %grptxt(%i)'=%ogrptxt(%i),$L($G(%ogrptxt(%i))) s %grpchl=%i
	... i +%grpchl d
	.... d ..write("daltreset|")
	.... f %i=%grouplevel:-1:%grpchl i $D(^system.layout(..layid,..ref,"foot"_%i)) d ..section(..ref,"foot"_%i,1)
	.... f %i=%grpchl:1:%grouplevel i $D(^system.layout(..layid,..ref,"head"_%i)) d ..section(..ref,"head"_%i,1)
	.. //	.. //
	.. /////////////////////
	.. s ..section=%section
	.. s ..grouplevel=%grouplevel
	.. s ..ref=%ref
	.. s ..group=%group
	. //
	. //Background-Color
	. i %field=%first,$L(%bgcolor) d
	.. s %red=$P(%bgcolor,",",1),%green=$P(%bgcolor,",",2),%blue=$P(%bgcolor,",",3)
	.. d ..write("dbox|"_(..leftmargin*..faktor)_"|"_(..ypos-1)_"|"_(..pagewidth-(..rightmargin*..faktor))_"|"_(..ypos+%sh+1)_"|"_%red_"|"_%green_"|"_%blue)
	. //
	. //Feld generieren
	. i %op="line" d
	.. s %x1=$LI(%ad,2)*..faktor+..left,%y1=$LI(%ad,3)*..faktor+..ypos,%x2=$LI(%ad,4)*..faktor+..left,%y2=$LI(%ad,5)*..faktor+..ypos,%w=$LI(%ad,6)*..faktor
	.. d ..write("dl|"_%x1_"|"_%y1_"|"_%x2_"|"_%y2_"|"_%w)
	.. i ..break>0 s XWREPORT(..layid,5,..ind)="dl|"_%x1_"|"_(%y1-..breakypos)_"|"_%x2_"|"_(%y2-..breakypos)_"|"_%w
	. //
	. i %op="image" d
	.. s %x=$LI(%ad,2)*..faktor+..left,%y=$LI(%ad,3)*..faktor+..ypos,%w=$LI(%ad,4)*..faktor,%h=$LI(%ad,5)*..faktor,%image=$LI(%ad,7)
	.. d ..write("di|"_%x_"|"_%y_"|"_%image_"|")
	.. i ..break>0 s XWREPORT(..layid,5,..ind)="di|"_%x_"|"_(%y-..breakypos)_"|"_%image_"|"
	. //
	. i %op="barcode" d
	.. s %x=$LI(%ad,2)*..faktor+..left,%y=$LI(%ad,3)*..faktor+..ypos,%w=$LI(%ad,4)*..faktor,%h=$LI(%ad,5)*..faktor,%typ=$LI(%ad,6),%barcode=$LI(%ad,7)
	.. i $L(%barcode) s %barcode=$$EXEC^%zcrep(%barcode)
	.. d ..write("dbc|"_%x_"|"_%y_"|"_%w_"|"_%h_"|"_%typ_"|"_%barcode_"|")
	.. i ..break>0 s XWREPORT(..layid,5,..ind)="dbc|"_%x_"|"_(%y-..breakypos)_"|"_%w_"|"_%h_"|"_%typ_"|"_%barcode_"|"
	. //
	. i %op="field" d
	.. s %x=$LI(%ad,2)*..faktor+..left,%y=$LI(%ad,3)*..faktor+..ypos,%w=$LI(%ad,4)*..faktor,%h=$LI(%ad,5)*..faktor
	.. s %face=$LI(%ad,6),%size=$LI(%ad,7)*..faktor,%weight=$LI(%ad,8),%align=$LI(%ad,9),%data=$LI(%ad,10)
	.. i $L(%data) s %data=$$EXEC^%zcrep(%data)
	.. d ..write("dt|"_%face_"|"_%size_"|"_%weight_"|"_%x_"|"_%y_"|"_%w_"|"_%h_"|"_%align_"|"_%data)
	.. i ..break>0 s XWREPORT(..layid,5,..ind)="dt|"_%face_"|"_%size_"|"_%weight_"|"_%x_"|"_(%y-..breakypos)_"|"_%w_"|"_%h_"|"_%align_"|"_%data
	. //
	. i %op="label" d
	.. s %x=$LI(%ad,2)*..faktor+..left,%y=$LI(%ad,3)*..faktor+..ypos,%w=$LI(%ad,4)*..faktor,%h=$LI(%ad,5)*..faktor
	.. s %face=$LI(%ad,6),%size=$LI(%ad,7)*..faktor,%weight=$LI(%ad,8),%align=$LI(%ad,9),%data=$LI(%ad,10)
	.. d ..write("dt|"_%face_"|"_%size_"|"_%weight_"|"_%x_"|"_%y_"|"_%w_"|"_%h_"|"_%align_"|"_%data)
	.. i ..break>0 s XWREPORT(..layid,5,..ind)="dt|"_%face_"|"_%size_"|"_%weight_"|"_%x_"|"_(%y-..breakypos)_"|"_%w_"|"_%h_"|"_%align_"|"_%data
	
	s ..ypos=%sh+..ypos
	i ..break>0 s ..breaksh=..breaksh+%sh
	s ..proz=..ypos/(..pageheight-..bottommargin)*100
	
	//Anhängen zusätzliche Zeilen
	s %i="" f  s %i=$O(^XWREPORT($J,..layid,6,%section,%section1,%i)) q:%i=""  d ..section(^(%i),"detail")
]]></Implementation>
</Method>
</Class>
<Class name="system.report">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%XML.Adaptor,%Persistent</Super>
<TimeChanged>61076,83280.708019</TimeChanged>
<TimeCreated>60653,54433.518693</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="report">
<Type>%String</Type>
</Property>

<Property name="system">
<Type>%String</Type>
</Property>

<Property name="method">
<Type>%String</Type>
</Property>

<Property name="playout">
<Type>system.layout</Type>
</Property>

<Property name="anldatum">
<Type>%String</Type>
</Property>

<Property name="pmitarb">
<Type>system.mitarb</Type>
</Property>

<Property name="format">
<Type>%String</Type>
</Property>

<Property name="loesw">
<Type>%Boolean</Type>
</Property>

<Index name="report">
<Properties>system,report</Properties>
</Index>

<Method name="getLayId">
<ClassMethod>1</ClassMethod>
<FormalSpec>report:%String,system:%String="default"</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s repid=$O(^system.reportI("report"," "_$ZCONVERT(system,"U")," "_$ZCONVERT(report,"U"),""))
	q:repid="" ""
	s repobj=##class(system.report).%OpenId(repid)
	s layid=repobj.playout.%Id()
	s classname=$P(repobj.method,":",1),objmethod=$P(repobj.method,":",2)
	d repobj.%Close()
	k repobj
	q:layid="" ""
	q $LB(layid,classname,objmethod)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>system:%String,loesw:%Boolean=0</FormalSpec>
<SqlQuery>SELECT %ID,report,method,playout,anldatum,pmitarb,loesw FROM report
 WHERE (loesw is null or loesw=0 or :loesw=0) and system=:system
 ORDER BY report</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.reportD</DataLocation>
<DefaultData>reportDefaultData</DefaultData>
<IdLocation>^system.reportD</IdLocation>
<IndexLocation>^system.reportI</IndexLocation>
<StreamLocation>^system.reportS</StreamLocation>
<Data name="reportDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>method</Value>
</Value>
<Value name="3">
<Value>playout</Value>
</Value>
<Value name="4">
<Value>report</Value>
</Value>
<Value name="5">
<Value>system</Value>
</Value>
<Value name="6">
<Value>anldatum</Value>
</Value>
<Value name="7">
<Value>pmitarb</Value>
</Value>
<Value name="8">
<Value>format</Value>
</Value>
<Value name="9">
<Value>loesw</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.repstream">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>60653,54433.524646</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="report">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.repstreamD</DataLocation>
<DefaultData>repstreamDefaultData</DefaultData>
<IdLocation>^system.repstreamD</IdLocation>
<IndexLocation>^system.repstreamI</IndexLocation>
<StreamLocation>^system.repstreamS</StreamLocation>
<Data name="repstreamDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>report</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.route">
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.540891</TimeCreated>

<Property name="classname">
<Type>%String</Type>
</Property>

<Property name="routgrp">
<Type>system.routgrp</Type>
</Property>

<Property name="bedingung">
<Type>%String</Type>
</Property>

<Index name="index">
<Properties>classname</Properties>
</Index>
</Class>
<Class name="system.routgrp">
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.54582</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>routgrp</Properties>
<Unique>1</Unique>
</Index>

<Property name="routgrp">
<Type>%String</Type>
</Property>

<Property name="route">
<Description>
Routingziele z.b $LB("1","1.*","1.*.*")</Description>
<Type>%List</Type>
</Property>
</Class>
<Class name="system.search">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61092,80865.792765</TimeChanged>
<TimeCreated>61075,48827.654879</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="user1">
<Type>%String</Type>
</Property>

<Property name="typ">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="sort">
<Type>%String</Type>
</Property>

<Property name="zeile">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>user1,typ,sort</Properties>
<Unique>1</Unique>
</Index>

<Method name="LeftRight">
<ClassMethod>1</ClassMethod>
<FormalSpec>userid:%String,typ:%String,lr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	s obj1=##class(system.searchpar).%OpenId(userid_"||"_typ)
	s erg=-1
	i $L(obj1) d
	. s pos=obj1.lastsel.GetAt(typ)
	. I pos="" d obj1.%Close() q
	. s pos1=$O(^system.searchD(userid,typ,pos),$S(lr="L":-1,1:1))
	. i pos1="" s pos1=pos
	. s erg=$P($LI(^system.searchD(userid,typ,pos1),2),"|",1)
	. d obj1.lastsel.SetAt(pos1,typ) d obj1.%Save(),obj1.%Close()
	k obj1
	q erg
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>user:%String,typ:%String</FormalSpec>
<SqlQuery>SELECT zeile,sort FROM search where (user1=:user) 
           and (typ=:typ) order by sort DESC</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.searchD</DataLocation>
<DefaultData>searchDefaultData</DefaultData>
<IdLocation>^system.searchD</IdLocation>
<IndexLocation>^system.searchI</IndexLocation>
<StreamLocation>^system.searchS</StreamLocation>
<Data name="searchDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>zeile</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.searchpar">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,system.base</Super>
<TimeChanged>61092,66016.166068</TimeChanged>
<TimeCreated>61075,48827.661555</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="puser">
<Type>system.mitarb</Type>
</Property>

<Property name="typ">
<Description>
Suchtyp AR,KU,LI</Description>
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="feld1">
<Type>%List</Type>
</Property>

<Property name="lastsel">
<Type>%String</Type>
<Collection>array</Collection>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>puser,typ</Properties>
<Unique>1</Unique>
</Index>

<Method name="SetLast">
<FormalSpec>userid:%String,typ:%String,id:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s obj1=##class(system.searchpar).%OpenId(userid_"||"_typ)
	i $L(obj1) d obj1.lastsel.SetAt(id,typ) d obj1.%Save() d obj1.%Close()
	k obj1
]]></Implementation>
</Method>

<Method name="aktual">
<FormalSpec>userid:%String,schiene:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s cnt="" f  s cnt=$O(^system.searchD(userid,..typ,cnt)) q:cnt=""  d
	. s ad=$LI(^(cnt),2)
	. s preis=##class(stamm.artikel).GetVkp($P(ad,"|",1),+$H,1,schiene,1)
	. I $L(preis) s preis=$FN($LI(preis,2),",",2)
	. s $P(ad,"|",5)=preis
	. s ^system.searchD(userid,..typ,cnt)=$LB("",ad)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.searchparD</DataLocation>
<DefaultData>searchparDefaultData</DefaultData>
<IdLocation>^system.searchparD</IdLocation>
<IndexLocation>^system.searchparI</IndexLocation>
<StreamLocation>^system.searchparS</StreamLocation>
<Data name="searchparDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>anldatum</Value>
</Value>
<Value name="3">
<Value>anlpers</Value>
</Value>
<Value name="4">
<Value>empfaction</Value>
</Value>
<Value name="5">
<Value>feld</Value>
</Value>
<Value name="6">
<Value>idkey</Value>
</Value>
<Value name="7">
<Value>inh</Value>
</Value>
<Value name="8">
<Value>nr</Value>
</Value>
<Value name="9">
<Value>ok</Value>
</Value>
<Value name="10">
<Value>psite</Value>
</Value>
<Value name="11">
<Value>puser</Value>
</Value>
<Value name="12">
<Value>route</Value>
</Value>
<Value name="13">
<Value>rtdelay</Value>
</Value>
<Value name="14">
<Value>rtdelete</Value>
</Value>
<Value name="15">
<Value>typ</Value>
</Value>
<Value name="16">
<Value>upddatum</Value>
</Value>
<Value name="17">
<Value>updpers</Value>
</Value>
<Value name="18">
<Value>feld1</Value>
</Value>
<Value name="19">
<Value>lastsel</Value>
</Value>
<Value name="20">
<Value>loesw</Value>
</Value>
<Value name="21">
<Value>pfiliale</Value>
</Value>
<Value name="22">
<Value>pmandant</Value>
</Value>
<Value name="23">
<Value>anldatumzeit</Value>
</Value>
<Value name="24">
<Value>panlmitarb</Value>
</Value>
<Value name="25">
<Value>pupdmitarb</Value>
</Value>
<Value name="26">
<Value>upddatumzeit</Value>
</Value>
<Value name="27">
<Value>kassa</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.session">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61140,37622.724673</TimeChanged>
<TimeCreated>59921,85741.551182</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="psite">
<Type>system.sites</Type>
</Property>

<Property name="jobid">
<Type>%Integer</Type>
</Property>

<Property name="puser">
<Type>system.mitarb</Type>
</Property>

<Property name="pwj">
<Type>param.wj</Type>
</Property>

<Property name="kassanr">
<Type>%Integer</Type>
</Property>

<Property name="psprache">
<Type>system.sprache</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>jobid</Properties>
<Unique>1</Unique>
</Index>

<Method name="SetTestSession">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s sess=##class(system.session).%New()
 	s sess.jobid=$J
 	d sess.puserSetObjectId(99999)
 	d sess.psiteSetObjectId("1")
 	d sess.pspracheSetObjectId(1)
 	d sess.%Save()
 	d sess.%Close()
 	///für system.base
 	s ^system.session($J)=$LB(1,99999,1,0)
 	
 	Q 1
]]></Implementation>
</Method>

<Method name="TestLogin">
<ClassMethod>1</ClassMethod>
<FormalSpec>siteid:%String,vuser:%String,vpasswort:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s code="36u586",user="",passwort=""
	s code=code_code_code_code_code_code
	F i=1:1:$L(vuser) s user=user_$C($ZCRC($E(vuser,i)_$E(code,i),1))
	F i=1:1:$L(vpasswort) s passwort=passwort_$C($ZCRC($E(vpasswort,i)_$E(code,i),1))

	s erg="",iduser="",keysw=0
	i $L(user)=16 s iduser=$O(^system.mitarbI("key1",siteid,0," "_$ZCONVERT(user,"U"),"")),keysw=1 
	i iduser="" s iduser=$O(^system.mitarbI("pcode",siteid,0," "_$ZCONVERT(user,"U"),""))
	
	i $L(iduser) d
	. s user=##class(system.mitarb).%OpenId(iduser)
	. i $L(user),$L(user.name1) d
	.. I user.password=passwort!keysw s erg=user.pcode_"|"_user.name1
	. d:$L(user) user.%Close() 
	q erg
]]></Implementation>
</Method>

<Method name="KillSession">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s ljob=$J
	&sql(delete from system.session where jobid=:ljob)
	///für system.base
	
	k ^system.session($J)
	K ^XW($J)
	K ^system.wkD($J)
	K ^system.sessionSonder($J)

	q 1
]]></Implementation>
</Method>

<Method name="SetSession">
<ClassMethod>1</ClassMethod>
<FormalSpec>idsite:%String,user:%String,kassa:%String=""</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	 s def=##class(system.defaults).%OpenId(1)
	 s sess=##class(system.session).%OpenId($J)
	 i sess="" s sess=##class(system.session).%New()
	 s sess.jobid=$J
	 s iduser=$O(^system.mitarbI("pcode",idsite,0," "_$ZCONVERT(user,"U"),""))
	 I iduser'="" d
	 . d sess.psiteSetObjectId(idsite)
	 . d sess.puserSetObjectId(iduser)
	 . I $L(def.pwj) d sess.pwjSetObjectId(def.pwj.%Id())
	 . I $L(def.psprache) d sess.pspracheSetObjectId(def.psprache.%Id())
	 . d sess.%Save()
	 . d sess.%Close()
	 . ///für system.base
	 . s ^system.session($J)=$LB(idsite,iduser,def.psprache.%Id(),kassa)
	 d def.%Close()
	 
	 d ##class(system.rechte).setProgrammRechte(idsite,iduser,"KWWS")
	
	 k ^system.sessionSonder($J)
	 
	 k sess
	 q iduser
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.sessionD</DataLocation>
<DefaultData>sessionDefaultData</DefaultData>
<IdLocation>^system.sessionD</IdLocation>
<IndexLocation>^system.sessionI</IndexLocation>
<StreamLocation>^system.sessionS</StreamLocation>
<Data name="sessionDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>psite</Value>
</Value>
<Value name="3">
<Value>psprache</Value>
</Value>
<Value name="4">
<Value>puser</Value>
</Value>
<Value name="5">
<Value>pwj</Value>
</Value>
<Value name="6">
<Value>kassanr</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.sites">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61111,36623.831613</TimeChanged>
<TimeCreated>59921,85741.55847</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="siteid">
<Type>%Integer</Type>
</Property>

<Property name="bez1">
<Type>%String</Type>
</Property>

<Property name="bez2">
<Type>%String</Type>
</Property>

<Property name="bez3">
<Type>%String</Type>
</Property>

<Property name="firma">
<Type>%String</Type>
</Property>

<Property name="fil">
<Type>%String</Type>
</Property>

<Property name="standort">
<Type>%String</Type>
</Property>

<Property name="kassa">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>siteid</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.sitesD</DataLocation>
<DefaultData>sitesDefaultData</DefaultData>
<IdLocation>^system.sitesD</IdLocation>
<IndexLocation>^system.sitesI</IndexLocation>
<StreamLocation>^system.sitesS</StreamLocation>
<Data name="sitesDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>bez1</Value>
</Value>
<Value name="3">
<Value>idprefix</Value>
</Value>
<Value name="4">
<Value>adress</Value>
</Value>
<Value name="5">
<Value>commtyp</Value>
</Value>
<Value name="6">
<Value>uid</Value>
</Value>
<Value name="7">
<Value>kassa</Value>
</Value>
<Value name="8">
<Value>pfiliale</Value>
</Value>
<Value name="9">
<Value>pmandant</Value>
</Value>
<Value name="10">
<Value>database</Value>
</Value>
<Value name="11">
<Value>ip</Value>
</Value>
<Value name="12">
<Value>pfirma</Value>
</Value>
<Value name="13">
<Value>pstandort</Value>
</Value>
<Value name="14">
<Value>pfil</Value>
</Value>
<Value name="15">
<Value>bez2</Value>
</Value>
<Value name="16">
<Value>bez3</Value>
</Value>
<Value name="17">
<Value>fil</Value>
</Value>
<Value name="18">
<Value>firma</Value>
</Value>
<Value name="19">
<Value>standort</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.sprache">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>59921,85741.564457</TimeCreated>

<Property name="bez">
<Type>%String</Type>
</Property>

<Property name="picture">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.spracheD</DataLocation>
<DefaultData>spracheDefaultData</DefaultData>
<IdLocation>^system.spracheD</IdLocation>
<IndexLocation>^system.spracheI</IndexLocation>
<StreamLocation>^system.spracheS</StreamLocation>
<Data name="spracheDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>bez</Value>
</Value>
<Value name="3">
<Value>icon</Value>
</Value>
<Value name="4">
<Value>picture</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.wk">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>61075,48827.685386</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="jobid">
<Type>%Integer</Type>
</Property>

<Property name="cnt">
<Type>%String</Type>
</Property>

<Property name="id">
<Type>%String</Type>
</Property>

<Property name="f1">
<Type>%String</Type>
</Property>

<Property name="f2">
<Type>%String</Type>
</Property>

<Property name="f3">
<Type>%String</Type>
</Property>

<Property name="f4">
<Type>%String</Type>
</Property>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>jobid,cnt</Properties>
<Unique>1</Unique>
</Index>

<Method name="loeschen">
<ClassMethod>1</ClassMethod>
<FormalSpec>jobid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	k ^system.wkD(jobid)
	
	Q $$$OK
]]></Implementation>
</Method>

<Query name="liste1">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1 FROM wk
 WHERE (jobid = :jobid)</SqlQuery>
</Query>

<Query name="liste2">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1,f2 FROM wk
 WHERE (jobid = :jobid)</SqlQuery>
</Query>

<Query name="liste3">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1,f2,f3 FROM wk
 WHERE (jobid = :jobid)</SqlQuery>
</Query>

<Query name="liste4">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1,f2,f3,f4 FROM wk
 WHERE (jobid = :jobid)</SqlQuery>
</Query>

<Query name="liste1rev">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1 FROM wk
 WHERE (jobid = :jobid)
 ORDER BY cnt DESC</SqlQuery>
</Query>

<Query name="liste2rev">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1,f2 FROM wk
 WHERE (jobid = :jobid)
 ORDER BY cnt DESC</SqlQuery>
</Query>

<Query name="liste3rev">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1,f2,f3 FROM wk
 WHERE (jobid = :jobid)
 ORDER BY cnt DESC</SqlQuery>
</Query>

<Query name="liste4rev">
<Type>%SQLQuery</Type>
<FormalSpec>jobid:%String</FormalSpec>
<SqlQuery>SELECT id,f1,f2,f3,f4 FROM wk
 WHERE (jobid = :jobid)
 ORDER BY cnt DESC</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.wkD</DataLocation>
<DefaultData>wkDefaultData</DefaultData>
<IdLocation>^system.wkD</IdLocation>
<IndexLocation>^system.wkI</IndexLocation>
<StreamLocation>^system.wkS</StreamLocation>
<Data name="wkDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>f1</Value>
</Value>
<Value name="3">
<Value>f2</Value>
</Value>
<Value name="4">
<Value>f3</Value>
</Value>
<Value name="5">
<Value>f4</Value>
</Value>
<Value name="6">
<Value>id</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.wkstream">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61076,50056</TimeChanged>
<TimeCreated>60705,84521.578966</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="text">
<Type>%Stream</Type>
<Collection>binarystream</Collection>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^system.wkstreamD</DataLocation>
<DefaultData>wkstreamDefaultData</DefaultData>
<IdLocation>^system.wkstreamD</IdLocation>
<IndexLocation>^system.wkstreamI</IndexLocation>
<StreamLocation>^system.wkstreamS</StreamLocation>
<Data name="wkstreamDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>text</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="system.zcpp">
<ProcedureBlock>1</ProcedureBlock>
<Super>%RegisteredObject</Super>
<TimeChanged>61117,63810.544743</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="id">
<Type>%String</Type>
<InitialExpression>0</InitialExpression>
</Property>

<Property name="io">
<Type>%String</Type>
</Property>

<Method name="connect">
<FormalSpec>ip:%String,namespace:%String="BAUMAT"</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	s ..id=..id+1
	s io="|TCP|"_..id
	o io:(ip:4900:"M"):10
	e  q 0

	u io
	r job:10
	e  u 0 c io q 0
	u 0
	s ..io=io
	
	s erg=..exec("ZN """_namespace_"""")
	i erg="-1" s ..io="" c io q 0
	
	Q 1
]]></Implementation>
</Method>

<Method name="disConnect">
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
 	i $L(..io) c ..io
	Q 1
]]></Implementation>
</Method>

<Method name="exec">
<FormalSpec>command:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
 	i ..io="" q $LB(1,1)
 	
	u ..io 
	w "1"_$C(255)_command,!
	r x#1:10
	e  u 0 q $LB(1,2)
	i x'="0" r err:10 u 0 q $LB(1,err) //Lesen Error
	
	r len:10 
	e  u 0 q $LB(1,3)
	s len=$P(len,$C(0),1) //Wegen CString(0-Terminator)
	i +len=0 u 0 q $LB(0,"")
	r erg#len:10
	e  u 0 q $LB(1,4)
	u 0
	
	Q $LB(0,erg)
]]></Implementation>
</Method>
</Class>
<Class name="test.test">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>61112,64132.589014</TimeChanged>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="name1">
<Type>%String</Type>
</Property>

<Property name="name2">
<Type>%String</Type>
</Property>

<Property name="name">
<Type>%String</Type>
<SqlComputeCode> Set {name} = ##class(test.test).nameGet()</SqlComputeCode>
<SqlComputed>1</SqlComputed>
</Property>

<Method name="nameGet">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	W "Call",!
	Quit ..name1_..name2
]]></Implementation>
</Method>

<Method name="objektausgabe">
<ClassMethod>1</ClassMethod>
<Implementation><![CDATA[
	s id="" f  s id=$O(^test.testD(id)) q:id=""  d
	. s obj=##class(test.test).%OpenId(id)
	. q:obj=""
	. w obj.name,"|",obj.name1,"|",obj.name2,!
	. d obj.%Close()
	k obj
]]></Implementation>
</Method>

<Method name="sqlausgabe">
<ClassMethod>1</ClassMethod>
<Implementation><![CDATA[
	s rs=##class(%Library.ResultSet).%New()
	d rs.Prepare("select name,name1,name2 from test.test")
	d rs.Execute()
	f  q:'rs.Next()  d
	. w rs.GetData(1),"|",rs.GetData(2),"|",rs.GetData(3),!
	d rs.Close()
	k rs
]]></Implementation>
</Method>

<Method name="setdata">
<ClassMethod>1</ClassMethod>
<Implementation><![CDATA[
	k ^test.testD
	f i=1:1:100 d
	. s obj=##class(test.test).%New()
	. s obj.name1="name1 "_i,obj.name2="name2 "_i
	. d obj.%Save()
	. d obj.%Close()
	k obj
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^test.testD</DataLocation>
<DefaultData>testDefaultData</DefaultData>
<IdLocation>^test.testD</IdLocation>
<IndexLocation>^test.testI</IndexLocation>
<StreamLocation>^test.testS</StreamLocation>
<Data name="testDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>name</Value>
</Value>
<Value name="3">
<Value>name1</Value>
</Value>
<Value name="4">
<Value>name2</Value>
</Value>
</Data>
</Storage>
</Class>
<Checksum value="1495204101"/>
</Export>
