<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="9" zv="Cache for UNIX (Linux Intel/32-bit) 5.0.20 (Build 6305)" ts="2007-10-21 18:45:34">
<Routine name="BMRWUtils" type="INT" languagemode="0" timestamp="60921,66323"><![CDATA[
BMRWUtils	;KRA;Retourwarenerfassung Utils
 
idtest(id,idparent)
	Q $P(id,"||",1)=idparent
 
LName(firma,lnr)
	Q $$ASCIANSI^%UML($P($G(^B(firma,"L",lnr,1)),"`",2))
	;
Erf(ID)
	Q ##class(RETOUREK.Kopf).%OpenId(ID).ErfPcode
 
Est(firma,filiale,anr,bewart,lnr,datum,me)	
	N (firma,filiale,anr,bewart,lnr,datum,me)
	d ^%XTT
    s est=0
    i bewart="A" d
    . S VAR=firma_%_anr_%_lnr_%_$$TXT7^%LN200(datum)_%_$S(+me=0:1,me<0:-me,1:me)
    . d ^BMEKP 
    . I $P(VAR,%,10)="J" S est=$P(VAR,%,7)
    . E  S est=$P(VAR,%,8)
	i bewart="D",$D(^AA(firma,anr,30,0))#2 s est=$P(^(0),%,6)
	i bewart="L",$D(^AA(firma,anr,30,0))#2 s est=$P(^(0),%,7)
	q est
	;
AnrEan(firma,ean)
    n anr
	s anr=""
	i $D(^AM(firma,2,ean))#2 s anr=$P(^(ean),"`",1)
	e  i $D(^AM(firma,4,ean))#2 s anr=$P(^(ean),"`",1)
	e  i $F("ÖöZz",$E(ean,1)) S zanr=+$E(ean,2,$L(ean)) I $D(^AM(firma,19,zanr))#2 s anr=$P(^(zanr),"`",1)
	q anr
	;
GetAuftrag(firma,fil,anr,aunr,knr,lnr,datum,typ)
	K ^XW($J)
	s cnt=0
	I aunr="",anr="",knr="" q $J
	;
	I $L(datum) s datum=$$TXT7^%LN200(datum)
	E  s datum=900101
	;
	I $L(aunr) d aunr0 q $J
	I $L(knr) s knr1=knr d knr q $J
	s knr1=0 d knr
	Q $J
	;
knr	s kname=""
	I $L(anr) s anr1=anr d anr Q
	s anr1="" f  s anr1=$O(^AU(firma,fil,"A",knr1,anr1)) q:anr1=""  d anr
	Q
	;
aunr0
    s aunr1=aunr
	I typ="A" d  q
	. I $D(^AU(firma,fil,0,aunr1,0))#2 s audat=$P(^(0),"`",4),knr1=$P(^(0),"`",2)
	. e  q
	. I $L(anr) s anr1=anr d aunr q
	. s anr1="" f  s anr1=$O(^AU(firma,fil,"A",knr1,anr1)) q:anr1=""  d aunr
	;
	I typ="B" d
	. I $L(datum) s audat=datum d bonnr q
	. s audat="" f  s audat=$O(^STT(FIRMA,FIL,5,"BO",aunr1,audat)) q:audat=""  d bonnr
	q
	;
anr
	s audat="" f  s audat=$O(^AU(firma,fil,"A",knr1,anr1,audat),-1) q:audat=""!(audat<datum)  d
	. I typ="A" s aunr1="" f  s aunr1=$O(^AU(firma,fil,"A",knr1,anr1,audat,"AU",aunr1)) q:aunr1=""  d aunr
	. I typ="B" s aunr1="" f  s aunr1=$O(^AU(firma,fil,"A",knr1,anr1,audat,"BO",aunr1)) q:aunr1=""  d bonnr
	q
	
aunr
    i $D(^AU(firma,fil,0,aunr1,0))#2 s knr2=$P(^(0),"`",2)
    e  q
    s kname=$$ASCIANSI^%UML($P($G(^B(firma,"K",knr2,1)),"`",2))
	s pos="" f  s pos=$O(^AU(firma,fil,"A",knr1,anr1,audat,"AU",aunr1,pos)) q:pos=""  d  q:cnt>999
	. s (ekp,bnr)="" I $D(^AU(firma,fil,0,aunr1,10,pos,2))#2 q:$P(^(2),"`",1)'=lnr  s bnr=$P(^(2),"`",3),ekp=$P(^(2),"`",28)
	. E  Q
	. s bez="" I $D(^AU(firma,fil,0,aunr1,10,pos,0))#2 S bez=$$ASCIANSI^%UML($P(^(0),"`",3)_" "_$P(^(0),"`",4))
	. s (renr,lrenr,lsnr)=""
	. s wepos="" f  s wepos=$O(^AU(firma,fil,0,aunr1,10,pos,2,wepos)) q:wepos=""  d
	.. s (lsnr,bepos)="" I $D(^(wepos))#2 s lsnr=$P(^(wepos),"`",3),bepos=$P(^(wepos),"`",4)
	.. s rnr="",mevke=0 i $L(bnr),$L(lsnr),$D(^WE(firma,fil,0,lnr,lsnr,1,bnr,bepos,0))#2 s mevke=mevke+$P(^(0),"`",2),rnr=$P(^(0),"`",7)
	.. i rnr="" s cnt=cnt+1,^XW($J,cnt)=aunr1_"|"_audat_"|"_kname_"|"_pos_"|"_bez_"|"_""_"|"_""_"|"_lsnr_"|"_aunr1_"|"_bnr_"|"_mevke_"|"_ekp_"|"_anr1 q
	.. ;
	.. for ii1=1:1:$L(rnr,",") d
	... s rnr1=$P(rnr,",",ii1) q:rnr1=""
	... s lrenr="" I $L(rnr1),$D(^ER(firma,fil,0,"ER",rnr1,0))#2 s lrenr=$P(^(0),%,4)
	... s cnt=cnt+1
	... s ^XW($J,cnt)=aunr1_"|"_audat_"|"_kname_"|"_pos_"|"_bez_"|"_rnr1_"|"_lrenr_"|"_lsnr_"|"_aunr1_"|"_bnr_"|"_mevke_"|"_ekp_"|"_anr1
	q
	;
bonnr
    s knr2=""
	s pos="" f  s pos=$O(^STT(firma,fil,2,audat,"KA",aunr1,1,pos)) q:pos=""  d  q:cnt>999
	. I $D(^(pos))#2 s ad=^(pos)
	. E  q
	. s anr2=$P(ad,"`",1)
	. I $L(anr1),+anr1'=+anr2 Q
	. I knr2="" d
    .. s knr2=$P($G(^STT(firma,fil,2,audat,"KA",aunr1,0)),"`",4)
    .. I knr2="" s knr2=99999
    .. s kname="" I $L(knr2),$D(^B(firma,"K",knr2,1))#2 s kname=$P(^(1),"`",2)
    .. s kname=$$ASCIANSI^%UML(kname)
	. s mevke=$P(ad,"`",2)
	. s bez=$$ASCIANSI^%UML($P($G(^AA(firma,anr1,1)),"`",7))
	. s ekp=0 I +mevke s ekp=$J($P(ad,"`",4)/mevke,0,4)
	. s cnt=cnt+1
	. S ^XW($J,cnt)=aunr1_"|"_audat_"|"_kname_"|"_pos_"|"_bez_"||||"_aunr1_"||"_mevke_"|"_ekp_"|"_anr2
	Q
	;
DruckenKu(FIRMA,FIL,BELNR,DEV,PCODE,NOTNR,DEMOJN,NACHDRJN,SUBNR,RETDATUM,KNR)
	N (FIRMA,FIL,BELNR,DEV,PCODE,NOTNR,DEMOJN,NACHDRJN,SUBNR,RETDATUM,KNR)
	S KKR="K"
	s oldio=$I
	s PCODE=$$ANSIASCI^%UML(PCODE)
	s erg=$$DR()
	K ^%FAXSV($J)
    I +DEMOJN=0,$$GET^BMXOBJ("ARCHIV","Aktiv")="J" D
    . S DEV=54,NACHDRJN=1
    . D LOE^BMARCHIV s erg=$$DR() D ANF^BMARCHIV(FIRMA,"J","RW",BELNR_"/K"_SUBNR,DATUM,"K",+KNR,PCODE)
    U oldio
    Q erg
	;
DruckenLi(FIRMA,FIL,BELNR,DEV,PCODE,NOTNR,DEMOJN,NACHDRJN,SUBNR,RETDATUM)
	N (FIRMA,FIL,BELNR,DEV,PCODE,NOTNR,DEMOJN,NACHDRJN,SUBNR,RETDATUM)
	S KKR="L"
	s oldio=$I
	s PCODE=$$ANSIASCI^%UML(PCODE)
 	s erg=$$DR()
 	K ^%FAXSV($J)
    I +DEMOJN=0,$$GET^BMXOBJ("ARCHIV","Aktiv")="J" D
    . S DEV=54,NACHDRJN=1
    . D LOE^BMARCHIV s erg=$$DR() D ANF^BMARCHIV(FIRMA,"J","RW",BELNR_"/L"_SUBNR,DATUM,"L",+LNR,PCODE)
    U oldio
    Q erg
 	;
DR()
	d ^%XTT
	S $P(^MENUE(0,$J),%,3)="NADLINGER"
	S ^FA($J)=^FA(0)
	S WJ=$P(^FA(0),%,2)
	S %HIN=1
	S LISTE=$S(KKR="L":"8/60",1:"8/62")
	s id=$O(^RETOUREK.KopfI("Belegnr",FIRMA,FIL,BELNR,""))
	Q:id="" -2
	;
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	i obj="" q -3
	;
	S LNR=obj.Lnr
	S INFO1="",INFO2=""
	S BELART="RW"
	S BELBEZ=$P(^PA(FIRMA,20,WJ,BELART),%,2)
	S DATUM=$$TXT8^%LN200(obj.Datum)
	S AD="" I $D(^B(FIRMA,KKR,$S(KKR="L":LNR,1:KNR),1))#2 s AD=^(1)
	S NAME=$P(AD,%,2),BRANCH=$P(AD,%,3),STRASSE=$P(AD,%,4),LAND=$P(AD,%,5),PLZ=$P(AD,%,6),ORT=$P(AD,%,7),FAX=$P(AD,%,10)
	s idr=$O(^RETOUREK.ArtI("Art",FIRMA,FIL,obj.RetourArt,""))
	s RARTBEZ="" I $L(idr) s RARTBEZ=$$ANSIASCI^%UML(##class(RETOUREK.Art).%OpenId(idr).Bez)
	s idr=$O(^RETOUREK.TypI("Typ",FIRMA,FIL,obj.RetourTyp,""))
	S RTYPBEZ="" I $L(idr) s RTYPBEZ=$$ANSIASCI^%UML(##class(RETOUREK.Typ).%OpenId(idr).Bez)
	S UEBER=$E($$GET^BMXOBJ("BEST","UEBER"),1,127)
    S UEBER1=$E($$GET^BMXOBJ("BEST","UEBER1"),1,127)
    S UEBER2=$E($$GET^BMXOBJ("BEST","UEBER2"),1,127)
    S (ILN,HGGN,ILNK)=""
    I KKR="L",$$TXT7^%LN200(obj.Datum)>1040000,$D(^BZ(FIRMA,"L",+LNR,1))#2,$L($P(^(1),%,2))=6,$E($P(^(1),%,2),1)="9" D
 	. I $D(^BZ(FIRMA,"L",+LNR,1))#2,$P(^(1),%,18)="M",$D(^PA(FIRMA,110,FIL))#2 S HGGN=$P(^(FIL),%,21),ILN=$P(^(FIL),%,23)
 	. I $D(^BZ(FIRMA,"L",+LNR,1))#2,$P(^(1),%,18)'="M",$D(^PA(FIRMA,110,FIL))#2 S HGGN=$P(^(FIL),%,20),ILN=$P(^(FIL),%,22)
 	I '$D(^MENUE($P($G(^MENUE(0,$J)),%,3),FIRMA,7)) S (UEBER,UEBER1,UEBER2)="" ; KEIN FIRMENKOPF
 	I $L(ILN) S ILNK="ILN: "_$E(ILN,1,4)_" "_$E(ILN,5,7)_" "_$E(ILN,8,12)_" "_$E(ILN,13),ILN="ILN: "_ILN
 	I $L(HGGN) S HGGN="Hagebau Ges.Nr.: "_HGGN
 	S UEBER=$$FELD^BMBFDRU(UEBER)
 	S UEBER1=$$FELD^BMBFDRU(UEBER1)
 	S UEBER2=$$FELD^BMBFDRU(UEBER2)
	;
	I +NACHDRJN=0 d
	. s obj.Subnr=obj.Subnr+1,SUBNR=obj.Subnr
	. s bobj=##class(RETOUREK.Beleg).%New(SUBNR)
	. s bobj.Subnr=SUBNR
	. s bobj.KKR=KKR
	. I KKR="K" s bobj.Knr=KNR
	. s bobj.Notnr=NOTNR
	. s bobj.Status=2
	. s bobj.InfoDruck=PCODE_" "_$ZD($H,3)
	. s bobj.RetourDatum=RETDATUM
	. d obj.Beleg.Insert(bobj)
	. d bobj.%Close()
	E  d
	. s bobj=##class(RETOUREK.Beleg).%OpenId(id_"||"_SUBNR)
	. S bobj.RetourDatum=RETDATUM
	. S bobj.Notnr=NOTNR
	. S WERT=bobj.Wert
	. d bobj.%Close()
	;
	S RDATUM=$$TXT8^%LN200(RETDATUM)
 	S AD="" I $D(^PA(FIRMA,110,FIL))#2 S AD=^(FIL)
 	S RNAME=$P(AD,%,2),RBRANCH=$P(AD,%,3),RSTRASSE=$P(AD,%,4),RLAND=$P(AD,%,5),RPLZ=$P(AD,%,6),RORT=$P(AD,%,7)
 	S (PNAME,PNR)="" I $D(^PA(FIRMA,100,PCODE))#2 S PNAME=$P(^(PCODE),%,1),PNR=$P(^(PCODE),%,2)
 	S (DW,DWFAX)="" I $D(^PERS(FIRMA,PNR,0))#2 S DW=$P(^(0),%,7),DWFAX=$P(^(0),%,14),EMAIL=$P(^(0),%,13)
    S:$L(DWFAX) DWFAX=$$GET^BMXOBJ("FAXSERVER","FaxPr")_DWFAX
    I $L(EMAIL) S EMAIL=EMAIL_"@"_$$GET^BMXOBJ("EMAIL","DOMAIN")
    S BZ1=1
	;
	S WC=0 I $D(^B(FIRMA,"L",LNR,2))#2 S WC=$P(^(2),%,2)
	S WCKBEZ="" I $L(WC),$D(^BP(FIRMA,15,WC))#2 S WCKBEZ=$P(^(WC),%,4),KURS=$P(^(WC),%,6)
	I +NACHDRJN=0 D
	. S WERT=0
	. s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	.. I +NACHDRJN=0,KKR="K",obj.Pos.GetAt(cnt).SubnrKunde>0 Q
	.. I +NACHDRJN=0,KKR="L",obj.Pos.GetAt(cnt).SubnrLief>0 Q
	.. I +NACHDRJN=0,KKR="K",obj.Pos.GetAt(cnt).Knr'=KNR Q
	.. I +$E(obj.Pos.GetAt(cnt).Verhalten,6,6) S WERT=WERT+$J(-obj.Pos.GetAt(cnt).EST*obj.Pos.GetAt(cnt).MeVRE/obj.Pos.GetAt(cnt).VPM*KURS,0,2)
	;
	S DBELNR=BELNR_"/"_KKR_obj.Subnr
	S LNR=$E(LNR+1000000,2,7)
	I KKR="K" S KNR=$E(KNR+1000000,2,7)
	d OPEN^%DRU,USE^%DRU
	S sw=0
	I $L(NOTNR) s CNT="" F  S CNT=$O(^PA(FIRMA,30,NOTNR,1,CNT)) Q:CNT=""  D
	. S TEXT=$$FELD^BMBFDRU(^(CNT)),TEXT1="" 
	. I +sw=0,KKR="L" S sw=1,TEXT1="Warenwert :  "_$J($FN(WERT,",",2),12)_" "_WCKBEZ
	. D Z^%LISTE
	I NOTNR="",KKR="L" D
	. S TEXT="",TEXT1="Warenwert :  "_$J($FN(WERT,",",2),12)_" "_WCKBEZ
	. d Z^%LISTE
	I NOTNR="",KKR="K" D
	. S TEXT="",TEXT1=""
	. d Z^%LISTE
	D E^%LISTE
	D CLOSE^%DRU
	;
	S LNRART=obj.LnrArt
	S LISTE=$S(KKR="L":"8/61",1:"8/63")
	d OPEN^%DRU,USE^%DRU
	s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	. I +NACHDRJN=0,KKR="K",obj.Pos.GetAt(cnt).SubnrKunde>0 Q
	. I +NACHDRJN=0,KKR="K",obj.Pos.GetAt(cnt).Knr'=(+KNR) Q
	. I +NACHDRJN=0,KKR="L",obj.Pos.GetAt(cnt).SubnrLief>0 Q
	. I +NACHDRJN,KKR="K",obj.Pos.GetAt(cnt).SubnrKunde'=SUBNR Q
	. I +NACHDRJN,KKR="L",obj.Pos.GetAt(cnt).SubnrLief'=SUBNR Q
	. ;
	. I KKR="K",$E(obj.Pos.GetAt(cnt).Verhalten,5,5)="0" Q
	. I KKR="L",$E(obj.Pos.GetAt(cnt).Verhalten,6,6)="0" Q
	. S TEXT=$$ANSIASCI^%UML("")
	. S EPM=1
	. S ANR=obj.Pos.GetAt(cnt).Anr
	. S BEZ1=$$ANSIASCI^%UML(obj.Pos.GetAt(cnt).Bez1)
	. s BEZ2=$$ANSIASCI^%UML(obj.Pos.GetAt(cnt).Bez2)
	. S POS=obj.Pos.GetAt(cnt).Pos
	. S VKE=obj.Pos.GetAt(cnt).VKE
	. S VPE=obj.Pos.GetAt(cnt).VPE
	. S ERE=obj.Pos.GetAt(cnt).ERE
	. S EPM=obj.Pos.GetAt(cnt).EPM
	. S BEAN=$P($G(^AA(FIRMA,ANR,10,LNRART,0)),%,5)
	. S LBNR=$$ANSIASCI^%UML($P($G(^AA(FIRMA,ANR,10,LNRART,0)),%,2))
	. S BEMEVKE=-obj.Pos.GetAt(cnt).MeVPE
	. S BEMEVKE1=-obj.Pos.GetAt(cnt).MeVKE
	. S BRUTTO=$J(obj.Pos.GetAt(cnt).EST/obj.Pos.GetAt(cnt).VPM*obj.Pos.GetAt(cnt).EVM*obj.Pos.GetAt(cnt).EPM,0,4)
	. S POSWERT=$J(-obj.Pos.GetAt(cnt).EST*obj.Pos.GetAt(cnt).MeVRE/obj.Pos.GetAt(cnt).VPM*KURS,0,2)
	. S AUNR=obj.Pos.GetAt(cnt).KommAunr
	. S PRJN="J"
	. I +NACHDRJN=0 D
	.. I KKR="K" S obj.Pos.GetAt(cnt).SubnrKunde=obj.Subnr
	.. I KKR="L" S obj.Pos.GetAt(cnt).SubnrLief=obj.Subnr
	. D Z^%LISTE
	. I VKE'=VPE!$L(BEZ2)!$L(BEAN) D Z0^%LISTE
	. I obj.Pos.GetAt(cnt).Notiz'="" f i=1:1:$L(obj.Pos.GetAt(cnt).Notiz,$C(13,10)) D
	.. S TEXT=$$ANSIASCI^%UML($P(obj.Pos.GetAt(cnt).Notiz,$C(13,10),i))
	.. D Z2^%LISTE
	. I obj.Pos.GetAt(cnt).KommLsnr'="" s TEXT="aus LS "_obj.Pos.GetAt(cnt).KommLsnr D Z2^%LISTE
	. S TEXT="" D Z2^%LISTE
	. i obj.Pos.GetAt(cnt).Status<2 s obj.Pos.GetAt(cnt).Status=2
	
	i obj.Status<2 s obj.Status=2
	;
	d E^%LISTE
	D CLOSE^%DRU
	;
	S DATUM=$$TXT7^%LN200(obj.Datum)
	S LNR=obj.Lnr
	S BELNR=obj.Belegnr
	;
	d obj.%Save()
	d obj.%Close()
	;
	s bobj=##class(RETOUREK.Beleg).%OpenId(id_"||"_SUBNR)
 	i bobj'="" D
 	. s bobj.Wert=WERT
 	. i bobj.Status<2 s bobj.Status=2
 	. d bobj.%Save()
 	. d bobj.%Close()
	Q 1
	;
Verbuch(FIRMA,FIL,BELNR,SUBNR,PCODE,VERBJN)
 
	N (FIRMA,FIL,BELNR,SUBNR,DEV,PCODE,NOTNR,VERBJN)
	d ^%XTT
	S $P(^MENUE(0,$J),%,3)="NADLINGER"
	S ^FA($J)=^FA(0)
	S WJ=$P(^FA(0),%,2)
	s id=$O(^RETOUREK.KopfI("Belegnr",FIRMA,FIL,BELNR,""))
	Q:id="" -2
	;
	s LIDAT=%DR
	s bobj=##class(RETOUREK.Beleg).%OpenId(id_"||"_SUBNR)
	i bobj'="" d
	. S LIDAT=$$TXT7^%LN200(bobj.RetourDatum)
	. d bobj.%Close()
	;
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	i obj="" q -3
	i obj.Status>3 d obj.%Close() q -4
	;
	S LNR=obj.Lnr,BNR="DIV"
	S LSNR="Ret "_(+LNR)_"/"_BELNR_"/L"_SUBNR
	s sw=0
	s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	. S ANR=obj.Pos.GetAt(cnt).Anr
	. I obj.Pos.GetAt(cnt).Status'=2 Q
	. I obj.Pos.GetAt(cnt).SubnrLief'=SUBNR Q
	. I $L(ANR),$D(^AA(FIRMA,ANR,1))#2 S ATYP=$P(^(1),%,5)
	. E  Q
	. i obj.Pos.GetAt(cnt).Status<4 s obj.Pos.GetAt(cnt).Status=4
	. I $L(ATYP),$D(^PA(FIRMA,35,ATYP))#2,$P(^(ATYP),%,14)="J" Q ;Bestell J/N
	. I $L(ATYP),$D(^PA(FIRMA,35,ATYP))#2,$P(^(ATYP),%,15)="J" D ;Lagerstand J/N
	.. ZA ^AA(FIRMA,ANR,30,1,FIL)
	.. S $P(^AA(FIRMA,ANR,30,1,FIL,1),%,15)=$P($G(^AA(FIRMA,ANR,30,1,FIL,1)),%,15)-obj.Pos.GetAt(cnt).MeVKE
	.. K ^AA(FIRMA,ANR,30,1,FIL,3,"RW"_obj.Belegnr,obj.Pos.GetAt(cnt).Pos)
	.. ZD ^AA(FIRMA,ANR,30,1,FIL)
	. I +$E(obj.Pos.GetAt(cnt).Verhalten,4,1) Q ;Austausch
	. I +$E(obj.Pos.GetAt(cnt).Verhalten,1,1)=0 Q ;Kein Lager
	. s sw=1
	. s ^WE(FIRMA,FIL,0,obj.Lnr,LSNR,1,BNR,obj.Pos.GetAt(cnt).Pos,0)=obj.Pos.GetAt(cnt).Anr_%_(-obj.Pos.GetAt(cnt).MeVKE)_%_"J"_%_"N"_%_obj.Pos.GetAt(cnt).EST
	I +sw d 
	. S ^WE(FIRMA,FIL,0,obj.Lnr,LSNR,0)=1_%_LIDAT_%_PCODE
	. I +VERBJN d ^BMBKC
	;
	s sw1=1
	s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	. I obj.Pos.GetAt(cnt).Status<4 s sw1=0
	i +sw1 s obj.Status=4
	e  s obj.Status=3
	s status=obj.Status
	;
	d obj.%Save()
	d obj.%Close()
	
	s bobj=##class(RETOUREK.Beleg).%OpenId(id_"||"_SUBNR)
 	i bobj'="" D
 	. i bobj.Status<4 s bobj.Status=4
 	. s bobj.InfoVerb=PCODE_" "_$ZD($H,3)
 	. I +sw s bobj.Lsnr=LSNR
 	. d bobj.%Save()
 	. d bobj.%Close()
	;
	Q status
	
Suche(id,sutxt)
	
	s gef=0
	for i=1:1:$L(sutxt,",") d  q:+gef
	. s sutxt1=$P(sutxt,",",i) q:sutxt1=""
	. I $D(^RETOUREK.SucheD(sutxt1,id)) s gef=1 Q
	. S ind=$O(^RETOUREK.SucheD(sutxt1))
	. I sutxt1=$E(ind,1,$L(sutxt1)),$D(^RETOUREK.SucheD(ind,id)) s gef=1 
	q gef	
	
MC
	K ^RETOUREK.SucheD
	K ^RETOUREK.SucheI
	s id="" f  s id=$O(^RETOUREK.KopfD(id)) Q:id=""  D
	. W id,!
	. D MCID(id)
	k
	q
	;
MCID(id)
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	. s obj1=##class(RETOUREK.Suche).%New()
	. s obj1.Text=obj.Pos.GetAt(cnt).Anr
	. s obj1.DokId=obj.%Id()
	. d obj1.%Save()
	. d obj1.%Close()
	. s txt=obj.Pos.GetAt(cnt).Bez1
	. I $L(txt) d
	.. s obj1=##class(RETOUREK.Suche).%New()
	.. s obj1.Text=$$UPPER(txt)
	.. s obj1.DokId=obj.%Id()
	.. d obj1.%Save()
	.. d obj1.%Close()
	. s txt=obj.Pos.GetAt(cnt).Bez2
	. I $L(txt) d
	.. s obj1=##class(RETOUREK.Suche).%New()
	.. s obj1.Text=$$UPPER(txt)
	.. s obj1.DokId=obj.%Id()
	.. d obj1.%Save()
	.. d obj1.%Close()
	. s txt=obj.Pos.GetAt(cnt).Kbez
	. I $L(txt) d
	.. s obj1=##class(RETOUREK.Suche).%New()
	.. s obj1.Text=$$UPPER(txt)
	.. s obj1.DokId=obj.%Id()
	.. d obj1.%Save()
	.. d obj1.%Close()
	d obj.%Close()
	k obj,obj1
	
	Q
	;
UPPER(S)
	Q $TR($TR(S,"abcdefghijklmnopqrstuvwxyzöäü","ABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜ"),",","")
	
XMLREAD(faxfile)
 N c,OZT
 S OZT=$ZT
 S $ZT="EXMLREAD^BMRWUtils"
 U faxfile
 R *c
 S $ZT=OZT
 s c=$ZH(c)
 q:$L(c)=1 "0"_c
 q c
EXMLREAD
 Q ""
]]></Routine>
<Class name="RETOUREK.Art">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>59574,75532.84452</TimeChanged>
<TimeCreated>59678,58863.807626</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="Firma">
<Type>%Integer</Type>
</Property>

<Property name="Filiale">
<Type>%Integer</Type>
</Property>

<Property name="Art">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="Bez">
<Type>%String</Type>
</Property>

<Index name="Art">
<Properties>Firma,Filiale,Art</Properties>
</Index>

<Method name="Speich">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,filiale:%Integer,code:%String,bez:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	if code="" &sql(delete from RETOUREK.Art where Firma=firma and Filiale=filiale) Q 1
	
	set obj=..%New()
	s obj.Firma=firma
	s obj.Filiale=filiale
	s obj.Art=code
	s obj.Bez=bez
	d obj.%Save()
	d obj.%Close()
	
	Q 1
]]></Implementation>
</Method>

<Query name="Art">
<Type>%SQLQuery</Type>
<FormalSpec>Firma:%String,Filiale:%String</FormalSpec>
<SqlQuery>SELECT %ID,Art,Bez FROM Art
 WHERE (Firma = :Firma AND Filiale = :Filiale)
 ORDER BY Bez</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^RETOUREK.ArtD</DataLocation>
<DefaultData>ArtDefaultData</DefaultData>
<IdLocation>^RETOUREK.ArtD</IdLocation>
<IndexLocation>^RETOUREK.ArtI</IndexLocation>
<StreamLocation>^RETOUREK.ArtS</StreamLocation>
<Data name="ArtDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Firma</Value>
</Value>
<Value name="3">
<Value>Filiale</Value>
</Value>
<Value name="4">
<Value>Art</Value>
</Value>
<Value name="5">
<Value>Bez</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="RETOUREK.Beleg">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>59614,62961.627742</TimeChanged>
<TimeCreated>59678,58864.045544</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="Kopf">
<Type>RETOUREK.Kopf</Type>
<Cardinality>parent</Cardinality>
<Inverse>Beleg</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Subnr">
<Type>%String</Type>
</Property>

<Property name="RetourDatum">
<Type>%Date</Type>
</Property>

<Property name="KKR">
<Type>%String</Type>
</Property>

<Property name="Knr">
<Type>%String</Type>
</Property>

<Property name="Notnr">
<Type>%String</Type>
</Property>

<Property name="Status">
<Type>%Integer</Type>
</Property>

<Property name="Wert">
<Type>%Float</Type>
</Property>

<Property name="InfoDruck">
<Type>%String</Type>
</Property>

<Property name="InfoVerb">
<Type>%String</Type>
</Property>

<Property name="Lsnr">
<Type>%String</Type>
</Property>

<Index name="IDKey">
<IdKey>1</IdKey>
<Properties>Subnr</Properties>
<Unique>1</Unique>
</Index>

<Query name="Liste">
<Type>%SQLQuery</Type>
<FormalSpec>id:%Integer,Status:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,KKR,Subnr,Retourdatum,Status,Wert,InfoDruck,InfoVerb,Lsnr FROM Beleg
	where  $$idtest^BMRWUtils(%ID,:id)=1 and Status>=:Status]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("Beleg")</DataLocation>
<DefaultData>BelegDefaultData</DefaultData>
<IdLocation>^RETOUREK.KopfC("Beleg")</IdLocation>
<IndexLocation>^RETOUREK.BelegI</IndexLocation>
<StreamLocation>^RETOUREK.BelegS</StreamLocation>
<Data name="BelegDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Retourdatum</Value>
</Value>
<Value name="3">
<Value>Subnr</Value>
</Value>
<Value name="4">
<Value>RetourDatum</Value>
</Value>
<Value name="5">
<Value>KKR</Value>
</Value>
<Value name="6">
<Value>Notnr</Value>
</Value>
<Value name="7">
<Value>Status</Value>
</Value>
<Value name="8">
<Value>Wert</Value>
</Value>
<Value name="9">
<Value>PcodeDruck</Value>
</Value>
<Value name="10">
<Value>PcodeVerb</Value>
</Value>
<Value name="11">
<Value>InfoDruck</Value>
</Value>
<Value name="12">
<Value>InfoVerb</Value>
</Value>
<Value name="13">
<Value>Lsnr</Value>
</Value>
<Value name="14">
<Value>Knr</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="RETOUREK.Kopf">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>60921,65403.021179</TimeChanged>
<TimeCreated>59678,58865.674903</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="Firma">
<Type>%Integer</Type>
</Property>

<Property name="Filiale">
<Type>%Integer</Type>
</Property>

<Property name="Belegnr">
<Type>%Integer</Type>
</Property>

<Property name="Datum">
<Type>%Date</Type>
</Property>

<Property name="PosCnt">
<Type>%Integer</Type>
</Property>

<Property name="Status">
<Type>%Integer</Type>
</Property>

<Property name="ErfPcode">
<Type>%String</Type>
</Property>

<Property name="ErfDatum">
<Type>%Date</Type>
</Property>

<UDLText name="T9">
<Content><![CDATA[
// A=aktueller L=letzter D=durchschn. EST

]]></Content>
</UDLText>

<Property name="ErfAbtnr">
<Type>%String</Type>
</Property>

<Property name="Lnr">
<Type>%Integer</Type>
</Property>

<Property name="LnrArt">
<Type>%Integer</Type>
</Property>

<Property name="Knr">
<Type>%String</Type>
</Property>

<Property name="RetourArt">
<Type>%String</Type>
</Property>

<Property name="RetourTyp">
<Type>%String</Type>
</Property>

<Property name="Subnr">
<Type>%Integer</Type>
</Property>

<Property name="Bewart">
<Type>%String</Type>
</Property>

<Property name="Wert">
<Type>%Float</Type>
</Property>

<Property name="StatusDatum">
<Type>%Date</Type>
<Collection>array</Collection>
</Property>

<Index name="Belegnr">
<Properties>Firma,Filiale,Belegnr</Properties>
</Index>

<Property name="Paketnr">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="Pos">
<Type>RETOUREK.Pos</Type>
<Cardinality>children</Cardinality>
<Inverse>Kopf</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Beleg">
<Type>RETOUREK.Beleg</Type>
<Cardinality>children</Cardinality>
<Inverse>Kopf</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="Paketnr">
<Properties>Firma,Filiale,Paketnr</Properties>
<Unique>1</Unique>
</Index>

<Method name="Drucken">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,fil:%String,belnr:%String,dev:%String,pcode:%String,ktext:%String,drtyp:%String,demojn:%Boolean,nachdrjn:%Boolean,subnr:%String,retdatum:%Date,knr:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s erg=1
	if $F(drtyp,"L") s erg=$$DruckenLi^BMRWUtils(firma,fil,belnr,dev,pcode,ktext,demojn,nachdrjn,subnr,retdatum) q:erg'=1 erg
	if $F(drtyp,"K") s erg=$$DruckenKu^BMRWUtils(firma,fil,belnr,dev,pcode,ktext,demojn,nachdrjn,subnr,retdatum,knr) 
	q erg
]]></Implementation>
</Method>

<Method name="FaxenXML">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,fil:%String,faxexec:%String,kkr:%String,konto:%String,faxnr:%String,betreff:%String,firmakontakt:%String,kontakt:%String,pcode:%String,linkbelart:%String,linkbelnr:%String,linkbeldat:%Date</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[


 S text="" 
 S abtnr="  " I $D(^PA(firma,100,pcode))#2 S abtnr=$P(^(pcode),%,5)
 s %site="D"_$E(100+firma,2,3)_$J(abtnr,2)_$J(pcode,3)
 s faxfile=$$GET^BMXOBJ("FAXSERVER","PclPfad")
 I $E(faxfile,$L(faxfile))'="/" s faxfile=faxfile_"/"
 s faxfile=faxfile_"temp"_$J_$TR($H,",","")_".xml"
 o faxfile:"WN" u faxfile
 w "<?xml version=""1.0"" encoding=""ISO-8859-1""?>",!
 w "<faxfile>",!
 w "<site>"_%site_"</site>",!
 w "<datum>"_$ZD(+$H,3)_"</datum>",!
 w "<zeit>"_$ZT($P($H,",",2))_"</zeit>",!
 w "<faxnr>"_$$FAXNUM^%DRUFAXSV(faxnr)_"</faxnr>",!
 w "<firmakontakt>"_$$XMLUM^%DRUFAXSV($$ASCIANSI^%UML(firmakontakt))_"</firmakontakt>",!
 w "<kontakt>"_$$XMLUM^%DRUFAXSV($$ASCIANSI^%UML(kontakt))_"</kontakt>",!
 w "<typ>"_"F"_"</typ>",!
 I $L(betreff) w "<betreff>"_$$XMLUM^%DRUFAXSV($$ASCIANSI^%UML(betreff))_"</betreff>",!
 I $L(betreff)=0 w "<betreff>Ihr Dokument</betreff>",!
 w "<nachtjn>"_"N"_"</nachtjn>",!
 w "<deckblattjn>"_"N"_"</deckblattjn>",!
 I $L(text) w "<text><![CDATA["_$$ASCIANSI^%UML(text)_"]]]]><![CDATA[></text>",!
 //W "<absemail>"_""_"@"_$P(^PA(firma,340,"EMAIL","DOMAIN"),%,2)_"</absemail>",!
 //W "<empfemail>"_""_"</empfemail>",!

 c faxfile
 
 S %E=0
 s ^FAXSV($J)="XML"_%_$P(faxfile,".",1)_".pcl"
 s execute="s ^FAXSV($J)="_faxexec x execute
 i +^FAXSV($J)=0 K ^FAXSV($J) c faxfile Q 0
 K ^FAXSV($J)
 
 s xmlfile=$P(faxfile,".",1)_".xml"
 s faxfile=$P(faxfile,".",1)_".pcl"
 o xmlfile:"AW" u xmlfile
 w "<filetyp>pcl</filetyp>",!
 w "<faxpic><![CDATA["
 o faxfile
 u faxfile
 F  s erg=$$XMLREAD^BMRWUtils(faxfile) q:erg=""  u xmlfile w erg
 c faxfile
 U xmlfile
 w "]]]]><![CDATA[></faxpic>",!
 w "</faxfile>",!
 c faxfile,xmlfile
 I $F($ZV,"UNIX") d
 . s x="chown faxftp "_xmlfile
 . s x=$$JOBWAIT^%HOSTCMD(x)
 . s x="mv "_xmlfile_" "_$P(xmlfile,"temp",1)_"fax"_$P(xmlfile,"temp",2)
 . s x=$$JOBWAIT^%HOSTCMD(x)
 . s x="rm "_faxfile
 . s x=$$JOBWAIT^%HOSTCMD(x)
 E  d
 . s x="ren "_xmlfile_" "_$P(xmlfile,"temp",1)_"fax"_$P(xmlfile,"temp",2)
 . s x=$$JOBWAIT^%HOSTCMD(x)
 . s x="del "_faxfile
 . s x=$$JOBWAIT^%HOSTCMD(x)
 . k ^FAXSV($J)
 . k faxfile,xmlfile
 
 ;	
 Q 1
]]></Implementation>
</Method>

<Method name="Faxen">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,fil:%String,faxexec:%String,kkr:%String,konto:%String,faxnr:%String,betreff:%String,firmakontakt:%String,kontakt:%String,pcode:%String,linkbelart:%String,linkbelnr:%String,linkbeldat:%Date</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[

	if faxexec="" q 0
	
	I $$GET^BMXOBJ("FAXSERVER","Output")="XML" q ##class(RETOUREK.Kopf).FaxenXML(firma,fil,faxexec,kkr,konto,faxnr,betreff,firmakontakt,kontakt,pcode,linkbelart,linkbelnr,linkbeldat)

	s obj=##class(FBM.FaxeBaumat).%New()
	s obj.FilePcl5="fax"_$J_$TR($H,",","")_".pcl"
	s faxfile=$P(^PA(firma,340,"FAXSERVER","PclPfad"),"`",2)
	I $E(faxfile,$L(faxfile))'="/" s faxfile=faxfile_"/"
 	s faxfile=faxfile_obj.FilePcl5
	s obj.Typ="F"
	s obj.Betreff=betreff
	s obj.Faxnr=faxnr
	s obj.Firma=firma
	s obj.Datum=+$H
	s obj.Zeit=$P($H,",",2)
	s obj.FirmaKontakt=firmakontakt
	s obj.Konto=konto
	s obj.KKR=kkr
	s obj.Kontakt=kontakt
	s obj.NachtJN="N"
	s obj.Personal=$$ANSIASCI^%UML(pcode)
	s obj.Status=1
	s obj.Text=""
	s obj.LinkBelart=linkbelart
	s obj.LinkBelnr=linkbelnr
	s belart=linkbelart
	s obj.LinkBeldat=linkbeldat
	s obj.DeckblattJN="N"
	S abtnr="  " I $D(^PA(firma,100,$$ANSIASCI^%UML(pcode)))#2 S abtnr=$P(^($$ANSIASCI^%UML(pcode)),"`",5)
 	s obj.Site=$E(100+firma,2,3)_$J(abtnr,2)_$J(pcode,3)
	s obj.LinkIndexart=$S(belart="RW":36,belart="AG":25,belart="BE":10,belart="BV":19,belart="SR":20,belart="LS":14,belart="PV":21,belart="RE":15,belart="AU":13,1:"")
	d obj.%Save()
	s id=obj.%Id()
	;	
 	S ^FAXSV($J)=id_"`"_faxfile
	s execute="s ^FAXSV($J)="_faxexec x execute
	i +^FAXSV($J)=0 K ^FAXSV($J) d obj.%Close() Q 0
	K ^FAXSV($J)
	;	
	if ##class(%File).Exists(faxfile) D
    . s file=##class(%File).%New(faxfile)
    . d file.Open("RU")
    . d obj.Faxpic.CopyFrom(file)
    . s obj.FilePcl5=$P(faxfile,"/",$L(faxfile,"/"))
    . d file.%Close()
    . k file
    ;
	d obj.%Save()
	d obj.%Close()
	k obj
	
	q 1
]]></Implementation>
</Method>

<Method name="GetFaxdat">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,kkr:%String,konto:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s kname=$P($G(^B(firma,kkr,konto,1)),"`",2)
	i kkr="K" d
	. s faxnr=$P($G(^B(firma,"K",konto,1)),"`",10)
	. s kontakt=""
	i kkr="L" d
	. s faxnr=$P($G(^B(firma,"L",konto,1)),"`",10)
	. s kontakt=""
	. s lager=$O(^BZ(firma,"L",konto,3,""))
	. I $L(lager),$D(^BZ(firma,"L",konto,3,lager,0))#2,$P(^(0),"`",11)'="" s kontakt=$P(^(0),"`",3),faxnr=$P(^(0),"`",11)
	q faxnr_"|"_$$ASCIANSI^%UML(kname)_"|"_$$ASCIANSI^%UML(kontakt)
]]></Implementation>
</Method>

<Method name="GetFinger">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[id:%String,status:%String,&pers:%String,&datum:%Date]]></FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	if obj="" q 0
	s pers=obj.StatusPers.GetAt(status)
	s datum=obj.StatusDatum.GetAt(status)
	d obj.%Close()
	k obj
	q 1
]]></Implementation>
</Method>

<Method name="GetId">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,filiale:%Integer,belegnr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	q $O(^RETOUREK.KopfI("Belegnr",firma,filiale,belegnr,""))
]]></Implementation>
</Method>

<Method name="GetInfo">
<ClassMethod>1</ClassMethod>
<FormalSpec>FIRMA:%String,FIL:%String,id:%String,subnr:%String,kkr:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	K ^XW($J)
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	if obj="" q 0
	s n=0
	s cnt="" f  s cnt=obj.Pos.Next(cnt) q:cnt=""  d
	. i subnr'="",kkr="K",obj.Pos.GetAt(cnt).SubnrKunde'=subnr Q
	. i subnr'="",kkr="L",obj.Pos.GetAt(cnt).SubnrLief'=subnr Q
	. s n=n+1
	. S LSNR="                  "
	. i obj.Pos.GetAt(cnt).SubnrLief'="" s obj1=##class(RETOUREK.Beleg).%OpenId(id_"||"_obj.Pos.GetAt(cnt).SubnrLief) i $L(obj1) d
	.. I obj1.Lsnr'="" s LSNR=obj1.Lsnr
	.. d obj1.%Close()
	.. k obj1
	. s ^XW($J,n)=obj.Pos.GetAt(cnt).Pos_"|"_$$ASCIANSI^%UML(obj.Pos.GetAt(cnt).Bez1)_"|"_obj.Pos.GetAt(cnt).MeVKE_"|"_obj.Pos.GetAt(cnt).VKE_"|"_LSNR_"|"_$P($G(^WE(FIRMA,FIL,0,obj.Lnr,LSNR,1,"DIV",obj.Pos.GetAt(cnt).Pos,0)),"`",7)_"|"_obj.Pos.GetAt(cnt).Status_"|"_obj.Pos.GetAt(cnt).SubnrKunde_"|"_obj.Pos.GetAt(cnt).SubnrLief_"|"_obj.Knr
	d obj.%Close()
	k obj
	
	q $J
]]></Implementation>
</Method>

<Method name="GetPrinter">
<ClassMethod>1</ClassMethod>
<FormalSpec>ipname:%String,clientname:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[

	S ^test("RETW")=ipname_"|"_clientname
	s name=ipname
	if clientname'="" s name=clientname
	s dev="",i="" f  s i=$O(^%DRU(4,i)) Q:i=""  I $TR($ZCONVERT(i,"L"),"_","")=$TR($ZCONVERT(name,"L"),"_","") s dev=$P(^(i),"`",1) Q
	i dev="" q ""
	s erg=""
	I $D(^%DRU(1,dev))#2 D
	. s ad=^(dev)
	. s dr=$P(ad,"`",8)
	. i dr'="" D
	.. s bez="",faxjn=0 I $D(^%DRU(1,dr))#2 s bez=$P(^(dr),"`",4),faxjn=($P(^(dr),"`",1)="2")
	.. s $P(erg,"|",1,3)=dr_"|"_$$ASCIANSI^%UML(bez)_"|"_faxjn
	. s dr=$P(ad,"`",19)
	. i dr'="" d
	.. s bez="",faxjn=0 I $D(^%DRU(1,dr))#2 s bez=$P(^(dr),"`",4),faxjn=($P(^(dr),"`",1)="2")
	.. s $P(erg,"|",4,6)=dr_"|"_$$ASCIANSI^%UML(bez)_"|"_faxjn
	. s dr=$P(ad,"`",20)
	. i dr'="" d
	..s bez="",faxjn=0 I $D(^%DRU(1,dr))#2 s bez=$P(^(dr),"`",4),faxjn=($P(^(dr),"`",1)="2")
	.. s $P(erg,"|",7,9)=dr_"|"_$$ASCIANSI^%UML(bez)_"|"_faxjn

	q erg
]]></Implementation>
</Method>

<Method name="GetText">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	K ^XW($J)
	S CNT=0
	S TXT="" F  S TXT=$O(^PA(firma,30,TXT)) Q:TXT=""  D
	. S CNT=CNT+1,^XW($J,CNT)=TXT_"|"_$$ASCIANSI^%UML($P(^(TXT,0),"`",1))
	Q $J
]]></Implementation>
</Method>

<Method name="KName">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,knr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	I knr="" q ""
	Q $$ASCIANSI^%UML($P($G(^B(firma,"K",knr,1)),"`",2))
]]></Implementation>
</Method>

<Method name="KopfLoad">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[id:%String,&belegnr:%String,&datum:%Date,&status:%Integer,&erfpers:%String,&erfdatum:%Date,&lnr:%Integer,&lnrart:%Integer,&knr:%String,&retourart:%String,&retourtyp:%String,&bewart:%String,&paketnr:%String,&hagebaujn:%Boolean]]></FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	if obj="" q 0
	
	s belegnr=obj.Belegnr
	s datum=obj.Datum
	s status=obj.Status
	s erfpers=obj.ErfPcode
	s erfdatum=obj.ErfDatum
	s lnr=obj.Lnr
	s lnrart=obj.LnrArt
	s knr=obj.Knr
	s retourart=obj.RetourArt
	s retourtyp=obj.RetourTyp
	s bewart=obj.Bewart
	s paketnr=obj.Paketnr
	s hagebaujn=$$TSTLIEF^BMHGUTIL1(obj.Firma,lnr)
	d obj.%Close()
	k obj
	
	q 1
]]></Implementation>
</Method>

<Method name="SetBeauf">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,fil:%String,belnr:%String,anr:%String,me:%Float,me1:%Float,pos:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	I $D(^AA(firma,anr,1))#2 s atyp=$P(^(1),"`",5)
	E  Q 0
	I $D(^PA(firma,35,atyp))#2,$P(^(atyp),"`",15)'="J" Q 1
	;
	ZA ^AA(firma,anr,30,1,fil)
	S $P(^AA(firma,anr,30,1,fil,1),"`",15)=$P($G(^AA(firma,anr,30,1,fil,1)),"`",15)+me
	I +me1 S ^AA(firma,anr,30,1,fil,3,"RW"_belnr,pos)=me1
	E  K ^AA(firma,anr,30,1,fil,3,"RW"_belnr,pos)
	ZA ^AA(firma,anr,30,1,fil)
	Q 1
]]></Implementation>
</Method>

<Method name="KopfSpeich">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,filiale:%Integer,id:%String,belegnr:%String,datum:%Date,status:%Integer,erfpers:%String,erfdatum:%Date,lnr:%Integer,lnrart:%Integer,knr:%Integer,retourart:%String,retourtyp:%String,bewart:%String,paketnr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s neu=0
	if belegnr="NEU" d
	. s wj=$P(^FA(0),"`",2)
	. s belegnr=$P($G(^PA(firma,20,wj,"RW")),"`",5)
	. S:belegnr="" belegnr=1
	. S $P(^("RW"),"`",5)=belegnr+1
	. s neu=1
	if id="" d
	. s obj=##class(RETOUREK.Kopf).%New()
	. s obj.Firma=firma
	. s obj.Filiale=filiale
	. s obj.Belegnr=belegnr
	. s obj.Subnr=0
	E  s obj=##class(RETOUREK.Kopf).%OpenId(id)
	if neu d
	. s obj.ErfPcode=erfpers
	. s obj.ErfDatum=erfdatum
	. I $l(erfpers),$D(^PA(firma,100,erfpers))#2 S obj.ErfAbtnr=$$ASCIANSI^%UML($P(^(erfpers),%,5))
	s obj.Datum=datum
	s obj.Status=status
	s obj.Lnr=lnr
	s obj.LnrArt=lnrart
	s obj.Knr=knr
	s obj.RetourArt=retourart
	s obj.RetourTyp=retourtyp
	s obj.Bewart=bewart
	s obj.Paketnr=paketnr
	d obj.%Save()
	s idkopf=obj.%Id()
	d obj.%Close()
	k obj
	
	s hagebaujn=$$TSTLIEF^BMHGUTIL1(firma,lnr)
	
	q idkopf_"|"_belegnr_"|"_hagebaujn
]]></Implementation>
</Method>

<Method name="Kopfloesch">
<ClassMethod>1</ClassMethod>
<FormalSpec>idkopf:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	d ##class(RETOUREK.Kopf).%DeleteId(idkopf)
]]></Implementation>
</Method>

<Method name="LName">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,lnr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Q $$ASCIANSI^%UML($P($G(^B(firma,"L",lnr,1)),"`",2))
]]></Implementation>
</Method>

<Method name="SetWert">
<ClassMethod>1</ClassMethod>
<FormalSpec>idkopf:%String</FormalSpec>
<ReturnType>%Float</ReturnType>
<Implementation><![CDATA[
	
	k subnr,wert
	set obj=##class(RETOUREK.Kopf).%OpenId(idkopf)
	if obj'="" d
	. s wert=0
	. s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	.. s wert1=-obj.Pos.GetAt(cnt).EST*obj.Pos.GetAt(cnt).MeVKE*obj.Pos.GetAt(cnt).VRM/obj.Pos.GetAt(cnt).VPM
	.. s wert=wert+wert1
	.. i obj.Pos.GetAt(cnt).SubnrKunde'="" S wert(obj.Pos.GetAt(cnt).SubnrKunde)=$G(wert(obj.Pos.GetAt(cnt).SubnrKunde))+wert1
	.. i obj.Pos.GetAt(cnt).SubnrLief'="" S wert(obj.Pos.GetAt(cnt).SubnrLief)=$G(wert(obj.Pos.GetAt(cnt).SubnrLief))+wert1
	. s obj.Wert=wert
	. d obj.%Save()
	. d obj.%Close()
	. s subnr="" f  s subnr=$O(wert(subnr)) q:subnr=""  d
	.. s obj=##class(RETOUREK.Beleg).%OpenId(idkopf_"||"_subnr)
	.. i obj'="" d
	... s obj.Wert=wert(subnr)
	... d obj.%Save()
	... d obj.%Close()
	K obj
	q wert
]]></Implementation>
</Method>

<Method name="PosAnz">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	i obj="" q -1
	s erg=(obj.Pos.Count())
	d obj.%Close()
	k obj 
	
	q erg
]]></Implementation>
</Method>

<Method name="Verbuch">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,fil:%String,belnr:%String,subnr:%String,pcode:%String,verbjn:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Q $$Verbuch^BMRWUtils(firma,fil,belnr,subnr,pcode,verbjn)
]]></Implementation>
</Method>

<Method name="Match">
<ClassMethod>1</ClassMethod>
<FormalSpec>dokid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s text="" f  s text=$O(^RETOUREK.SucheI("dokid",dokid,text)) q:text=""  d
	. s id="" f  s id=$O(^RETOUREK.SucheI("dokid",dokid,text,id)) q:id=""  d
	.. s obj=##class(RETOUREK.Suche).%OpenId(text_"||"_id)
	.. d obj.%DeleteId(text_"||"_id)
	.. d obj.%Close()
	D MCID^BMRWUtils(dokid)
	k obj
	Q 1
]]></Implementation>
</Method>

<Query name="Belege">
<Type>%SQLQuery</Type>
<FormalSpec>Firma:%Integer,Filiale:%Integer,Lieferant:%Integer,Personalcode:%String,Abteilung:%String</FormalSpec>
<SqlQuery>SELECT %ID,Belegnr,Status,Lnr,Knr,ErfDatum,ErfPcode,ErfAbtnr FROM Kopf
 WHERE (Firma = :Firma AND Filiale = :Filiale AND (:Lieferant is Null or Lnr = :Lieferant) AND
        (:Personalcode is null or ErfPcode = :Personalcode) AND (:Abteilung is Null or ErfAbtnr = :Abteilung))
 ORDER BY Belegnr DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="Suche">
<Type>%SQLQuery</Type>
<FormalSpec>firma:%Integer,status:%Integer,datumvon:%Date,datumbis:%Date,abtnr:%String,lnr:%String,paketnr:%String,knr:%String,sutxt:%String</FormalSpec>
<SqlQuery><![CDATA[SELECT %ID,Belegnr,Datum,$$Erf^BMRWUtils(%ID),Lnr,$$LName^BMRWUtils(firma,Lnr),Wert  FROM Kopf
where (:lnr is null or Lnr = :lnr ) and
      (:status is null or Status = :status) and
      (:knr is null or Knr = :knr) and
      (Datum >= :datumvon) and
      (Datum <= :datumbis) and
      (:paketnr is null or Paketnr[:paketnr) and
      (:abtnr is null or ErfAbtnr = :abtnr) and
      (:sutxt is null or $$Suche^BMRWUtils(%ID,:sutxt)=1)
order by Datum desc,%ID desc]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
<Parameter name="ROWSPEC" value="ID,Belegnr:%Integer,Datum:%Date,ErfPers:%String,Lnr:%Integer,Name:%String,Wert:%Float"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^RETOUREK.KopfD</DataLocation>
<DefaultData>KopfDefaultData</DefaultData>
<IdLocation>^RETOUREK.KopfD</IdLocation>
<IndexLocation>^RETOUREK.KopfI</IndexLocation>
<StreamLocation>^RETOUREK.KopfS</StreamLocation>
<Data name="KopfDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Firma</Value>
</Value>
<Value name="3">
<Value>Filiale</Value>
</Value>
<Value name="4">
<Value>Belegnr</Value>
</Value>
<Value name="5">
<Value>Datum</Value>
</Value>
<Value name="6">
<Value>Bewart</Value>
</Value>
<Value name="7">
<Value>Lnr</Value>
</Value>
<Value name="8">
<Value>LnrArt</Value>
</Value>
<Value name="9">
<Value>RetourArt</Value>
</Value>
<Value name="10">
<Value>RetourTyp</Value>
</Value>
<Value name="11">
<Value>Status</Value>
</Value>
<Value name="12">
<Value>ErfAbtnr</Value>
</Value>
<Value name="13">
<Value>PosCnt</Value>
</Value>
<Value name="14">
<Value>RetourDatum</Value>
</Value>
<Value name="15">
<Value>Lsnr</Value>
</Value>
<Value name="16">
<Value>Wert</Value>
</Value>
<Value name="17">
<Value>Knr</Value>
</Value>
<Value name="18">
<Value>Paketnr</Value>
</Value>
<Value name="19">
<Value>Subnr</Value>
</Value>
<Value name="20">
<Value>ErfDatum</Value>
</Value>
<Value name="21">
<Value>ErfPcode</Value>
</Value>
</Data>
<Data name="StatusDatum">
<Attribute>StatusDatum</Attribute>
<Structure>subnode</Structure>
<Subscript>"SD"</Subscript>
</Data>
<Data name="StatusPers">
<Attribute>StatusPers</Attribute>
<Structure>subnode</Structure>
<Subscript>"SP"</Subscript>
</Data>
</Storage>
</Class>
<Class name="RETOUREK.Para">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>60921,62516.420161</TimeChanged>
<TimeCreated>59678,58866.348553</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="Firma">
<Type>%Integer</Type>
</Property>

<Property name="KopfText">
<Type>%String</Type>
</Property>

<Property name="KopfTextHg">
<Type>%String</Type>
</Property>

<Property name="KopfTextLief">
<Type>%String</Type>
</Property>

<Property name="BerCodeLS">
<Type>%Integer</Type>
</Property>

<Property name="BerCodeB">
<Type>%Integer</Type>
</Property>

<Property name="BerCodeExpert">
<Type>%Integer</Type>
</Property>

<Property name="Bewart">
<Type>%String</Type>
</Property>

<Index name="IDKey">
<IdKey>1</IdKey>
<Properties>Firma</Properties>
<Unique>1</Unique>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^RETOUREK.ParaD</DataLocation>
<DefaultData>ParaDefaultData</DefaultData>
<IdLocation>^RETOUREK.ParaD</IdLocation>
<IndexLocation>^RETOUREK.ParaI</IndexLocation>
<StreamLocation>^RETOUREK.ParaS</StreamLocation>
<Data name="ParaDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>KopfText</Value>
</Value>
<Value name="3">
<Value>KopfTextHg</Value>
</Value>
<Value name="4">
<Value>KopfTextLief</Value>
</Value>
<Value name="5">
<Value>bercodels</Value>
</Value>
<Value name="6">
<Value>BerCodeLS</Value>
</Value>
<Value name="7">
<Value>BerCodeB</Value>
</Value>
<Value name="8">
<Value>BerCodeExpert</Value>
</Value>
<Value name="9">
<Value>Bewart</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="RETOUREK.Pos">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>60921,61546.310814</TimeChanged>
<TimeCreated>59678,58867.538936</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="Pos">
<Type>%Integer</Type>
</Property>

<Property name="Status">
<Type>%Integer</Type>
</Property>

<Property name="Anr">
<Type>%Integer</Type>
</Property>

<Property name="SammelJN">
<Type>%Boolean</Type>
</Property>

<Property name="NachkJN">
<Type>%Boolean</Type>
</Property>

<Property name="Knr">
<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="MeVKE">
<Type>%Float</Type>
</Property>

<Property name="MeVPE">
<Type>%Float</Type>
</Property>

<Property name="MeVRE">
<Type>%Float</Type>
</Property>

<Property name="MeERE">
<Type>%Float</Type>
</Property>

<Property name="VKE">
<Type>%String</Type>
</Property>

<Property name="VPE">
<Type>%String</Type>
</Property>

<Property name="VRE">
<Type>%String</Type>
</Property>

<Property name="VPI">
<Type>%Integer</Type>
</Property>

<Property name="ERE">
<Type>%String</Type>
</Property>

<Property name="EPM">
<Type>%Integer</Type>
</Property>

<Property name="VPM">
<Type>%Integer</Type>
</Property>

<Property name="VRM">
<Type>%Float</Type>
</Property>

<Property name="EVM">
<Type>%Float</Type>
</Property>

<Property name="Bewart">
<Type>%String</Type>
</Property>

<Property name="Notiz">
<Type>%String</Type>
<Parameter name="MAXLEN"/>
</Property>

<Property name="SubnrLief">
<Type>%String</Type>
</Property>

<Property name="SubnrKunde">
<Type>%String</Type>
</Property>

<UDLText name="T27">
<Content><![CDATA[
// 1=Lager, 2=Reparatur, 3=Garantie, 4=Austausch, 5=Kundenbeleg, 6=Lief-Beleg

]]></Content>
</UDLText>

<Property name="EST">
<Type>%Float</Type>
</Property>

<Property name="KommRenr">
<Type>%String</Type>
</Property>

<Property name="KommLiRenr">
<Type>%String</Type>
</Property>

<Property name="KommLsnr">
<Type>%String</Type>
</Property>

<Property name="KommAunr">
<Type>%String</Type>
</Property>

<Property name="KommBnr">
<Type>%String</Type>
</Property>

<Property name="Verhalten">
<Type>%String</Type>
</Property>

<Property name="Kopf">
<Type>RETOUREK.Kopf</Type>
<Cardinality>parent</Cardinality>
<Inverse>Pos</Inverse>
<Relationship>1</Relationship>
</Property>

<Index name="IdKey">
<IdKey>1</IdKey>
<Properties>Pos</Properties>
<Unique>1</Unique>
</Index>

<Method name="GetArtikel">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[firma:%Integer,filiale:%Integer,&ean:%String,lnr:%String,datum:%Date,me:%Float,bewart:%String,pcode:%String,berctest:%String="N"]]></FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s ad=""
	s anr=ean
	s atyp=""
	I $L(ean)>6!$F("ÖöZz",$E(ean,1)) s anr=$$AnrEan^BMRWUtils(firma,ean) i anr="" q 2
	I $D(^AA(firma,anr,1))#2 d
	. s ad=$$ASCIANSI^%UML(^(1))
	. s aktivjn=$P(ad,"`",4),kbez=$P(ad,"`",1),bez1=$P(ad,"`",7),bez2=$P(ad,"`",8),bez3=$P(ad,"`",9)
	. s vke=$P(ad,"`",11),vpe=$P(ad,"`",10),vre=$P(ad,"`",12),vpi=$P(ad,"`",13),vrm=$P(ad,"`",14),vpm=$P(ad,"`",15)
	. s atyp=$P(ad,"`",5)
	. s atypi="" I $D(^PA(firma,35,atyp))#2 s atypi=^(atyp)
	. s mc=2 i $D(^AA(firma,anr,2))#2 s mc=$P(^(2),"`",10)
	. s hlnr=$P($G(^AA(firma,anr,5)),"`",1)
	. s (ere,est,epm,evm,est)=""
	. I $L(ean)=13,$E(ean,1,2)=20 S ne=$E(ean,9,12) I +ne S est=$J(ne/13.7603,0,2)
 	. i est="" s est=$$Est^BMRWUtils(firma,filiale,anr,bewart,lnr,datum,me)
 	. i $L(lnr),$D(^AA(firma,anr,10,lnr,0))#2 s ere=$P(^(0),"`",6),epm=$P(^(0),"`",7),evm=$P(^(0),"`",8)
 	. e  i $L(hlnr),$D(^AA(firma,anr,10,hlnr,0))#2 s ere=$P(^(0),"`",6),epm=$P(^(0),"`",7),evm=$P(^(0),"`",8)
	i ad="" Q 0
	s bercode=0 i $D(^PA(firma,100,pcode))#2 s bercode=$P(^(pcode),"`",8)
	s objpar=##class(RETOUREK.Para).%OpenId(firma)
	s bercodels=objpar.BerCodeLS
	s bercodeb=objpar.BerCodeB
	d objpar.%Close()
	k objpar
	
	i berctest="J",atyp="LS",bercode<bercodels q 3
	i berctest="J",$E(atyp,1)="B",bercode<bercodeB q 3
	
	Q anr_"|"_kbez_"|"_bez1_"|"_bez2_"|"_atypi_"|"_vre_"|"_vke_"|"_vpe_"|"_ere_"|"_vrm_"|"_vpi_"|"_evm_"|"_vpm_"|"_epm_"|"_est_"|"_aktivjn
]]></Implementation>
</Method>

<Method name="GetAuftrag">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,fil:%String,anr:%String,aunr:%String,knr:%String,lnr:%String,datum:%Date,typ:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	q $$GetAuftrag^BMRWUtils(firma,fil,anr,aunr,knr,lnr,datum,typ)
]]></Implementation>
</Method>

<Method name="GetEst">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,filiale:%Integer,anr:%Integer,lnr:%String,bewart:%String,datum:%Date,me:%Float</FormalSpec>
<ReturnType>%Float</ReturnType>
<Implementation><![CDATA[	q $$Est^BMRWUtils(firma,filiale,anr,bewart,lnr,datum,me)
]]></Implementation>
</Method>

<Method name="GetKunden">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,id:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	i obj'="" d
	. s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	.. i obj.Pos.GetAt(cnt).SubnrKunde'="" q
	.. s knr(obj.Pos.GetAt(cnt).Knr)=""
	. d obj.%Close()
	s n=0
	K ^XW($J)
	s knr="" f  s knr=$O(knr(knr)) q:knr=""  d
	. s n=n+1
	. s kname=$$ASCIANSI^%UML($P($G(^B(firma,"K",knr,1)),"`",2))
	. s ^XW($J,n)=knr_"|"_kname
	q $J
]]></Implementation>
</Method>

<Method name="TestKL">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s (ksw,lsw)=0
	s obj=##class(RETOUREK.Kopf).%OpenId(id)
	i obj'="" d
	. s cnt="" f  s cnt=obj.Pos.Next(cnt) Q:cnt=""  d
	.. i obj.Pos.GetAt(cnt).SubnrKunde="" s ksw=1
	.. i obj.Pos.GetAt(cnt).SubnrLief="" s lsw=1
	. d obj.%Close()
	q ksw_"|"_lsw
]]></Implementation>
</Method>

<Query name="ListeEinheiten">
<Type>%SQLQuery</Type>
<FormalSpec>firma:%String</FormalSpec>
<SqlQuery>SELECT EINH,NAME FROM BM.ParEinh
 WHERE (FIRMA = :firma)
 ORDER BY EINH</SqlQuery>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("Pos")</DataLocation>
<DefaultData>PosDefaultData</DefaultData>
<IdLocation>{%%PARENT}("Pos")</IdLocation>
<IndexLocation>^RETOUREK.PosI</IndexLocation>
<StreamLocation>^RETOUREK.PosS</StreamLocation>
<Data name="PosDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Anr</Value>
</Value>
<Value name="3">
<Value>Kbez</Value>
</Value>
<Value name="4">
<Value>Bez1</Value>
</Value>
<Value name="5">
<Value>Bez2</Value>
</Value>
<Value name="6">
<Value>EST</Value>
</Value>
<Value name="7">
<Value>KommLsnr</Value>
</Value>
<Value name="8">
<Value>KommRenr</Value>
</Value>
<Value name="9">
<Value>KommLiRenr</Value>
</Value>
<Value name="10">
<Value>Bewart</Value>
</Value>
<Value name="11">
<Value>MeVKE</Value>
</Value>
<Value name="12">
<Value>MeVPE</Value>
</Value>
<Value name="13">
<Value>MeVRE</Value>
</Value>
<Value name="14">
<Value>VKE</Value>
</Value>
<Value name="15">
<Value>VPE</Value>
</Value>
<Value name="16">
<Value>VPI</Value>
</Value>
<Value name="17">
<Value>VRE</Value>
</Value>
<Value name="18">
<Value>VRM</Value>
</Value>
<Value name="19">
<Value>Verhalten</Value>
</Value>
<Value name="20">
<Value>SammelJN</Value>
</Value>
<Value name="21">
<Value>Pos</Value>
</Value>
<Value name="22">
<Value>EPM</Value>
</Value>
<Value name="23">
<Value>ERE</Value>
</Value>
<Value name="24">
<Value>VPM</Value>
</Value>
<Value name="25">
<Value>MeERE</Value>
</Value>
<Value name="26">
<Value>EVM</Value>
</Value>
<Value name="27">
<Value>KommAunr</Value>
</Value>
<Value name="28">
<Value>KommBnr</Value>
</Value>
<Value name="29">
<Value>NachkJN</Value>
</Value>
<Value name="30">
<Value>Notiz</Value>
</Value>
<Value name="31">
<Value>Status</Value>
</Value>
<Value name="32">
<Value>Knr</Value>
</Value>
<Value name="33">
<Value>SubnrKunde</Value>
</Value>
<Value name="34">
<Value>SubnrLief</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="RETOUREK.Suche">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>59677,54811.723291</TimeChanged>
<TimeCreated>59678,58867.78747</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="DokId">
<Type>%String</Type>
</Property>

<Property name="Text">
<Type>%String</Type>
</Property>

<Index name="IdKey">
<IdKey>1</IdKey>
<Properties>Text,DokId</Properties>
<Unique>1</Unique>
</Index>

<Index name="dokid">
<Properties>DokId:Upper</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^RETOUREK.SucheD</DataLocation>
<DefaultData>SucheDefaultData</DefaultData>
<IdLocation>^RETOUREK.SucheD</IdLocation>
<IndexLocation>^RETOUREK.SucheI</IndexLocation>
<StreamLocation>^RETOUREK.SucheS</StreamLocation>
<Data name="SucheDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>""</Value>
</Value>
<Value name="2">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="RETOUREK.Typ">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>60921,43428.787368</TimeChanged>
<TimeCreated>59678,58868.25368</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Property name="Firma">
<Type>%Integer</Type>
</Property>

<Property name="Filiale">
<Type>%Integer</Type>
</Property>

<Property name="Typ">
<Type>%String</Type>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Property name="Bez">
<Type>%String</Type>
</Property>

<Property name="Verhalten">
<Type>%String</Type>
</Property>

<UDLText name="T6">
<Content><![CDATA[
// 1=Lager, 2=Reparatur, 3=Garantie, 4=Austausch, 5=Kundenbeleg, 6=Lief-Beleg, 7=LS-Nummer Pflicht

]]></Content>
</UDLText>

<Index name="Typ">
<Properties>Firma,Filiale,Typ</Properties>
</Index>

<Method name="Speich">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,filiale:%Integer,typ:%String,bez:%String,verhalten:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[

	if typ="" &sql(delete from RETOUREK.Typ where Firma=firma and Filiale=filiale) Q 1
	
	set obj=..%New()
	s obj.Firma=firma
	s obj.Filiale=filiale
	s obj.Typ=typ
	s obj.Bez=bez
	s obj.Verhalten=verhalten
	d obj.%Save()
	d obj.%Close()
	
	Q 1
]]></Implementation>
</Method>

<Query name="Typ">
<Type>%SQLQuery</Type>
<FormalSpec>Firma:%String,Filiale:%String</FormalSpec>
<SqlQuery>SELECT %ID,Typ,Bez,Verhalten FROM Typ
 WHERE (Firma = :Firma AND Filiale = :Filiale)
 ORDER BY Typ</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^RETOUREK.TypD</DataLocation>
<DefaultData>TypDefaultData</DefaultData>
<IdLocation>^RETOUREK.TypD</IdLocation>
<IndexLocation>^RETOUREK.TypI</IndexLocation>
<StreamLocation>^RETOUREK.TypS</StreamLocation>
<Data name="TypDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Firma</Value>
</Value>
<Value name="3">
<Value>Filiale</Value>
</Value>
<Value name="4">
<Value>Typ</Value>
</Value>
<Value name="5">
<Value>Bez</Value>
</Value>
<Value name="6">
<Value>Verhalten</Value>
</Value>
</Data>
</Storage>
</Class>
<Project name="RetourwarenEK" LastModified="2007-10-21 18:45:34">
  <Items>
    <ProjectItem name="BMRWUtils.int" type="MAC"/>
    <ProjectItem name="RETOUREK.Art" type="CLS"/>
    <ProjectItem name="RETOUREK.Beleg" type="CLS"/>
    <ProjectItem name="RETOUREK.Kopf" type="CLS"/>
    <ProjectItem name="RETOUREK.Para" type="CLS"/>
    <ProjectItem name="RETOUREK.Pos" type="CLS"/>
    <ProjectItem name="RETOUREK.Suche" type="CLS"/>
    <ProjectItem name="RETOUREK.Typ" type="CLS"/>
  </Items>
</Project>
<Checksum value="3484432841"/>
</Export>
