<?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="2006-04-06 13:49:53">
<Routine name="BMINNDPR" type="INT" languagemode="0" timestamp="60361,49766"><![CDATA[
BMINNDPR	;KRA;Routinen für Inndata Preisimport
	Q
	
LNAME(firma,lnr)
	Q $$ASCIANSI^%UML($P($G(^B(firma,"L",lnr,1)),"`",2))
	
ekhol(firma,anr,lnr,datum)
	N (firma,anr,lnr,datum,rab1,rab2,rab3,rab4,ekdat,nebkost,ekgrp,bruttobm,netto,rabtyp)
	d ^%XTT
	s VAR=firma_%_anr_%_lnr_%_datum_%_1
	S $P(VAR,%,11)="UZL"
	d ^BMEKP
	//s ekdat=$$H^%LN200($P(VAR,%,20)) s:ekdat=-1 ekdat=""
	S netto=$P(VAR,%,8)-$P(VAR,%,15)
	s rab14=$P(VAR,%,19),rabtyp=$P(VAR,%,25)
	s rab1=$P(rab14,",",1)
	s rab2=$P(rab14,",",2)
	s rab3=$P(rab14,",",3)
	s rab4=$P(rab14,",",4)
	s nebkost=$P(VAR,%,15)
	s ekgrp=$P(VAR,%,18)
	s bruttobm=$P(VAR,%,5)
	q
	
vkhol(firma,anr,datum)
	N (firma,anr,datum,vkexcl,vkdat,kfsoll)
	d ^%XTT
	s VAR=firma_%_anr_%_datum_%_%_%_%_"LA"_%_1_%_"E"_%_"ULZ"_%_"N"
	d ^BMVKP
	s vkexcl=$P(VAR,%,8)
	//s vkdat=$$H^%LN200($P(VAR,%,3)) s:vkdat=-1 vkdat=""
	s kfsoll=$P(VAR,%,25)
	s:+kfsoll=0 kfsoll=1
	q
	
ekst(id,idkopf,datum)
	n obj
	s datum=$G(datum)
	s obj=##class(inndatap.ekgrp).%OpenId(id)
	i obj="" d obj.%Close() q 0
	s ekgrp=obj.ekgrp
	i datum="" s datum=obj.datum
	s datum=$$TXT7^%LN200(datum)
	d obj.%Close()
	
	s obj=##class(inndatap.downloads).%OpenId(idkopf)
	s lnr=obj.lnr
	s firma=obj.firma
	d obj.%Close()
	I $D(^BZ(firma,"L",lnr,10,$$ANSIASCI^%UML(ekgrp),1,"N",1000000-datum)) k obj q 1
	k obj
	q 0
	
kbez(KBEZ)
    N I,AD,C
    S KBEZ=$TR(KBEZ,"abcdefghijklmnopqrstuvwxyzüäöß","ABCDEFGHIJKLMNOPQRSTUVWXYZÜÄÖß")
 	S AD=""
 	F I=1:1:$L(KBEZ) d
 	. S C=$E(KBEZ,I,I)
 	. I C="Ö" s AD=AD_"OE"
 	. E  I C="Ü" s AD=AD_"UE"
 	. E  I C="Ä" s AD=AD_"AE"
 	. E  I C="ß" s AD=AD_"SS"
 	. E  I C="""" s AD=AD_"'"
 	. E  S AD=AD_C
 	Q $E(AD,1,16)
	
verbuch(FIRMA,id,LNR,PCODE,freigjn,updnr,vkanl,freigartjn,ekanl,kondanl,bezanl,neuanl,update,stamm)
	N (FIRMA,id,LNR,PCODE,freigjn,updnr,vkanl,freigartjn,ekanl,kondanl,bezanl,neuanl,update,stamm)
	d ^%XTT
	S FIL=0
	S IND="V"
	S $P(^MENUE(0,$J),%,3,4)="NADLINGER"_%_PCODE
	S PERSONAL=PCODE
	s obj=##class(inndatap.pos).%OpenId(id)
	q:obj="" -1
	
	s status=obj.status
	s def=##class(inndatap.defaults).%OpenId(FIRMA_"||"_LNR)
	i def'="" d
	. s IND=def.indikator
	. d def.%Close()
	k def
 
	s neusw=0
	s ANR=obj.anr
 
 	s kbezold=""
    i neuanl="N",ANR="" d obj.%Close() k obj q -1
    i update="N",$L(ANR) d obj.%Close() k obj q -1
	i ANR="" d
	. s ad=""
	. d neunr 
	. s neusw=1 
	. S $P(^AA(FIRMA,ANR,3),%,1)=%DR
	. s $P(ad,%,3,4)="J"_%_"Z"
	. s $P(ad,%,6)="N"
	. s $P(ad,%,20)="N"
	. s %ALT=""
	. I 1
	E  d
	. s (%ALT,ad)=$G(^AA(FIRMA,ANR,1))
	. s kbezold=$P(%ALT,%,1)
	. I (bezanl="J")!(stamm="J") d
	.. I $L(kbezold) K ^AM(FIRMA,1,kbezold,ANR)
	.. I $L(kbezold) K ^AM(FIRMA,"1E",kbezold,ANR)
	.. I $L(kbezold),$L($P(%ALT,%,5)) K ^AM(FIRMA,8,$P(%ALT,%,5),kbezold,ANR)
	.. I $L(kbezold),$L($P(%ALT,%,5)) K ^AM(FIRMA,"8E",$P(%ALT,%,5),kbezold,ANR)
	.. S KBEZ1="" F  S KBEZ1=$O(^AA(FIRMA,ANR,6,KBEZ1)) Q:KBEZ1=""  D
	... K:$L($P(%ALT,%,5)) ^AM(FIRMA,"8E",$P(%ALT,%,5),KBEZ1,ANR)
	... K ^AM(FIRMA,"1E",KBEZ1,ANR)
	
	i +neusw!(bezanl="J") s $P(ad,%,1)=$$kbez(obj.bez1),$P(ad,%,7,9)=obj.bez1_%_obj.bez2_%_obj.bez3
	i +neusw!(stamm="J") s $P(ad,%,5)=obj.atyp,$P(ad,%,10,15)=obj.vpe_%_obj.vke_%_obj.vre_%_obj.vpi_%_obj.vrm_%_obj.vpm,$P(ad,%,20)="N"
	
	s kbez=$P(ad,%,1) s:kbezold="" kbezold=kbez
	I +neusw!(bezanl="J")!(stamm="J") d
	. s ^AA(FIRMA,ANR,1)=$$ANSIASCI^%UML(ad)
	. S %NEU=^(1),%LOE="",%TRNR=1301 D ^BMTSEND
	. S ^AM(FIRMA,1,kbez,ANR)=""
	. S ^AM(FIRMA,"1E",kbez,ANR)=""
	. S ^AM(FIRMA,8,$P(%NEU,%,5),kbez,ANR)=""
	. S ^AM(FIRMA,"8E",$P(%NEU,%,5),kbez,ANR)=""
	. S KBEZ1="" F  S KBEZ1=$O(^AA(FIRMA,ANR,6,KBEZ1)) Q:KBEZ1=""  D
	.. S:$L($P(%NEU,%,5)) ^AM(FIRMA,"8E",$P(%NEU,%,5),KBEZ1,ANR)=""
	.. s ^AM(FIRMA,"1E",KBEZ1,ANR)=""
	. ;
	. s HGRP=+$E(obj.wargr,1,2)
	. s UGRP=+$E(obj.wargr,3,4)
	. S AD=$G(^PA(FIRMA,55,HGRP,1,UGRP))
    . S EKKTO=$P(AD,%,3),VKINL=$P(AD,%,4),VKAUSL=$P(AD,%,5),STKZ=$P(AD,%,6),ABTNR=$P(AD,%,7),FLIESE=$P(AD,%,13),SKJN=$P(AD,%,14),NEBKTO=$P(AD,%,15),EKKTOAL=$P(AD,%,16),NEBKTOAL=$P(AD,%,17)
    . s MC=0,i="" f  s i=$O(^BP(FIRMA,5,i)) q:i=""  I +$P(^(i),%,1)=+obj.mcproz s MC=i q
    . s palje=obj.palje,palab=obj.palab
    . if obj.palart="" s (palje,palab)=""
    . ;
    . s (ad,%ALT)=$G(^AA(FIRMA,ANR,2))
    . K:$L($P(%ALT,%,9))&$L(kbezold) ^AM(FIRMA,5,$P(%ALT,%,9),kbezold,ANR)
    . K:$L($P(%ALT,%,9))&$L(kbezold) ^AM(FIRMA,"5E",$P(%ALT,%,9),kbezold,ANR)
    . K:$L($P(%ALT,%,7))&$L($P(%ALT,%,8))&$L(kbezold) ^AM(FIRMA,6,$P(%ALT,%,7),$P(%ALT,%,8),kbezold,ANR)
    . K:$L($P(%ALT,%,7))&$L($P(%ALT,%,8))&$L(kbezold) ^AM(FIRMA,"6E",$P(%ALT,%,7),$P(%ALT,%,8),kbezold,ANR)
    . K:$L($P(%ALT,%,15))&$L(kbezold) ^AM(FIRMA,14,$P(%ALT,%,15),kbezold,ANR)
    . S KBEZ1="" F  S KBEZ1=$O(^AA(FIRMA,ANR,6,KBEZ1)) Q:KBEZ1=""  D
    .. K:$L($P(%ALT,%,9)) ^AM(FIRMA,"5E",$P(%ALT,%,9),KBEZ1,ANR)
    .. K:$L($P(%ALT,%,7))&$L($P(ad,%,8))&$L(kbezold) ^AM(FIRMA,"6E",$P(%ALT,%,7),$P(%ALT,%,8),KBEZ1,ANR)
    .. K:$L($P(%ALT,%,15))&$L(kbezold) ^AM(FIRMA,"14E",$P(%ALT,%,15),KBEZ1,ANR)
    . s $P(ad,%,7,10)=HGRP_%_UGRP_%_obj.abtnr_%_MC
    . s $P(ad,%,12,17)=EKKTO_%_VKINL_%_VKAUSL_%_obj.palart_%_palje_%_palab
    . s $P(ad,%,27,28)="J"_%_"N"
    . s $P(ad,%,31,33)=NEBKTO_%_EKKTOAL_%_NEBKTOAL
 	. s ^AA(FIRMA,ANR,2)=$$ANSIASCI^%UML(ad)
 	. S %NEU=^(2),%LOE="",%TRNR=1302 D ^BMTSEND
 	. S $P(^AA(FIRMA,ANR,3),%,3,4)=$$ANSIASCI^%UML(%DR_%_PCODE)
 	. I $L($P(%NEU,%,9)) s ^AM(FIRMA,5,$P(%NEU,%,9),kbez,ANR)=""
 	. I $L($P(%NEU,%,9)) s ^AM(FIRMA,"5E",$P(%NEU,%,9),kbez,ANR)=""
 	. I $L($P(%NEU,%,7))&$L($P(%NEU,%,8)) s ^AM(FIRMA,6,$P(%NEU,%,7),$P(%NEU,%,8),kbez,ANR)=""
 	. I $L($P(%NEU,%,7))&$L($P(%NEU,%,8)) s ^AM(FIRMA,"6E",$P(%NEU,%,7),$P(%NEU,%,8),kbez,ANR)=""
 	. I $L($P(%NEU,%,15)) s ^AM(FIRMA,14,$P(%NEU,%,15),kbez,ANR)=""
 	. S KBEZ1="" F  S KBEZ1=$O(^AA(FIRMA,ANR,6,KBEZ1)) Q:KBEZ1=""  D
 	.. I $L($P(%NEU,%,9)) s ^AM(FIRMA,"5E",$P(%NEU,%,9),KBEZ1,ANR)=""
 	.. I $L($P(%NEU,%,7))&$L($P(%NEU,%,8)) s ^AM(FIRMA,"6E",$P(%NEU,%,7),$P(%NEU,%,8),KBEZ1,ANR)=""
 	.. I $L($P(%NEU,%,15)) s ^AM(FIRMA,"14E",$P(%NEU,%,15),KBEZ1,ANR)=""
 	. ;
 	. S %ALT=$G(^AA(FIRMA,ANR,5))
 	. s ^AA(FIRMA,ANR,5)=LNR
 	. S %NEU=^(5),%LOE="",%TRNR=1305 D ^BMTSEND
 	. S $P(^AA(FIRMA,ANR,3),%,7,8)=$$ANSIASCI^%UML(%DR_%_PCODE)
 	. ;
 	. S %ALT=$G(^AA(FIRMA,ANR,20,0))
 	. K:$L($P(%ALT,%,1)) ^AM(FIRMA,11,$P(%ALT,%,1),ANR)
 	. s ^AA(FIRMA,ANR,20,0)=$$ANSIASCI^%UML(obj.vkrabgr)
 	. S %NEU=^(0),%LOE="",%TRNR=1311 D ^BMTSEND
 	. S:$L($P(%NEU,%,1)) ^AM(FIRMA,11,$P(%NEU,%,1),ANR)=""
 	 
 	i +neusw!(vkanl="J") d
 	. s vkdat=$$TXT7^%LN200(obj.vkdat)
 	. //I $D(^AA(FIRMA,ANR,20,"N",1,1000000-vkdat,0))#2,$P(^(0),%,7)'="U" Q
 	. S ^AA(FIRMA,ANR,20,"N",1,1000000-vkdat,0)=""_%_""_%_"B"_%_"N"_%_"J"_%_"N"_%_"U"_%_""_%_""_%_updnr
 	. S VONDAT=vkdat
 	. S %NEU=^(0),%ALT="",%LOE="",%TRNR=1312 D ^BMTSEND
 	. ;
 	. S ^AA(FIRMA,ANR,20,"N",1,1000000-vkdat,1,999999)=obj.kfsoll_%_obj.vkexcl
 	. s VONDAT=vkdat,PRKZV="N",VKME=999999
 	. S %NEU=^(999999),%ALT="",%LOE="",%TRNR=1313 D ^BMTSEND
 	. S $P(^AA(FIRMA,ANR,3),%,9,10)=$$ANSIASCI^%UML(%DR_%_PCODE)
 	;
 	I $L(obj.eanbm) d
 	. s EAN=obj.eanbm
 	. S %ALT=$G(^AA(FIRMA,ANR,4,EAN))
 	. S ^AA(FIRMA,ANR,4,EAN)="J"_%_"J"
 	. S %NEU=^(EAN),%LOE="",%TRNR=1304 D ^BMTSEND
 	. S $P(^AA(FIRMA,ANR,3),%,5,6)=$$ANSIASCI^%UML(%DR_%_PCODE)
 	. S ^AM(FIRMA,2,EAN)=ANR
 	;
 	s evm=$J(obj.evm*obj.epmbm/obj.vpm,0,4)
 	s wievre=$J(evm*obj.vpm,0,4)
 	s (ad,%ALT)=$G(^AA(FIRMA,ANR,10,LNR,0))
 	K:$L($P(%ALT,%,2))&$L(LNR) ^AM(FIRMA,3,$P(%ALT,%,2),LNR)
 	K:$L(kbezold)&$L(LNR) ^AM(FIRMA,7,LNR,kbezold,ANR)	
 	K:$L(kbezold)&$L(LNR) ^AM(FIRMA,"7E",LNR,kbezold,ANR)
 	S KBEZ1="" F  S KBEZ1=$O(^AA(FIRMA,ANR,6,KBEZ1)) Q:KBEZ1=""  D
 	. K:$L(LNR) ^AM(FIRMA,"7E",LNR,KBEZ1,ANR)	
 	
 	I $D(^AA(FIRMA,ANR,10,LNR,0)),$L(obj.eanbm),$P(ad,%,5)="" d
 	. s $P(ad,%,5)=obj.eanbm
 	. S ^AA(FIRMA,ANR,10,LNR,0)=ad
 	. S %NEU=^(0),%LOE="",%TRNR=1306 D ^BMTSEND
 	. S $P(^AA(FIRMA,ANR,3),%,7,8)=$$ANSIASCI^%UML(%DR_%_PCODE)
 	
  	i +neusw!(ekanl="J") d
 	. s ad=$G(^AA(FIRMA,ANR,10,LNR,0))
 	. s $P(ad,%,1)=obj.hlief
 	. i +neusw s $P(ad,%,2)=obj.bestnrbm
 	. s $P(ad,%,3)="J",$P(ad,%,12)="J"
 	. s $P(ad,%,4,8)=$S(obj.ebe=obj.vpe:"J",1:"N")_%_obj.eanbm_%_obj.erebm_%_obj.epmbm_%_evm
 	. s $P(ad,%,10,11)=obj.mibeme_%_wievre
 	. S ^AA(FIRMA,ANR,10,LNR,0)=$$ANSIASCI^%UML(ad)
 	. S %NEU=^(0),%LOE="",%TRNR=1306 D ^BMTSEND
 	. S $P(^AA(FIRMA,ANR,3),%,7,8)=$$ANSIASCI^%UML(%DR_%_PCODE)
 
	S %NEU=^AA(FIRMA,ANR,10,LNR,0)
 	S:$L($P(%NEU,%,2))&$L(LNR) ^AM(FIRMA,3,$P(%NEU,%,2),LNR)=ANR
 	S:$L(kbez)&$L(LNR) ^AM(FIRMA,7,LNR,kbez,ANR)=""
 	S:$L(kbez)&$L(LNR) ^AM(FIRMA,"7E",LNR,kbez,ANR)=""
 	S KBEZ1="" F  S KBEZ1=$O(^AA(FIRMA,ANR,6,KBEZ1)) Q:KBEZ1=""  D
 	. S:$L(LNR) ^AM(FIRMA,"7E",LNR,KBEZ1,ANR)=""	
 	;
 	s ekdat=$$TXT7^%LN200(obj.ekdat)
 	i +neusw!(ekanl="J") d
 	. s aekdat=$O(^AA(FIRMA,ANR,10,LNR,1,1000000-ekdat))
 	. s (ad,%ALT)="" I $L(aekdat) s (ad,%ALT)=$G(^AA(FIRMA,ANR,10,LNR,1,aekdat,0))
 	. s $P(ad,%,1,2)=IND_%_obj.brutto
 	. s $P(ad,%,5,6)=obj.ekgrp_%_obj.nebkost
 	. S $P(ad,%,8)="U"
 	. S $P(ad,%,10)=updnr
 	. S ^AA(FIRMA,ANR,10,LNR,1,1000000-ekdat,0)=$$ANSIASCI^%UML(ad)
 	. S ABDAT=ekdat
 	. S %NEU=^(0),%LOE="",%TRNR=1307 D ^BMTSEND
 	
 	i +neusw!(kondanl="J") d
 	. i obj.ekgrp="" d
 	.. ;I $D(^AA(FIRMA,ANR,10,LNR,2,"N",1000000-ekdat,0))#2,$P(^(0),"`",4)'="U" Q
 	.. S %ALT=$G(^AA(FIRMA,ANR,10,LNR,2,"N",1000000-ekdat,0))
 	.. s ad=""_%_""_%_"N"_%_"U"
 	.. s ^AA(FIRMA,ANR,10,LNR,2,"N",1000000-ekdat,0)=$$ANSIASCI^%UML(ad)
 	.. S EKDAT=ekdat,PRKZ="N"
 	.. S %NEU=^(0),%LOE="",%TRNR=1309 D ^BMTSEND
 	.. ;
 	.. s (ad,%ALT)=$G(^AA(FIRMA,ANR,10,LNR,2,"N",1000000-ekdat,1,999999))
 	.. s $P(ad,%,1,6)=obj.rabtyp_%_obj.rab1_%_obj.rab2_%_obj.rab3_%_obj.rab4_%_obj.netto
 	.. s ^AA(FIRMA,ANR,10,LNR,2,"N",1000000-ekdat,1,999999)=$$ANSIASCI^%UML(ad)
 	.. S EKDAT=ekdat,PRKZ="N",EKME=999999
 	.. S %NEU=^(999999),%LOE="",%TRNR=1310 D ^BMTSEND
 	;
 	i +neusw!(stamm="J") d
 	. s (ad,%ALT)=$G(^AA(FIRMA,ANR,30,0))
 	. S $P(ad,%,1)=obj.acod
 	. s:+neusw $P(ad,%,6)=obj.netto+obj.nebkost
 	. S ^AA(FIRMA,ANR,30,0)=$$ANSIASCI^%UML(ad)
 	. S %NEU=^(0),%LOE="",%TRNR=1318 D ^BMTSEND
 	;
 	s obj.anr=ANR
 	;
 	s status=$S(freigartjn="J":3,freigjn="J":2,1:1)
 	s obj.status=status
 	d obj.%Save()
 	i obj.faktor'=1!$L(obj.bestnr) d
 	. s objf=##class(inndatap.faktor).%OpenId(FIRMA_"||"_ANR_"||"_LNR)
 	. if objf="" d
 	.. s objf=##class(inndatap.faktor).%New()
 	.. s objf.firma=FIRMA
 	.. s objf.anr=ANR
 	.. s objf.lnr=LNR
 	. s objf.bestnr=obj.bestnr
 	. s objf.faktor=obj.faktor
 	. d objf.%Save()
 	. d objf.%Close()
 	. k objf
 	d obj.%Close()
 	k obj
 	i freigartjn="J" d
 	. S (AD,%ALT)=$G(^AA(FIRMA,ANR,1))
 	. S $P(AD,%,4)="J"
 	. S ^(1)=AD
 	. S %NEU=^(1),%LOE="",%TRNR=1301 D ^BMTSEND 	
 	i freigjn="J" d
 	. d FREIG^BMAAB(ANR,LNR,"J","J",%DR+1,"N",updnr,"N")
 	q status
 	
neunr
 	ZA ^AA(FIRMA,0)
 	S:'($D(^AA(FIRMA,0))#2) ^(0)=1_%_1
 	S ANR=$P(^(0),%,1)
 	F ANR=ANR:1 Q:'$D(^AA(FIRMA,ANR))
 	S $P(^AA(FIRMA,0),%,1)=ANR+1
 	ZD ^AA(FIRMA,0)
	q
	
	
VKGRP(idkopf)
	s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	. q:obj=""
	. s obj.vkrabgr=obj.wargr_".A"
	. d obj.%Save()
	. d obj.%Close()
	q
	
 
BEZ(idkopf)
	s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	. q:obj=""
	. i $L(obj.bez1)>30!($L(obj.bez3)>30)!($L(obj.bez3)>30) w bez.anr,!
	. d obj.%Save()
	. d obj.%Close()
	q
 
 
KBEZ
	d ^BMINIT
	S FIRMA=$P(^FA(0),%,1)
	
	s idkopf="" f  s idkopf=$O(^inndatap.posD(idkopf)) q:idkopf=""  d
	. s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	.. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	.. q:obj=""
	.. s ANR=obj.anr
	.. d obj.%Close()
	.. Q:ANR=""
	.. I $D(^AA(FIRMA,ANR,1))#2 S KBEZ=$P(^(1),%,1)
	.. E  Q
	.. S KBEZ1=$$ANSIASCI^%UML($$kbez($$ASCIANSI^%UML(KBEZ)))
	.. I KBEZ'=KBEZ1 D
	... W *13,idkopf,?5,ANR,?13,KBEZ,?45,KBEZ1,!
	... S $P(^AA(FIRMA,ANR,1),%,1)=KBEZ1
	d ART^BMCINIT
	q
	
	
 
ZUSCH
	d ^BMINIT
	W "Firma: " R FIRMA W !
	W "Ersetzen J/N: " R UPD
	Q:FIRMA=""
	Q:UPD=""
	d ^%DRU E  Q
	D OPEN^%DRU,USE^%DRU
	W *13
	S FIRMA=$P(^FA(0),%,1)
	s idkopf="" f  s idkopf=$O(^inndatap.posD(idkopf)) q:idkopf=""  d
	. s obj=##class(inndatap.downloads).%OpenId(idkopf)
	. q:obj=""
	. s LNR=obj.lnr
	. d obj.%Close()
	. k obj1
	. s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	.. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	.. q:obj=""
	.. s ANR=obj.anr
	.. d obj.%Close()
	.. Q:ANR=""
	.. s ABDAT1=$O(^AA(FIRMA,ANR,10,LNR,1,""))
	.. i ABDAT1="" Q
	.. I $L(ABDAT1) S ABDAT2=$O(^AA(FIRMA,ANR,10,LNR,1,ABDAT1))
	.. i ABDAT2="" Q
	.. S AD1="" I $D(^AA(FIRMA,ANR,10,LNR,1,ABDAT1,0))#2 S AD1=^(0)
	.. S AD2="" I $D(^AA(FIRMA,ANR,10,LNR,1,ABDAT2,0))#2 S AD2=^(0)
	.. I $L(AD1),$L(AD2),$P(AD1,%,3)="",$P(AD2,%,3)'="" d
	... W *13,ANR,?8,$P(AD2,%,3),?15,$P(^AA(FIRMA,ANR,1),%,7),!
	... I $ZCONVERT(UPD,"U")="J" S $P(^AA(FIRMA,ANR,10,LNR,1,ABDAT1,0),%,3,4)=$P(AD2,%,3,4)
	W *12
	D CLOSE^%DRU
	q
	
	
NETTO
	d ^BMINIT
	W "Firma: " R FIRMA W !
	W "Ersetzen J/N: " R UPD
	Q:FIRMA=""
	Q:UPD=""
	d ^%DRU E  Q
	D OPEN^%DRU,USE^%DRU
	W *13
	S FIRMA=$P(^FA(0),%,1)
	s idkopf="" f  s idkopf=$O(^inndatap.posD(idkopf)) q:idkopf=""  d
	. s obj=##class(inndatap.downloads).%OpenId(idkopf)
	. q:obj=""
	. s LNR=obj.lnr
	. d obj.%Close()
	. k obj1
	. s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	.. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	.. q:obj=""
	.. s ANR=obj.anr
	.. d obj.%Close()
	.. Q:ANR=""
	.. s ABDAT1=$O(^AA(FIRMA,ANR,10,LNR,1,""))
	.. Q:ABDAT1=""
	.. S AD0="" I $D(^AA(FIRMA,ANR,10,LNR,1,ABDAT1,0))#2 S AD0=^(0)
	.. s ABDAT1=$O(^AA(FIRMA,ANR,10,LNR,2,"N",""))
	.. i ABDAT1="" Q
	.. I $L(ABDAT1) S ABDAT2=$O(^AA(FIRMA,ANR,10,LNR,2,"N",ABDAT1))
	.. i ABDAT2="" Q
	.. S AD1="" I $D(^AA(FIRMA,ANR,10,LNR,2,"N",ABDAT1,1,999999))#2 S AD1=^(999999)
	.. S AD2="" I $D(^AA(FIRMA,ANR,10,LNR,2,"N",ABDAT2,1,999999))#2 S AD2=^(999999)
	.. I $L(AD1),$L(AD2),$P(AD1,%,1)="%",$P(AD0,%,5)="",+$P(AD1,%,2)=0 D
	... W *13,LNR,?8,ANR,?15,$P(AD2,%,3),?25,$P(^AA(FIRMA,ANR,1),%,7),!
	... I $ZCONVERT(UPD,"U")="J" d
	.... K ^AA(FIRMA,ANR,10,LNR,2,"N",ABDAT1,1,999999)
	.... K ^AA(FIRMA,ANR,10,LNR,2,"N",ABDAT1,0)
	W *12
	D CLOSE^%DRU
	q
 
TSTART
	d ^BMINIT
	W "Firma: " R FIRMA W !
	Q:FIRMA=""
	d ^%DRU E  Q
	D OPEN^%DRU,USE^%DRU
	W *13
	S FIRMA=$P(^FA(0),%,1)
	s idkopf="" f  s idkopf=$O(^inndatap.posD(idkopf)) q:idkopf=""  d
	. s obj=##class(inndatap.downloads).%OpenId(idkopf)
	. q:obj=""
	. s LNR=obj.lnr
	. d obj.%Close()
	. k obj1
	. s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	.. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	.. q:obj=""
	.. s ANR=obj.anr
	.. d obj.%Close()
	.. Q:ANR=""
	.. I $P($G(^AA(FIRMA,ANR,2)),%,9)="" W *13,ANR," "
	q
	
TSTKBEZ
	d ^BMINIT
	W "Firma: " R FIRMA W !
	W "Ersetzen J/N: " R UPD
	Q:FIRMA=""
	Q:UPD=""
	d ^%DRU E  Q
	D OPEN^%DRU,USE^%DRU
	W *13
	S FIRMA=$P(^FA(0),%,1)
	s idkopf="" f  s idkopf=$O(^inndatap.posD(idkopf)) q:idkopf=""  d
	. s obj=##class(inndatap.downloads).%OpenId(idkopf)
	. q:obj=""
	. s LNR=obj.lnr
	. d obj.%Close()
	. k obj1
	. s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	.. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	.. q:obj=""
	.. s ANR=obj.anr
	.. s kbez=$$kbez(obj.bez1)
	.. d obj.%Close()
	.. I kbez="" W *13,ANR,?10,$P(^AA(FIRMA,ANR,1),%,7),!
	W *12
	D CLOSE^%DRU
	q
 
KFSOLL
	d ^BMINIT
	W "Firma: " R FIRMA W !
	Q:FIRMA=""
	S FIRMA=$P(^FA(0),%,1)
	s idkopf=1 
	s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	. q:obj=""
	. w obj.anr,!
	. q
	. s obj.kfsoll=1
	. s obj.vkexcl=brutto
	. s obj.vkincl=$J(obj.vkexcl*obj.mcproz/100,0,2)
	. d obj.%Save()
	. d obj.%Close()
	k obj
]]></Routine>
<Class name="inndatap.defaults">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>59858,57846.619162</TimeChanged>
<TimeCreated>59931,71436.670985</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

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

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

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

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

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

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

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

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

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

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

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

<Index name="IdKey">
<IdKey>1</IdKey>
<Properties>firma,lnr</Properties>
<Unique>1</Unique>
</Index>

<Query name="Liste">
<Type>%SQLQuery</Type>
<FormalSpec>firma:%String,lnr:%String</FormalSpec>
<SqlQuery>SELECT %ID,atyp,wargr,ekdat,vkdat,kfsoll,indikator,acod,ekdataktiv,vkdataktiv FROM defaults
where firma=:firma and lnr=:lnr</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^inndatap.defaultsD</DataLocation>
<DefaultData>defaultsDefaultData</DefaultData>
<IdLocation>^inndatap.defaultsD</IdLocation>
<IndexLocation>^inndatap.defaultsI</IndexLocation>
<StreamLocation>^inndatap.defaultsS</StreamLocation>
<Data name="defaultsDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>abtnr</Value>
</Value>
<Value name="3">
<Value>atyp</Value>
</Value>
<Value name="4">
<Value>ekdat</Value>
</Value>
<Value name="5">
<Value>firma</Value>
</Value>
<Value name="6">
<Value>kfsoll</Value>
</Value>
<Value name="7">
<Value>lnr</Value>
</Value>
<Value name="8">
<Value>mcproz</Value>
</Value>
<Value name="9">
<Value>vkdat</Value>
</Value>
<Value name="10">
<Value>wargr</Value>
</Value>
<Value name="11">
<Value>indikator</Value>
</Value>
<Value name="12">
<Value>acod</Value>
</Value>
<Value name="13">
<Value>ekdataktiv</Value>
</Value>
<Value name="14">
<Value>vkdataktiv</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="inndatap.downloads">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>59931,72626.558168</TimeChanged>
<TimeCreated>59931,71436.731797</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

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

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

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

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

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

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

<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="dellief">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	d ##class(inndatap.downloads).%DeleteId(id)
	&sql(delete from inndatap.pos where id1=:id)
	q 0
]]></Implementation>
</Method>

<Method name="geteinh">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s ad1="",ad2=""
	s einh="" f  s einh=$O(^PA(firma,40,einh)) q:einh=""  d
	. s ad1=ad1_$TR(einh," ","")_",",ad2=ad2_$TR($P(^(einh),"`",2)," ","")_","
	i $L(ad1) s ad1=$E(ad1,1,$L(ad1)-1)
	i $L(ad2) s ad2=$E(ad2,1,$L(ad2)-1)
	q $$ASCIANSI^%UML(ad1_"`"_ad2)
]]></Implementation>
</Method>

<Query name="liste">
<Type>%SQLQuery</Type>
<FormalSpec>pfirma:%Integer</FormalSpec>
<SqlQuery>SELECT %ID,datum,pcode,lnr,$$LNAME^BMINNDPR(firma,lnr),status,sets FROM downloads
 WHERE (firma = :pfirma)</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
<Parameter name="ROWSPEC" value="ID,datum:%Date,pcode:%String,lnr:%Integer,bez:%String,status:%Integer,sets:%Integer"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^inndatap.downloadsD</DataLocation>
<DefaultData>downloadsDefaultData</DefaultData>
<IdLocation>^inndatap.downloadsD</IdLocation>
<IndexLocation>^inndatap.downloadsI</IndexLocation>
<StreamLocation>^inndatap.downloadsS</StreamLocation>
<Data name="downloadsDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>datum</Value>
</Value>
<Value name="3">
<Value>firma</Value>
</Value>
<Value name="4">
<Value>lnr</Value>
</Value>
<Value name="5">
<Value>pcode</Value>
</Value>
<Value name="6">
<Value>status</Value>
</Value>
<Value name="7">
<Value>zeilenanzahl</Value>
</Value>
<Value name="8">
<Value>sets</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="inndatap.ekgrp">
<ClassType>persistent</ClassType>
<Super>%Persistent</Super>
<TimeChanged>60246,52869.889341</TimeChanged>
<TimeCreated>59931,71436.79429</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

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

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

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

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

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

<Property name="datum">
<Type>%Date</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>

<Index name="Index">
<Properties>idkopf,ekgrp</Properties>
</Index>

<Method name="speich">
<ClassMethod>1</ClassMethod>
<FormalSpec>id:%Integer,ekgrpbm:%String,ekgrpbez:%String,datum:%String,rab1:%Float,rab2:%Float,rab3:%Float,rab4:%Float</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s obj=##class(inndatap.ekgrp).%OpenId(id)
	i obj'="" d
	. s obj.ekgrpbm=ekgrpbm
	. s obj.ekgrpbez=ekgrpbez
	. s obj.datum=datum
	. s obj.rab1=rab1
	. s obj.rab2=rab2
	. s obj.rab3=rab3
	. s obj.rab4=rab4
	. d obj.%Save()
	. d obj.%Close()
	k obj
	q 1
]]></Implementation>
</Method>

<Method name="verbuch">
<ClassMethod>1</ClassMethod>
<FormalSpec>idkopf:%String,pcode:%String,freigjn:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	d ^FST1
	S $P(^MENUE(0,$J),%,3)="NADLINGER"
	
	set obj=##class(inndatap.downloads).%OpenId(idkopf)
	s firma=obj.firma,FIRMA=firma,FIL=0,%="`",PERSONAL=pcode
	s lnr=obj.lnr,LNR=lnr
	d obj.%Close()
	;
	S PRKZ="N",KKR="L"
	s ekgrp="" f  s ekgrp=$O(^inndatap.ekgrpI("Index",idkopf,ekgrp)) q:ekgrp=""  d
	. s id="" f  s id=$O(^inndatap.ekgrpI("Index",idkopf,ekgrp,id)) q:id=""  d
	.. s obj=##class(inndatap.ekgrp).%OpenId(id)
	.. q:obj=""
	.. S EKGRP=ekgrp
	.. S %ALT=$G(^BZ(firma,"L",lnr,10,ekgrp,0))
	.. I '$D(^BZ(firma,"L",lnr,10,ekgrp,0)) s $P(^(0),"`",2)=$$TXT7^%LN200(+$H)
	.. s $P(^(0),%,1)=$$ANSIASCI^%UML(obj.ekgrpbez)
	.. s $P(^(0),%,3)=$$TXT7^%LN200(+$H)
	.. s $P(^(0),%,4)=$$ANSIASCI^%UML(pcode)
	.. s $P(^(0),%,5)="J"
	.. S %NEU=^(0),%TRNR=1282,%LOE="" D ^BMTSEND
	.. s datum=$$TXT7^%LN200(obj.datum)
	.. s ad=$G(^BZ(firma,"L",lnr,10,ekgrp,1,"N",1000000-datum,0))
	.. s %ALT=ad
	.. s $P(ad,"`",3)=obj.rab1
	.. s $P(ad,"`",4)=obj.rab2
	.. s $P(ad,"`",5)=obj.rab3
	.. s $P(ad,"`",6)=obj.rab4
	.. S $P(ad,%,8)="U" i freigjn="J" s $P(ad,"`",8)="Z"
	.. s ^BZ(firma,"L",lnr,10,ekgrp,1,"N",1000000-datum,0)=ad
	.. S ABDAT=datum,%NEU=^(0),%TRNR=1283,%LOE="" D ^BMTSEND
	.. d obj.%Close()
	
	;Aktualisieren Rabattruppen/Positionen
	s pos="" f  s pos=$O(^inndatap.posD(idkopf,pos)) q:pos=""  d
	. s obj=##class(inndatap.pos).%OpenId(idkopf_"||"_pos)
	. q:obj=""
	. s ekgrp=obj.ekgrp
	. i $L(ekgrp) d
	.. s obj.rab1=$P(ad,"`",3)
	.. s obj.rab2=$P(ad,"`",4)
	.. s obj.rab3=$P(ad,"`",5)
	.. s obj.rab4=$P(ad,"`",6)
	.. s obj.netto=obj.brutto
	.. s bruttovk=0 I +obj.epmbm,+obj.evm s bruttovk=obj.brutto/obj.epmbm/obj.evm*obj.vpm
	.. s obj.netto=$J(bruttovk*(100-obj.rab1/100)*(100-obj.rab2/100)*(100-obj.rab3/100)*(100-obj.rab4/100),0,4)
	.. s est=obj.netto+obj.nebkost
	.. s obj.vkexcl=bruttovk*obj.kfsoll
	.. s obj.vkincl=obj.vkexcl*(100+obj.mcproz)/100
	.. s obj.spanne=0 I +obj.vkexcl s obj.spanne=(obj.vkexcl-est)/obj.vkexcl*100
	. d obj.%Save()
	. d obj.%Close()
	
	k obj 
	Q 1
]]></Implementation>
</Method>

<Method name="tstdatum">
<ClassMethod>1</ClassMethod>
<FormalSpec>id1:%Integer,idkopf:%Integer,datum:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	i $F(datum,"/") s datum=$ZDH(datum,4)
	q $$ekst^BMINNDPR(id1,idkopf,datum)
]]></Implementation>
</Method>

<Query name="Liste">
<Type>%SQLQuery</Type>
<FormalSpec>idkopf:%String</FormalSpec>
<SqlQuery>SELECT %ID,ekgrp,ekgrpbm,ekgrpbez,artbez,
           datum,rab1,rab2,rab3,rab4,$$ekst^BMINNDPR(%ID,idkopf) FROM ekgrp
 WHERE (idkopf = :idkopf)
 order by ekgrp</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
<Parameter name="ROWSPEC" value="ID,ekgrp:%String,ekgrpbm:%String,ekgrpbez:%String,artbez:%String,datum:%Date,rab1:%Float,rab2:%Float,rab3:%Float,rab4:%Float,ekst:%String"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^inndatap.ekgrpD</DataLocation>
<DefaultData>ekgrpDefaultData</DefaultData>
<IdLocation>^inndatap.ekgrpD</IdLocation>
<IndexLocation>^inndatap.ekgrpI</IndexLocation>
<StreamLocation>^inndatap.ekgrpS</StreamLocation>
<Data name="ekgrpDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>ekgrp</Value>
</Value>
<Value name="3">
<Value>firma</Value>
</Value>
<Value name="4">
<Value>artbez</Value>
</Value>
<Value name="5">
<Value>ekgrpbez</Value>
</Value>
<Value name="6">
<Value>idkopf</Value>
</Value>
<Value name="7">
<Value>ekgrpbm</Value>
</Value>
<Value name="8">
<Value>datum</Value>
</Value>
<Value name="9">
<Value>rab1</Value>
</Value>
<Value name="10">
<Value>rab2</Value>
</Value>
<Value name="11">
<Value>rab3</Value>
</Value>
<Value name="12">
<Value>rab4</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="inndatap.faktor">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>60245,53812.671408</TimeChanged>
<TimeCreated>59931,71436.85628</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>firma,anr,lnr</Properties>
<Unique>1</Unique>
</Index>

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

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

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

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

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

<Index name="bestnr">
<Properties>firma,bestnr,lnr,anr</Properties>
</Index>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^inndatap.faktorD</DataLocation>
<DefaultData>faktorDefaultData</DefaultData>
<IdLocation>^inndatap.faktorD</IdLocation>
<IndexLocation>^inndatap.faktorI</IndexLocation>
<StreamLocation>^inndatap.faktorS</StreamLocation>
<Data name="faktorDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>bestnr</Value>
</Value>
<Value name="3">
<Value>faktor</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="inndatap.liefid">
<ClassType>persistent</ClassType>
<ProcedureBlock>1</ProcedureBlock>
<Super>%Persistent</Super>
<TimeChanged>59767,57632.961492</TimeChanged>
<TimeCreated>59931,71436.917541</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

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

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

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

<Index name="liefid">
<IdKey>1</IdKey>
<Properties>firma,liefid</Properties>
<Unique>1</Unique>
</Index>

<Method name="getlnr">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,liefid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	if liefid="" q ""
	I '$D(^inndatap.liefidD(firma,liefid)) q ""
	q ##class(inndatap.liefid).%OpenId(firma_"||"_liefid).lnr
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^inndatap.liefidD</DataLocation>
<DefaultData>liefidDefaultData</DefaultData>
<IdLocation>^inndatap.liefidD</IdLocation>
<IndexLocation>^inndatap.liefidI</IndexLocation>
<StreamLocation>^inndatap.liefidS</StreamLocation>
<Data name="liefidDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>lnr</Value>
</Value>
</Data>
</Storage>
</Class>
<Class name="inndatap.pos">
<ClassType>persistent</ClassType>
<Super>%Persistent</Super>
<TimeChanged>60281,72484.179909</TimeChanged>
<TimeCreated>59931,71436.997975</TimeCreated>
<ClassDefinitionError>0</ClassDefinitionError>

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

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

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

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

<Property name="bestnr">
<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="bez3">
<Type>%String</Type>
</Property>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<Property name="rabtyp">
<Type>%String</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="netto">
<Type>%Float</Type>
</Property>

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

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

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

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

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

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

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

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

<UDLText name="T57">
<Content><![CDATA[
//0=erfasst,1=verbucht,2=freigegeben

]]></Content>
</UDLText>

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

<Index name="idkey">
<IdKey>1</IdKey>
<Properties>id1,pos</Properties>
<Unique>1</Unique>
</Index>

<Index name="art">
<Properties>id1,anr</Properties>
</Index>

<Index name="ean">
<Properties>ean</Properties>
</Index>

<Method name="NewMethod1">
<Language>basic</Language>
</Method>

<Method name="getposbm">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,lnr:%String,id1:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	K ^XW($J),sort
	s pos=0
	s tr=$C(10)
	s kbez="" f  s kbez=$O(^AM(firma,7,lnr,kbez)) Q:kbez=""  d
	. s anr="" f  s anr=$O(^AM(firma,7,lnr,kbez,anr)) q:anr=""  d
	.. I $D(^AA(firma,anr,10,lnr,0))#2 s bestnr=$$ASCIANSI^%UML($P(^(0),%,2))
	.. e  q
	.. I $L(bestnr) S sort(bestnr,anr)=""
	s bestnr="" f  s bestnr=$O(sort(bestnr)) q:bestnr=""  d
	. s anr="" f  s anr=$O(sort(bestnr,anr)) q:anr=""  d
	.. I $D(^AA(firma,anr,1))#2 s bez=$$ASCIANSI^%UML($P(^(1),"`",7)_$P(^(1),"`",8))
	.. e  q
	.. q:$P(^(1),"`",4)'="J"
	.. s pos=pos+1
	.. s ^XW($J,pos)=bestnr_tr_anr_tr_bez_tr_$S($D(^inndatap.posI("art",id1,anr)):"J",1:"")
	k sort
	q $J
]]></Implementation>
</Method>

<Method name="anrzuord">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,id1:%String,anr:%String,lnr:%String,anro:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	I $L(anr),'$D(^AA(firma,anr,1)) Q 0
	I $L(anr),'$D(^AA(firma,anr,10,lnr)) q 0


    s obj=##class(inndatap.pos).%OpenId(id1)
    if obj="" q 0

	if anr="",$L(anro) d
	. K ^AA(firma,anro,4,obj.eanbm)
	. K ^AM(firma,2,obj.eanbm)
	. s objf=##class(inndatap.faktor).%OpenId(firma_"||"_anro_"||"_lnr)
	. i $L(objf) s objf.bestnr="" d objf.%Save() d objf.%Close()
	. k objf

	s zeile=obj.zeile
	s idkopf=obj.id1
	d obj.%Close()
	k obj
	
	d ##class(inndatap.pos).savezeile(idkopf,id1,zeile,"J",anr)
	
	q 1
]]></Implementation>
</Method>

<Method name="getcombo">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,lnr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	K ^XW($J)
	s zz=0
	S acod="" f  s acod=$O(^PA(firma,45,acod)) q:acod=""  d
	. s ad=^(acod)
	. s zz=zz+1,^XW($J,zz)="12|"_$$ASCIANSI^%UML(acod)_"|"_$$ASCIANSI^%UML($P(ad,"`",1))
	S atyp="" f  s atyp=$O(^PA(firma,35,atyp)) q:atyp=""  d
	. s ad=^(atyp)
	. s zz=zz+1,^XW($J,zz)="1|"_$$ASCIANSI^%UML(atyp)_"|"_$$ASCIANSI^%UML($P(ad,"`",1))
	s hgrp="" f  s hgrp=$O(^PA(firma,55,hgrp)) q:hgrp=""  d
	. s bez1=$P(^(hgrp,0),"`",1)
	. s zz=zz+1,^XW($J,zz)="2|"_$E(hgrp+100,2,3)_"00"_"|"_$$ASCIANSI^%UML(bez1)
	. s ugrp="" f  s ugrp=$O(^PA(firma,55,hgrp,1,ugrp)) q:ugrp=""  d
	.. s bez1=$P(^(ugrp),"`",1)
	.. s zz=zz+1,^XW($J,zz)="2|"_$E(hgrp+100,2,3)_$E(100+ugrp,2,3)_"|"_$$ASCIANSI^%UML(bez1)
	s abtnr="" f  s abtnr=$O(^PA(firma,2,abtnr)) q:abtnr=""  d
	. s bez1=$P(^(abtnr),"`",1)
	. s zz=zz+1,^XW($J,zz)="3|"_$$ASCIANSI^%UML(abtnr)_"|"_$$ASCIANSI^%UML(bez1)	
	s einh="" f  s einh=$O(^PA(firma,40,einh)) q:einh=""  d
	. s bez1=$P(^(einh),"`",1)
	. s zz=zz+1,^XW($J,zz)="4|"_$$ASCIANSI^%UML(einh)_"|"_$$ASCIANSI^%UML(bez1)		
	s code="" f  s code=$O(^BP(firma,5,code)) q:code=""  d
	. s bez1=+$P(^(code),"`",1)
	. s zz=zz+1,^XW($J,zz)="5|"_$$ASCIANSI^%UML(code)_"|"_$$ASCIANSI^%UML(bez1)			
	s ekgrp="" I $L(lnr) f  s ekgrp=$O(^BZ(firma,"L",lnr,10,ekgrp)) q:ekgrp=""  d
	. i $P(^(ekgrp,0),"`",5)'="J" Q
	. s bez1=$P(^(0),"`",1)
	. s zz=zz+1,^XW($J,zz)="7|"_$$ASCIANSI^%UML(ekgrp)_"|"_$$ASCIANSI^%UML(bez1)
	f atyp="PE","PS" d
	. s kbez="" f  s kbez=$O(^AM(firma,8,atyp,kbez)) q:kbez=""  d
	.. s anr="" f  s anr=$O(^AM(firma,8,atyp,kbez,anr)) q:anr=""  d
	... s bez1=$P($G(^AA(firma,anr,1)),"`",7)
	... s zz=zz+1,^XW($J,zz)="13|"_$$ASCIANSI^%UML(anr)_"|"_$$ASCIANSI^%UML(bez1)
	Q $J
]]></Implementation>
</Method>

<Method name="getekdat">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,lnr:%String,anr:%String,ekgrp:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[

	K ^XW($J)
	s pos=0
	I ekgrp'="" s dat="" f  s dat=$O(^BZ(firma,"L",lnr,10,ekgrp,1,"N",dat)) q:dat=""  d
	. i $D(^(dat,0))#2 s ad=^(0)
	. e  q
	. s rab1=$J($P(ad,"`",3),0,2),rab2=$J($P(ad,"`",4),0,2),rab3=$J($P(ad,"`",5),0,2)
	. s pos=pos+1,^XW($J,pos)=$$TXT10^%LN200(1000000-dat)_$C(10)_"%"_$C(10)_rab1_$C(10)_rab2_$C(10)_rab3	

	I ekgrp="",$L(anr) s dat="" f  s dat=$O(^AA(firma,anr,10,lnr,2,"N",dat)) q:dat=""  d
	. i $D(^(dat,1,999999))#2 s ad=^(999999)
	. e  q
	. s rabjn=$P(ad,"`",1),rab1=$J($P(ad,"`",2),0,2),rab2=$J($P(ad,"`",3),0,2),rab3=$J($P(ad,"`",4),0,2),netto=$J($P(ad,"`",6),0,4)
	. s pos=pos+1,^XW($J,pos)=$$TXT10^%LN200(1000000-dat)_$C(10)_rabjn_$C(10)_rab1_$C(10)_rab2_$C(10)_rab3_$C(10)_netto

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

<Method name="getvkdat">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,anr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[

	K ^XW($J)
	s pos=0
	I $L(anr) s dat="" f  s dat=$O(^AA(firma,anr,20,"N",1,dat)) q:dat=""  d
	. I $D(^(dat,1,999999))#2 s ad=^(999999)
	. E  q
	. s kfsoll=$J($P(ad,"`",1),0,4),vkexcl=$J($P(ad,"`",2),0,4)
	. s pos=pos+1,^XW($J,pos)=$$TXT10^%LN200(1000000-dat)_$C(10)_kfsoll_$C(10)_vkexcl	

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

<Method name="getvkdat1">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,anr:%String,vkdat:%Date</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	i anr="" q ""
	s vkdat=$$TXT7^%LN200(vkdat)
	s erg=""
	s swfr="N"
	I $D(^AA(firma,anr,20,"N",1,1000000-vkdat,0))#2,$P(^(0),"`",7)'="U" s swfr="J"
	i $D(^AA(firma,anr,20,"N",1,1000000-vkdat,1,999999))#2 s erg=^(999999)
	i erg="" q ""
	q swfr_"|"_$TR(erg,"`","|")
]]></Implementation>
</Method>

<Method name="getekdat1">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,lnr:%String,anr:%String,ekgrp:%String,dat:%Date</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s dat=$$TXT7^%LN200(dat)
	s erg=""
	i ekgrp'="",$D(^BZ(firma,"L",lnr,10,ekgrp,1,"N",1000000-dat,0))#2 d
	. s ad=^(0)
	. s erg="N"_"|"_"%"_"|"_$P(ad,"`",3)_"|"_$P(ad,"`",4)_"|"_$P(ad,%,5)_"|"_$P(ad,%,6)
	I ekgrp="",$L(anr),$D(^AA(firma,anr,10,lnr,2,"N",1000000-dat,1,999999))#2 d
	. s ad=^(999999)
	. s swfr="N"
	. I $D(^AA(firma,anr,10,lnr,2,"N",1000000-dat,0))#2,$P(^(0),%,4)'="U" s swfr="J"
	. s erg=swfr_"|"_$P(ad,"`",1)_"|"_$P(ad,"`",2)_"|"_$P(ad,"`",3)_"|"_$P(ad,%,4)_"|"_$P(ad,%,5)_"|"_$P(ad,"`",6)
	q erg
]]></Implementation>
</Method>

<Method name="getekgrp">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,lnr:%String,ekgrp:%String,datum:%Date</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	i ekgrp="" Q ""
	s datum=$$TXT7^%LN200(datum)
	s ekdat=$O(^BZ(firma,"L",lnr,10,ekgrp,1,"N",999999-datum))
	i $L(ekdat),$D(^(ekdat,0))#2 s ad=^(0)
	e  q ""
	s ekdat=$$H^%LN200(1000000-ekdat)
	s rab1=$P(ad,"`",3)
	s rab2=$P(ad,"`",4)
	s rab3=$P(ad,"`",5)
	s rab4=$P(ad,"`",6)
	
	q $ZD(ekdat,4)_"|"_rab1_"|"_rab2_"|"_rab3_"|"_rab4
]]></Implementation>
</Method>

<Method name="getwgdaten">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,wargr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	s hgrp=+$E(wargr,1,2)
	s ugrp=+$E(wargr,3,4)
	I $D(^PA(firma,55,hgrp,1,ugrp))#2 s abtnr=$P(^(ugrp),"`",7),mc=$P(^(ugrp),"`",2)
	E  Q ""
	
	Q abtnr_"|"_(+$P($G(^BP(firma,5,mc)),"`",1))
]]></Implementation>
</Method>

<Method name="savezeile">
<ClassMethod>1</ClassMethod>
<FormalSpec>idkopf:%Integer,id1:%Integer,zeile:%String,updsw:%String,anr1:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	s inpliefid=$P(zeile,"|",1)
	s inpean=$P(zeile,"|",2)
	s inpbestnr=$P(zeile,"|",3)
	s inpbez=$P(zeile,"|",4)
	s inpere=$P(zeile,"|",5)
	s inpvke=$P(zeile,"|",6)
	s inpvpe=$P(zeile,"|",7)
	s inpvrm=$P(zeile,"|",8)
	s inpvpi=$P(zeile,"|",9)
	s inpdat1=$P(zeile,"|",10)
	s inppreis=$P(zeile,"|",11)
	s inppeh=$P(zeile,"|",12)
	s inpgrp=$P(zeile,"|",13)
	//I $D(^inndtest1(inpean))#2 s inpgrp=^(inpean)
	
	I inpbestnr="",$L(inpean) s inpbestnr=inpean
	s downl=##class(inndatap.downloads).%OpenId(idkopf)
	s firma=downl.firma
	s lnr=downl.lnr
			
	s (anr,erebm,kbez,bez1,bez2,bez3,bestnrbm,eanbm,ebe,brutto,ekgrp,nebkost,netto,est,vkrabgr,vkexcl,vkincl,spanne)=""
	s rabtyp="%"
	s epmbm=1,evm=1,mibeme=1,kfsoll=1,ekdat="",vkdat=""
	s wargr="0101"
	s vkrabgr=wargr_".A"
	s abtnr=""
	s mcproz=20
	s atyp="LE"
	s acod="N"
	
	s einh="" f  s einh=$O(^PA(firma,40,einh)) q:einh=""  d
	. s einh1=$P(^(einh),"`",2)
	. I $L(einh1) s einh($$ASCIANSI^%UML(einh1))=$$ASCIANSI^%UML(einh)

	I $L(inpere),$D(einh(inpere)) s inpere=einh(inpere)
	I $L(inpvke),$D(einh(inpvke)) s inpvke=einh(inpvke)
	I $L(inpvpe),$D(einh(inpvpe)) s inpvpe=einh(inpvpe)
	I $L(inppeh),$D(einh(inppeh)) s inppeh=einh(inppeh)
	
	s (ekdatd,vkdatd)=""
	s def=##class(inndatap.defaults).%OpenId(firma_"||"_lnr)
	i def'="" d
	. s atyp=def.atyp
	. s wargr=def.wargr
	. s vkrabgr=wargr_".A"
	. s kfsoll=def.kfsoll
	. s acod=def.acod
	. if def.ekdataktiv s ekdatd=def.ekdat
	. if def.vkdataktiv s vkdatd=def.vkdat
	. d def.%Close()
	k def
	
	s hgrp=+$E(wargr,1,2),ugrp=+$E(wargr,3,4)
	I $D(^PA(firma,55,hgrp,1,ugrp))#2 d
	. s abtnr=$P(^(ugrp),"`",7)
	. s mc=$P(^(ugrp),"`",2)
	. s mcproz=20 I $L(mc),$D(^BP(firma,5,mc))#2 s mcproz=+$P(^(mc),"`",1)
	s hlief="J"
	s faktor=1
	;
	I updsw="J" s anr=anr1 
	I anr="",updsw="N",$L(inpean),$D(^AM(firma,2,inpean))#2 s anr=$P(^(inpean),"`",1) 
	i anr="",updsw="N",$L(inpbestnr) s anr=$O(^inndatap.faktorI("bestnr",firma," "_$ZCONVERT(inpbestnr,"U"),lnr,""))
	I anr="",updsw="N",$L(inpbestnr),$D(^AM(firma,3,$$ANSIASCI^%UML(inpbestnr),lnr)) s anr=$P(^(lnr),"`",1)
	I $L(anr),$D(^AA(firma,anr,1))#2 d
	. s ad1=$$ASCIANSI^%UML(^(1))
	. s kbez=$P(ad1,"`",1)
	. s atyp=$P(ad1,"`",5)
	. s bez1=$P(ad1,"`",7)
	. s bez2=$P(ad1,"`",8)
	. s bez3=$P(ad1,"`",9)
	. s vpe=$P(ad1,"`",10)
	. s vke=$P(ad1,"`",11)
	. s vre=$P(ad1,"`",12)
	. s vpi=$P(ad1,"`",13)
	. s vrm=$P(ad1,"`",14)
	. s vpm=$P(ad1,"`",15)
	;
	I $L(anr),$D(^AA(firma,anr,2))#2 d
	. s ad1=$$ASCIANSI^%UML(^(2))
	. s hgrp=$P(ad1,"`",7)
	. s ugrp=$P(ad1,"`",8)
	. s wargr=$E(100+hgrp,2,3)_$E(100+ugrp,2,3)
	. s abtnr=$P(ad1,"`",9)
	. s mc=$P(ad1,"`",10)
	. s mcproz=20 I $L(mc),$D(^BP(firma,5,mc))#2 s mcproz=+$P(^(mc),"`",1)

	I $L(anr) d
	. s objf=##class(inndatap.faktor).%OpenId(firma_"||"_anr_"||"_lnr)
	. i $L(objf) s faktor=objf.faktor d objf.%Close()
	. k objf
	. s hlief="N" I $D(^AA(firma,anr,5))#2,$P(^(5),"`",1)=lnr s hlief="J"
	. I $D(^AA(firma,anr,10,lnr,0))#2 d
	.. s bestnrbm=$P(^(0),"`",2),ebe=$S($P(^(0),"`",4)="J":vpe,1:vke),eanbm=$P(^(0),"`",5)
	.. s erebm=$P(^(0),"`",6),epmbm=$P(^(0),"`",7),evm=$P(^(0),"`",8),mibeme=$P(^(0),"`",10)
	.. s:+epmbm=0 epmbm=1
	.. ;evm=VRE je ERE
	.. ;evm-Korrektur solange altes epm/evm-System läuft
	.. s evm=$J(evm/epmbm*vpm,0,4)
	.. I $D(^AA(firma,anr,20,0))#2 s vkrabgr=$$ASCIANSI^%UML($P(^(0),%,1))

	i $L(inppreis) d
	. s obj=""
	. i $L(id1) set obj=##class(inndatap.pos).%OpenId(id1)
	. i obj="" set obj=##class(inndatap.pos).%New()
	. s obj.zeile=zeile
	. s obj.liefid=inpliefid
	. s obj.ean=inpean
	. I eanbm="" s eanbm=inpean
	. s obj.bestnr=inpbestnr
	. i bestnrbm="" s bestnrbm=obj.bestnr
	. s epm=10**inppeh
	. s datum=$ZDH($TR(inpdat1,".","/"),4)
	. i ekdatd="" s ekdatd=datum
	. i vkdatd="" s vkdatd=datum
	. s datum1=datum
	. i $L(anr) d
	.. d ekhol^BMINNDPR(firma,anr,lnr,$$TXT7^%LN200(ekdatd-1))
	.. d vkhol^BMINNDPR(firma,anr,$$TXT7^%LN200(vkdatd-1))
	.. s obj.prdiff=""
	.. s bruttobm=bruttobm/vpm*evm*epmbm
	.. I +bruttobm,+epmbm s obj.prdiff=$J($TR(inppreis,",",".")*faktor-bruttobm/bruttobm*100,0,2)
	. s bez=inpbez
	. i anr="" d
	.. I $L(bez)'>30 s bez1=bez,bez2="",bez3=""
	.. e  d
	... s t=0
	... f i=30:-1:1 I $E(bez,i)=" " s t=i q
	... i +t=0 s bez1=$E(bez,1,30),bez2=$E(bez,31,60),bez3="",bez=""
	... e  s bez1=$E(bez,1,t-1),bez=$E(bez,t+1,60)
	... i $L(bez) d
	.... i $L(bez)'>30 s bez2=bez,obj.bez3="" q
	.... s t=0
	.... f i=30:-1:1 I $E(bez,i)=" " s t=i q
	.... i +t=0 s bez2=$E(bez,1,30),bez3=$E(bez,31,60),bez3=""
	.... e  s bez2=$E(bez,1,t-1),bez3=$E(bez,t+1,60)
	. ; 
	. s ere=inpere
	. I anr="" d
	.. s vre=inpere
	.. s vke=inpvke
	.. s vpe=inpvpe
	.. i vke="" s vke=vre
	.. i vpe="" s vpe=vke
	.. i ebe="" s ebe=vke
	.. s vrm=$TR(inpvrm,",",".")
	.. i vrm=0 s vrm=1
	.. s vpi=$TR(inpvpi/vrm,",",".")
	.. s:+vpi=0 vpi=1
	.. s:+vrm=0 vrm=1
	.. s vpm=epm,epmbm=epm,erebm=vre,evm=1,ebe=vpe
	.. s ekgrp=inpgrp
	.. s (rab1,rab2,rab3,rab4)=0
	.. s kbez=$$kbez^BMINNDPR(bez1)
	. ;
	. s bruttovk=$TR(inppreis,",",".")*faktor/epmbm/evm*vpm
	. s brutto=$TR(inppreis,",",".")*faktor
	. i rabtyp="%" s netto=$J(bruttovk*(100-rab1/100)*(100-rab2/100)*(100-rab3/100)*(100-rab4/100),0,4)
	. s est=netto+nebkost
	. i +kfsoll s vkexcl=bruttovk*kfsoll
	. s vkincl=vkexcl*(100+mcproz)/100
	. s spanne=0 I +vkexcl s spanne=(vkexcl-est)/vkexcl*100
	. i +ekdat=0 s ekdat=ekdatd
	. i +vkdat=0 s vkdat=vkdatd
	. i anr="" s (ekdat,vkdat)=$H+1
	. s obj.preis=$TR(inppreis,",",".")
	. s obj.datum=datum
	. s obj.id1=idkopf
	. s obj.anr=anr
	. s obj.bez=inpbez
	. s obj.kbez=kbez
	. s obj.bez1=bez1
	. s obj.bez2=bez2
	. s obj.bez3=bez3
	. s obj.wargr=wargr
	. s obj.abtnr=abtnr
	. s obj.atyp=atyp
	. s obj.vke=vke
	. s obj.vre=vre
	. s obj.vpe=vpe
	. s obj.vpi=vpi
	. s obj.vrm=vrm
	. s obj.vpm=vpm
	. s obj.mcproz=mcproz
	. s obj.bestnrbm=bestnrbm
	. s obj.eanbm=eanbm
	. s obj.ebe=ebe
	. s obj.erebm=erebm
	. s obj.epmbm=epmbm
	. s obj.ere=ere
	. s obj.epm=epm
	. s obj.hlief=hlief
	. s obj.faktor=faktor
	. s obj.brutto=brutto
	. s obj.evm=evm
	. s obj.mibeme=mibeme
	. s obj.ekgrp=ekgrp
	. s obj.ekdat=ekdat
	. s obj.rabtyp=rabtyp
	. s obj.rab1=rab1
	. s obj.rab2=rab2
	. s obj.rab3=rab3
	. s obj.rab4=rab4
	. s obj.netto=netto
	. s obj.nebkost=nebkost
	. s obj.vkrabgr=vkrabgr
	. s obj.vkdat=vkdat
	. s obj.kfsoll=kfsoll
	. s obj.vkexcl=vkexcl
	. s obj.vkincl=vkincl
	. s obj.spanne=spanne
	. s obj.acod=acod
	. s obj.status=0
	.
	. i updsw="N" s obj.pos=downl.sets+1,downl.sets=downl.sets+1 d downl.%Save()
	. d downl.%Close()
	. d obj.%Save()
	. d obj.%Close()
	. i $L(ekgrp) d
	.. s ekgrp1=$$ANSIASCI^%UML(ekgrp)
	.. s id=$O(^inndatap.ekgrpI("Index",idkopf,ekgrp,""))
	.. i id="" s obj=##class(inndatap.ekgrp).%New() I 1
	.. e  s obj=##class(inndatap.ekgrp).%OpenId(id)
	.. s obj.idkopf=idkopf
	.. s obj.ekgrp=ekgrp
	.. i $L(ekdatd) s obj.datum=ekdatd 
	.. e  s obj.datum=+$H
	.. I $D(^BZ(firma,"L",lnr,10,ekgrp1,0))#2 d
	... s obj.ekgrpbez=$$ASCIANSI^%UML($P(^(0),"`",1))
	... s obj.ekgrpbm=ekgrp
	... s datum=$O(^BZ(firma,"L",lnr,10,ekgrp1,1,"N",999999-%DR))
	... i datum'="",$D(^(datum,0))#2 d
	.... s ad=^(0)
	.... s obj.datum=$$H^%LN200(1000000-datum)
	.... s obj.rab1=$P(ad,"`",3)
	.... s obj.rab2=$P(ad,"`",4)
	.... s obj.rab3=$P(ad,"`",5)
	.... s obj.rab4=$P(ad,"`",6)
	.. s obj.artbez=bez
	.. d obj.%Save()
	.. d obj.%Close()
	
	k downl,obj
]]></Implementation>
</Method>

<Method name="setfaktor">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,anr:%String,faktor:%Float,lnr:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	i faktor=1 q 1
	
	s obj=##class(inndatap.faktor).%OpenId(firma_"||"_anr_"||"_lnr)
	i obj="" s obj=##class(inndatap.faktor).%New()
	s obj.firma=firma
	s obj.anr=anr
	s obj.lnr=lnr
	s obj.faktor=faktor
	d obj.%Save()
	d obj.%Close()
	k obj
	Q 1
]]></Implementation>
</Method>

<Method name="setliefid">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,liefid:%String,lnr:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	
	i '$D(^inndatap.liefidD(firma,liefid)) d
	. s obj=##class(inndatap.liefid).%New()
	. s obj.firma=firma
	. s obj.lnr=lnr
	. s obj.liefid=liefid
	. d obj.%Save()
	. d obj.%Close()
]]></Implementation>
</Method>

<Method name="getaktbrutto">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%Integer,anr:%Integer,lnr:%Integer,datum:%Date</FormalSpec>
<ReturnType>%Float</ReturnType>
<Implementation><![CDATA[
	d ekhol^BMINNDPR(firma,anr,lnr,$$TXT7^%LN200(datum))
	s evm=1 I $D(^AA(firma,anr,10,lnr,0))#2 s evm=$P(^(0),"`",8)
	s bruttobm=$J(bruttobm*evm,0,4)
	q bruttobm
]]></Implementation>
</Method>

<Method name="verbuch">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,id:%String,lnr:%String,pcode:%String,freigjn:%String,updnr:%String,vkanl:%String,freigartjn:%String,ekanl:%String,kondanl:%String,bezanl:%String,neuanl:%String,update:%String,stamm:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	s erg=$$verbuch^BMINNDPR(firma,id,lnr,pcode,freigjn,updnr,vkanl,freigartjn,ekanl,kondanl,bezanl,neuanl,update,stamm)
	q erg
]]></Implementation>
</Method>

<Method name="geteanbez">
<ClassMethod>1</ClassMethod>
<FormalSpec>id1:%Integer,ean:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	i ean="" q ""
	
	s bez=""
	s id=$O(^inndatap.posI("ean"," "_ean,id1,""))
	i $L(id) d
	. s obj=##class(inndatap.pos).%OpenId(id1_"||"_id)
	. s bez=obj.bez
	. d obj.%Close()
	. k obj
	
	q bez
]]></Implementation>
</Method>

<Method name="SetEan">
<ClassMethod>1</ClassMethod>
<FormalSpec>firma:%String,lnr1:%String,anr1:%String,ean1:%String,id1:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	S ^AM(firma,2,ean1)=anr1
	S ^AA(firma,anr1,4,ean1)="J"_"`"_"J"
	I $D(^AA(firma,anr1,10,lnr1,0))#2 S $P(^(0),"`",5)=ean1

	s id=$O(^inndatap.posI("ean"," "_ean1,id1,""))
	i $L(id) d
	. s obj=##class(inndatap.pos).%OpenId(id1_"||"_id)
	. i obj.anr="" d
	.. d obj.%Close()
	.. d ..anrzuord(firma, id1_"||"_id, anr1, lnr1,anr1)
	. e  d obj.%Close()
	. k obj

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

<Query name="pos">
<Type>%SQLQuery</Type>
<FormalSpec>id1:%String,idpos:%String</FormalSpec>
<SqlQuery>SELECT %ID,bestnr,bez,datum,preis,epm,ere,anr,bez1,bez2,bez3,epmbm,
		   erebm,prdiff,atyp,wargr,abtnr,vke,vpe,vpi,vre,vrm,vpm,mcproz,
		   palart,palje,palab,bestnrbm,eanbm,ebe,hlief,faktor,brutto,ere,
		   epm,evm,mibeme,ekgrp,ekdat,rabtyp,rab1,rab2,rab3,rab4,netto,nebkost,
		   vkrabgr,vkdat,kfsoll,vkexcl,vkincl,spanne,acod,status FROM pos
	where id1=:id1 and
	      (:idpos is null or %ID=:idpos)</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^inndatap.posD</DataLocation>
<DefaultData>posDefaultData</DefaultData>
<IdLocation>^inndatap.posD</IdLocation>
<IndexLocation>^inndatap.posI</IndexLocation>
<StreamLocation>^inndatap.posS</StreamLocation>
<Data name="posDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>liefid</Value>
</Value>
<Value name="3">
<Value>bestnr</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>datum</Value>
</Value>
<Value name="8">
<Value>ean</Value>
</Value>
<Value name="9">
<Value>kbez</Value>
</Value>
<Value name="10">
<Value>preis</Value>
</Value>
<Value name="11">
<Value>vke</Value>
</Value>
<Value name="12">
<Value>vpe</Value>
</Value>
<Value name="13">
<Value>vpi</Value>
</Value>
<Value name="14">
<Value>vre</Value>
</Value>
<Value name="15">
<Value>vrm</Value>
</Value>
<Value name="16">
<Value>epm</Value>
</Value>
<Value name="17">
<Value>ere</Value>
</Value>
<Value name="18">
<Value>anr</Value>
</Value>
<Value name="19">
<Value>erebm</Value>
</Value>
<Value name="20">
<Value>prdiff</Value>
</Value>
<Value name="21">
<Value>epmbm</Value>
</Value>
<Value name="22">
<Value>bez</Value>
</Value>
<Value name="23">
<Value>atyp</Value>
</Value>
<Value name="24">
<Value>abtnr</Value>
</Value>
<Value name="25">
<Value>wargr</Value>
</Value>
<Value name="26">
<Value>vpm</Value>
</Value>
<Value name="27">
<Value>mcproc</Value>
</Value>
<Value name="28">
<Value>mcproz</Value>
</Value>
<Value name="29">
<Value>bestean</Value>
</Value>
<Value name="30">
<Value>bestnrbm</Value>
</Value>
<Value name="31">
<Value>palab</Value>
</Value>
<Value name="32">
<Value>palart</Value>
</Value>
<Value name="33">
<Value>palje</Value>
</Value>
<Value name="34">
<Value>eanbm</Value>
</Value>
<Value name="35">
<Value>ebe</Value>
</Value>
<Value name="36">
<Value>hlief</Value>
</Value>
<Value name="37">
<Value>faktor</Value>
</Value>
<Value name="38">
<Value>brutto</Value>
</Value>
<Value name="39">
<Value>evm</Value>
</Value>
<Value name="40">
<Value>ekgrp</Value>
</Value>
<Value name="41">
<Value>mibeme</Value>
</Value>
<Value name="42">
<Value>ekdat</Value>
</Value>
<Value name="43">
<Value>nebkost</Value>
</Value>
<Value name="44">
<Value>netto</Value>
</Value>
<Value name="45">
<Value>rab1</Value>
</Value>
<Value name="46">
<Value>rab2</Value>
</Value>
<Value name="47">
<Value>rab3</Value>
</Value>
<Value name="48">
<Value>rab4</Value>
</Value>
<Value name="49">
<Value>spabbe</Value>
</Value>
<Value name="50">
<Value>vkdat</Value>
</Value>
<Value name="51">
<Value>vkexcl</Value>
</Value>
<Value name="52">
<Value>vkincl</Value>
</Value>
<Value name="53">
<Value>vkrabgr</Value>
</Value>
<Value name="54">
<Value>spanne</Value>
</Value>
<Value name="55">
<Value>kfsoll</Value>
</Value>
<Value name="56">
<Value>rabtyp</Value>
</Value>
<Value name="57">
<Value>zeile</Value>
</Value>
<Value name="58">
<Value>acod</Value>
</Value>
<Value name="59">
<Value>status</Value>
</Value>
</Data>
</Storage>
</Class>
<Project name="inndatapr" LastModified="2006-04-06 13:49:53">
  <Items>
    <ProjectItem name="BMINNDPR.int" type="MAC"/>
    <ProjectItem name="inndatap.defaults" type="CLS"/>
    <ProjectItem name="inndatap.downloads" type="CLS"/>
    <ProjectItem name="inndatap.ekgrp" type="CLS"/>
    <ProjectItem name="inndatap.faktor" type="CLS"/>
    <ProjectItem name="inndatap.liefid" type="CLS"/>
    <ProjectItem name="inndatap.pos" type="CLS"/>
  </Items>
</Project>
<Checksum value="1155804660"/>
</Export>
