<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="9" zv="Cache for UNIX (Linux Intel/32-bit) 5.0.4 (Build 829)" ts="2004-01-29 16:19:26">
<Class name="Hagbau.Files">
<ClassType>persistent</ClassType>
<Super>%Library.Persistent</Super>
<TimeChanged>59556,72746.724527</TimeChanged>
<TimeCreated>59556,72745.644943</TimeCreated>

<Property name="Datum">
<Type>%Library.Date</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Filiale">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Firma">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Satzanz">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Typ">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Verbucht">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="ZVNummer">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="ZZ">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection>list</Collection>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Method name="Etikett">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.Integer,belnr:%Library.String,wert:%Library.Float</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 d etikett^HagbauUtils(firma,belnr,wert)	
 q 1
]]></Implementation>
</Method>

<Method name="GetParam">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.Integer,filiale:%Library.Integer</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 K ^XW($J)
 s %=^%SY(0,"%")
 s cnt=0
 S bank="" f  s bank=$O(^BP(firma,201,bank)) q:bank=""  d
 . I $D(^BP(firma,201,bank,0))#2 S ad=^(0)
 . E  Q
 . s name=$P(ad,%,1),adr=$P(ad,%,2),kto=$P(ad,%,3),konto=$P($G(^BP(firma,201,bank,1,"L")),%,1)
 . s cnt=cnt+1,^XW($J,cnt)="B"_"|"_$$ASCIANSI^%UML(bank_$C(10)_name_$C(10)_adr_$C(10)_kto_$C(10)_konto)
 ;
 s zweg="" f  s zweg=$O(^BP(firma,9,2,"ZW",zweg)) q:zweg=""  d
 . s cnt=cnt+1,^XW($J,cnt)="Z"_"|"_$$ASCIANSI^%UML(zweg_$C(10)_$P(^(zweg),%,1))
 ;
 s ftyp="" f  s ftyp=$O(^BP(firma,203,ftyp)) q:ftyp=""  d
 . I $D(^(ftyp,0))#2 s name=$P(^(0),%,1)
 . e  Q
 . s cnt=cnt+1,^XW($J,cnt)="F"_"|"_$$ASCIANSI^%UML(ftyp_$C(10)_name)
 ;
 s sktok="" f  s sktok=$O(^BP(firma,3,"L","SA",sktok)) q:sktok=""  d
 . I $D(^(sktok,0))#2 s name=$P(^(0),%,1)
 . e  Q
 . s cnt=cnt+1,^XW($J,cnt)="S"_"|"_$$ASCIANSI^%UML(sktok_$C(10)_name)

 q $J
]]></Implementation>
</Method>

<Method name="GetREDat">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.String,fil:%Library.Integer,id:%Library.String,zz:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.String</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 i $D(^Hagbau.FilesD(id,"ZZ",zz))#2 s zeile=^(zz)
 e  q ""
 s hlnr=+$E(zeile,39,44)
 s lnr="" i $D(^BZM(firma,"L",2,hlnr))#2 s lnr=$P(^(hlnr),"`",1)
 s lname="" I $L(lnr),$D(^B(firma,"L",lnr,1))#2 s lname=$$ANSIASCI^%UML($P(^(1),"`",2))
 s renr=$$rebl^HagbauUtils($E(zeile,21,30))
 s belnr="" I $L(lnr),$D(^ER(firma,fil,2,lnr,renr))#2 s belnr=$P(^(renr),"`",2)
 I '$D(^MENUE("NADLINGER",firma,25)) s belnr=renr
 q lnr_"|"_lname_"|"_belnr	
]]></Implementation>
</Method>

<Method name="GetZADat">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.Integer,fil:%Library.Integer,id:%Library.String,zz:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.String</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 i $D(^Hagbau.FilesD(id,"ZZ",zz))#2 s zeile=^(zz)
 e  q ""
 s hlnr=+$E(zeile,5,10)
 s lnr="" i $D(^BZM(firma,"L",2,hlnr))#2 s lnr=$P(^(hlnr),"`",1)
 s renr=$$rebl^HagbauUtils($E(zeile,84,95))
 s belnr="" I $L(lnr),$D(^ER(firma,fil,2,lnr,renr))#2 s belnr=$P(^(renr),"`",2)
 I '$D(^MENUE("NADLINGER",firma,25)) s belnr=renr
 s (br,sk,ne)=0
 f i1=0:1:9 d
 . s br1=$J($TR($E(zeile,i1*38+104,i1*38+114)," ","")/100,0,2) i $E(zeile,i1*38+115,i1*38+115)="-" s br1=-br1
 . s br=br+br1
 . s sk1=$J($TR($E(zeile,i1*38+116,i1*38+126)," ","")/100,0,2) i $E(zeile,i1*38+127,i1*38+127)="-" s sk1=-sk1
 . s sk=sk+sk1
 . s ne1=$J($TR($E(zeile,i1*38+128,i1*38+138)," ","")/100,0,2) i $E(zeile,i1*38+139,i1*38+139)="-" s ne1=-ne1
 . s ne=ne+ne1
 q br_"|"_sk_"|"_ne_"|"_lnr_"|"_belnr
]]></Implementation>
</Method>

<Method name="SaveFile">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>id:%Library.Integer,firma:%Library.Integer,filiale:%Library.Integer,datum:%Library.Date,satzanz:%Library.Integer,typ:%Library.String,verbucht:%Library.Integer,zvnummer:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 if id="" s obj=##class(Hagbau.Files).%New()
 if id'="" s obj=##class(Hagbau.Files).%OpenId(id)
 if obj="" q 0
 s obj.Firma=firma
 s obj.Filiale=filiale
 s obj.Datum=datum
 s obj.Satzanz=satzanz
 s obj.Typ=typ
 s obj.ZVNummer=zvnummer
 s obj.Verbucht=verbucht
 d obj.%Save()
 s id=obj.%Id()
 d obj.%Close()
 q id
]]></Implementation>
</Method>

<Method name="Verbuch">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.Integer,fil:%Library.Integer,id:%Library.String,typ:%Library.String,wj:%Library.String,pcode:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.String</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 i typ="ZA" q $$VerbuchZA^HagbauUtils(firma,fil,id,wj,pcode)
 i typ="RE" q $$VerbuchRE^HagbauUtils(firma,fil,id,wj,pcode)
]]></Implementation>
</Method>

<Query name="Files">
<Type>%Library.SQLQuery</Type>
<FormalSpec>Firma:%Library.Integer,Filiale:%Library.Integer,Typ:%Library.String</FormalSpec>
<SqlProc>0</SqlProc>
<SqlQuery>SELECT ID, Datum, Typ, Satzanz, Verbucht, ZVNummer
FROM Files
WHERE (Firma = :Firma) AND (Filiale = :Filiale) AND 
 (:Typ is null or Typ = :Typ)
ORDER by ID DESC
</SqlQuery>
<SqlView>0</SqlView>
<Parameter name="CONTAINID" value="1"/>
<Parameter name="ROWSPEC" value="ID,Datum:%Library.Date,Typ:%Library.String,Satzanz:%Library.Integer,Verbucht:%Library.Integer,ZVNummer:%Library.String"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^Hagbau.FilesD</DataLocation>
<DefaultData>FilesDefaultData</DefaultData>
<IdLocation>^Hagbau.FilesD</IdLocation>
<IndexLocation>^Hagbau.FilesI</IndexLocation>
<StreamLocation>^Hagbau.FilesS</StreamLocation>
<Data name="FilesDefaultData">
<Structure>listnode</Structure>
<Value name="1">
<Value>Datum</Value>
</Value>
<Value name="2">
<Value>Filiale</Value>
</Value>
<Value name="3">
<Value>Firma</Value>
</Value>
<Value name="4">
<Value>Satzanz</Value>
</Value>
<Value name="5">
<Value>Typ</Value>
</Value>
<Value name="6">
<Value>Verbucht</Value>
</Value>
<Value name="7">
<Value>ZVNummer</Value>
</Value>
<Value name="8">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
<Data name="ZZ">
<Attribute>ZZ</Attribute>
<Structure>subnode</Structure>
<Subscript>"ZZ"</Subscript>
</Data>
</Storage>
</Class>
<Class name="Hagbau.Lief">
<ClassType>persistent</ClassType>
<Super>%Library.Persistent</Super>
<TimeChanged>59556,72772.928403</TimeChanged>
<TimeCreated>59556,72745.672072</TimeCreated>

<Index name="Lief">
<Extent>0</Extent>
<IdKey>1</IdKey>
<PrimaryKey>0</PrimaryKey>
<Properties>Lief</Properties>
<Unique>1</Unique>
</Index>

<Index name="Name">
<Extent>0</Extent>
<IdKey>0</IdKey>
<PrimaryKey>0</PrimaryKey>
<Properties>Name1</Properties>
<Unique>0</Unique>
</Index>

<Index name="Typ">
<Extent>0</Extent>
<IdKey>0</IdKey>
<PrimaryKey>0</PrimaryKey>
<Properties>Typ,Lief</Properties>
<Unique>0</Unique>
</Index>

<Property name="Land">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Lief">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Name1">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
<Parameter name="COLLATION" value="SQLUPPER"/>
</Property>

<Property name="Name2">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Ort">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Plz">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Strasse">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Typ">
<Type>%Library.String</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
<Parameter name="COLLATION" value="EXACT"/>
</Property>

<Method name="KontoStamm">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.String,ssktok:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 s %=^%SY(0,"%")
 s n=0
 K ^XW($J)
 s lnr="" f  s lnr=$O(^B(firma,"L",lnr)) q:lnr=""  d
 . I $D(^(lnr,0))#2 s kbez=^(0)
 . e  q
 . s:kbez="" kbez=lnr
 . s lnr(kbez,lnr)=""
 s kbez="" f  s kbez=$O(lnr(kbez)) q:kbez=""  d
 . s lnr="" f  s lnr=$O(lnr(kbez,lnr)) q:lnr=""  d
 .. I $D(^B(firma,"L",lnr,1))#2 s ad=$$ASCIANSI^%UML(^(1))
 .. e  q
 .. I $L(ssktok),'$F(ssktok,$P($G(^B(firma,"L",lnr,2)),%,1)) Q
 .. s n=n+1
 .. s ^XW($J,n)=$E(1000000+lnr,2,7)_$C(10)_$P(ad,%,2)_" "_$P(ad,%,3)_$C(10)_$P(ad,%,4)_$C(10)_$P(ad,%,5)_$C(10)_$P(ad,%,6)_$C(10)_$P(ad,%,7)
 k lnr
 q $J
]]></Implementation>
</Method>

<Method name="SetBaumatLief">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.Integer,hlief:%Library.Integer,lief:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.String</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 s lief=$TR(lief," ","")
 if lief="" d  q erg
 . I $D(^BZM(firma,"L",2,hlief))#2 s lnr=+$P(^(hlief),"`",1)
 . e  s erg=1 q
 . s lnr1=""
 . ;Matches für Hagebau-Nummer löschen
 . K ^BZ(firma,"L",lnr,"OEBAULNR",hlief)
 . K ^BZM(firma,"L",2,hlief)
 . ;Standdard-Zentralnummer neu setzen
 . s lnr1=$O(^BZ(firma,"L",lnr,"OEBAULNR",""),-1)
 . i $D(^BZ(firma,"L",lnr,1))#2 s $P(^(1),"`",2)=lnr1
 . s erg=1 q
 ;
 if lief'="" d  q erg
 . I '$D(^B(firma,"L",lief,1))#2 s erg=0 q
 . s erg="1"_"|"_$$ASCIANSI^%UML($P(^(1),"`",2)) 
 . ;Alten Lieferant suchen
 . I $D(^BZM(firma,"L",2,hlief))#2 d
 .. s lnro=$P(^(hlief),"`",1) I +lnro D
 ... ;Hagebau-LN bei alten Lieferanten löschen
 ... K ^BZM(firma,"L",2,hlief)
 ... K ^BZ(firma,"L",lnro,"OEBAULNR",hlief)
 ... ;Standdard-Zentralnummer neu setzen
 ... s oelnr=$O(^BZ(firma,"L",lnro,"OEBAULNR",""),-1)
 ... i $D(^BZ(firma,"L",lnro,1))#2 s $P(^(1),"`",2)=oelnr
 . ;
 . ;Neuer Lieferant
 . s $P(^BZ(firma,"L",lief,1),"`",2)=hlief
 . s ^BZ(firma,"L",lief,"OEBAULNR",hlief)=""
 . S ^BZM(firma,"L",2,hlief)=lief
 Q
]]></Implementation>
</Method>

<Method name="SetHagbauTyp">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.String,lnr:%Library.Integer,typ:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 S $P(^BZ(firma,"L",lnr,1),"`",18)=typ
 Q 1
]]></Implementation>
</Method>

<Method name="SetLief">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>zeile:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 s zeile=$$ANSIASCI^%UML(zeile)
 s lief = $P(zeile, $C(9), 1)

 s obj=##class(Hagbau.Lief).%OpenId(lief)
 if obj="" d
 . s obj=##class(Hagbau.Lief).%New()
 . s obj.Lief=lief

 s obj.Typ = $P(zeile, $C(9), 2)
 s obj.Name1 = $P(zeile, $C(9), 3)
 s obj.Name2 = $P(zeile, $C(9), 4)
 s obj.Strasse = $P(zeile, $C(9), 5)
 s obj.Land = $P(zeile, $C(9), 6)
 s obj.Plz = $P(zeile, $C(9), 7)
 s obj.Ort = $P(zeile, $C(9), 8)
 d obj.%Save()
 d obj.%Close()

 q 1
]]></Implementation>
</Method>

<Method name="SetPara">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec/>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 K ^XW($J)
 s n=0
 s typ="" f  s typ=$O(^Hagbau.LiefI("Typ",typ)) q:typ=""  d
 . s n=n+1
 . s ^XW($J,n)="T|"_typ
 s firma1="" f  s firma1=$O(^BP(firma1)) q:firma1=""  d
 . I $D(^BP(firma1,1))#2 d
 .. s ad=$$ASCIANSI^%UML(^(1))
 .. s n=n+1
 .. s ^XW($J,n)="L|"_firma1_"|"_$P(ad,"`",2)
 q $J
]]></Implementation>
</Method>

<Method name="SetSktok">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.Integer</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[
 K ^XW($J)
 s n=0,sktok="" f  s sktok=$O(^BP(firma,3,"L","SA",sktok)) q:sktok=""  d
 . I $D(^(sktok,0))#2 s n=n+1,^XW($J,n)=sktok_"|"_$$ASCIANSI^%UML($P(^(0),"`",1))
 q $J
]]></Implementation>
</Method>

<Method name="TestTyp">
<Final>0</Final>
<ClassMethod>1</ClassMethod>
<CodeMode>code</CodeMode>
<FormalSpec>firma:%Library.String,filiale:%Library.String</FormalSpec>
<Private>0</Private>
<ReturnType>%Library.Integer</ReturnType>
<SqlProc>0</SqlProc>
<Implementation><![CDATA[ q $$TestTyp^HagbauUtils(firma,filiale)
]]></Implementation>
</Method>

<Query name="Lief">
<Type>%Library.SQLQuery</Type>
<FormalSpec>firma:%Library.Integer,typ:%Library.String</FormalSpec>
<SqlProc>0</SqlProc>
<SqlQuery>SELECT Typ, Lief, Name1, Name2, Strasse, Land, Plz, Ort, $$ilief^HagbauUtils(:firma,Lief)
FROM Lief
WHERE (:typ is null or Typ = :typ)
ORDER BY upper(Name1)</SqlQuery>
<SqlView>0</SqlView>
<Parameter name="CONTAINID" value="1"/>
<Parameter name="ROWSPEC" value="Typ:%Library.String,Lief:%Library.String,Name1:%Library.String,Name2:%Library.String,Strasse:%Library.String,Land:%Library.String,Plz:%Library.String,Ort:%Library.String,ILief:%Library.String"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^Hagbau.LiefD</DataLocation>
<DefaultData>LiefDefaultData</DefaultData>
<IdLocation>^Hagbau.LiefD</IdLocation>
<IndexLocation>^Hagbau.LiefI</IndexLocation>
<StreamLocation>^Hagbau.LiefS</StreamLocation>
<Data name="LiefDefaultData">
<Structure>listnode</Structure>
<Value name="1">
<Value>Land</Value>
</Value>
<Value name="2">
<Value>Name1</Value>
</Value>
<Value name="3">
<Value>Name2</Value>
</Value>
<Value name="4">
<Value>Ort</Value>
</Value>
<Value name="5">
<Value>Plz</Value>
</Value>
<Value name="6">
<Value>Strasse</Value>
</Value>
<Value name="7">
<Value>Typ</Value>
</Value>
<Value name="8">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="Hagbau.Param">
<ClassType>persistent</ClassType>
<Super>%Library.Persistent</Super>
<TimeChanged>59556,72747.536924</TimeChanged>
<TimeCreated>59556,72745.694446</TimeCreated>

<Index name="IDkey">
<Extent>0</Extent>
<IdKey>1</IdKey>
<PrimaryKey>0</PrimaryKey>
<Properties>Firma,Filiale</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bank">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Filiale">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Firma">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="NettoTage">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="SamKtoKreis">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="TolBetrag">
<Type>%Library.Float</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Property name="Zweg">
<Type>%Library.Integer</Type>
<Final>0</Final>
<Calculated>0</Calculated>
<Collection/>
<MultiDimensional>0</MultiDimensional>
<Private>0</Private>
<Relationship>0</Relationship>
<Required>0</Required>
<SqlComputed>0</SqlComputed>
<Transient>0</Transient>
</Property>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^Hagbau.ParamD</DataLocation>
<DefaultData>ParamDefaultData</DefaultData>
<IdLocation>^Hagbau.ParamD</IdLocation>
<IndexLocation>^Hagbau.ParamI</IndexLocation>
<StreamLocation>^Hagbau.ParamS</StreamLocation>
<Data name="ParamDefaultData">
<Structure>listnode</Structure>
<Value name="1">
<Value>Bank</Value>
</Value>
<Value name="2">
<Value>Filiale</Value>
</Value>
<Value name="3">
<Value>Firma</Value>
</Value>
<Value name="4">
<Value>NettoTage</Value>
</Value>
<Value name="5">
<Value>SamKtoKreis</Value>
</Value>
<Value name="6">
<Value>Zweg</Value>
</Value>
<Value name="7">
<Value>TolBetrag</Value>
</Value>
<Value name="8">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
</Storage>
</Class>
<Routine name="HagbauUtils" type="INT" languagemode="0" timestamp="59563,58709"><![CDATA[
HagbauUtils ;KRA;Hagebau Zahlungsschnittstelle Utils
	Q
	;
TestTyp(FIRMA,FIL)
	N (FIRMA,FIL)
	d ^%XTT
	
	K ^XW($J)
	S N=0
	S LNR="" F  S LNR=$O(^BZ(FIRMA,"L",LNR)) Q:LNR=""  D
	. s LNAME="" I $D(^B(FIRMA,"L",LNR,1))#2 s LNAME=$P(^(1),%,2)
	. k typ
	. S HLNR="" F  S HLNR=$O(^BZ(FIRMA,"L",LNR,"OEBAULNR",HLNR)) Q:HLNR=""  I $L(HLNR)=6,$E(HLNR,1)="9" D
	.. s obj=##class(Hagbau.Lief).%OpenId(HLNR) q:obj=""
	.. s typ=obj.Typ s:typ="ProfiFachmarkt" typ="Baumarkt"
	.. s typ(typ)=""
	.. d obj.%Close()
	. i '$D(typ) Q
	. s typ=$o(typ("")) 
	. I typ'=$O(typ(""),-1) s typ=""
	. I typ="Baumarkt" s $P(^BZ(FIRMA,"L",LNR,1),%,18)="M" Q
	. I typ="Baustoff" s $P(^BZ(FIRMA,"L",LNR,1),%,18)="B" Q
	. ;
	. S N=N+1
	. S ^XW($J,N)=LNR_"|"_$$ASCIANSI^%UML(LNAME)_"|"_$P($G(^BZ(FIRMA,"L",LNR,1)),%,18)
	q $J
	;
VerbuchRE(firma,fil,id,wj,pcode)
 
	N (firma,fil,id,wj,pcode)
	S FIRMA=firma
	S FIL=fil
	d ^%XTT
	I '$D(^MENUE("NADLINGER",firma,25)) q
	;
	s obj=##class(Hagbau.Param).%OpenId(firma_"||"_fil)
	i obj="" q 0
	s bank=obj.Bank
	s zweg=obj.Zweg
	s ntg=obj.NettoTage
	s sktok=obj.SamKtoKreis
	d obj.%Close()
	;
	s obj=##class(Hagbau.Files).%OpenId(id)
	i obj="" q 0
	s anz=obj.ZZ.Count()
	;
	s qsw=0,fpos=0
	for i=1:1:anz d  q:+qsw
	. I i>obj.Verbucht D
	.. s zeile=obj.ZZ.GetAt(i)
	.. i $E(zeile,1,1)="K" D
	... s konto=$$rebl($E(zeile,39,44))
	... i $L(konto),$D(^BZM(firma,"L",2,konto))#2 s konto=$P(^(konto),%,1)
	... e  s qsw=1,fpos=i q
	... ;Neue Nummer
	... ZA ^PA(firma,20,wj,"ER")
 	... S belnr=$P($G(^PA(firma,20,wj,"ER")),%,5)
    ... F  Q:'$D(^ER(firma,fil,0,"ER",belnr))  S belnr=belnr+1
    ... S $P(^PA(firma,20,wj,"ER"),%,5)=belnr+1
 	... ZD ^PA(firma,20,wj,"ER")
 	... ;
 	... s status=1
 	... s einldat=$$datum($E(zeile,13,20))
 	... s renr=$$rebl($E(zeile,21,30))
 	... s datum=$$datum($E(zeile,31,38))
 	... s rewert=$J($TR($E(zeile,110,120)," ","")/100,0,2) i $E(zeile,121,121)="-" s rewert=-rewert
 	... s stsum=$J($TR($E(zeile,122,132)," ","")/100,0,2) i $E(zeile,133,133)="-" s stsum=-stsum
 	... s wc=0
 	... s vdat=einldat
 	... s sk1=$J($TR($E(zeile,79,82)," ","")/100,0,2)
 	... s tg1=$TR($E(zeile,68,70)," ","")
 	... s zk="",i1="" f  s i1=$O(^BP(firma,4,i1)) q:i1=""  d
 	.... s ad=^(i1)
 	.... i +$P(ad,%,2)=+sk1,+$P(ad,%,1)=+tg1,$P(ad,%,3)="",$P(ad,%,4)="" s zk=i1
 	... i zk="" s qsw=2,fpos=i q 
 	... s sdat1=$$TXT7^%LN200($$H^%LN200(vdat)+tg1)
 	... s sdat2="",sk2=""
 	... s ndat=$$TXT7^%LN200($$H^%LN200(vdat)+ntg)
 	... s btext=""
 	... s bongsjn="N"
 	... s kwert=""
 	... s stpfjn=$S(+$TR($E(zeile,98,108)," ",""):"J",1:"N")
 	... s rkbujn="N"
 	... s seitanz=""
 	... s ftyp=""
 	... s velnr=$$GET^BMXOBJ("HAGEBAU","LiefNr")
 	... ;
 	... ;Rechnung speichern
 	... S ^ER(firma,fil,0,"ER",belnr,0)=status_%_einldat_%_konto_%_renr_%_datum_%_rewert_%_wc_%_""_%_1_%_vdat_%_zk_%_sdat1_%_sdat2_%_ndat_%_sk1_%_sk2_%_zweg_%_btext_%_""_%_""_%_""_%_ftyp_%_""_%_""_%_""_%_""_%_bongsjn_%_kwert_%_stpfjn_%_rkbujn_%_velnr_%_seitanz
 	... S ^ER(firma,fil,1,einldat,"ER",belnr)=status
 	... S ^ER(firma,fil,2,konto,renr)="ER"_%_belnr
 	... S $P(^ER(firma,fil,0,"ER",belnr,1),%,1,2)=rewert_%_stsum
 	... ;
 	... ;Sammelkontokreis in Lieferantenstamm setzen
 	... i sktok'="" I $D(^B(firma,"L",konto,2))#2 S $P(^(2),%,1)=sktok
 	... ;
	... i +qsw=0 s obj.Verbucht=i d obj.%Save()
	d obj.%Save()
	d obj.%Close()
	;
	q anz_"|"_qsw_"|"_fpos
	;
datum(d)
	q ($E(d,1,4)-1900)_$E(d,5,8)
	;
datumv(d)
	q ($E(d,5,8)-1900)_$E(d,3,4)_$E(d,1,2)	
	;
VerbuchZA(firma,fil,id,wj,pcode)
 
	N (firma,fil,id,wj,pcode)
	d ^%XTT
	S FIRMA=firma
	S FIL=fil
 
	s obj=##class(Hagbau.Param).%OpenId(firma_"||"_fil)
	i obj="" q 0
	s bank=obj.Bank
	s tol=obj.TolBetrag
	d obj.%Close()
	;	
	s obj=##class(Hagbau.Files).%OpenId(id)
	i obj="" q 0
	s anz=obj.ZZ.Count()
	;
	S erkjn=$D(^MENUE("NADLINGER",firma,25))
	s qsw=0,fpos=0
	for i=1:1:anz d  q:+qsw
	. I i>obj.Verbucht D
	.. s zeile=obj.ZZ.GetAt(i)
	.. i $E(zeile,1,4)="ZVGP" D
	... s konto=$$rebl($E(zeile,5,10))
	... i $L(konto),$D(^BZM(firma,"L",2,konto))#2 s konto=$P(^(konto),%,1)
	... e  s qsw=1,fpos=i q
	... s ff=$O(^UEB(firma,"L",bank,konto,""),-1)+1
	... ;
	... s renr=$$rebl($E(zeile,84,95))
	... s belnr=renr
	... I +erkjn,$L(renr),$D(^ER(firma,fil,2,konto,renr))#2 s belnr=$P(^(renr),%,2)
	... e  i +erkjn s qsw=2,fpos=i q
	... i +erkjn=0,belnr="" s qsw=2,fpos=i q
	... ;
	... s sub="0"
	... s opwj=""
	... s i1="" f  s i1=$O(^B(firma,"L",konto,"OP",i1)) q:i1=""  I $D(^(i1,belnr)) s opwj=i1 q
	... i opwj="" s qsw=3,fpos=i q
	... I $D(^B(firma,"L",konto,"OP",opwj,belnr,sub))#2 s opbetr=$P(^(sub),%,6)-$P(^(sub),%,5)
	... E  s qsw=3,fpos=i q
	... I $D(^UEBTMP(firma,"OP","L",konto,opwj,belnr,sub)) Q
	... ;
	... s (ne,sk)=0
	... f i1=0:1:9 d
	.... s ne1=$J($TR($E(zeile,i1*38+104,i1*38+114)," ","")/100,0,2) i $E(zeile,i1*38+115,i1*38+115)="-" s br1=-br1
	.... s ne=ne+ne1
	.... s sk1=$J($TR($E(zeile,i1*38+116,i1*38+126)," ","")/100,0,2) i $E(zeile,i1*38+127,i1*38+127)="-" s sk1=-sk1
	.... s ne=ne-sk1,sk=sk+sk1
	... s skpr=$J($TR($E(zeile,484,487)," ","")/100,0,2)
	... if $$abs(ne+sk-opbetr)'>tol s sk=opbetr-ne
	... S ^UEB(firma,"L",bank,konto,"POS",ff)=opwj_%_belnr_%_sub_%_ne_%_sk_%_skpr_%_""
	... S ^UEBTMP(firma,"OP","L",konto,opwj,belnr,sub)=ff_%_bank_%
	... s knam=$P($G(^B(firma,"L",konto,0)),%,1)
	... S ^UEBTMP(firma,"A","L",bank,knam,konto)=konto
	... ;Zahlungsmerker & Status setzen
	... I +erkjn,$D(^ER(firma,fil,0,"ER",belnr,0))#2 D
    .... S einldat=$P(^(0),%,2)
    .... S $P(^(0),%,1)=4
    .... S $P(^(0),%,23,24)="HG"_obj.ZVNummer_"/"_i_%_$$TXT7^%LN200(obj.Datum)
    .... S:$L(einldat) $P(^ER(firma,fil,1,einldat,"ER",belnr),%,1)=4
	.. ;
	.. i +qsw=0 s obj.Verbucht=i d obj.%Save()
	d obj.%Save()
	d obj.%Close()
	;
	s gesamt=0
	s bank="" f  s bank=$O(^UEB(firma,"L",bank)) q:bank=""  d
	. s sumb=0
	. s konto="" f  s konto=$O(^UEB(firma,"L",bank,konto)) q:konto=""  d
	.. s sum=0
	.. s ff="" f  s ff=$O(^UEB(firma,"L",bank,konto,"POS",ff)) q:ff=""  s sum=sum+$P(^(ff),%,4)
	.. S ^UEB(firma,"L",bank,konto,0)=sum
	.. S gesamt=gesamt+sum
	.. S sumb=sumb+sum
	. s ^UEB(firma,"BANK",bank,0)=sumb_%_(+$H)_%_0
	s ^UEB(firma,"KKR","L",0)=gesamt
	;
	Q anz_"|"_qsw_"|"_fpos
	;
abs(n)
	q:n<0 -n
	q n
	;
rebl(s)
    f  q:s=""  q:$E(s,$L(s))'=" "  S s=$E(s,1,$L(s)-1)
	Q s
	;
ilief(firma,hlief)
	
	i hlief="" q ""
	;
	i $D(^BZM(firma,"L",2,hlief))#2 s lnr=$P(^(hlief),"`",1)
	e  q ""
	s lname=$P($G(^B(firma,"L",lnr,1)),"`",2)
	q lnr_$C(10)_$C(10)_lname
	;
etikett(firma,belnr,wert)
	N (firma,belnr,wert)
	d ^%XTT
	;Etikett drucken
 	S ean="221"_$E(100000000+belnr,2,9)_"7"
 	S DEV=$P($G(^PA(firma,340,"DEV","EtikettER")),%,2)
 	I DEV'="" D
 	. D OPEN^%DRU
 	. D USE^%DRU
 	. W $C(2),"L",$C(13)
 	. W "D11",$C(13)
 	. W "1F0203000220010",ean,$C(13)
 	. I wert'<0 W "105400100030020",belnr,$C(13)
 	. E  W "105400100030020","- ",belnr,$C(13)
 	. W "E",$C(13)
 	. D CLOSE^%DRU
 	q
]]></Routine>
<Project name="HagebauZV" LastModified="2004-01-29 16:19:26">
  <Items>
    <ProjectItem name="Hagbau.Files" type="CLS"/>
    <ProjectItem name="Hagbau.Lief" type="CLS"/>
    <ProjectItem name="Hagbau.Param" type="CLS"/>
    <ProjectItem name="HagbauUtils.int" type="MAC"/>
    <ProjectItem name="NAINPHGL.int" type="MAC"/>
  </Items>
</Project>
<Routine name="NAINPHGL" type="INT" languagemode="0" timestamp="59531,51088"><![CDATA[
NAINPHGL	;KRA; Import Zuordnung Hagebau/Öbau-Lieferanten
	Q
	;
ANF
	d ^BMINIT
	S FIRMA="" F  S FIRMA=$O(^BZ(FIRMA)) Q:FIRMA=""  D ANF1
	Q
	;
ANF1	
	I $F($ZV,"Linux") s file="/var/fshare/liefhag.txt"
	E  s file="/pc/liefhag.txt"
	o file
	S $ZT="ERR^NAINPHGL"
	s lnr="" f  s lnr=$O(^BZ(FIRMA,"L",lnr)) q:lnr=""  d
	. I $D(^(lnr,1))#2 s olnr=$P(^(1),%,2)
	. E  Q
	. S:$L(olnr) ^BZ(FIRMA,"L",lnr,"OEBAULNR",olnr)=""
	;
	f  u file r zeile D
	. s olnr=$P(zeile,$C(9),1),hlnr=$P(zeile,$C(9),2)
	. I $D(^BZM(FIRMA,"L",2,olnr))#2 s lnr=$P(^(olnr),%,1)
	. E  u 0 W "ÖBAU-Lieferant ",olnr," nicht gefunden",! Q
	. I $D(^BZ(FIRMA,"L",lnr,1))#2
	. E  Q
	. s ^BZ(FIRMA,"L",lnr,"OEBAULNR",hlnr)=""
	. S $P(^BZ(FIRMA,"L",lnr,1),%,2)=hlnr
	
ERR	c file
	d LIEF^BMCINIT
	W !!,"Firma ",FIRMA," aufgebaut, Weiter mit <Enter> " R *X
	Q
]]></Routine>
<Checksum value="3109897991"/>
</Export>
