<?xml version="1.0" encoding="UTF-8"?>
<Export generator="Cache" version="25" zv="Cache for Windows (x86-64) 2011.1.2 (Build 701U)" ts="2011-12-07 12:10:58">
<Class name="DBFibu.AF.BuchungAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61304,49618.529629</TimeCreated>

<Query name="AlleBuchungenJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID
    FROM DBFibu.Teilbuchung 
    WHERE Buchung->MandantJahr=:MandantJahrOid
    ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="AlleBuchungenJnrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,abJnr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       Mwst->MwstCode As MwstCode,
       MwstSatz,
       MwstBetrag, 
       FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
    FROM DBFibu.Teilbuchung 
    WHERE Buchung->MandantJahr=:MandantJahrOid AND Buchung->Journalnr>=:abJnr
    ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="AlleBuchungenValutadatJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,abJnr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       Mwst->MwstCode As MwstCode,
       MwstSatz,
       MwstBetrag, 
       FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
    FROM DBFibu.Teilbuchung 
    WHERE Buchung->MandantJahr=:MandantJahrOid AND Buchung->Journalnr>=:abJnr
    ORDER BY Valutadatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="AlleBuchungenBelegdatJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,abJnr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       Mwst->MwstCode As MwstCode,
       MwstSatz,
       MwstBetrag, 
       FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
    FROM DBFibu.Teilbuchung 
    WHERE Buchung->MandantJahr=:MandantJahrOid AND Buchung->Journalnr>=:abJnr
    ORDER BY Belegdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="AlleBuchungenErfasdatJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,abJnr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       Mwst->MwstCode As MwstCode,
       MwstSatz,
       MwstBetrag, 
       FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
    FROM DBFibu.Teilbuchung 
    WHERE Buchung->MandantJahr=:MandantJahrOid AND Buchung->Journalnr>=:abJnr
    ORDER BY Buchung->Erfassungsdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByKontoJnrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,HauptkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH,
		BuchungsbetragSHnachMwstkonto, 
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH,
		FWBetragMwstSHnachHauptkonto, 
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Hauptkonto->ID=:HauptkontoOid
	ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByKontoValutadatJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,HauptkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH,
		MwstbetragSHnachHauptkonto, 
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH,
		FWBetragMwstSHnachHauptkonto, 
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Hauptkonto->ID=:HauptkontoOid
	ORDER BY Valutadatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByKontoBelegdatJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,HauptkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH,
		FWBetragMwstSHnachHauptkonto, 
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Hauptkonto->ID=:HauptkontoOid
	ORDER BY Belegdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByKontoErfasdatJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,HauptkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Hauptkonto->ID=:HauptkontoOid
	ORDER BY Buchung->Erfassungsdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByMwstKontoJnrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,mwstkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Mwstkonto->ID=:mwstkontoOid
	ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByMwstKontoValuatdatJ">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,mwstkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv 
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Mwstkonto->ID=:mwstkontoOid
	ORDER BY Valutadatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByMwstKontoBelegdatJ">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,mwstkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH,
		FWBetragMwstSHnachHauptkonto, 
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv 
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Mwstkonto->ID=:mwstkontoOid
	ORDER BY Belegdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenByMwstKontoErfasdatJ">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,mwstkontoOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag,
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv 
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Mwstkonto->ID=:mwstkontoOid
	ORDER BY Buchung->Erfassungsdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="GetBuchungByJnrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Jnr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag, 
		BuchungsbetragSH,
		BuchungsbetragSHnachMwstkonto, 
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag, 
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv 
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Buchung->Journalnr=:Jnr
	ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="GetLastJournalnrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT TOP 1 Journalnr 
	FROM DBFibu.Buchung 
	WHERE MandantJahr=:MandantJahrOid
	ORDER BY Journalnr DESC</SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="GetBuchungByJnrAndKtoJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Jnr:%Integer,Konto:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		Mwst->MwstCode As MwstCode,
        MwstSatz,
		MwstBetrag, 
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag, 
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND Buchung->Journalnr=:Jnr AND Hauptkonto->KontoNr=:Konto
	ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenKontodetailValutadatJ">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,vonKtoNr:%String,bisKtoNr:%String,vonDatum:%Date,bisDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto AS HauptkontoID,
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		MwstSatz,
		MwstBetrag, 
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag, 
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto AS MwstKontoID,
		MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
			((Hauptkonto->KontoNr BETWEEN :vonKtoNr AND :bisKtoNr) OR
			(Mwstkonto->KontoNr BETWEEN :vonKtoNr AND :bisKtoNr))AND
			Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum}
	ORDER BY Valutadatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenKontodetailBelegdatumJ">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,vonKtoNr:%String,bisKtoNr:%String,vonDatum:%Date,bisDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto AS HauptkontoID,
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Mwst,
		MwstSatz,
		MwstBetrag, 
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		FWBuchungsbetrag,
		FWKurs,
		FWMwstBetrag, 
		FWBetragSH, 
		FWBetragMwstSH, 
		FWBetragMwstSHnachHauptkonto,
		Waehrung,
        Waehrung->FWCode As FWCode,
        Waehrung->ISOSWIFTCode As ISOSWIFTCode,
        MwstKonto AS MwstKontoID,
		MwstKonto->KontoNr AS MwstKonto,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
			((Hauptkonto->KontoNr BETWEEN :vonKtoNr AND :bisKtoNr) OR
			(Mwstkonto->KontoNr BETWEEN :vonKtoNr AND :bisKtoNr))AND
			Belegdatum BETWEEN {d :vonDatum} AND {d :bisDatum}
	ORDER BY Belegdatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="SucheBuchungenJnrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Buchungstext:%String,BelegNr:%String,Buchungsnr:%Integer,BetragExakt:%Decimal(SCALE=5),BetragVon:%Decimal(SCALE=5),BetragBis:%Decimal(SCALE=5),ValutadatumVon:%Date,ValutadatumBis:%Date,BelegdatumVon:%Date,BelegdatumBis:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       MwstSatz,
       MwstBetrag, 
       Mwst->MwstCode As MwstCode,
	   FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
  FROM DBFibu.Teilbuchung 
 WHERE Buchung->MandantJahr=:MandantJahrOid AND
       (Buchungstext1 LIKE :Buchungstext OR Buchungstext2 LIKE :Buchungstext OR :Buchungstext = '') AND
       (BelegNr LIKE :BelegNr OR :BelegNr = '') AND
       (Buchung->Journalnr = :Buchungsnr OR :Buchungsnr = 0) AND
       (DBUtils.NumberUtils_Round(Buchungsbetrag,2) = DBUtils.NumberUtils_Round(:BetragExakt,2) OR 
        DBUtils.NumberUtils_Round(MwstBetrag,2) = DBUtils.NumberUtils_Round(:BetragExakt,2) OR 
       (DBUtils.NumberUtils_Round(Buchungsbetrag,2)-DBUtils.NumberUtils_Round(MwstBetrag,2)) = DBUtils.NumberUtils_Round(:BetragExakt,2) OR 
        DBUtils.NumberUtils_Round(FWBuchungsbetrag,2) = DBUtils.NumberUtils_Round(:BetragExakt,2) OR 
        DBUtils.NumberUtils_Round(FWMwstBetrag,2) = DBUtils.NumberUtils_Round(:BetragExakt,2) OR DBUtils.NumberUtils_Round(:BetragExakt,2) = 0 OR
       (DBUtils.NumberUtils_Round(FWBuchungsbetrag,2)-DBUtils.NumberUtils_Round(FWMwstBetrag,2)) = DBUtils.NumberUtils_Round(:BetragExakt,2)) AND
       ((DBUtils.NumberUtils_Round(Buchungsbetrag,2) BETWEEN DBUtils.NumberUtils_Round(:BetragVon,2) AND DBUtils.NumberUtils_Round(:BetragBis,2) AND DBUtils.NumberUtils_Round(Buchungsbetrag,2) <> 0) OR 
       (DBUtils.NumberUtils_Round(MwstBetrag,2) BETWEEN DBUtils.NumberUtils_Round(:BetragVon,2) AND DBUtils.NumberUtils_Round(:BetragBis,2) AND DBUtils.NumberUtils_Round(MwstBetrag,2) <> 0) OR 
       (DBUtils.NumberUtils_Round(FWBuchungsbetrag,2) BETWEEN DBUtils.NumberUtils_Round(:BetragVon,2) AND DBUtils.NumberUtils_Round(:BetragBis,2) AND DBUtils.NumberUtils_Round(FWBuchungsbetrag,2) <> 0) OR 
       (DBUtils.NumberUtils_Round(FWMwstBetrag,2) BETWEEN DBUtils.NumberUtils_Round(:BetragVon,2) AND DBUtils.NumberUtils_Round(:BetragBis,2) AND DBUtils.NumberUtils_Round(FWMwstBetrag,2) <> 0) OR 
       (DBUtils.NumberUtils_Round(:BetragVon,2) = 0 AND DBUtils.NumberUtils_Round(:BetragBis,2) = 0)) AND
       (Valutadatum BETWEEN {d :ValutadatumVon} AND {d :ValutadatumBis}) AND
       (Belegdatum BETWEEN {d :BelegdatumVon} AND {d :BelegdatumBis})
       ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="SucheBuchungenJnrJahrNachJnr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Buchungsnr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       MwstSatz,
       MwstBetrag, 
       Mwst->MwstCode As MwstCode,
	   FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
  FROM DBFibu.Teilbuchung 
 WHERE Buchung->MandantJahr=:MandantJahrOid AND
       Buchung->Journalnr = :Buchungsnr
       ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="SucheBuchungenJnrJahrNachBeleg">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,BelegNr:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
       Buchung,
       Buchung->Buchungsart, 
       Buchung->Journalnr, 
       Valutadatum, 
       Belegdatum, 
       BelegNr, 
       Hauptkonto->KontoNr AS Hauptkonto, 
       Gegenkonto->KontoNr AS Gegenkonto, 
       Buchungstext1, 
       Buchungsmenge, 
       Mengeneinheit, 
       Soll, 
       Buchungsbetrag,
       Mwst,
       MwstSatz,
       MwstBetrag, 
       Mwst->MwstCode As MwstCode,
	   FWBuchungsbetrag,
       FWKurs,
       FWMwstBetrag,
       Waehrung,
       Waehrung->FWCode As FWCode,
       Waehrung->ISOSWIFTCode As ISOSWIFTCode,
       MwstKonto->KontoNr AS MwstKonto,
       Buchung->IsEinzelbuchung AS IsEinzelbuchung,
       Kopfbuchung,
       Buchung->Erfassungsdatum As Erfassungsdatum,
       	Buchung->MwstAbrechnung->Definitiv As MwstAbrechnungDefinitiv
  FROM DBFibu.Teilbuchung 
 WHERE Buchung->MandantJahr=:MandantJahrOid AND
       BelegNr LIKE :BelegNr
       ORDER BY Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
<Parameter name="CONTAINID" value="1"/>
</Query>

<Query name="BuchungenMwstAbrechnungJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,vonDatum:%Date,bisDatum:%Date,mitDefinitiven:%Boolean</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->ID AS BuchungID,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto AS HauptkontoID,
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Buchungsperiode,
		Mwst,
		MwstSatz,
		MwstBetrag, 
		Mwst->ID as MwstId,
		DBFibu_SD.Mwst_GetKurzbezeichnungClass(Mwst, Buchung->MandantJahr->Mandant, :Lang, Valutadatum) As MwstKurzbez,
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		MwstKonto AS MwstKontoID,
		MwstKonto->KontoNr AS MwstKonto,
		Mwst->SteuerungInklExkl as MwstInklExkl,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
		CASE WHEN Mwst->MwstCode > 49 THEN 1 ELSE 0 END AS IsUmsatzSteuer
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
			Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum}AND
			((:mitDefinitiven = 1) OR (Buchung->MwstAbrechnung IS NULL))
	ORDER BY Buchung->Journalnr, Belegdatum, Kopfbuchung DESC]]></SqlQuery>
</Query>

<Query name="ReprintMwstAbrechnung">
<Type>%SQLQuery</Type>
<FormalSpec>AbrechnungOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung,
		Buchung->ID AS BuchungID,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto AS HauptkontoID,
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Buchungsperiode,
		Mwst,
		MwstSatz,
		MwstBetrag, 
		Mwst->ID as MwstId,
		DBFibu_SD.Mwst_GetKurzbezeichnungClass(Mwst, Buchung->MandantJahr->Mandant, :Lang, Valutadatum) As MwstKurzbez,
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		MwstKonto AS MwstKontoID,
		MwstKonto->KontoNr AS MwstKonto,
		Mwst->SteuerungInklExkl as MwstInklExkl,
		Buchung->IsEinzelbuchung AS IsEinzelbuchung,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum,
		CASE WHEN Mwst->MwstCode > 49 THEN 1 ELSE 0 END AS IsUmsatzSteuer
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MwstAbrechnung=:AbrechnungOid
	ORDER BY Buchung->Journalnr, Belegdatum, Kopfbuchung DESC]]></SqlQuery>
</Query>

<Query name="BuchungenMwstKontrolleJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,vonDatum:%Date,bisDatum:%Date,vonCode:%String,bisCode:%String,ohneCode:%Boolean</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT ID,
		Buchung->Buchungsart, 
		Buchung->Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Buchungsmenge, 
		Mengeneinheit, 
		Soll, 
		Buchungsbetrag,
		Buchungsperiode,
		Mwst,
		MwstSatz,
		MwstBetrag, 
		DBFibu_SD.Mwst_GetKurzbezeichnungClass(Mwst, Buchung->MandantJahr->Mandant, :Lang, Valutadatum) As MwstKurzbez,
		Mwst->MwstCode As MwstCode,
		MwstFaktor,
		BuchungsbetragSH, 
		BuchungsbetragSHnachMwstkonto,
		MwstbetragSH, 
		MwstbetragSHnachHauptkonto,
		MwstKonto->KontoNr AS MwstKonto,
		Mwst->SteuerungInklExkl as MwstInklExkl,
		Kopfbuchung,
       	Buchung->Erfassungsdatum As Erfassungsdatum
	FROM DBFibu.Teilbuchung 
	WHERE (Buchung->MandantJahr=:MandantJahrOid) AND
			(Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} ) AND
			((Mwst->MwstCode BETWEEN :vonCode AND :bisCode) OR (:ohneCode = 1 AND Mwst IS NULL))
	ORDER BY Mwst->MwstCode, Valutadatum, Buchung->Journalnr, Kopfbuchung DESC]]></SqlQuery>
</Query>

<Query name="BuchungsDiffJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,vonDatum:%Date,bisDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT Journalnr, 
			Buchungstext1, 
			Belegdatum, 
			BelegNr,
			Differenz  
	FROM (
		SELECT Buchung->Journalnr, 
				Buchungstext1, 
				Belegdatum, 
				BelegNr, 
				SUM(CASE WHEN Soll=1 THEN Buchungsbetrag 
						ELSE (-1)*Buchungsbetrag END) AS Differenz 
		FROM DBFibu.Teilbuchung WHERE Buchung->MandantJahr=:MandantJahrOid AND
			Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} GROUP BY Buchung
	) WHERE Differenz<>0]]></SqlQuery>
</Query>

<Query name="BuchungsDiffReprint">
<Type>%SQLQuery</Type>
<FormalSpec>AbrechnungOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT Journalnr, Buchungstext1, Belegdatum, BelegNr, Differenz FROM (
		SELECT Buchung->Journalnr, Buchungstext1, Belegdatum, BelegNr, SUM(CASE WHEN Soll=1 THEN Buchungsbetrag ELSE (-1)*Buchungsbetrag END) AS Differenz 
		FROM DBFibu.Teilbuchung WHERE Buchung->MwstAbrechnung=:AbrechnungOid GROUP BY Buchung
	) WHERE Differenz<>0]]></SqlQuery>
</Query>

<Query name="MwstCodesVonBisDatumJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,vonDatum:%Date,bisDatum:%Date,mitDefinitiven:%Boolean</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT  SUM(BuchungsbetragSHnachMwstkonto) as Umsatz,
		MwstSatz,
		SUM(MwstBetragSH) AS Steuer, 
		Mwst->ID as MwstId,
		DBFibu_SD.Mwst_GetKurzbezeichnungClass(Mwst, Buchung->MandantJahr->Mandant, :Lang, Valutadatum) As MwszKurzbez,
		Mwst->MwstCode As MwstCode,
		MwstKonto AS MwstKontoID,
		MwstKonto->KontoNr AS MwstKonto
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
			Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND
			((:mitDefinitiven = 1) OR (Buchung->MwstAbrechnung IS NULL))
	GROUP BY Mwst->MwstCode, MwstSatz]]></SqlQuery>
</Query>

<Query name="GetTeilbuchungenByBuchung">
<Type>%SQLQuery</Type>
<FormalSpec>BuchungOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Kopfbuchung
	
		FROM DBFibu.Teilbuchung 
		WHERE Buchung=:BuchungOid
		ORDER BY Kopfbuchung DESC</SqlQuery>
</Query>

<Query name="BuchungenByValutadatum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,VonDatum:%Date,BisDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 
		Buchung->Buchungsart AS Buchungsart, 
		Buchung->Journalnr AS Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Soll, 
		Buchungsbetrag,
		Buchungsperiode,
		MwstSatz,
		MwstBetrag, 
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		Buchung->Erfassungsdatum As Erfassungsdatum
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
	Valutadatum BETWEEN {d :VonDatum} AND {d :BisDatum}
	ORDER BY Buchung->Journalnr, Belegdatum, Kopfbuchung DESC]]></SqlQuery>
</Query>

<Query name="BuchungenByBelegdatum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,VonDatum:%Date,BisDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 
		Buchung->Buchungsart AS Buchungsart, 
		Buchung->Journalnr AS Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Soll, 
		Buchungsbetrag,
		Buchungsperiode,
		MwstSatz,
		MwstBetrag, 
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		Buchung->Erfassungsdatum As Erfassungsdatum
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
	Valutadatum BETWEEN {d :VonDatum} AND {d :BisDatum}
	ORDER BY Buchung->Journalnr, Belegdatum, Kopfbuchung DESC]]></SqlQuery>
</Query>

<Query name="BuchungenByErfassungsdatum">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,VonDatum:%Date,BisDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 
		Buchung->Buchungsart AS Buchungsart, 
		Buchung->Journalnr AS Journalnr, 
		Valutadatum, 
		Belegdatum, 
		BelegNr, 
		Hauptkonto->KontoNr AS Hauptkonto, 
		Gegenkonto->KontoNr AS Gegenkonto, 
		Buchungstext1, 
		Buchungstext2,
		Soll, 
		Buchungsbetrag,
		Buchungsperiode,
		MwstSatz,
		MwstBetrag, 
		Mwst->MwstCode As MwstCode,
		BuchungsbetragSH, 
		Buchung->Erfassungsdatum As Erfassungsdatum
	FROM DBFibu.Teilbuchung 
	WHERE Buchung->MandantJahr=:MandantJahrOid AND
	Buchung->Erfassungsdatum BETWEEN {d :VonDatum} AND {d :BisDatum}
	ORDER BY Buchung->Journalnr, Belegdatum, Kopfbuchung DESC]]></SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.KontoAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62431,40810.454847</TimeChanged>
<TimeCreated>61170,36386.783916</TimeCreated>

<Query name="ListeGesamtJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, KontoNr, KontoBezeichnung, Kontotyp
 	FROM DBFibu.KontoJahr
 	WHERE MandantJahr=:MandantJahrOid
 	ORDER BY KontoNr</SqlQuery>
</Query>

<Query name="GetEntryByKontoNrJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,KontoNr:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, KontoNr, KontoBezeichnung, BereichTypNrCalc, Kontotyp, Konto 
	FROM DBFibu.KontoJahr 
	WHERE MandantJahr = :MandantJahrOid
	AND KontoNr LIKE :KontoNr
	ORDER BY KontoNr</SqlQuery>
</Query>

<Query name="ListeIdsGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID FROM DBFibu.KontoJahr WHERE MandantJahr=:MandantJahrOid</SqlQuery>
</Query>

<Query name="ListeDruckKontenplanJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String,EndeGeschJahr:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			Soll, 
			Gegenkonto->KontoNr AS "Gegenkonto.KontoNr", 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Steuerungscode,
			Abschlusscodierung,
			Mwst->MwstCode 		AS "Mwst.Code",
			DBFibu_SD.Mwst_GetBezeichnungClass(Mwst->ID, MandantJahr->Mandant, :Lang, CURRENT_DATE, {d :EndeGeschJahr}) AS "Mwst.Bezeichnung",
			{fn CONVERT(DBFibu_SD.Mwst_GetMwstSatzFibuClass(Mwst->ID, CURRENT_DATE, {d :EndeGeschJahr}), SQL_DOUBLE) } AS "Mwst.Satz",
			Mwst->SteuerungInklExkl AS "Mwst.InklExkl",
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			Konvertierungskonto
 	FROM DBFibu.KontoJahr
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeVonBisKontoOidJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID			
 	FROM DBFibu.KontoJahr
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeKontodetailJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,vonKtoNr:%String,bisKtoNr:%String,vonDatumSaldovortrag:%Date,bisDatumSaldovortrag:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2,
			Soll, 
			FibuEB,
			FibuUmsatzS,
			FibuUmsatzH,
			FibuEBFW,
			FibuUmsatzSFW,
			FibuUmsatzHFW,
			Steuerungscode,
			IsMwstKonto,
			Konto->IsBilanzKonto,
			Fremdwaehrung->FWCode As FWCode,
			Fremdwaehrung->ISOSWIFTCode AS ISOSWIFTCode,
			{fn CONVERT(DBFibu.KontoJahr_GetSaldovortrag(ID,:vonDatumSaldovortrag,:bisDatumSaldovortrag,IsMwstKonto), SQL_DOUBLE) } As Saldovortrag,
			{fn CONVERT(DBFibu.KontoJahr_GetSaldovortragUmsatzSoll(ID,:vonDatumSaldovortrag,:bisDatumSaldovortrag,IsMwstKonto), SQL_DOUBLE) } As SaldovortragUmsatzSoll,
			{fn CONVERT(DBFibu.KontoJahr_GetSaldovortragUmsatzHaben(ID,:vonDatumSaldovortrag,:bisDatumSaldovortrag,IsMwstKonto), SQL_DOUBLE) } As SaldovortragUmsatzHaben,
			{fn CONVERT(DBFibu.KontoJahr_GetSaldovortragFW(ID,:vonDatumSaldovortrag,:bisDatumSaldovortrag,IsMwstKonto), SQL_DOUBLE) } As SaldovortragFW,
			{fn CONVERT(DBFibu.KontoJahr_GetSaldovortragUmsatzSollFW(ID,:vonDatumSaldovortrag,:bisDatumSaldovortrag,IsMwstKonto), SQL_DOUBLE) } As SaldovortragUmsatzSollFW,
			{fn CONVERT(DBFibu.KontoJahr_GetSaldovortragUmsatzHabenFW(ID,:vonDatumSaldovortrag,:bisDatumSaldovortrag,IsMwstKonto), SQL_DOUBLE) } As SaldovortragUmsatzHabenFW,
			Mwst,
			MwstAlternativ
 	FROM DBFibu.KontoJahr
 	WHERE MandantJahr=:MandantJahrOid 
 			AND NVL(Kontotyp,0) = 0 AND
 			(FibuEB <> 0 OR
 				FibuUmsatzS <> 0 OR
 				FibuUmsatzH <> 0 OR
 				FibuEBFW <> 0 OR
 				FibuUmsatzSFW <> 0 OR
 				FibuUmsatzHFW <> 0 OR
				(SELECT COUNT(ID) 
					FROM DBFibu.Teilbuchung t 
					WHERE t.Hauptkonto=KontoJahr.ID) > 0 OR
				(SELECT COUNT(ID) 
					FROM DBFibu.Teilbuchung t 
					WHERE t.Gegenkonto=KontoJahr.ID) > 0) AND
 			KontoNr BETWEEN :vonKtoNr AND :bisKtoNr
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckEroffnungsbilanzJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			NVL(FibuEB,0) AS FibuEB,
			NVL(FibuEBMenge,0) AS FibuEBMenge,
			NVL(FibuSaldo,0) AS FibuSaldo,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and (FibuEB <> 0 or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and ((FibuEB <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckEBTotaleJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			NVL(FibuEB,0) AS FibuEB,
			NVL(FibuEBMenge,0) AS FibuEBMenge,
			NVL(FibuSaldo,0) AS FibuSaldo,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and ((FibuEB <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeDruckSaldolisteJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuEB,
			FibuEBMenge,
			FibuSaldo,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckSaldoTotaleJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuEB,
			FibuEBMenge,
			FibuSaldo,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeDruckSaldolisteValutaJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String,PerDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			NVL(FibuEB,0) AS FibuEB,
			NVL(FibuEBMenge,0) AS FibuEBMenge,
			NVL({fn CONVERT(DBFibu.KontoJahr_GetSaldoPerValutadatumFast(ID, Soll, :PerDatum, IsMwstKonto, NVL(FibuEB,0)), SQL_DOUBLE)},0) AS FibuSaldo,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuEB,0) <> 0) OR (NVL(DBFibu.KontoJahr_GetSaldoPerValutadatumFast(ID, Soll, :PerDatum, IsMwstKonto, NVL(FibuEB,0)),0) <> 0) or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr=:MandantJahrOid and (((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeKontiByTypJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Kontotyp:%Integer,vonKtoNr:%String,bisKtoNr:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			Kurzname, 
			Kontotyp,
			Soll,
			Mengentext,
			Fremdwaehrung,
			FibuEB,
			FibuEBMenge,
			FibuEBFW,
			Mengencode,
			FibuSaldo,
			FibuBudgetAkt,
			FibuBudgetNext,
			FibuVorjahr1,
			FibuVorjahr2
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and Kontotyp = :Kontotyp
 	AND KontoNr >= :vonKtoNr and KontoNr <= :bisKtoNr
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckBudgetJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuSaldo,
			FibuBudgetAkt, 
			FibuBudgetNext, 
			FibuVorjahr1, 
			FibuVorjahr2,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuBudgetNext,0) + NVL(FibuBudgetAkt,0) + NVL(FibuVorjahr1,0)) <> 0 or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuBudgetNext,0) + NVL(FibuBudgetAkt,0) + NVL(FibuVorjahr1,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckBudgetTotaleJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuSaldo,
			FibuBudgetAkt, 
			FibuBudgetNext, 
			FibuVorjahr1, 
			FibuVorjahr2,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuBudgetNext,0) + NVL(FibuBudgetAkt,0) + NVL(FibuVorjahr1,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeDruckBudgetRGJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuSaldo,
			FibuBudgetAkt, 
			FibuBudgetNext, 
			FibuVorjahr1, 
			FibuVorjahr2,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuBudgetNext,0) + NVL(FibuBudgetAkt,0) + NVL(FibuSaldo,0)) <> 0 or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuBudgetNext,0) + NVL(FibuBudgetAkt,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckBudgetRGTotaleJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuSaldo,
			FibuBudgetAkt, 
			FibuBudgetNext, 
			FibuVorjahr1, 
			FibuVorjahr2,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuBudgetNext,0) + NVL(FibuBudgetAkt,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeDruckSaldoBudgetJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuSaldo,
			FibuBudgetAkt, 
			FibuBudgetNext, 
			FibuVorjahr1, 
			FibuVorjahr2,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuVorjahr1,0) + NVL(FibuBudgetAkt,0) + NVL(FibuSaldo,0)) <> 0 or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuVorjahr1,0) + NVL(FibuBudgetAkt,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckSaldoBudgetTotaleJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Mengentext,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			FibuSaldo,
			FibuBudgetAkt, 
			FibuBudgetNext, 
			FibuVorjahr1, 
			FibuVorjahr2,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuVorjahr1,0) + NVL(FibuBudgetAkt,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeDruckJahresabschlussJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String,PerDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Gegenkonto->KontoNr AS GegenKontoNr,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			NVL(FibuVorjahr1,0) AS FibuVorjahr1,
			NVL(FibuEB,0) AS FibuEB,
			NVL(FibuEBFW,0) AS FibuEBFW,
			NVL(FibuSaldo,0) AS FibuSaldo,
			NVL(FibuSaldoFW,0) AS FibuSaldoFW,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuEB,0) <> 0 OR NVL(FibuSaldo,0) <> 0 OR NVL(FibuVorjahr1,0) <> 0)  or Drucktyp = 8 or Abschlusscodierung = 'AP' or
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuEB,0) <> 0 OR NVL(FibuSaldo,0) <> 0 OR NVL(FibuVorjahr1,0) <> 0)  and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckJahresabschlussTotJ">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String,PerDatum:%Date</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			Gegenkonto->KontoNr AS GegenKontoNr,
			Fremdwaehrung->ISOSWIFTCode AS "Waehrung.ISO",
			NVL(FibuVorjahr1,0) AS FibuVorjahr1,
			NVL(FibuEB,0) AS FibuEB,
			NVL(FibuEBFW,0) AS FibuEBFW,
			NVL(FibuSaldo,0) AS FibuSaldo,
			NVL(FibuSaldoFW,0) AS FibuSaldoFW,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuEB,0) <> 0 OR NVL(FibuSaldo,0) <> 0 OR NVL(FibuVorjahr1,0) <> 0) and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeDruckPeriodenvergleich">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String,VonPeriodeAkt:%Integer,BisPeriodeAkt:%Integer,VonPeriodeVor:%Integer,BisPeriodeVor:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			NVL((SELECT SUM(NVL(PeriodenAktuell,0)) FROM DBFibu.KontoJahr_PeriodenAktuell p WHERE p.KontoJahr = k.ID AND element_key BETWEEN :VonPeriodeAkt AND :BisPeriodeAkt),0) AS Aktuell,
			NVL((SELECT SUM(NVL(PeriodenVorjahr,0)) FROM DBFibu.KontoJahr_PeriodenVorjahr p WHERE p.KontoJahr = k.ID AND element_key BETWEEN :VonPeriodeVor AND :BisPeriodeVor),0) AS Vorjahr,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis 
 	and ((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 or Drucktyp = 8 or 
 	(Kontotyp != 0 and (SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr=:MandantJahrOid and (((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0)
 	or (Kontotyp >= 1 and Kontotyp <= 20))
 	and Drucktyp <> 9
 	ORDER BY KontoNr]]></SqlQuery>
</Query>

<Query name="ListeDruckPeriodenVTotale">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,Lang:%String,KontoVon:%String,KontoBis:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT ID, 
			KontoNr, 
			KontoBezeichnung, 
			NVL(KontoBezeichnung2,'') AS KontoBezeichnung2, 
			Kontotyp,
			Soll,
			Steuerungscode,
			Abschlusscodierung,
			0 AS Aktuell,
			0 AS Vorjahr,
			Totalisierungskey,
			DruckFett as "Druck.Fett", DruckKursiv as "Druck.Kursiv", 
			DruckUnterstrichen as "Druck.Unterstrichen", DruckRaster as "Druck.Raster", 
			DruckGroesse as "Druck.Groesse", DruckNullstellen as "Druck.Nullstellen",
			Zeilenvorschub, Drucktyp, DruckNullstellen
 	FROM DBFibu.KontoJahr as k
 	WHERE MandantJahr=:MandantJahrOid and KontoNr >= :KontoVon and KontoNr <= :KontoBis and Kontotyp > 20
 	and (Drucktyp = 8 or ((SELECT COUNT(ID) from DBFibu.KontoJahr where KontoNr > k.KontoNr and Totalisierungskey < k.Totalisierungskey and MandantJahr = :MandantJahrOid and (((NVL(FibuEB,0) + NVL(FibuSaldo,0)) <> 0 and Drucktyp <> 9) or Drucktyp = 8)) > 0))
 	and Drucktyp <> 9
 	ORDER BY Totalisierungskey ASC]]></SqlQuery>
</Query>

<Query name="ListeIdsMitVorjahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String,MandantVorjahrOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID ,
	(SELECT ID from DBFibu.KontoJahr as v WHERE v.Konto = a.Konto AND MandantJahr=:MandantVorjahrOid) AS IDVorjahr
	FROM DBFibu.KontoJahr as a WHERE MandantJahr=:MandantJahrOid</SqlQuery>
</Query>

<Query name="ListeBuchungskontiJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantJahrOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, KontoNr, KontoBezeichnung, Konto
 	FROM DBFibu.KontoJahr
 	WHERE MandantJahr=:MandantJahrOid AND Kontotyp=0
 	ORDER BY KontoNr</SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.BCheckAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61724,53743.981116</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 	ID, CheckTyp, RGBetragDrucken, BankKontoNr, TypReferenzzeile, 
		CheckText1, CheckText2,CheckText3, BankteilnehmerNr,
		RandLinks,RandOben,
		Bank->BankNr As BankNr,
		Bank->ClearingNr, Bank->BankKontoNr 
		FROM DBFibu_SD.BCheck
		WHERE Bank->Mandant = :MandantOid
		ORDER BY Bank->BankNr]]></SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 	ID, CheckTyp, RGBetragDrucken, BankKontoNr, TypReferenzzeile, 
		CheckText1, CheckText2,CheckText3,BankteilnehmerNr,
		RandLinks,RandOben,
		Bank->BankNr As BankNr,
		Bank->ClearingNr, Bank->BankKontoNr 
		FROM DBFibu_SD.BCheck
		WHERE Bank->Mandant = :MandantOid
		ORDER BY Bank->BankNr]]></SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.BankAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61156,59393.688306</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID,
	BankAdr1,
	BankAdr2,
	BankAdr3,
	BankKontoNr,
	BankNr,
	ClearingNr,
	DTADateiInklDatum,
	DTADateiInklDatumLohn,
	DTAFibuKonto,
	DTAIdentifikation,
	DTAIdentifikationLohn,
	DTAPfad,
	DTAPfadLohn,
	DTATestphase,
	DTATestphaseLohn,
	IBANNr,
	Mandant,
	Ort,
	Plz,
	PlzInklZusatz,
	VESRAdressnrPruefen,
	VESRFibuKonto,
	VESRMaxTageVerzug,
	VESRMinBetragAbweisungGrOP,
	VESRMinBetragAbweisungKlOP,
	VESRMinProzentAbweisungGrOP,
	VESRMinProzentAbweisungKlOP,
	VESRPfad,
	VESRTeilnehmerNr,
	VESRVerbuchungsart
 FROM DBFibu_SD.Bank
WHERE Mandant = :MandantOid 
		ORDER BY BankNr</SqlQuery>
</Query>

<Query name="ListeDruckGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID,
	BankAdr1,
	BankAdr2,
	BankAdr3,
	BankKontoNr,
	BankNr,
	ClearingNr,
	DTADateiInklDatum,
	DTADateiInklDatumLohn,
	DTAFibuKonto,
	DTAIdentifikation,
	DTAIdentifikationLohn,
	DTAPfad,
	DTAPfadLohn,
	DTATestphase,
	DTATestphaseLohn,
	IBANNr,
	Mandant,
	Ort,
	Plz,
	PlzInklZusatz,
	VESRAdressnrPruefen,
	VESRFibuKonto,
	VESRMaxTageVerzug,
	VESRMinBetragAbweisungGrOP,
	VESRMinBetragAbweisungKlOP,
	VESRMinProzentAbweisungGrOP,
	VESRMinProzentAbweisungKlOP,
	VESRPfad,
	VESRTeilnehmerNr,
	VESRVerbuchungsart
FROM DBFibu_SD.Bank
WHERE Mandant = :MandantOid 
ORDER BY BankNr</SqlQuery>
</Query>

<Query name="ListeListViewAnsicht">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ID, BankNr, ClearingNr, BankKontoNr, BankAdr1, BankAdr2, BankAdr3, Plz, Ort FROM DBFibu_SD.Bank
		WHERE Mandant = :MandantOid
		ORDER BY BankNr</SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.BuchungstextAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61346,33085.519833</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT 	%ID,
			Nummer,
			Kurzbezeichnung,
			Buchungstext1,
			Buchungstext2
 	FROM DBFibu_SD.Buchungstext
 	WHERE Mandant=:MandantOid
 	ORDER BY Nummer</SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.EinzahlungsscheinAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61156,59393.688306</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 	ID, EZTyp, RGBetragDrucken, PostKontoNr, TypReferenzzeile, 
		EZText1, EZText2,EZText3,EZText4,EZText5,EZText6,EZText7,BankteilnehmerNr,
		RandLinks,RandOben,
		EsEinzahlungFuerLinks,EsEinzahlungFuerOben,EsEinzahlungFuerBreite,EsEinzahlungFuerHoehe,
		EsKontoLinks,EsKontoOben,EsKontoBreite,EsKontoHoehe,
		EsBetragFrankenLinks,EsBetragFrankenOben,EsBetragFrankenBreite,EsBetragFrankenHoehe,
		EsBetragRappenLinks,EsBetragRappenOben,EsBetragRappenBreite,EsBetragRappenHoehe,
		EsReferenzNrLinks,EsReferenzNrOben,EsReferenzNrBreite,EsReferenzNrHoehe,
		EsEinbezahltVonLinks,EsEinbezahltVonOben,EsEinbezahltVonBreite,EsEinbezahltVonHoehe,
		EzEinzahlungFuerLinks,EzEinzahlungFuerOben,EzEinzahlungFuerBreite,EzEinzahlungFuerHoehe,
		EzKontoLinks,EzKontoOben,EzKontoBreite,EzKontoHoehe,
		EzBetragFrankenLinks,EzBetragFrankenOben,EzBetragFrankenBreite,EzBetragFrankenHoehe,
		EzBetragRappenLinks,EzBetragRappenOben,EzBetragRappenBreite,EzBetragRappenHoehe,
		EzReferenzNrLinks,EzReferenzNrOben,EzReferenzNrBreite,EzReferenzNrHoehe,
		EzEinbezahltVonLinks,EzEinbezahltVonOben,EzEinbezahltVonBreite,EzEinbezahltVonHoehe,
		EzMitteilungLinks,EzMitteilungOben,EzMitteilungBreite,EzMitteilungHoehe,
		EzCodierzeileLinks,EzCodierzeileOben,EzCodierzeileBreite,EzCodierzeileHoehe,
		EsEinzahlungFuerFontName,EsEinzahlungFuerFontSize,EsEinzahlungFuerFontBold,EsEinzahlungFuerFontItalic,EsEinzahlungFuerFontStrikeout,EsEinzahlungFuerFontUnderline,
		EsKontoFontName,EsKontoFontSize,EsKontoFontBold,EsKontoFontItalic,EsKontoFontStrikeout,EsKontoFontUnderline,
		EsBetragFrankenFontName,EsBetragFrankenFontSize,EsBetragFrankenFontBold,EsBetragFrankenFontItalic,EsBetragFrankenFontStrikeout,EsBetragFrankenFontUnderline,
		EsBetragRappenFontName,EsBetragRappenFontSize,EsBetragRappenFontBold,EsBetragRappenFontItalic,EsBetragRappenFontStrikeout,EsBetragRappenFontUnderline,
		EsReferenzNrFontName,EsReferenzNrFontSize,EsReferenzNrFontBold,EsReferenzNrFontItalic,EsReferenzNrFontStrikeout,EsReferenzNrFontUnderline,
		EsEinbezahltVonFontName,EsEinbezahltVonFontSize,EsEinbezahltVonFontBold,EsEinbezahltVonFontItalic,EsEinbezahltVonFontStrikeout,EsEinbezahltVonFontUnderline,
		EzEinzahlungFuerFontName,EzEinzahlungFuerFontSize,EzEinzahlungFuerFontBold,EzEinzahlungFuerFontItalic,EzEinzahlungFuerFontStrikeout,EzEinzahlungFuerFontUnderline,
		EzKontoFontName,EzKontoFontSize,EzKontoFontBold,EzKontoFontItalic,EzKontoFontStrikeout,EzKontoFontUnderline,
		EzBetragFrankenFontName,EzBetragFrankenFontSize,EzBetragFrankenFontBold,EzBetragFrankenFontItalic,EzBetragFrankenFontStrikeout,EzBetragFrankenFontUnderline,
		EzBetragRappenFontName,EzBetragRappenFontSize,EzBetragRappenFontBold,EzBetragRappenFontItalic,EzBetragRappenFontStrikeout,EzBetragRappenFontUnderline,
		EzReferenzNrFontName,EzReferenzNrFontSize,EzReferenzNrFontBold,EzReferenzNrFontItalic,EzReferenzNrFontStrikeout,EzReferenzNrFontUnderline,
		EzEinbezahltVonFontName,EzEinbezahltVonFontSize,EzEinbezahltVonFontBold,EzEinbezahltVonFontItalic,EzEinbezahltVonFontStrikeout,EzEinbezahltVonFontUnderline,
		EzMitteilungFontName,EzMitteilungFontSize,EzMitteilungFontBold,EzMitteilungFontItalic,EzMitteilungFontStrikeout,EzMitteilungFontUnderline,
		Bank->BankNr As BankNr,
		Bank->ClearingNr, Bank->BankKontoNr 
		FROM DBFibu_SD.Einzahlungsschein
		WHERE Bank->Mandant = :MandantOid
		ORDER BY Bank->BankNr]]></SqlQuery>
</Query>

<Query name="ListeDruck">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[SELECT 	ID, EZTyp, RGBetragDrucken, PostKontoNr, TypReferenzzeile, 
		EZText1, EZText2,EZText3,EZText4,EZText5,EZText6,EZText7,BankteilnehmerNr,
		RandLinks,RandOben,
		EsEinzahlungFuerLinks,EsEinzahlungFuerOben,EsEinzahlungFuerBreite,EsEinzahlungFuerHoehe,
		EsKontoLinks,EsKontoOben,EsKontoBreite,EsKontoHoehe,
		EsBetragFrankenLinks,EsBetragFrankenOben,EsBetragFrankenBreite,EsBetragFrankenHoehe,
		EsBetragRappenLinks,EsBetragRappenOben,EsBetragRappenBreite,EsBetragRappenHoehe,
		EsReferenzNrLinks,EsReferenzNrOben,EsReferenzNrBreite,EsReferenzNrHoehe,
		EsEinbezahltVonLinks,EsEinbezahltVonOben,EsEinbezahltVonBreite,EsEinbezahltVonHoehe,
		EzEinzahlungFuerLinks,EzEinzahlungFuerOben,EzEinzahlungFuerBreite,EzEinzahlungFuerHoehe,
		EzKontoLinks,EzKontoOben,EzKontoBreite,EzKontoHoehe,
		EzBetragFrankenLinks,EzBetragFrankenOben,EzBetragFrankenBreite,EzBetragFrankenHoehe,
		EzBetragRappenLinks,EzBetragRappenOben,EzBetragRappenBreite,EzBetragRappenHoehe,
		EzReferenzNrLinks,EzReferenzNrOben,EzReferenzNrBreite,EzReferenzNrHoehe,
		EzEinbezahltVonLinks,EzEinbezahltVonOben,EzEinbezahltVonBreite,EzEinbezahltVonHoehe,
		EzMitteilungLinks,EzMitteilungOben,EzMitteilungBreite,EzMitteilungHoehe,
		EzCodierzeileLinks,EzCodierzeileOben,EzCodierzeileBreite,EzCodierzeileHoehe,
		EsEinzahlungFuerFontName,EsEinzahlungFuerFontSize,EsEinzahlungFuerFontBold,EsEinzahlungFuerFontItalic,EsEinzahlungFuerFontStrikeout,EsEinzahlungFuerFontUnderline,
		EsKontoFontName,EsKontoFontSize,EsKontoFontBold,EsKontoFontItalic,EsKontoFontStrikeout,EsKontoFontUnderline,
		EsBetragFrankenFontName,EsBetragFrankenFontSize,EsBetragFrankenFontBold,EsBetragFrankenFontItalic,EsBetragFrankenFontStrikeout,EsBetragFrankenFontUnderline,
		EsBetragRappenFontName,EsBetragRappenFontSize,EsBetragRappenFontBold,EsBetragRappenFontItalic,EsBetragRappenFontStrikeout,EsBetragRappenFontUnderline,
		EsReferenzNrFontName,EsReferenzNrFontSize,EsReferenzNrFontBold,EsReferenzNrFontItalic,EsReferenzNrFontStrikeout,EsReferenzNrFontUnderline,
		EsEinbezahltVonFontName,EsEinbezahltVonFontSize,EsEinbezahltVonFontBold,EsEinbezahltVonFontItalic,EsEinbezahltVonFontStrikeout,EsEinbezahltVonFontUnderline,
		EzEinzahlungFuerFontName,EzEinzahlungFuerFontSize,EzEinzahlungFuerFontBold,EzEinzahlungFuerFontItalic,EzEinzahlungFuerFontStrikeout,EzEinzahlungFuerFontUnderline,
		EzKontoFontName,EzKontoFontSize,EzKontoFontBold,EzKontoFontItalic,EzKontoFontStrikeout,EzKontoFontUnderline,
		EzBetragFrankenFontName,EzBetragFrankenFontSize,EzBetragFrankenFontBold,EzBetragFrankenFontItalic,EzBetragFrankenFontStrikeout,EzBetragFrankenFontUnderline,
		EzBetragRappenFontName,EzBetragRappenFontSize,EzBetragRappenFontBold,EzBetragRappenFontItalic,EzBetragRappenFontStrikeout,EzBetragRappenFontUnderline,
		EzReferenzNrFontName,EzReferenzNrFontSize,EzReferenzNrFontBold,EzReferenzNrFontItalic,EzReferenzNrFontStrikeout,EzReferenzNrFontUnderline,
		EzEinbezahltVonFontName,EzEinbezahltVonFontSize,EzEinbezahltVonFontBold,EzEinbezahltVonFontItalic,EzEinbezahltVonFontStrikeout,EzEinbezahltVonFontUnderline,
		EzMitteilungFontName,EzMitteilungFontSize,EzMitteilungFontBold,EzMitteilungFontItalic,EzMitteilungFontStrikeout,EzMitteilungFontUnderline,
		Bank->BankNr As BankNr,
		Bank->ClearingNr, Bank->BankKontoNr 
		FROM DBFibu_SD.Einzahlungsschein
		WHERE Bank->Mandant = :MandantOid
		ORDER BY Bank->BankNr]]></SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.FremdwaehrungAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61129,60114.015151</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT %ID,FWCode,Faktor,KursAnkauf,KursVK,Waehrung,DBFibu_SD.Fremdwaehrung_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung,
		   ISOSWIFTCode, Mandant, FibuKontoKursdifferenz->KontoNr As FibuKontoKursdifferenz
 	FROM DBFibu_SD.Fremdwaehrung
 	WHERE Mandant=:MandantOid
 	ORDER BY FWCode]]></SqlQuery>
</Query>

<Query name="BezNachCode">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Code:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>SELECT ISOSWIFTCode FROM DBFibu_SD.Fremdwaehrung WHERE Mandant = :MandantOid AND FWCode = :Code ORDER BY FWCode</SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.KontoBereichTypAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61164,30361.277151</TimeCreated>

<Query name="ListeGesamt">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, Nr, Bezeichnung, VonKontoNr, BisKontoNr
 	FROM DBFibu_SD.KontoBereichTyp
 	WHERE Mandant=:MandantOid
 	ORDER BY Nr</SqlQuery>
</Query>
</Class>


<Class name="DBFibu.AF.SD.MwstAF">
<Super>%RegisteredObject</Super>
<TimeChanged>62417,33055</TimeChanged>
<TimeCreated>61129,60114.015151</TimeCreated>

<Query name="ListeGesamtJahr">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Jahr:%Integer</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery><![CDATA[	SELECT %ID,Mwst->ID AS KopfId, MwstCode,DBFibu_SD.MwstJahr_GetKurzbezeichnungClass(%ID, :MandantOid, :Lang) As Kurzbezeichnung,
		   DBFibu_SD.MwstJahr_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung,
	       MwstSatzFakturierung,MwstSatzFibu,SteuerungInklExkl,
	       FormZiffer1Umsatz, FormZiffer1UmsatzAddieren, FormZiffer1Steuer, FormZiffer1SteuerAddieren,
	       FormZiffer2Umsatz, FormZiffer2UmsatzAddieren, FormZiffer2Steuer, FormZiffer2SteuerAddieren,
	       FormZiffer3Umsatz, FormZiffer3UmsatzAddieren, FormZiffer3Steuer, FormZiffer3SteuerAddieren,
	       FormZiffer4Umsatz, FormZiffer4UmsatzAddieren, FormZiffer4Steuer, FormZiffer4SteuerAddieren,
	       FormZiffer5Umsatz, FormZiffer5UmsatzAddieren, FormZiffer5Steuer, FormZiffer5SteuerAddieren,
	       Mandant as MandantID, FibuKontoNr As KontoNr 
 	FROM DBFibu_SD.MwstJahr
 	WHERE Mandant=:MandantOid AND Aktiv = 1 AND Jahr = :Jahr
 	ORDER BY MwstCode]]></SqlQuery>
</Query>

<Query name="GetEntryByMwstCode">
<Type>%SQLQuery</Type>
<FormalSpec>MandantOid:%String,Lang:%String,Jahr:%Integer,mwstCode:%String</FormalSpec>
<SqlProc>1</SqlProc>
<SqlQuery>	SELECT ID, MwstCode, DBFibu_SD.MwstJahr_GetBezeichnungClass(%ID, :MandantOid, :Lang) As Bezeichnung
	FROM DBFibu_SD.MwstJahr
	WHERE Mandant = :MandantOid AND Jahr = :Jahr
	AND MwstCode %StartsWith :mwstCode</SqlQuery>
</Query>
</Class>


<Class name="DBFibu.Buchung">
<Description>
Buchung (Zusammenfassung der einzelnen Teilbuchungen)</Description>
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61304,32331.148024</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Journalnr">
<Description>
Journalnummer (eindeutig)</Description>
<Type>%Integer</Type>
<Required>1</Required>
</Property>

<Property name="Erfassungsdatum">
<Description>
Erfassungsdatum</Description>
<Type>%Date</Type>
</Property>

<UDLText name="T">
<Content><![CDATA[
// Mwst-Abrechnungsstatus

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
//Property MwstAbrechnungStatus As %Integer;

]]></Content>
</UDLText>

<Property name="Buchungsart">
<Description>
Buchungsart</Description>
<Type>%Integer</Type>
</Property>

<Property name="Buchungsstatus">
<Description>
Buchungsstatus</Description>
<Type>%Integer</Type>
</Property>

<UDLText name="T">
<Content><![CDATA[
//***********************

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
// Erfasser wird extra nicht als Relation abgebildet

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
// -> haben nur informativen Charakter und würden bei einem Datenaustausch

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
// verloren gehen, da die Benutzerinformationen auf dem Zielsystem nicht vorhanden

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
// wären

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
//***********************

]]></Content>
</UDLText>

<Property name="ErfasserNr">
<Description>
Erfasser-Benutzernummer</Description>
<Type>%Library.Integer</Type>
<Parameter name="MAXVAL" value="999"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="ErfasserBenutzername">
<Description>
Erfasser-Benutzername</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ErfasserVorname">
<Description>
Erfasser-Vorname</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ErfasserName">
<Description>
Erfasser-Name</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="TeilbuchungBuchung">
<Description>
Teilbuchungen</Description>
<Type>DBFibu.Teilbuchung</Type>
<Cardinality>children</Cardinality>
<Inverse>Buchung</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="OP">
<Description>
OP</Description>
<Type>DBDebiKredi.OP</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuBuchung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="Zahlung">
<Description>
Zahlung</Description>
<Type>DBDebiKredi.Zahlung</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuBuchung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="IsEinzelbuchung">
<Description>
IsEinzelbuchung</Description>
<Type>%Boolean</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {IsEinzelbuchung}=##class(DBFibu.Buchung).CheckEinzelbuchung({ID}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
</Property>

<Property name="MwstAbrechnung">
<Type>DBFibu.MwstAbrechnungKopf</Type>
<Cardinality>one</Cardinality>
<Inverse>Buchung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="MwstAbrechnung"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="MwstAbrechnungIndex">
<Properties>MwstAbrechnung</Properties>
</Index>

<Property name="MandantJahr">
<Description>
MandantJahr</Description>
<Type>DBCore.MandantJahr</Type>
<Cardinality>one</Cardinality>
<Inverse>BuchungJahrMandantJahr</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="MandantJahr"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="JournalNrMandantJahrIndex">
<Properties>MandantJahr,Journalnr</Properties>
</Index>

<UDLText name="T">
<Content><![CDATA[
//[ PrimaryKey, Unique ]

]]></Content>
</UDLText>

<Method name="GetNextJournalnrJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantJahrOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set newJnr = 0
	&sql(Select ISNULL(Max(Journalnr),0) Into :newJnr From DBFibu.Buchung Where MandantJahr=:MandantJahrOid)
	
	w "GetNextJournalnrJahr MandantJahrOid: "_MandantJahrOid,!
	w "GetNextJournalnrJahr newJnr: "_newJnr,!
	w "GetNextJournalnrJahr SQLCODE: "_SQLCODE,!
	if (SQLCODE'=0) {
		Set newJnr = 0
	}
	Quit (newJnr + 1)
]]></Implementation>
</Method>

<Method name="SetJournalnrJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec><![CDATA[&Jnr:%RegisteredObject,MandantJahrOid:%String]]></FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	If (Jnr '= 0) {
		Set Jnr = ..GetNextJournalnrJahr(MandantJahrOid)
	}
	Quit Jnr
]]></Implementation>
</Method>

<Method name="%OnBeforeSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	If (Insert) {
		if ('$GET(^FibuBuchungStopTrigger)) {
			Set MandJahr = ..MandantJahr.%Id()
		
			Set Jnr = +..Journalnr
			If ..Journalnr '= ..SetJournalnrJahr(.Jnr, MandJahr) {
				Set ..Journalnr = +Jnr
			}
		}
	}
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="InsertBeforeNewData">
<Code>	if ('$GET(^FibuBuchungStopTrigger)) {
		new Jnr
		new MandJahr
	
		Set Jnr = {Journalnr*N}
		Set MandJahr = {MandantJahr*N}
		If {Journalnr*N} '= ##class(Buchung).SetJournalnr(.Jnr, MandJahr) {
			Set {Journalnr*N} = Jnr
		}
	}</Code>
<Event>INSERT</Event>
</Trigger>

<Method name="GetFirstSollTBuch">
<ReturnType>Teilbuchung</ReturnType>
<Implementation><![CDATA[
	set tbuchID = ""
	set buchID = ..%Id()
	
	&sql(SELECT ID into :tbuchID FROM DBFibu.Teilbuchung
			WHERE DBFibu.Teilbuchung.Buchung->ID = :buchID
			AND Soll <> 0)
			
	quit ##class(Teilbuchung).%OpenId(tbuchID)
]]></Implementation>
</Method>

<Method name="GetFirstHabenTBuch">
<ReturnType>Teilbuchung</ReturnType>
<Implementation><![CDATA[
	set tbuchID = ""
	set buchID = ..%Id()
	
	&sql(SELECT ID into :tbuchID FROM DBFibu.Teilbuchung
			WHERE DBFibu.Teilbuchung.Buchung->ID = :buchID
			AND Soll = 0)
			
	quit ##class(Teilbuchung).%OpenId(tbuchID)
]]></Implementation>
</Method>

<Method name="GetBuchungByJnrJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,jnr:%Integer</FormalSpec>
<ReturnType>Buchung</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID into :oid FROM DBFibu.Buchung WHERE Journalnr=:jnr AND MandantJahr=:mandJahrOid)
	if (SQLCODE'=0) {
		quit ""
	} else {
		quit ##class(Buchung).%OpenId(oid)
	}
]]></Implementation>
</Method>

<Method name="GetAnzahlDebiOP">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set anzahl=##class(DBFibu.Buchung).GetAnzahlDebiOPClass(..%Id())

	Quit anzahl
]]></Implementation>
</Method>

<Method name="GetFirstDebiOpAdressOid">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set adressOid=0
	Set buchungOid = ..%Id()
	&sql(SELECT Debitor->Adresse->ID INTO :adressOid 
			FROM DBDebiKredi.OPDebi
			WHERE FibuBuchung=:buchungOid)
			
	Quit adressOid
]]></Implementation>
</Method>

<Method name="GetFirstDebiZahlungAdressOid">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set adressOid=""
	Set buchungOid = ..%Id()
	Set opOid=""
	&sql(SELECT OP INTO :opOid FROM DBDebiKredi.OPZahlung WHERE Zahlung->FibuBuchung=:buchungOid)
	&sql(SELECT Debitor->Adresse->ID INTO :adressOid FROM DBDebiKredi.OPDebi WHERE ID=:opOid)
			
	Quit adressOid
]]></Implementation>
</Method>

<Method name="GetAnzahlKrediOP">
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set anzahl=##class(DBFibu.Buchung).GetAnzahlKrediOPClass(..%Id())

	Quit anzahl
]]></Implementation>
</Method>

<Method name="GetFirstKrediOpAdressOid">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set adressOid=0
	Set buchungOid = ..%Id()
	&sql(SELECT Kreditor->Adresse->ID INTO :adressOid 
			FROM DBDebiKredi.OPKredi
			WHERE FibuBuchung=:buchungOid)
			
	Quit adressOid
]]></Implementation>
</Method>

<Method name="GetFirstKrediZahlungAdressOid">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set adressOid=""
	Set buchungOid = ..%Id()
	Set opOid=""
	&sql(SELECT OP INTO :opOid FROM DBDebiKredi.OPZahlung WHERE Zahlung->FibuBuchung=:buchungOid)
	&sql(SELECT Kreditor->Adresse->ID INTO :adressOid FROM DBDebiKredi.OPKredi WHERE ID=:opOid)
			
	Quit adressOid
]]></Implementation>
</Method>

<Method name="CheckEinzelbuchung">
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set anzahl=0
	&sql(SELECT Count(ID) INTO :anzahl FROM DBFibu.Teilbuchung WHERE buchung=:oid)
	
	Quit (anzahl <= 2)
]]></Implementation>
</Method>

<Method name="ResetBuchungenJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandantJahrOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	Set strSQL="SELECT ID FROM DBFibu.Buchung WHERE MandantJahr="_mandantJahrOid
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
	set res = $$$OK
    IF $$$ISOK(sc) {
		while (rs.Next(.sc)) {
			Set id=rs.Data("ID")
			
			Set strSQL="SELECT ID FROM DBDebiKredi.OP WHERE FibuBuchung = "_id
			Set rsOP = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
			Do rsOP.Prepare(strSQL)
			Set scOP=rsOP.Execute()
			set res = $$$OK
		    IF $$$ISOK(scOP) {
				while (rsOP.Next(.scOP)) {
					Set idOP=rsOP.Data("ID")
					Set op = ##class(DBDebiKredi.OP).%OpenId(idOP)
					Set op.FibuBuchung = ""
					Set statusOP = op.%Save() 
					if ($$$ISERR(statusOP)) {
						w "Fehler beim Speichern des OPs: ", statusOP, !
						set res = statusOP
					}
				}
		    }
		    
		    Set strSQL="SELECT ID FROM DBDebiKredi.Zahlung WHERE FibuBuchung = "_id
			Set rsZ = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
			Do rsZ.Prepare(strSQL)
			Set scZ=rsZ.Execute()
			set res = $$$OK
		    IF $$$ISOK(scZ) {
				while (rsZ.Next(.scZ)) {
					Set idZahlung=rsZ.Data("ID")
					Set zahlung = ##class(DBDebiKredi.Zahlung).%OpenId(idZahlung)
					Set zahlung.FibuBuchung = ""
					Set statusZahlung = zahlung.%Save() 
					if ($$$ISERR(statusZahlung)) {
						w "Fehler beim Speichern der Zahlung: ", statusZahlung, !
						set res = statusZahlung
					}
				}
		    }
		    
			set status = ##class(DBFibu.Buchung).%DeleteId(id)
			if ($$$ISERR(status)) {
				w "Fehler beim Loeschen: ", status, !
				set res = status
			}
		}
    }
        
	Quit res
]]></Implementation>
</Method>

<Method name="GetAnzahlTeilbuchungen">
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set anzahl=0
	&sql(SELECT Count(ID) INTO :anzahl FROM DBFibu.Teilbuchung WHERE buchung=:oid)
	
	Quit anzahl
]]></Implementation>
</Method>

<Method name="GetBelegNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	Set nr=0
	&sql(SELECT BelegNr INTO :nr FROM DBFibu.Teilbuchung WHERE buchung=:oid)
	
	Quit nr
]]></Implementation>
</Method>

<Method name="HasBuchungJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>VonDatum:%Date,BisDatum:%Date,MandantJahr:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	Set count = 0
	&sql(SELECT COUNT(ID) INTO :count FROM DBFibu.Teilbuchung WHERE Belegdatum BETWEEN :VonDatum and :BisDatum AND Buchung->MandantJahr=:MandantJahr)	
	if (count > 0) {
		quit 1
	} else {
		quit 0
	}
]]></Implementation>
</Method>

<Method name="GetJnrJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String,AnzahlBuchungen:%Integer</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set jnr=0

	Set strSQL="SELECT TOP "_AnzahlBuchungen_" Journalnr FROM DBFibu.Buchung WHERE MandantJahr="_MandJahrOid_" ORDER BY Journalnr DESC"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")

	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()

	IF ($$$ISOK(sc)) {
	    while (rs.Next(.sc)) {
	    	Set jnr = rs.Data("Journalnr")
	    }
	}                          
	Quit jnr
]]></Implementation>
</Method>

<Method name="GetAnzahlDebiOPClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>buchungOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set anzahl=0
	&sql(SELECT COUNT(ID) INTO :anzahl 
			FROM DBDebiKredi.OPDebi
			WHERE FibuBuchung=:buchungOid)
			
	Quit anzahl
]]></Implementation>
</Method>

<Method name="GetAnzahlKrediOPClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>buchungOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	Set anzahl=0
	&sql(SELECT COUNT(ID) INTO :anzahl 
			FROM DBDebiKredi.OPKredi
			WHERE FibuBuchung=:buchungOid)
			
	Quit anzahl
]]></Implementation>
</Method>

<Method name="SetStopTrigger">
<ClassMethod>1</ClassMethod>
<FormalSpec>stopp:%Boolean</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	if (stopp) {
		set ^FibuBuchungStopTrigger = stopp
	} else {
		kill ^FibuBuchungStopTrigger
	}
	Quit 1
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.BuchungD</DataLocation>
<DefaultData>BuchungDefaultData</DefaultData>
<IdLocation>^DBFibu.BuchungD</IdLocation>
<IndexLocation>^DBFibu.BuchungI</IndexLocation>
<StreamLocation>^DBFibu.BuchungS</StreamLocation>
<Data name="BuchungDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Journalnr</Value>
</Value>
<Value name="3">
<Value>Erfassungsdatum</Value>
</Value>
<Value name="4">
<Value>MwstAbrechnungStatus</Value>
</Value>
<Value name="5">
<Value>Buchungsart</Value>
</Value>
<Value name="6">
<Value>Buchungsstatus</Value>
</Value>
<Value name="7">
<Value>ErfasserNr</Value>
</Value>
<Value name="8">
<Value>ErfasserBenutzername</Value>
</Value>
<Value name="9">
<Value>ErfasserVorname</Value>
</Value>
<Value name="10">
<Value>ErfasserName</Value>
</Value>
<Value name="11">
<Value>Mandant</Value>
</Value>
<Value name="12">
<Value>Zahlung</Value>
</Value>
<Value name="13">
<Value>MwstAbrechnung</Value>
</Value>
<Value name="14">
<Value>MandantJahr</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="Buchungsart">
</Property>
<Property name="Buchungsstatus">
</Property>
<Property name="ErfasserBenutzername">
</Property>
<Property name="ErfasserName">
</Property>
<Property name="ErfasserNr">
</Property>
<Property name="ErfasserVorname">
</Property>
<Property name="Erfassungsdatum">
</Property>
<Property name="IsEinzelbuchung">
</Property>
<Property name="Journalnr">
</Property>
<Property name="Mandant"/>
<Property name="MandantJahr">
</Property>
<Property name="MwstAbrechnung">
</Property>
<Property name="MwstAbrechnungStatus"/>
<Property name="Zahlung"/>
</Storage>
</Class>


<Class name="DBFibu.Konst">
<Super>%RegisteredObject</Super>
<TimeChanged>62353,63227.5217</TimeChanged>
<TimeCreated>61318,60045.930689</TimeCreated>

<Method name="KontoMengeMitKumulation">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 2
]]></Implementation>
</Method>

<Method name="KontoMengeOhneKumulation">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 1
]]></Implementation>
</Method>

<Method name="KontoMengeKeineMenge">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 0
]]></Implementation>
</Method>

<Method name="KtoBereichNrAktiven">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit "1"
]]></Implementation>
</Method>

<Method name="KtoBereichNrPassiven">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit "2"
]]></Implementation>
</Method>

<Method name="KtoBereichNrErtrag">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit "3"
]]></Implementation>
</Method>

<Method name="KtoBereichNrAufwandWaren">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit "4"
]]></Implementation>
</Method>

<Method name="KtoBereichNrPersonal">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit "5"
]]></Implementation>
</Method>

<Method name="KtoBereichNrSonstigeAufwand">
<ClassMethod>1</ClassMethod>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit "6"
]]></Implementation>
</Method>

<Method name="MwstAbrechnungQuartal1">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 1
]]></Implementation>
</Method>

<Method name="MwstAbrechnungQuartal2">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 2
]]></Implementation>
</Method>

<Method name="MwstAbrechnungQuartal3">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 3
]]></Implementation>
</Method>

<Method name="MwstAbrechnungQuarral4">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[	Quit 4
]]></Implementation>
</Method>

<Method name="CodeBaDebitorRechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 10
]]></Implementation>
</Method>

<Method name="CodeBaDebitorAkontoRechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 11
]]></Implementation>
</Method>

<Method name="CodeBaDebitorTeilRechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 12
]]></Implementation>
</Method>

<Method name="CodeBaDebitorSchlussRechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 13
]]></Implementation>
</Method>

<Method name="CodeBaDebitorRegierechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 14
]]></Implementation>
</Method>

<Method name="CodeBaDebitorSituationsrechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 15
]]></Implementation>
</Method>

<Method name="CodeBaDebitorTeuerungsrechnung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 16
]]></Implementation>
</Method>

<Method name="CodeBaDebitorAkontozahlungsges">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 17
]]></Implementation>
</Method>

<Method name="CodeBaDebitorVorauszahlung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 21
]]></Implementation>
</Method>

<Method name="CodeBaKreditorVorauszahlung">
<ClassMethod>1</ClassMethod>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[	Quit 41
]]></Implementation>
</Method>
</Class>


<Class name="DBFibu.Konto">
<Description>
</Description>
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62432,42849.796987</TimeChanged>
<TimeCreated>61100,52883.313078</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="KontoNr">
<Description>
Konto-Nummer</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Index name="KontoIndex">
<PrimaryKey>1</PrimaryKey>
<Properties>Mandant,KontoNr</Properties>
<Unique>1</Unique>
</Index>

<Property name="BankVESRFibuKonto">
<Type>DBFibu.SD.Bank</Type>
<Cardinality>many</Cardinality>
<Inverse>VESRFibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BankDTAFibuKonto">
<Type>DBFibu.SD.Bank</Type>
<Cardinality>many</Cardinality>
<Inverse>DTAFibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="DebitorFibuKonto">
<Type>DBDebiKredi.Debitor</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KreditorFibuKonto">
<Type>DBDebiKredi.Kreditor</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelFibuKontoVK">
<Type>DBAgrofresh.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoVK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelFibuKontoEK">
<Type>DBAgrofresh.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeKontoVK">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoVK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeKontoEK">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragsSteuerungAbzug1">
<Type>DBAgrofresh.AuftrStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragsSteuerungAbzug2">
<Type>DBAgrofresh.AuftrStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragsSteuerungAbzug3">
<Type>DBAgrofresh.AuftrStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Property name="DebiZahlungskondFibuKonto">
<Type>DBDebiKredi.SD.DZahlungskond</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KrediZahlungskondFibuKonto">
<Type>DBDebiKredi.SD.KZahlungskond</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KontoFWKursdifferenz">
<Type>DBFibu.SD.Fremdwaehrung</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoKursdifferenz</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FibuKontoGebMiete">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoMiete</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="MargeAbtKtoMarge2">
<Type>DBAgrofreshEK.SD.MargeAbt</Type>
<Cardinality>many</Cardinality>
<Inverse>KontoMarge2</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FibuKontoGebMieteAufw">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoMieteAufw</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="ZahlungFibuKonto">
<Type>DBDebiKredi.Zahlung</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="OPFibuKonto">
<Type>DBDebiKredi.OP</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestStrgAbzug1">
<Type>DBAgrofreshEK.BestStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestStrgAbzug2">
<Type>DBAgrofreshEK.BestStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestStrgAbzug3">
<Type>DBAgrofreshEK.BestStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KundenkategorieVK">
<Type>DBAdressen.SD.Kundenkategorie</Type>
<Cardinality>many</Cardinality>
<Inverse>VKFibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KundenkategorieEK">
<Type>DBAdressen.SD.Kundenkategorie</Type>
<Cardinality>many</Cardinality>
<Inverse>EKFibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelFaktKontoVK">
<Type>DBFakturierung.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoVK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelFaktKontoEK">
<Type>DBFakturierung.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktAuftragsSteuerungAbzug1">
<Type>DBFakturierung.AuftrStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktAuftragsSteuerungAbzug2">
<Type>DBFakturierung.AuftrStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktAuftragsSteuerungAbzug3">
<Type>DBFakturierung.AuftrStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KBankBuchKonto">
<Type>DBDebiKredi.SD.KBankBuch</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="AuftragskopfAbzug1">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragskopfAbzug2">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragskopfAbzug3">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestellungskopfAbzug1">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestellungskopfAbzug2">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestellungskopfAbzug3">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebTransKosten">
<Type>DBAgrofresh.SD.GebTransKosten</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="IsBilanzKonto">
<Type>%Boolean</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {IsBilanzKonto}=##class(DBFibu.Konto).CheckIsBilanzKonto({Kontonr}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktKopfBarkonto">
<Type>DBFakturierung.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Barkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AbteilungBarkonto">
<Type>DBCore.Abteilung</Type>
<Cardinality>many</Cardinality>
<Inverse>Barkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FibuKontoGebAdminkosten">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoAdminkosten</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KassenbelegFibukonto">
<Type>DBFakturierung.Kassenbeleg</Type>
<Cardinality>many</Cardinality>
<Inverse>Fibukonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="Lohnart">
<Type>DBLohn.Lohnart</Type>
<Cardinality>many</Cardinality>
<Inverse>Fibukonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="LohnartAGBeitraege">
<Type>DBLohn.Lohnart</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoAgBeitraege</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="Jahr">
<Type>DBFibu.KontoJahr</Type>
<Cardinality>children</Cardinality>
<Inverse>Konto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="WerkzeugKontoEK">
<Type>DBSpezial.Mecano.Werkzeug</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuKontoEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktBestellungsSteuerungAbzug1">
<Type>DBFaktEK.BestStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktBestellungsSteuerungAbzug2">
<Type>DBFaktEK.BestStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktBestellungsSteuerungAbzug3">
<Type>DBFaktEK.BestStrg</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3FibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Method name="CheckIsBilanzKonto">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontonr:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[	Quit (+$EXTRACT(kontonr,1) < 3)
]]></Implementation>
</Method>

<Method name="GetKontoBezeichnung">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set bez = ""
	set kontoOid = ..%Id()
	
	&sql(SELECT KontoBezeichnung InTo :bez
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set bez=""
	}
	
	Quit bez
]]></Implementation>
</Method>

<Method name="GetKontoBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetKontoBezeichnung(mandJahrOid)
	} else {
		Quit ""
	}
]]></Implementation>
</Method>

<Method name="GetMwst">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set mwst = ""
	set kontoOid = ..%Id()
	
	&sql(SELECT Mwst InTo :mwst
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set mwst=""
	}
	
	Quit mwst
]]></Implementation>
</Method>

<Method name="GetMwstClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetMwst(mandJahrOid)
	} else {
		Quit ""
	}
]]></Implementation>
</Method>

<Method name="GetMwstCode">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set mwst = 0
	set kontoOid = ..%Id()
	
	&sql(SELECT Mwst->MwstCode InTo :mwst
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set mwst=0
	}
	
	Quit mwst
]]></Implementation>
</Method>

<Method name="GetMwstCodeClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetMwstCode(mandJahrOid)
	} else {
		Quit 0
	}
]]></Implementation>
</Method>

<Method name="GetMwstSteuerung">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set mwst = 0
	set kontoOid = ..%Id()
	
	&sql(SELECT Mwst->SteuerungInklExkl InTo :mwst
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set mwst=0
	}
	
	Quit mwst
]]></Implementation>
</Method>

<Method name="GetMwstSteuerungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetMwstSteuerung(mandJahrOid)
	} else {
		Quit 0
	}
]]></Implementation>
</Method>

<Method name="GetBuchungsstatus">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set buchungsstatus = ""
	set kontoOid = ..%Id()
	
	&sql(SELECT Buchungsstatus InTo :buchungsstatus
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set buchungsstatus=""
	}
	
	Quit buchungsstatus
]]></Implementation>
</Method>

<Method name="GetBuchungsstatusClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetBuchungsstatus(mandJahrOid)
	} else {
		Quit 0
	}
]]></Implementation>
</Method>

<Method name="GetFremdwaehrung">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set fremdwaehrung = ""
	set kontoOid = ..%Id()
	
	&sql(SELECT Fremdwaehrung InTo :fremdwaehrung
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set mwst=""
	}
	
	Quit mwst
]]></Implementation>
</Method>

<Method name="GetFremdwaehrungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetFremdwaehrung(mandJahrOid)
	} else {
		Quit ""
	}
]]></Implementation>
</Method>

<Method name="GetOidByKontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Kontonr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID INTO :oid FROM DBFibu.Konto WHERE Mandant = :MandantOid AND KontoNr = :Kontonr)
	Quit oid
]]></Implementation>
</Method>

<Method name="GetKontoOidByKontoJahrOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT Konto INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE ID=:KontoJahrOid)
			
	if (SQLCODE'=0) {
		set oid=""
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="GetSoll">
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	set soll = 0
	set kontoOid = ..%Id()
	
	&sql(SELECT Soll InTo :soll
			FROM DBFibu.KontoJahr
			WHERE MandantJahr=:mandJahrOid AND
				Konto=:kontoOid)
				
	if (SQLCODE'=0) {
		set soll=0
	}
	
	Quit soll
]]></Implementation>
</Method>

<Method name="GetSollClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String,kontoOid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.Konto).%OpenId(kontoOid)
	
	if ((konto'="") && (konto'=$c(0))) {
		Quit konto.GetSoll(mandJahrOid)
	} else {
		Quit 0
	}
]]></Implementation>
</Method>

<Method name="SetDataFromOldDataClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,MandJahrOid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set kontoId = ""
	set kontoNr = ""
	
	&sql(DECLARE KontoCursor CURSOR FOR
			SELECT ID, KontoNr INTO :kontoId, :kontoNr
			FROM DBFibu.Konto
			WHERE Mandant=:MandOid
			ORDER BY KontoNr
	)
 
	&sql(OPEN KontoCursor)
	
	FOR { &sql(FETCH KontoCursor)
    	QUIT:SQLCODE  
    	
    	set id = ##class(DBFibu.Konto).CreateKontoJahr(kontoId,kontoNr,MandJahrOid,1)
	    	
	}
	
	&sql(CLOSE KontoCursor)
	
	Quit 1
]]></Implementation>
</Method>

<Method name="CreateKontoJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontoId:%String,kontoNr:%String,MandJahrOid:%String,MitGegenkonto:%Boolean</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set kontoJahrOid = ""
	&sql(SELECT ID Into :kontoJahrOid
			FROM DBFibu.KontoJahr
			WHERE Konto=:kontoId AND
					MandantJahr=:MandJahrOid)
	
	set kj = ""
	
	if (kontoJahrOid="") {
    	w "Neues Kontojahr: "_kontoNr,!
    	set kj = ##class(DBFibu.KontoJahr).%New()
	} else {
    	w "Editiere Kontojahr: "_kontoNr,!
    	set kj = ##class(DBFibu.KontoJahr).%OpenId(kontoJahrOid)
	}
	
	set lbGlobal = $GET(^DBFibu.KontoD(kontoId))
	
	
	do kj.KontoSetObjectId(kontoId)
	do kj.MandantJahrSetObjectId(MandJahrOid)
	
	set kj.KontoNr = $ListGet(lbGlobal, 2)
	set kj.Kurzname = $ListGet(lbGlobal, 3)
	set kj.Totalisierungskey = $ListGet(lbGlobal, 4)
	set kj.Soll = $ListGet(lbGlobal, 5)
	set kj.KontoBezeichnung = $ListGet(lbGlobal, 6)
	set kj.KontoBezeichnung2 = $ListGet(lbGlobal, 7)
	set kj.Kontotyp = $ListGet(lbGlobal, 8)
	set kj.Zeilenvorschub = $ListGet(lbGlobal, 9)
	set kj.MwstFaktor = $ListGet(lbGlobal, 10)
	set kj.PrefixBelegnr = $ListGet(lbGlobal, 11)
	set kj.LetzteBelegnr = $ListGet(lbGlobal, 12)
	set kj.AutoBelegnr = $ListGet(lbGlobal, 13)
	set kj.Mengencode = $ListGet(lbGlobal, 14)
	set kj.Mengentext = $ListGet(lbGlobal, 15)
	set kj.FibuEB = $ListGet(lbGlobal, 16)
	set kj.FibuUmsatzS = $ListGet(lbGlobal, 17)
	set kj.FibuUmsatzH = $ListGet(lbGlobal, 18)
	//set kj.FibuSaldo = $ListGet(lbGlobal, 19)
	set kj.FibuEBMenge = $ListGet(lbGlobal, 20)
	set kj.FibuUmsatzSMenge = $ListGet(lbGlobal, 21)
	set kj.FibuUmsatzHMenge = $ListGet(lbGlobal, 22)
	//set kj.FibuSaldoMenge = $ListGet(lbGlobal, 23)
	set kj.EBGesperrt = $ListGet(lbGlobal, 24)
	set kj.Buchungsstatus = $ListGet(lbGlobal, 25)
	set kj.Benutzernamen = $ListGet(lbGlobal, 26)
	set kj.Erfassungsdatum = $ListGet(lbGlobal, 27)
	set kj.Drucktyp = $ListGet(lbGlobal, 28)
	set kj.Steuerungscode = $ListGet(lbGlobal, 29)
	set kj.Abschlusscodierung = $ListGet(lbGlobal, 30)
	set kj.FibuEBFW = $ListGet(lbGlobal, 31)
	set kj.FibuUmsatzSFW = $ListGet(lbGlobal, 32)
	set kj.FibuUmsatzHFW = $ListGet(lbGlobal, 33)
	//set kj.FibuSaldoFW = $ListGet(lbGlobal, 34)
	set kj.MwstFaktorAlternativ = $ListGet(lbGlobal, 35)
	set kj.Konvertierungskonto = $ListGet(lbGlobal, 36)
	set kj.BebuEB = $ListGet(lbGlobal, 37)
	set kj.BebuUmsatzS = $ListGet(lbGlobal, 38)
	set kj.BebuUmsatzH = $ListGet(lbGlobal, 39)
	//set kj.BebuSaldo = $ListGet(lbGlobal, 40)
	set kj.DruckFett = $ListGet(lbGlobal, 41)
	set kj.DruckKursiv = $ListGet(lbGlobal, 42)
	set kj.DruckUnterstrichen = $ListGet(lbGlobal, 43)
	set kj.DruckRaster = $ListGet(lbGlobal, 44)
	set kj.DruckGroesse = $ListGet(lbGlobal, 45)
	set kj.DruckNullstellen = $ListGet(lbGlobal, 46)
	set kj.BebuErtragsart = $ListGet(lbGlobal, 47)
	set kj.BebuKostenstelle = $ListGet(lbGlobal, 48)
	
	do kj.MwstSetObjectId($ListGet(lbGlobal, 49))
	//do kj.GegenkontoSetObjectId($ListGet(lbGlobal, 50))
	
	set oldGegenkontoOid = $ListGet(lbGlobal, 50)
	if ((oldGegenkontoOid'="") && (oldGegenkontoOid'=$c(0)) && (MitGegenkonto=1)) {		
		set oldGegenkonto = ##class(DBFibu.Konto).%OpenId(oldGegenkontoOid)
		if ((oldGegenkonto'="") && (oldGegenkonto'=$c(0))) {
			set id = ##class(DBFibu.Konto).CreateKontoJahr(oldGegenkontoOid,oldGegenkonto.KontoNr,MandJahrOid,0)
	    
			set kj.Gegenkonto = ##class(DBFibu.KontoJahr).%OpenId(id)
		} else {
			set kj.Gegenkonto = ""
		}
	} else {
		set kj.Gegenkonto = ""
	}
	
	do kj.FremdwaehrungSetObjectId($ListGet(lbGlobal, 51))
	do kj.MwstAlternativSetObjectId($ListGet(lbGlobal, 52))
	
	// 53 = Mandant
	// 54 = BereichTyp
	//set kj.TeilbuchungMwstKonto = $ListGet(lbGlobal, 55)
	//set kj.TeilbuchungHauptkonto = $ListGet(lbGlobal, 56)
	//set kj.TeilbuchungGegenkonto = $ListGet(lbGlobal, 57)
	// 58 = Saldo
	// 59 = SaldoBetrag
	// 60 = SaldoMenge
	do kj.ProjektKostenstelleSetObjectId($ListGet(lbGlobal, 61))
	do kj.ProjektGegenkontoSetObjectId($ListGet(lbGlobal, 62))
	// 63 = GebTransKosten
	set kj.FibuBudgetAkt = $ListGet(lbGlobal, 64)
	set kj.FibuBudgetNext = $ListGet(lbGlobal, 65)
	set kj.FibuVorjahr1 = $ListGet(lbGlobal, 66)
	set kj.FibuVorjahr2 = $ListGet(lbGlobal, 67)
	set kj.FibuBudgetAktFW = $ListGet(lbGlobal, 68)
	set kj.FibuBudgetNextFW = $ListGet(lbGlobal, 69)
	set kj.FibuVorjahr1FW = $ListGet(lbGlobal, 70)
	set kj.FibuVorjahr2FW = $ListGet(lbGlobal, 71)
	set kj.FibuBudgetAktMenge = $ListGet(lbGlobal, 72)
	set kj.FibuBudgetNextMenge = $ListGet(lbGlobal, 73)
	set kj.FibuVorjahr1Menge = $ListGet(lbGlobal, 74)
	set kj.FibuVorjahr2Menge = $ListGet(lbGlobal, 75)
	
	set status = kj.%Save()
	if ($$$ISERR(status)) {
    	w "Fehler beim Speichern des Kontos "_kontoNr_": "_status,!
	}
	
	Quit kj.%Id()
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.KontoD</DataLocation>
<DefaultData>KontoDefaultData</DefaultData>
<IdLocation>^DBFibu.KontoD</IdLocation>
<IndexLocation>^DBFibu.KontoI</IndexLocation>
<StreamLocation>^DBFibu.KontoS</StreamLocation>
<Data name="BebuSaldiVorjahr">
<Attribute>BebuSaldiVorjahr</Attribute>
<Structure>subnode</Structure>
<Subscript>"BebuSaldiVorjahr"</Subscript>
</Data>
<Data name="BudgetAktuell">
<Attribute>BudgetAktuell</Attribute>
<Structure>subnode</Structure>
<Subscript>"BudgetAktuell"</Subscript>
</Data>
<Data name="BudgetGewichtung">
<Attribute>BudgetGewichtung</Attribute>
<Structure>subnode</Structure>
<Subscript>"BudgetGewichtung"</Subscript>
</Data>
<Data name="BudgetNeu">
<Attribute>BudgetNeu</Attribute>
<Structure>subnode</Structure>
<Subscript>"BudgetNeu"</Subscript>
</Data>
<Data name="KontoDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>KontoNr</Value>
</Value>
<Value name="3">
<Value>Kurzname</Value>
</Value>
<Value name="4">
<Value>Totalisierungskey</Value>
</Value>
<Value name="5">
<Value>Soll</Value>
</Value>
<Value name="6">
<Value>KontoBezeichnung</Value>
</Value>
<Value name="7">
<Value>KontoBezeichnung2</Value>
</Value>
<Value name="8">
<Value>Kontotyp</Value>
</Value>
<Value name="9">
<Value>Zeilenvorschub</Value>
</Value>
<Value name="10">
<Value>MwstFaktor</Value>
</Value>
<Value name="11">
<Value>PrefixBelegnr</Value>
</Value>
<Value name="12">
<Value>LetzteBelegnr</Value>
</Value>
<Value name="13">
<Value>AutoBelegnr</Value>
</Value>
<Value name="14">
<Value>Mengencode</Value>
</Value>
<Value name="15">
<Value>Mengentext</Value>
</Value>
<Value name="16">
<Value>FibuEB</Value>
</Value>
<Value name="17">
<Value>FibuUmsatzS</Value>
</Value>
<Value name="18">
<Value>FibuUmsatzH</Value>
</Value>
<Value name="19">
<Value>FibuSaldo</Value>
</Value>
<Value name="20">
<Value>FibuEBMenge</Value>
</Value>
<Value name="21">
<Value>FibuUmsatzSMenge</Value>
</Value>
<Value name="22">
<Value>FibuUmsatzHMenge</Value>
</Value>
<Value name="23">
<Value>FibuSaldoMenge</Value>
</Value>
<Value name="24">
<Value>EBGesperrt</Value>
</Value>
<Value name="25">
<Value>Buchungsstatus</Value>
</Value>
<Value name="26">
<Value>Benutzernamen</Value>
</Value>
<Value name="27">
<Value>Erfassungsdatum</Value>
</Value>
<Value name="28">
<Value>Drucktyp</Value>
</Value>
<Value name="29">
<Value>Steuerungscode</Value>
</Value>
<Value name="30">
<Value>Abschlusscodierung</Value>
</Value>
<Value name="31">
<Value>FibuEBFW</Value>
</Value>
<Value name="32">
<Value>FibuUmsatzSFW</Value>
</Value>
<Value name="33">
<Value>FibuUmsatzHFW</Value>
</Value>
<Value name="34">
<Value>FibuSaldoFW</Value>
</Value>
<Value name="35">
<Value>MwstFaktorAlternativ</Value>
</Value>
<Value name="36">
<Value>Konvertierungskonto</Value>
</Value>
<Value name="37">
<Value>BebuEB</Value>
</Value>
<Value name="38">
<Value>BebuUmsatzS</Value>
</Value>
<Value name="39">
<Value>BebuUmsatzH</Value>
</Value>
<Value name="40">
<Value>BebuSaldo</Value>
</Value>
<Value name="41">
<Value>DruckFett</Value>
</Value>
<Value name="42">
<Value>DruckKursiv</Value>
</Value>
<Value name="43">
<Value>DruckUnterstrichen</Value>
</Value>
<Value name="44">
<Value>DruckRaster</Value>
</Value>
<Value name="45">
<Value>DruckGroesse</Value>
</Value>
<Value name="46">
<Value>DruckNullstellen</Value>
</Value>
<Value name="47">
<Value>BebuErtragsart</Value>
</Value>
<Value name="48">
<Value>BebuKostenstelle</Value>
</Value>
<Value name="49">
<Value>Mwst</Value>
</Value>
<Value name="50">
<Value>Gegenkonto</Value>
</Value>
<Value name="51">
<Value>Fremdwaehrung</Value>
</Value>
<Value name="52">
<Value>MwstAlternativ</Value>
</Value>
<Value name="53">
<Value>Mandant</Value>
</Value>
<Value name="54">
<Value>BereichTyp</Value>
</Value>
<Value name="55">
<Value>TeilbuchungMwstKonto</Value>
</Value>
<Value name="56">
<Value>TeilbuchungHauptkonto</Value>
</Value>
<Value name="57">
<Value>TeilbuchungGegenkonto</Value>
</Value>
<Value name="58">
<Value>Saldo</Value>
</Value>
<Value name="59">
<Value>SaldoBetrag</Value>
</Value>
<Value name="60">
<Value>SaldoMenge</Value>
</Value>
<Value name="61">
<Value>ProjektKostenstelle</Value>
</Value>
<Value name="62">
<Value>ProjektGegenkonto</Value>
</Value>
<Value name="63">
<Value>GebTransKosten</Value>
</Value>
<Value name="64">
<Value>FibuBudgetAkt</Value>
</Value>
<Value name="65">
<Value>FibuBudgetNext</Value>
</Value>
<Value name="66">
<Value>FibuVorjahr1</Value>
</Value>
<Value name="67">
<Value>FibuVorjahr2</Value>
</Value>
<Value name="68">
<Value>FibuBudgetAktFW</Value>
</Value>
<Value name="69">
<Value>FibuBudgetNextFW</Value>
</Value>
<Value name="70">
<Value>FibuVorjahr1FW</Value>
</Value>
<Value name="71">
<Value>FibuVorjahr2FW</Value>
</Value>
<Value name="72">
<Value>FibuBudgetAktMenge</Value>
</Value>
<Value name="73">
<Value>FibuBudgetNextMenge</Value>
</Value>
<Value name="74">
<Value>FibuVorjahr1Menge</Value>
</Value>
<Value name="75">
<Value>FibuVorjahr2Menge</Value>
</Value>
</Data>
<Data name="MengeVorjahr">
<Attribute>MengeVorjahr</Attribute>
<Structure>subnode</Structure>
<Subscript>"MengeVorjahr"</Subscript>
</Data>
<Data name="SaldiPeriodeLaufendesJahr">
<Attribute>SaldiPeriodeLaufendesJahr</Attribute>
<Structure>subnode</Structure>
<Subscript>"SaldiPeriodeLaufendesJahr"</Subscript>
</Data>
<Data name="SaldiPeriodeVorjahr">
<Attribute>SaldiPeriodeVorjahr</Attribute>
<Structure>subnode</Structure>
<Subscript>"SaldiPeriodeVorjahr"</Subscript>
</Data>
<Data name="SaldiVorjahr">
<Attribute>SaldiVorjahr</Attribute>
<Structure>subnode</Structure>
<Subscript>"SaldiVorjahr"</Subscript>
</Data>
<Property name="%%CLASSNAME"/>
<Property name="Abschlusscodierung"/>
<Property name="AutoBelegnr"/>
<Property name="BebuEB"/>
<Property name="BebuErtragsart"/>
<Property name="BebuKostenstelle"/>
<Property name="BebuSaldiVorjahr"/>
<Property name="BebuSaldo"/>
<Property name="BebuUmsatzH"/>
<Property name="BebuUmsatzS"/>
<Property name="Benutzernamen"/>
<Property name="BereichInklKontoCalc"/>
<Property name="BereichTyp"/>
<Property name="BereichTypNrCalc"/>
<Property name="Buchungsstatus"/>
<Property name="BudgetAktuell"/>
<Property name="BudgetGewichtung"/>
<Property name="BudgetNeu"/>
<Property name="DBFibu.Konto"/>
<Property name="DruckFett"/>
<Property name="DruckGroesse"/>
<Property name="DruckKursiv"/>
<Property name="DruckNullstellen"/>
<Property name="DruckRaster"/>
<Property name="DruckUnterstrichen"/>
<Property name="Drucktyp"/>
<Property name="EBGesperrt"/>
<Property name="Erfassungsdatum"/>
<Property name="FibuBudgetAkt"/>
<Property name="FibuBudgetAktFW"/>
<Property name="FibuBudgetAktMenge"/>
<Property name="FibuBudgetNext"/>
<Property name="FibuBudgetNextFW"/>
<Property name="FibuBudgetNextMenge"/>
<Property name="FibuEB"/>
<Property name="FibuEBFW"/>
<Property name="FibuEBMenge"/>
<Property name="FibuSaldo"/>
<Property name="FibuSaldoFW"/>
<Property name="FibuSaldoMenge"/>
<Property name="FibuUmsatzH"/>
<Property name="FibuUmsatzHFW"/>
<Property name="FibuUmsatzHMenge"/>
<Property name="FibuUmsatzS"/>
<Property name="FibuUmsatzSFW"/>
<Property name="FibuUmsatzSMenge"/>
<Property name="FibuVorjahr1"/>
<Property name="FibuVorjahr1FW"/>
<Property name="FibuVorjahr1Menge"/>
<Property name="FibuVorjahr2"/>
<Property name="FibuVorjahr2FW"/>
<Property name="FibuVorjahr2Menge"/>
<Property name="Fremdwaehrung"/>
<Property name="Gegenkonto"/>
<Property name="IsBilanzKonto"/>
<Property name="IsMwstKonto"/>
<Property name="KontoBezeichnung"/>
<Property name="KontoBezeichnung2"/>
<Property name="KontoNr"/>
<Property name="Kontotyp"/>
<Property name="Konvertierungskonto"/>
<Property name="Kurzname"/>
<Property name="LetzteBelegnr"/>
<Property name="Mandant"/>
<Property name="MengeVorjahr"/>
<Property name="Mengencode"/>
<Property name="Mengentext"/>
<Property name="Mwst"/>
<Property name="MwstAlternativ"/>
<Property name="MwstFaktor"/>
<Property name="MwstFaktorAlternativ"/>
<Property name="PrefixBelegnr"/>
<Property name="ProjektGegenkonto"/>
<Property name="ProjektKostenstelle"/>
<Property name="SaldiPeriodeLaufendesJahr"/>
<Property name="SaldiPeriodeVorjahr"/>
<Property name="Soll"/>
<Property name="Steuerungscode"/>
<Property name="Totalisierungskey"/>
<Property name="Zeilenvorschub"/>
<Property name="element_key"/>
</Storage>
</Class>


<Class name="DBFibu.KontoJahr">
<Description>
</Description>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62430,57245.209368</TimeChanged>
<TimeCreated>62083,51924.556126</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Konto">
<Type>DBFibu.Konto</Type>
<Cardinality>parent</Cardinality>
<Inverse>Jahr</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="MandantJahr">
<Description>
MandantJahr</Description>
<Type>DBCore.MandantJahr</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoJahrMandantJahr</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="MandantJahr"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="KontoMandantJahrIndex">
<PrimaryKey>1</PrimaryKey>
<Properties>MandantJahr,Konto</Properties>
<Unique>1</Unique>
</Index>

<Property name="KontoNr">
<Description>
Konto-Nummer</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Index name="KontoNrIndex">
<Data>%%ID,Konto,KontoNr,KontoBezeichnung,BereichTypNrCalc,Kontotyp,Soll,FibuSaldo,Mengentext</Data>
<Properties>MandantJahr:Exact,BereichInklKontoCalc</Properties>
</Index>

<Property name="Kurzname">
<Description>
Kurzname</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Totalisierungskey">
<Description>
Key KMU Ab</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Soll">
<Description>
Soll/Haben</Description>
<Type>%Boolean</Type>
</Property>

<Property name="KontoBezeichnung">
<Description>
Konto-Bezeichnung</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Index name="KontoBezeichnungIndex">
<Data>%%ID,KontoNr,KontoBezeichnung</Data>
<Properties>MandantJahr:Exact,Kurzname,KontoBezeichnung,KontoNr</Properties>
</Index>

<Property name="KontoBezeichnung2">
<Description>
Konto-Bezeichnung 2</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Kontotyp">
<Description>
Kontotyp</Description>
<Type>%Integer</Type>
</Property>

<Property name="Zeilenvorschub">
<Description>
Zeilenvorschub</Description>
<Type>%Integer</Type>
</Property>

<Property name="MwstFaktor">
<Description>
MWST-Faktor</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="PrefixBelegnr">
<Description>
Prefix BelegNr.</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="LetzteBelegnr">
<Description>
Letzte BelegNr.</Description>
<Type>%Integer</Type>
</Property>

<Property name="AutoBelegnr">
<Description>
Autom. BelegNr. J/N/A</Description>
<Type>%Integer</Type>
</Property>

<Property name="Mengencode">
<Description>
Mengencode</Description>
<Type>%Integer</Type>
</Property>

<Property name="Mengentext">
<Description>
Mengentext</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="FibuEB">
<Description>
EB-EW Fibu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuUmsatzS">
<Description>
Umsatz S EW Fibu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuUmsatzH">
<Description>
Umsatz H EW Fibu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuEBMenge">
<Description>
EB-Menge Fibu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuUmsatzSMenge">
<Description>
Umsatz S Menge Fibu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuUmsatzHMenge">
<Description>
Umsatz H Menge Fibu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EBGesperrt">
<Description>
Status EB</Description>
<Type>%Boolean</Type>
</Property>

<Property name="Buchungsstatus">
<Description>
Buchungsstatus</Description>
<Type>%Integer</Type>
</Property>

<Property name="Benutzernamen">
<Description>
Benutzernamen</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Erfassungsdatum">
<Description>
Erfassungsdatum</Description>
<Type>%Date</Type>
</Property>

<Property name="Drucktyp">
<Description>
Drucktyp</Description>
<Type>%Integer</Type>
</Property>

<Property name="Steuerungscode">
<Description>
Steuerungscode</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Abschlusscodierung">
<Description>
Abschlusscodierung</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="FibuEBFW">
<Description>
EB Fibu FW</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuUmsatzSFW">
<Description>
Umsatz Soll FW</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuUmsatzHFW">
<Description>
Umsatz Haben FW</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstFaktorAlternativ">
<Description>
MWST-Faktor alternativ</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Konvertierungskonto">
<Description>
Konvertierungskonto</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="BebuEB">
<Description>
EB-EW Bebu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="BebuUmsatzS">
<Description>
Umsatz S EW Bebu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="BebuUmsatzH">
<Description>
Umsatz H EW Bebu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="BebuSaldo">
<Description>
Saldo EW Bebu</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

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

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

<Property name="KontoGegenkonto">
<Type>DBFibu.KontoJahr</Type>
<Cardinality>many</Cardinality>
<Inverse>Gegenkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BebuErtragsart">
<Type>DBBebu.SD.Ertragsart</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoJahrBebuErtragsart</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="BebuErtragsart"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="BebuKostenstelle">
<Type>DBBebu.SD.Kostenstelle</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoJahrBebuKostenstelle</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="BebuKostenstelle"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="Mwst">
<Description>
MWST-Code</Description>
<Type>DBFibu.SD.Mwst</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoMwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Mwst"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="Gegenkonto">
<Description>
Gegenkonto</Description>
<Type>DBFibu.KontoJahr</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoGegenkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Gegenkonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="Fremdwaehrung">
<Description>
Fremdwährung</Description>
<Type>DBFibu.SD.Fremdwaehrung</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoFremdwaehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Fremdwaehrung"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="TeilbuchungMwstKonto">
<Description>
Teilbuchung-Mwstkonto</Description>
<Type>DBFibu.Teilbuchung</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwstkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="TeilbuchungHauptkonto">
<Description>
Teilbuchung-Hauptkonto</Description>
<Type>DBFibu.Teilbuchung</Type>
<Cardinality>many</Cardinality>
<Inverse>Hauptkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="TeilbuchungGegenkonto">
<Description>
Teilbuchung-Gegenkonto</Description>
<Type>DBFibu.Teilbuchung</Type>
<Cardinality>many</Cardinality>
<Inverse>Gegenkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="MwstAlternativ">
<Description>
Mwst alternativ</Description>
<Type>DBFibu.SD.Mwst</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoMwstAlternativ</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="MwstAlternativ"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="BereichTypNrCalc">
<Type>%String</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {BereichTypNrCalc}=##class(DBFibu.KontoJahr).GetBereichTypNr({KontoNr}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BereichInklKontoCalc">
<Type>%String</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {BereichInklKontoCalc}=##class(DBFibu.KontoJahr).GetBereichInklKonto({KontoNr}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="IsMwstKonto">
<Type>%Boolean</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {IsMwstKonto}=##class(DBFibu.KontoJahr).CheckIsMwstKonto({Steuerungscode}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="PeriodenAktuell">
<Type>%Decimal</Type>
<Collection>array</Collection>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="PeriodenVorjahr">
<Type>%Decimal</Type>
<Collection>array</Collection>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="PeriodenBudgetAkt">
<Type>%Decimal</Type>
<Collection>array</Collection>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="PeriodenBudgetNeu">
<Type>%Decimal</Type>
<Collection>array</Collection>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="PeriodenBudgetGew">
<Type>%Decimal</Type>
<Collection>array</Collection>
<Parameter name="SCALE" value="5"/>
</Property>

<Method name="MoveFirstOnKontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	
	set bereichInklKto = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,""),1)
	if (bereichInklKto '= ""){
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,child))
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnKontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	
	set bereichInklKto = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,""),-1)
	if (bereichInklKto '= ""){
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,child))
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnKontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String,BereichtypNr:%String,KontoNr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set bereichInklKto = " "_BereichtypNr_KontoNr
	
    set kontoJahr = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto))
   	if (kontoJahr '= "") {
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,child))
	} else {
		set list = ##class(DBFibu.KontoJahr).MoveLastOnKontoNr(MandJahrOid)
	}	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnKontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String,BereichtypNr:%String,KontoNr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set bereichInklKto = " "_BereichtypNr_KontoNr
	
    set kontoJahr = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto),-1)
	if (kontoJahr '= "") {
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,child))
	} else {
		set list = ##class(DBFibu.KontoJahr).MoveFirstOnKontoNr(MandJahrOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MoveFirstOnBuchungskontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	
	set bereichInklKto = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,""),1)
	if (bereichInklKto '= ""){
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,child))
		
		set kto = ##class(DBFibu.KontoJahr).%OpenId(parent_"||"_child)
		if (kto '= "") {
			//wenn kein buchungskonto -> list zurücksetzen
			if ((kto.Kontotyp '= 0)) {
				set b = $list(list,6)
				set nktoNr = $list(list,4)
				set list = ##class(DBFibu.KontoJahr).MoveNextOnBuchungskontoNr(MandJahrOid, b, nktoNr)
			}
		} else {
			set list = ""	
		}
	} else {
		set list = ""
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnBuchungskontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	
	set bereichInklKto = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,""),-1)
	if (bereichInklKto '= ""){
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto,parent,child))
		
		set kto = ##class(DBFibu.KontoJahr).%OpenId(parent_"||"_child)
		if (kto '= "") {
			//wenn kein buchungskonto -> list zurücksetzen
			if ((kto.Kontotyp '= 0)) {
				set b = $list(list,6)
				set nktoNr = $list(list,4)
				set list = ##class(DBFibu.KontoJahr).MovePrevOnBuchungskontoNr(MandJahrOid, b, nktoNr)
			}
		} else {
			set list = ""	
		}
	} else {
		set list = ""
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnBuchungskontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String,BereichtypNr:%String,KontoNr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set bereichInklKto = " "_BereichtypNr_KontoNr
	
    set kontoJahr = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto))
   	if (kontoJahr '= "") {
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,child))
		
		set kto = ##class(DBFibu.KontoJahr).%OpenId(parent_"||"_child)
		if (kto '= "") {
			if (kto.Kontotyp '= 0) {
				set b = $list(list,6)
				set nktoNr = $list(list,4)
				set list = ##class(DBFibu.KontoJahr).MoveNextOnBuchungskontoNr(MandJahrOid, b, nktoNr)
			}
		} else {
			set list = ""	
		}
	} else {
		set list = ##class(DBFibu.KontoJahr).MoveLastOnBuchungskontoNr(MandJahrOid)
	}	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnBuchungskontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String,BereichtypNr:%String,KontoNr:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set bereichInklKto = " "_BereichtypNr_KontoNr
	
    set kontoJahr = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,bereichInklKto),-1)
	if (kontoJahr '= "") {
		set parent = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,""), 1)
		set child = $Order(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,""), 1)
		set list = $Get(^DBFibu.KontoJahrI("KontoNrIndex",MandJahrOid,kontoJahr,parent,child))
		
		set kto = ##class(DBFibu.KontoJahr).%OpenId(parent_"||"_child)
		if (kto '= "") {
			if (kto.Kontotyp '= 0) {
				set b = $list(list,6)
				set nktoNr = $list(list,4)
				set list = ##class(DBFibu.KontoJahr).MovePrevOnBuchungskontoNr(MandJahrOid, b, nktoNr)
			}
		} else {
			set list = ""	
		}
	} else {
		set list = ##class(DBFibu.KontoJahr).MoveFirstOnBuchungskontoNr(MandJahrOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="GetBereichTypNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoNr</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	Set tRet=""
	if ($Data(KontoNr)) {
		TRY {
			set kontoNr = $Get(KontoNr,"")
			&sql(SELECT Nr INTO :tRet FROM DBFibu_SD.KontoBereichTyp WHERE VonKontoNr <= :kontoNr AND BisKontoNr >= :kontoNr)
			if (tRet="") {
				Set tRet=0
			} 
		}
		CATCH exceptionvar
		{
			Write ""
		}
	}
	Quit tRet
]]></Implementation>
</Method>

<Method name="GetBereichInklKonto">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoNr</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set tBereich = ""
	if ($Data(KontoNr)) {
		TRY {
			set kontoNr = $Get(KontoNr,"")
			&sql(SELECT Nr INTO :tBereich FROM DBFibu_SD.KontoBereichTyp WHERE VonKontoNr <= :kontoNr AND BisKontoNr >= :kontoNr)
			
			if (tBereich="") {
				Set tBereich="0"
			} 
	
			Set tBereich = tBereich_$Get(KontoNr,"")
		} CATCH exceptionvar {
			Write "Exception"
		}
	}
	Quit tBereich
]]></Implementation>
</Method>

<Method name="RemoveMwst">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<Implementation><![CDATA[
	Set rs = ##class(%Library.ResultSet).%New("DBFibu.AF.KontoAF:ListeIdsGesamt")
    Set sc=rs.%Execute(MandantOid)
    
    while rs.Next(.sc) {
		set id = rs.Data("ID")
		set konto = ##class(DBFibu.KontoJahr).%OpenId(id)
		
		set konto.Mwst = ""
		set konto.MwstAlternativ = ""
		set konto.MwstFaktor = 0
		set konto.MwstFaktorAlternativ = 0
		
		set sc = konto.%Save()
		
		if ((konto.Steuerungscode = "S0") || (konto.Steuerungscode = "S8") || (konto.Steuerungscode = "S9")) {
			k konto
			set status = ##class(DBFibu.KontoJahr).%DeleteId(id)
		} else {
			k konto
		}		
	}	
	Quit sc
]]></Implementation>
</Method>

<Method name="GetKontoByKontoNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Kontonr:%String</FormalSpec>
<ReturnType>DBFibu.KontoJahr</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID INTO :oid FROM DBFibu.KontoJahr WHERE MandantJahr = :MandantOid AND  KontoNr = :Kontonr)
	Quit:(oid="") ""
	Quit ##class(DBFibu.KontoJahr).%OpenId(oid)
]]></Implementation>
</Method>

<Method name="GetOidByKontobezNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Kontobez:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT TOP 1 ID INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE MandantJahr = :MandantOid AND 
					KontoBezeichnung LIKE :Kontobez)
					
	if (SQLCODE'=0) {
		set oid = ""
	}
	Quit oid
]]></Implementation>
</Method>

<Method name="GetOidByKurzname">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Kurzname:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT TOP 1 ID INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE MandantJahr = :MandantOid AND 
					Kurzname LIKE :Kurzname)
					
	if (SQLCODE'=0) {
		set oid = ""
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="GetOidByKontoNrJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantJahrOid:%String,Kontonr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE MandantJahr = :MandantJahrOid AND 
					KontoNr = :Kontonr)
	
	if (SQLCODE'=0) {
		set oid = ""
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="GetFirstBuchungsktoID">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT TOP 1 ID INTO :id 
			FROM DBFibu.KontoJahr 
			WHERE MandantJahr = :MandantOid AND 
					Kontotyp = 0 ORDER BY KontoNr)
	
	if (SQLCODE'=0) {
		set oid = ""
	}
	
	Quit id
]]></Implementation>
</Method>

<Method name="GetLastBuchungsktoID">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT TOP 1 ID INTO :id 
			FROM DBFibu.KontoJahr 
			WHERE MandantJahr = :MandantOid AND 
					Kontotyp = 0 
			ORDER BY KontoNr DESC)
	
	if (SQLCODE'=0) {
		set oid = ""
	}
	
	Quit id
]]></Implementation>
</Method>

<Method name="GetKontoByKurznameOrBez">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Bezeichnung:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	set bez = Bezeichnung_"%"
	&sql(SELECT TOP 1 ID INTO :id 
		 FROM DBFibu.KontoJahr 
		 WHERE MandantJahr = :MandantOid
		 AND Kurzname LIKE :bez)
	
	if (id '= "") {
		Quit id
	
		// keine Daten gefunden -> nach Bezeichnung suchen	
	} else {
		set nId = ""
		&sql(SELECT TOP 1 ID INTO :nId 
		 	 FROM DBFibu.KontoJahr 
		 	 WHERE MandantJahr = :MandantOid
		 	 AND KontoBezeichnung LIKE :bez)
		 if (nId '= "") {
			Quit nId 
		 
		 } else {
			 Quit ""
		 }
	}
]]></Implementation>
</Method>

<Method name="DeleteAllKonti">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	Set rs = ##class(%Library.ResultSet).%New("DBFibu.AF.KontoAF:ListeIdsGesamt")
    Set sc=rs.%Execute(MandantOid)
    
    while rs.Next(.sc) {
		set id = rs.Data("ID")
		set sc = ##class(DBFibu.KontoJahr).%DeleteId(id)
	}	
	Quit sc
]]></Implementation>
</Method>

<Property name="FibuSaldo">
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {FibuSaldo}=##class(DBFibu.KontoJahr).GetFibuSaldo({Soll},{FibuEB},{FibuUmsatzS},{FibuUmsatzH}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FibuSaldoFW">
<Description>
Saldo FW</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {FibuSaldoFW}=##class(DBFibu.KontoJahr).GetFibuSaldo({Soll},{FibuEBFW},{FibuUmsatzSFW},{FibuUmsatzHFW}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FibuSaldoMenge">
<Description>
Saldo Menge Fibu</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {FibuSaldoMenge}=##class(DBFibu.KontoJahr).GetFibuSaldo({Soll},{FibuEBMenge},{FibuUmsatzSMenge},{FibuUmsatzHMenge}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Method name="%OnBeforeSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<Private>1</Private>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	If (Insert = 0) {
		set kontoId = ..%Id()
		set oldSoll = 0
		&sql(SELECT Soll INTO :oldSoll FROM DBFibu.KontoJahr WHERE ID=:kontoId)
		Set ^KontoOldSoll(kontoId) = oldSoll
	}
	
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="%OnAfterSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<Private>1</Private>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	If (Insert = 0) {
		set kontoId = ..%Id()
		set oldSoll = ^KontoOldSoll(kontoId)
		
		if (oldSoll '= ..Soll) {
			set ..FibuEB = ((-1)*..FibuEB)
			set ..FibuEBFW = ((-1)*..FibuEBFW)
			set ..FibuEBMenge = ((-1)*..FibuEBMenge)
			
			set ..FibuBudgetAkt = ((-1)*..FibuBudgetAkt)
			set ..FibuBudgetNext = ((-1)*..FibuBudgetNext)
			set ..FibuVorjahr1 = ((-1)*..FibuVorjahr1)
			set ..FibuVorjahr2 = ((-1)*..FibuVorjahr2)
			set ..FibuBudgetAktFW = ((-1)*..FibuBudgetAktFW)
			set ..FibuBudgetNextFW = ((-1)*..FibuBudgetNextFW)
			set ..FibuVorjahr1FW = ((-1)*..FibuVorjahr1FW)
			set ..FibuVorjahr2FW = ((-1)*..FibuVorjahr2FW)
			set ..FibuBudgetAktMenge = ((-1)*..FibuBudgetAktMenge)
			set ..FibuBudgetNextMenge = ((-1)*..FibuBudgetNextMenge)
			set ..FibuVorjahr1Menge = ((-1)*..FibuVorjahr1Menge)
			set ..FibuVorjahr2Menge = ((-1)*..FibuVorjahr2Menge)
			
		}
		
		if (..Mengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation()) {
			set ..FibuEBMenge = 0
			set ..FibuUmsatzSMenge = 0
			set ..FibuUmsatzHMenge = 0
		}
		
		if (..Mengencode = ##class(DBFibu.Konst).KontoMengeKeineMenge()) {
			set ..Mengentext = ""
		}
		
		KILL ^KontoOldSoll(kontoId)
	}	
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="GetFibuUmsatz">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontoOid:%String,soll:%Boolean,umsatz:%Decimal(SCALE=5),umsatzFW:%Decimal(SCALE=5),umsatzMenge:%Decimal(SCALE=5)</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	Set umsatz = 0
	Set umsatzFW = 0
	Set umsatzMenge = 0
			
	&sql(SELECT sum(tb.Buchungsbetrag-NVL(tb.Mwstbetrag,0)), 
				sum(tb.FwBuchungsbetrag-NVL(tb.FWMwstbetrag,0)),
				sum(tb.Buchungsmenge) InTo :umsatz, :umsatzFW, :umsatzMenge 
			FROM DBFibu.Teilbuchung tb 
			WHERE tb.Hauptkonto = :kontoOid AND 
					tb.Soll = :soll)

	if (SQLCODE '= 0) {
		Set umsatz = 0
		Set umsatzFW = 0
		Set umsatzMenge = 0
	}
					
	Set mwst = 0
	Set mwstFW = 0
	
    &sql(SELECT sum(tb.Mwstbetrag),
    			sum(tb.FWMwstbetrag) InTo :mwst, :mwstFW 
    		FROM DBFibu.Teilbuchung tb 
    		WHERE tb.Mwstkonto = :kontoOid AND 
    				tb.Soll = :soll)
    				
    if (SQLCODE '= 0) {
		Set mwst = 0
		Set mwstFW = 0
	}
	
	Set umsatz = (umsatz+mwst)
	Set umsatzFW = (umsatzFW+mwstFW)
	
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="GetFibuUmsatzPeriode">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontoOid:%String,soll:%Boolean,periode:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	Set umsatz = 0
			
	&sql(SELECT sum(tb.Buchungsbetrag-NVL(tb.Mwstbetrag,0)) InTo :umsatz
			FROM DBFibu.Teilbuchung tb 
			WHERE tb.Hauptkonto = :kontoOid AND 
					tb.Soll = :soll AND tb.Buchungsperiode = :periode)

	if (SQLCODE '= 0) {
		Set umsatz = 0
	}
					
	Set mwst = 0
	
    &sql(SELECT sum(tb.Mwstbetrag) InTo :mwst
    		FROM DBFibu.Teilbuchung tb 
    		WHERE tb.Mwstkonto = :kontoOid AND 
    				tb.Soll = :soll AND tb.Buchungsperiode = :periode)
    				
    if (SQLCODE '= 0) {
		Set mwst = 0
	}
	
	Set umsatz = (umsatz+mwst)
	
	Quit umsatz
]]></Implementation>
</Method>

<Method name="SaldiNeuRechnen">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandJahrOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	set myId = ""
	set buchungMandJahrOid = ""
	set hauptkontoNr = ""
	set gegenkontoNr = ""
	set mwstkontoNr = ""
	set mandHauptkonto = ""
	set mandGegenkonto = ""
	set mandMwstkonto = ""
	
	&sql(DECLARE C5 CURSOR FOR
		 SELECT ID, Buchung->MandantJahr, Hauptkonto->KontoNr, Hauptkonto->MandantJahr, Gegenkonto->KontoNr, Gegenkonto->MandantJahr, Mwstkonto->KontoNr, Mwstkonto->MandantJahr 
		 	InTo :myId, :buchungMandJahrOid, :hauptkontoNr, :mandHauptkonto, :gegenkontoNr, :mandGegenkonto, :mwstkontoNr, :mandMwstkonto
		 FROM DBFibu.Teilbuchung 
		 WHERE Buchung->MandantJahr<>Hauptkonto->MandantJahr OR 
		 		(Gegenkonto IS NOT NULL AND Buchung->MandantJahr<>Gegenkonto->MandantJahr) OR 
		 		(Mwstkonto IS NOT NULL AND Buchung->MandantJahr<>Mwstkonto->MandantJahr))
	
	&sql(OPEN C5)
 	&sql(FETCH C5)
 	While (SQLCODE = 0) {
	 	
	 	set teilbuchung = ##class(DBFibu.Teilbuchung).%OpenId(myId)
	 	
	 	w "buchungMandJahrOid ", buchungMandJahrOid, !
	 	w "mandHauptkonto: ", mandHauptkonto, !
	 	w "hauptkontoNr: ", hauptkontoNr, !
	 	
	 	if ((mandHauptkonto'=buchungMandJahrOid) && (hauptkontoNr'="") && (hauptkontoNr'=$c(0))) {
	 		w "im Hauptkonto", !
	 		set kontoOid = ##class(DBFibu.KontoJahr).GetOidByKontoNrJahr(buchungMandJahrOid,hauptkontoNr)
	 		if ((kontoOid'="") && (kontoOid'=$c(0))) {
	 			do teilbuchung.HauptkontoSetObjectId(kontoOid)
	 		}
	 	}
	 	if ((mandGegenkonto'=buchungMandJahrOid) && (gegenkontoNr'="") && (gegenkontoNr'=$c(0))) {
	 		set kontoOid = ##class(DBFibu.KontoJahr).GetOidByKontoNrJahr(buchungMandJahrOid,gegenkontoNr)
	 		if ((kontoOid'="") && (kontoOid'=$c(0))) {
	 			do teilbuchung.GegenkontoSetObjectId(kontoOid)
	 		}
	 	}
	 	if ((mandMwstkonto'=buchungMandJahrOid) && (mwstkontoNr'="") && (mwstkontoNr'=$c(0))) {
	 		set kontoOid = ##class(DBFibu.KontoJahr).GetOidByKontoNrJahr(buchungMandJahrOid,mwstkontoNr)
	 		if ((kontoOid'="") && (kontoOid'=$c(0))) {
	 			do teilbuchung.MwstkontoSetObjectId(kontoOid)
	 		}
	 	}
	 	
	 	set cs = teilbuchung.%Save()
	 	if ($$$ISERR(cs)) {
		 	w "Error SaldiNeuRechnen, Mandant korrigieren: ", cs, !
	 	}
 		&sql(FETCH C5)
 	}
    
	&sql(CLOSE C5)
	
	set myId = ""
	
	&sql(DECLARE C4 CURSOR FOR
		 SELECT ID InTo :myId
		 FROM DBFibu.Buchung b 
		 WHERE (SELECT Count(ID) 
		 		FROM DBFibu.Teilbuchung t 
		 		WHERE t.Buchung=b.ID) < 2)
	
	&sql(OPEN C4)
 	&sql(FETCH C4)
 	While (SQLCODE = 0) {
	 	set cs = ##class(DBFibu.Buchung).%DeleteId(myId)
	 	if ($$$ISERR(cs)) {
		 	w "Error SaldiNeuRechnen, Einseitige Buchungen löschen: ", cs, !
	 	}
 		&sql(FETCH C4)
 	}
    
    &sql(CLOSE C4)
	
	
	set myId = ""
	
	&sql(DECLARE C1 CURSOR FOR
  		 SELECT ID InTo :myId
  		 FROM DBFibu.KontoJahr 
  		 WHERE MandantJahr = :mandJahrOid)
  		 
 	&sql(OPEN C1)
 	&sql(FETCH C1)
 	While (SQLCODE = 0) {
		Set konto = ##class(DBFibu.KontoJahr).%OpenId(myId)
		
		set umsatz = 0
		set umsatzFW = 0
		set umsatzMenge = 0
		
		do ##class(DBFibu.KontoJahr).GetFibuUmsatz(myId, 1, .umsatz, .umsatzFw, .umsatzMenge)
		
		Set konto.FibuUmsatzS = umsatz
		Set konto.FibuUmsatzSMenge = umsatzMenge
		Set konto.FibuUmsatzSFW = umsatzFw
		
		do ##class(DBFibu.KontoJahr).GetFibuUmsatz(myId, 0, .umsatz, .umsatzFw, .umsatzMenge)
		
		Set konto.FibuUmsatzH = umsatz
		Set konto.FibuUmsatzHMenge = umsatzMenge
		Set konto.FibuUmsatzHFW = umsatzFw
		do konto.%Save() 
        
    	&sql(FETCH C1)
 	}
    
	&sql(CLOSE C1)
	
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="GetNextBelegNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>incr:%Boolean,kontoOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set konto = ##class(DBFibu.KontoJahr).%OpenId(kontoOid)
	
	set lbNr = (konto.LetzteBelegnr+1)
	set prefix = konto.PrefixBelegnr
	
	if (incr) {
		set konto.LetzteBelegnr = lbNr
		do konto.%Save()
	}
	
	set res = lbNr
	if ((prefix '= "") && (prefix '= $c(0))) {
		set res = (prefix_lbNr)
	}
	quit res
]]></Implementation>
</Method>

<Method name="GenerateKurznamen">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandOid:%String</FormalSpec>
<Implementation><![CDATA[
	&sql(UPDATE 
				DBFibu.KontoJahr 
			SET 
				Kurzname = LEFT(KontoBezeichnung, 15) 
			WHERE 
				LENGTH(TRIM(NVL(Kurzname, "")))<=0 AND
				MandantJahr = :mandOid
		)
]]></Implementation>
</Method>

<Method name="CopyKonto">
<ClassMethod>1</ClassMethod>
<FormalSpec>srcOid:%String,neueKtonr:%String,neueBez:%String,neueBez2:%String,benutzer:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set srcKonto = ##class(DBFibu.KontoJahr).%OpenId(srcOid)
	set oldKtonr = srcKonto.KontoNr
	Set newKonto = srcKonto.%ConstructClone(-1)
	set newKonto.KontoNr = neueKtonr
		
	set newKopfKontoOid = ##class(DBFibu.Konto).GetOidByKontoNr(srcKonto.Konto.Mandant,neueKtonr)
	if ((newKopfKontoOid="") || (newKopfKontoOid=$c(0))) {
		set newKopfKonto = ##class(DBFibu.Konto).%New()
		set newKopfKonto.KontoNr = neueKtonr
		set newKopfKonto.Mandant = srcKonto.Konto.Mandant
		do newKopfKonto.%Save()
		
		set newKopfKontoOid = newKopfKonto.%Id()
	}
	
	do newKonto.KontoSetObjectId(newKopfKontoOid)
	set newKonto.Totalisierungskey = neueKtonr_$EXTRACT(srcKonto.Totalisierungskey,$L(oldKtonr)+1,$L(srcKonto.Totalisierungskey))
	set newKonto.KontoBezeichnung = neueBez
	set newKonto.Kurzname = $PIECE(neueBez, "", 0, 15)
	set newKonto.KontoBezeichnung2 = neueBez2
	set newKonto.Benutzernamen = benutzer
	set newKonto.Erfassungsdatum = +$h
	set newKonto.Konvertierungskonto = ""
	set newKonto.EBGesperrt = 0
	set newKonto.FibuEB = 0
	set newKonto.FibuEBFW = 0
	set newKonto.FibuEBMenge = 0	
	set newKonto.FibuUmsatzS = 0
	set newKonto.FibuUmsatzH = 0
	set newKonto.FibuUmsatzSFW = 0
	set newKonto.FibuUmsatzHFW = 0
	set newKonto.FibuUmsatzSMenge = 0
	set newKonto.FibuUmsatzHMenge = 0
	
	set newKonto.FibuBudgetAkt = 0
	set newKonto.FibuBudgetNext = 0
	set newKonto.FibuVorjahr1 = 0
	set newKonto.FibuVorjahr2 = 0
	set newKonto.FibuBudgetAktFW = 0
	set newKonto.FibuBudgetNextFW = 0
	set newKonto.FibuVorjahr1FW = 0
	set newKonto.FibuVorjahr2FW = 0
	set newKonto.FibuBudgetAktMenge = 0
	set newKonto.FibuBudgetNextMenge = 0
	set newKonto.FibuVorjahr1Menge = 0
	set newKonto.FibuVorjahr2Menge = 0

	set res = newKonto.%Save()
	set srcKonto = ""
	set id = newKonto.%Id()
	set newKonto = ""
	Quit id
]]></Implementation>
</Method>

<Method name="GetFibuSaldo">
<ClassMethod>1</ClassMethod>
<FormalSpec>soll,eb,umsatzS,umsatzH</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldo = 0
	if ($Data(soll) && $Data(eb) && $Data(umsatzS) && $Data(umsatzH)) {
		TRY {
			if (soll=1) {
				set saldo=(eb + umsatzS - umsatzH)
			} else {
				set saldo=(eb + umsatzH - umsatzS)
			}
		} CATCH exceptionvar {
			Write "Exception"
		}
	}
	Quit saldo
]]></Implementation>
</Method>

<Method name="GetAnzahlBuchkto">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set anz = 0
	&sql(SELECT COUNT(ID) InTo :anz FROM DBFibu.KontoJahr WHERE MandantJahr=:mandOid AND Kontotyp = 0)
	if (SQLCODE=0) {
		Quit anz
	} else {
		Quit 0
	}
]]></Implementation>
</Method>

<Property name="FibuBudgetAkt">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuBudgetNext">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuVorjahr1">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuVorjahr2">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuBudgetAktFW">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuBudgetNextFW">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuVorjahr1FW">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuVorjahr2FW">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuBudgetAktMenge">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuBudgetNextMenge">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuVorjahr1Menge">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FibuVorjahr2Menge">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="ProjektKostenstelle">
<Type>DBIntrap.SD.Projekt</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoJahrProjektKostenstelle</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="ProjektKostenstelle"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="ProjektGegenkonto">
<Type>DBIntrap.SD.Projekt</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoJahrProjektGegenkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="ProjektGegenkonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Method name="CheckIsMwstKonto">
<ClassMethod>1</ClassMethod>
<FormalSpec>steuerungscode:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[	Quit (steuerungscode = "S0")
]]></Implementation>
</Method>

<Method name="CheckIsBilanzKonto">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontonr:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[	Quit (+$EXTRACT(kontonr,1) < 3)
]]></Implementation>
</Method>

<Method name="DeleteUnusedKonti">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<Implementation><![CDATA[
	Set rs = ##class(%Library.ResultSet).%New("DBFibu.AF.KontoAF:ListeIdsGesamt")
    Set sc=rs.%Execute(MandantOid)
    
    while rs.Next(.sc) {
		set id = rs.Data("ID")
		set konto = ##class(DBFibu.KontoJahr).%OpenId(id)
		
		set ew = ((+konto.FibuEB = 0) && (+konto.FibuUmsatzS = 0) && (+konto.FibuUmsatzH = 0)  && (+konto.FibuSaldo = 0))
				
		set fw = ((+konto.FibuEBFW = 0) && (+konto.FibuUmsatzSFW = 0) && (+konto.FibuUmsatzHFW = 0)  && (+konto.FibuSaldoFW = 0))
		
		set menge = ((+konto.FibuEBMenge = 0) && (+konto.FibuUmsatzSMenge = 0) && (+konto.FibuUmsatzHMenge = 0)  && (+konto.FibuSaldoMenge = 0))
		
		set bebu = ((+konto.BebuEB = 0) && (+konto.BebuUmsatzS = 0) && (+konto.BebuUmsatzH = 0)  && (+konto.BebuSaldo = 0))
		
		set steuercode = ((konto.Steuerungscode = "") || (konto.Steuerungscode = $C(0)))
		
		set abschlusscode = ((konto.Abschlusscodierung = "") || (konto.Abschlusscodierung = $C(0)))
		
		set nullstellung = konto.DruckNullstellen
		
		set buchungskonto = (+konto.Kontotyp = 0)
		
		set budgetAkt = (+konto.FibuBudgetAkt = 0)
		
		set budgetNext = (+konto.FibuBudgetNext = 0)
		
		set budgetAktFW = (+konto.FibuBudgetAktFW = 0)
		
		set budgetNextFW = (+konto.FibuBudgetNextFW = 0)
		
		set budgetAktMenge = (+konto.FibuBudgetAktMenge = 0)
		
		set budgetNextMenge = (+konto.FibuBudgetNextMenge = 0)
		
		set vorjahr1 = (+konto.FibuVorjahr1 = 0)
		
		set vorjahr2 = (+konto.FibuVorjahr2 = 0)
		
		set vorjahr1FW = (+konto.FibuVorjahr1FW = 0)
		
		set vorjahr2FW = (+konto.FibuVorjahr2FW = 0)
		
		set vorjahr1Menge = (+konto.FibuVorjahr1Menge = 0)
		
		set vorjahr2Menge = (+konto.FibuVorjahr2Menge = 0)
		
		if (budgetAkt && budgetNext && budgetAktFW && budgetNextFW && budgetAktMenge &&	budgetNextMenge && vorjahr1 && vorjahr2 && vorjahr1FW && vorjahr2FW && vorjahr1Menge && vorjahr2Menge && ew && fw && menge && bebu && steuercode && abschlusscode && 'nullstellung && buchungskonto) {
			k konto
			set status = ##class(DBFibu.KontoJahr).%DeleteId(id)
		} else {
			k konto
		}		
	}	
	Quit sc
]]></Implementation>
</Method>

<Method name="CopyKontenstammJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>vonMandantJahrOid:%String,nachMandantJahrOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	set oid = ""
    
	set nachMandantJahr = ##class(DBCore.MandantJahr).%OpenId(nachMandantJahrOid)
	set nachMandantOid = nachMandantJahr.Mandant
    
	w "NachMandantOid:"_nachMandantOid,!

	&sql(DECLARE CopyKontenstammJahrCursor CURSOR FOR
       SELECT ID INTO :oid 
       FROM DBFibu.KontoJahr 
       WHERE MandantJahr = :vonMandantJahrOid)

    &sql(OPEN CopyKontenstammJahrCursor)
    
    FOR 
    { 
	    &sql(FETCH CopyKontenstammJahrCursor)
	    QUIT:SQLCODE  
    
	    set kontoJahr = ##class(DBFibu.KontoJahr).%OpenId(oid)
    
	    set kontoNeu = kontoJahr.%ConstructClone(-1)
    
	    set konto = ##class(DBFibu.Konto).%New()
	    set konto.KontoNr = kontoJahr.Konto.KontoNr
	    set konto.Mandant = nachMandantOid
	    set status = konto.%Save()
		if ($$$ISERR(status)) {
			w "Fehler beim Speichern des Kontos: "_status,!
		}
    
	    do kontoNeu.KontoSetObjectId(konto.%Id())
	    do kontoNeu.MandantJahrSetObjectId(nachMandantJahrOid)
	    //do kontoNeu.KontoSetObjectId(kontoJahr.Konto.%Id())
    
	    set mwst1 = 0
	  	if (kontoJahr.Mwst '= "") {
			set mwst1 = kontoJahr.Mwst.MwstCode
	   	}
	   	set newMwst1oid = ##class(DBFibu.SD.Mwst).GetMwstOidByCode(nachMandantOid,mwst1)

	   	if (newMwst1oid '= "") {
			do kontoNeu.MwstSetObjectId(newMwst1oid)
	   	} else {
			set kontoNeu.Mwst = ""
	   	}

	   	set mwst2 = 0
	   	if (kontoJahr.MwstAlternativ '= "") {
			set mwst2 = kontoJahr.MwstAlternativ.MwstCode
	   	}
	   	set newMwst2oid = ##class(DBFibu.SD.Mwst).GetMwstOidByCode(nachMandantOid,mwst2)

	   	if (newMwst2oid '= "") {
			do kontoNeu.MwstAlternativSetObjectId(newMwst2oid)
	   	} else {
	    	set kontoNeu.MwstAlternativ = ""
	   	}
	   	set fw = 0
	   	if (kontoJahr.Fremdwaehrung '= "") {
			set fw = kontoJahr.Fremdwaehrung.FWCode
	   	}
	   	set newFw = ##class(DBFibu.SD.Fremdwaehrung).GetFWOidByCode(nachMandantOid,fw)

	   	if (newFw '= "") {
			do kontoNeu.FremdwaehrungSetObjectId(newFw)
	   	} else {
			set kontoNeu.Fremdwaehrung = ""
	   	}

		set kontoNeu.Erfassungsdatum = +$h
	   	set kontoNeu.FibuEB = 0
	   	set kontoNeu.FibuEBFW = 0
	   	set kontoNeu.FibuEBMenge = 0 
	   	set kontoNeu.FibuUmsatzS = 0
	   	set kontoNeu.FibuUmsatzH = 0
	   	set kontoNeu.FibuUmsatzSFW = 0
	   	set kontoNeu.FibuUmsatzHFW = 0
	   	set kontoNeu.FibuUmsatzSMenge = 0
	   	set kontoNeu.FibuUmsatzHMenge = 0
	   	set kontoNeu.FibuBudgetAkt = 0
	   	set kontoNeu.FibuBudgetNext = 0
	   	set kontoNeu.FibuVorjahr1 = 0
	   	set kontoNeu.FibuVorjahr2 = 0
	   	set kontoNeu.FibuBudgetAktFW = 0
	   	set kontoNeu.FibuBudgetNextFW = 0
	   	set kontoNeu.FibuVorjahr1FW = 0
	   	set kontoNeu.FibuVorjahr2FW = 0
	   	set kontoNeu.FibuBudgetAktMenge = 0
	   	set kontoNeu.FibuBudgetNextMenge = 0
	   	set kontoNeu.FibuVorjahr1Menge = 0
		set kontoNeu.FibuVorjahr2Menge = 0
    
		set status = kontoNeu.%Save()
	   	if ($$$ISERR(status)) {
	    	w "Fehler beim Speichern des Kontos: "_status,!
	   	}
                
	}
	&sql(CLOSE CopyKontenstammJahrCursor)

	Quit $$$OK
]]></Implementation>
</Method>

<Method name="ResetKonti">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandantOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	Set strSQL="SELECT ID FROM DBFibu.KontoJahr WHERE MandantJahr = "_mandantOid
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
		while (rs.Next(.sc)) {
			Set id=rs.Data("ID")
			Set konto = ##class(DBFibu.KontoJahr).%OpenId(id)
			Set konto.EBGesperrt = 0
			Set konto.FibuEB = 0
			Set konto.FibuEBFW = 0
			Set konto.FibuEBMenge = 0
			Set konto.BebuEB = 0
			Set konto.LetzteBelegnr = 0
			do konto.%Save() 
		}
    }
        
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="MwstCodeWechseln">
<ClassMethod>1</ClassMethod>
<FormalSpec>mandantOid:%String,vonKontoNr:%String,bisKontoNr:%String,vonMwstOid:%String,nachMwstOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	Set strSQL="SELECT ID FROM DBFibu.KontoJahr WHERE MandantJahr="_mandantOid_" AND KontoNr BETWEEN "_vonKontoNr_" AND "_bisKontoNr_" AND NVL(Mwst,'')='"_vonMwstOid_"'"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
	    Set mwst = ##class(DBFibu.SD.Mwst).%OpenId(nachMwstOid)
		while (rs.Next(.sc)) {
			Set id=rs.Data("ID")
			Set konto = ##class(DBFibu.KontoJahr).%OpenId(id)
			Set konto.Mwst = mwst
			do konto.%Save() 
		}
    }
        
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="GetAnzahlBuchungen">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontoOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set anzahl = 0
	
	Set strSQL="SELECT COUNT(ID) As Anz FROM DBFibu.Teilbuchung WHERE Hauptkonto='"_kontoOid_"'"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
		Set sc = rs.Next(.sc)
		IF $$$ISOK(sc) {
			Set anzahl=rs.Data("Anz")
		}
    }
       
    Set strSQL="SELECT COUNT(ID) As Anz FROM DBFibu.Teilbuchung WHERE Mwstkonto='"_kontoOid_"'"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
		Set sc = rs.Next(.sc)
		IF $$$ISOK(sc) {
			Set anzahl = (anzahl + rs.Data("Anz"))
		}
    }
     
	Quit anzahl
]]></Implementation>
</Method>

<Method name="GetSaldovortrag">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,vonDatum:%Date,bisDatum:%Date,isMwstKonto:%Boolean</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
	
	if (isMwstKonto) {
		&sql(SELECT SUM(MwstbetragSH) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Mwstkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum})
		
	} else {
		&sql(SELECT SUM(BuchungsbetragSH) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Hauptkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum})
		
	}
	
	if (SQLCODE '= 0) {
		set saldovortrag=0
	}
    
    Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldovortragUmsatzSoll">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,vonDatum:%Date,bisDatum:%Date,isMwstKonto:%Boolean</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
	
	if (isMwstKonto) {
		&sql(SELECT SUM(Mwstbetrag) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Mwstkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=1)
		
	} else {
		&sql(SELECT SUM(Buchungsbetrag) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Hauptkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=1)
		
	}
	
    if (SQLCODE '= 0) {
		set saldovortrag=0
	}
	
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldovortragUmsatzHaben">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,vonDatum:%Date,bisDatum:%Date,isMwstKonto:%Boolean</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	
	set saldovortrag = 0
	
	if (isMwstKonto) {
		&sql(SELECT SUM(MwstBetrag) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Mwstkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=0)
		
	} else {
		&sql(SELECT SUM(Buchungsbetrag) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Hauptkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=0)
		
	}
	
	if (SQLCODE '= 0) {
		set saldovortrag=0
	}
    
    Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldoPerValutadatum">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,bisDatum:%Date,isMwstKonto:%Boolean,eb:%Decimal</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
			
	if (isMwstKonto) {
		Set strSQL="SELECT SUM(NVL(DBFibu.Teilbuchung_GetBetragBySHCodes(Mwstkonto, Soll, MwstBetrag, Mwst),0)) AS BetragSH FROM DBFibu.Teilbuchung WHERE Mwstkonto='"_KontoOid_"' AND Valutadatum <= '"_bisDatum_"'"
		//Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	} else {
		Set strSQL="SELECT (SUM(NVL(DBFibu.Teilbuchung_GetBetragBySHCodes(Hauptkonto, Soll, Buchungsbetrag, Mwst),0)-NVL(DBFibu.Teilbuchung_GetBetragBySHCodes(Hauptkonto, Soll, MwstBetrag, Mwst),0))) AS BetragSH FROM DBFibu.Teilbuchung WHERE Hauptkonto='"_KontoOid_"' AND Valutadatum <= '"_bisDatum_"'"
		Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	}
	
	set saldvortrag = saldovortrag + eb
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
		Set sc = rs.Next(.sc)
		IF $$$ISOK(sc) {
			Set saldovortrag=(eb+rs.Data("BetragSH"))
		}
    }
    
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldoPerValutadatumFast">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,kontoSoll:%Boolean,bisDatum:%Date,isMwstKonto:%Boolean,eb:%Decimal</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
			
	if (isMwstKonto) {
		&sql(SELECT SUM(NVL(DBFibu.Teilbuchung_GetBetragBySHCodeKonto(Soll, :kontoSoll, MwstBetrag),0)) INTO :saldovortrag FROM DBFibu.Teilbuchung WHERE Mwstkonto=:KontoOid AND Valutadatum <= {d :bisDatum})
	} else {
		&sql(SELECT (SUM(NVL(DBFibu.Teilbuchung_GetBetragBySHCodeKonto(Soll, :kontoSoll, Buchungsbetrag),0)-NVL(DBFibu.Teilbuchung_GetBetragBySHCodeKonto(Soll, :kontoSoll, MwstBetrag),0))) INTO :saldovortrag FROM DBFibu.Teilbuchung WHERE Hauptkonto=:KontoOid  AND Valutadatum <= {d :bisDatum})
	}
	if (SQLCODE '= 0) {
		w "CODE:"_SQLCODE,!
		set saldvortrag = 0
	}
	
	set saldovortrag = saldovortrag + eb
    
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldoFWPerValutadatum">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,bisDatum:%Date,isMwstKonto:%Boolean,eb:%Decimal</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
			
	if (isMwstKonto) {
		Set strSQL="SELECT SUM(NVL(DBFibu.Teilbuchung_GetBetragBySHCodes(Mwstkonto, Soll, FWMwstBetrag, Mwst),0)) AS BetragSH FROM DBFibu.Teilbuchung WHERE Mwstkonto='"_KontoOid_"' AND Valutadatum <= '"_bisDatum_"'"
		Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	} else {
		Set strSQL="SELECT (SUM(NVL(DBFibu.Teilbuchung_GetBetragBySHCodes(Hauptkonto, Soll, FWBuchungsbetrag, Mwst),0)-NVL(DBFibu.Teilbuchung_GetBetragBySHCodes(Hauptkonto, Soll, FWMwstBetrag, Mwst),0))) AS BetragSH FROM DBFibu.Teilbuchung WHERE Hauptkonto='"_KontoOid_"' AND Valutadatum <= '"_bisDatum_"'"
		Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	}
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
		Set sc = rs.Next(.sc)
		IF $$$ISOK(sc) {
			Set saldovortrag=(eb+rs.Data("BetragSH"))
		}
    }
    
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldovortragFW">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,vonDatum:%Date,bisDatum:%Date,isMwstKonto:%Boolean</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
	
	if (isMwstKonto) {
		&sql(SELECT SUM(NVL(FWBetragMwstSH,0)) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Mwstkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum})
		
	} else {
		&sql(SELECT SUM(NVL(FWBetragSH,0)-NVL(FWBetragMwstSHnachHauptkonto,0)) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Hauptkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum})
		
	}
	
	if (SQLCODE '= 0) {
		set saldovortrag=0
	}
    
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldovortragUmsatzSollFW">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,vonDatum:%Date,bisDatum:%Date,isMwstKonto:%Boolean</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set saldovortrag = 0
	
	if (isMwstKonto) {
		&sql(SELECT SUM(NVL(FWMwstBetrag,0)) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Mwstkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=1)
		
	} else {
		&sql(SELECT SUM(NVL(FWBuchungsbetrag,0)-NVL(FWMwstBetrag,0)) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Hauptkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=1)
		
	}
	
	if (SQLCODE '= 0) {
		set saldovortrag=0
	}
    
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetSaldovortragUmsatzHabenFW">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoOid:%String,vonDatum:%Date,bisDatum:%Date,isMwstKonto:%Boolean</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	
	set saldovortrag = 0
	
	if (isMwstKonto) {
		&sql(SELECT SUM(NVL(FWMwstBetrag,0)) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Mwstkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=0)
		
	} else {
		&sql(SELECT SUM(NVL(FWBuchungsbetrag,0)-NVL(FWMwstBetrag,0)) Into :saldovortrag 
			 FROM DBFibu.Teilbuchung 
			 WHERE Hauptkonto=:KontoOid AND 
			 	   Valutadatum BETWEEN {d :vonDatum} AND {d :bisDatum} AND 
			 	   Soll=0) 
		
	}
	
	if (SQLCODE '= 0) {
		set saldovortrag=0
	}
    
	Quit saldovortrag
]]></Implementation>
</Method>

<Method name="GetOidByKontoOidJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantJahrOid:%String,KontoOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE MandantJahr = :MandantJahrOid AND 
					Konto = :KontoOid)
	if (SQLCODE'=0) {
		set oid = ""
	}
	Quit oid
]]></Implementation>
</Method>

<Method name="GetKontoOidByKontoJahrOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>KontoJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT Konto INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE ID = :KontoJahrOid)
	if (SQLCODE'=0) {
		set oid = ""
	}
	Quit oid
]]></Implementation>
</Method>

<Method name="CopyKontiToMandJahrOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>vonMandJahrOid:%String,nachMandJahrOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
    set oid = ""
    
    &sql(DECLARE CopyCursor CURSOR FOR
           SELECT ID INTO :oid 
           FROM DBFibu.KontoJahr 
           WHERE MandantJahr = :vonMandJahrOid)

    &sql(OPEN CopyCursor)
    
    FOR 
    { 
    	&sql(FETCH CopyCursor)
    	QUIT:SQLCODE  
    
		set kontoJahr = ##class(DBFibu.KontoJahr).%OpenId(oid)
		set kontoNeu = kontoJahr.%ConstructClone(-1)
		do kontoNeu.MandantJahrSetObjectId(nachMandJahrOid)
		do kontoNeu.KontoSetObjectId(kontoJahr.Konto.%Id())
    
    	set kontoNeu.Erfassungsdatum = +$h
       	set kontoNeu.FibuEB = 0
       	set kontoNeu.FibuEBFW = 0
       	set kontoNeu.FibuEBMenge = 0 
       	set kontoNeu.FibuUmsatzS = 0
       	set kontoNeu.FibuUmsatzH = 0
       	set kontoNeu.FibuUmsatzSFW = 0
       	set kontoNeu.FibuUmsatzHFW = 0
       	set kontoNeu.FibuUmsatzSMenge = 0
       	set kontoNeu.FibuUmsatzHMenge = 0
       	set kontoNeu.FibuBudgetAkt = 0
       	set kontoNeu.FibuBudgetNext = 0
       	set kontoNeu.FibuVorjahr1 = 0
       	set kontoNeu.FibuVorjahr2 = 0
       	set kontoNeu.FibuBudgetAktFW = 0
       	set kontoNeu.FibuBudgetNextFW = 0
       	set kontoNeu.FibuVorjahr1FW = 0
       	set kontoNeu.FibuVorjahr2FW = 0
       	set kontoNeu.FibuBudgetAktMenge = 0
       	set kontoNeu.FibuBudgetNextMenge = 0
       	set kontoNeu.FibuVorjahr1Menge = 0
       	set kontoNeu.FibuVorjahr2Menge = 0
                   
    	set status = kontoNeu.%Save()
		if ($$$ISERR(status)) {
			w "Fehler beim Speichern des Kontos: "_status,!
		}
                    
    }
    
    &sql(CLOSE CopyCursor)
    
    Quit $$$OK
]]></Implementation>
</Method>

<Method name="MoveKonto">
<ClassMethod>1</ClassMethod>
<FormalSpec>srcOid:%String,neueKtonr:%String,neueBez:%String,neuerKurzname:%String,soll:%Boolean</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set ret = ""
	set srcKonto = ##class(DBFibu.KontoJahr).%OpenId(srcOid)
	if ((srcKonto'="") && (srcKonto'=$c(0))) {
		set kopierteOid = ##class(DBFibu.KontoJahr).CopyKonto(srcOid,neueKtonr,neueBez,srcKonto.KontoBezeichnung2,srcKonto.Benutzernamen)
		set kopiertesKonto = ##class(DBFibu.KontoJahr).%OpenId(kopierteOid)
		set kopiertesKonto.Soll = soll
		set kopiertesKonto.Kurzname = neuerKurzname
		do kopiertesKonto.%Save()
		set ret = kopiertesKonto.%Id()
		
		// Gegenkonto ändern
		&sql(DECLARE MoveKontoGegenkontoCursor CURSOR FOR
			SELECT ID INTO :oid 
			FROM DBFibu.KontoJahr 
			WHERE Gegenkonto = :srcOid)
 
		&sql(OPEN MoveKontoGegenkontoCursor)
	
		FOR { &sql(FETCH MoveKontoGegenkontoCursor)
	    	QUIT:SQLCODE  
    	
	    	set kontoJahr = ##class(DBFibu.KontoJahr).%OpenId(oid)
	    	do kontoJahr.GegenkontoSetObjectId(kopierteOid)
    	
	    	set status = kontoNeu.%Save()
			if ($$$ISERR(status)) {
		    	w "Fehler beim Speichern des Kontos: "_status,!
			}
	    	
		}
	
		&sql(CLOSE MoveKontoGegenkontoCursor)
		
		// Hauptkonto - Buchungen ändern
		&sql(DECLARE MoveTbHauptkontoCursor CURSOR FOR
			SELECT ID INTO :oid 
			FROM DBFibu.Teilbuchung 
			WHERE Hauptkonto = :srcOid)
 
		&sql(OPEN MoveTbHauptkontoCursor)
	
		FOR { &sql(FETCH MoveTbHauptkontoCursor)
	    	QUIT:SQLCODE  
    	
	    	set tb = ##class(DBFibu.Teilbuchung).%OpenId(oid)
	    	do tb.HauptkontoSetObjectId(kopierteOid)
    	
	    	set status = tb.%Save()
			if ($$$ISERR(status)) {
		    	w "Fehler beim Speichern der Teilbuchung: "_status,!
			}
	    	
		}
	
		&sql(CLOSE MoveTbHauptkontoCursor)
		
		// Gegenkonto - Buchungen ändern
		&sql(DECLARE MoveTbGegenkontoCursor CURSOR FOR
			SELECT ID INTO :oid 
			FROM DBFibu.Teilbuchung 
			WHERE Hauptkonto = :srcOid)
 
		&sql(OPEN MoveTbGegenkontoCursor)
	
		FOR { &sql(FETCH MoveTbGegenkontoCursor)
	    	QUIT:SQLCODE  
    	
	    	set tb = ##class(DBFibu.Teilbuchung).%OpenId(oid)
	    	do tb.GegenkontoSetObjectId(kopierteOid)
    	
	    	set status = tb.%Save()
			if ($$$ISERR(status)) {
		    	w "Fehler beim Speichern der Teilbuchung: "_status,!
			}
	    	
		}
		
		&sql(CLOSE MoveTbGegenkontoCursor)
		
		// Mwstkonto - Buchungen ändern
		&sql(DECLARE MoveTbMwstkontoCursor CURSOR FOR
			SELECT ID INTO :oid 
			FROM DBFibu.Teilbuchung 
			WHERE Mwstkonto = :srcOid)
 
		&sql(OPEN MoveTbMwstkontoCursor)
	
		FOR { &sql(FETCH MoveTbMwstkontoCursor)
	    	QUIT:SQLCODE  
    	
	    	set tb = ##class(DBFibu.Teilbuchung).%OpenId(oid)
	    	do tb.MwstkontoSetObjectId(kopierteOid)
    	
	    	set status = tb.%Save()
			if ($$$ISERR(status)) {
		    	w "Fehler beim Speichern der Teilbuchung: "_status,!
			}
	    	
		}
	
		&sql(CLOSE MoveTbMwstkontoCursor)
		
		k srcKonto
		
		set status = ##class(DBFibu.KontoJahr).%DeleteId(srcOid)
		if ($$$ISERR(status)) {
	    	w "Fehler beim Löschen des Kontos: "_status,!
		}
	    	
	}
	
	Quit ret
]]></Implementation>
</Method>

<Method name="SetPeriodeAktuell">
<FormalSpec>periode:%Integer,wert:%Decimal</FormalSpec>
<Implementation><![CDATA[	d ..PeriodenAktuell.SetAt(wert, periode)
]]></Implementation>
</Method>

<Method name="GetPeriodeAktuell">
<FormalSpec>periode:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[	quit ..PeriodenAktuell.GetAt(periode)
]]></Implementation>
</Method>

<Method name="SetPeriodeVorjahr">
<FormalSpec>periode:%Integer,wert:%Decimal</FormalSpec>
<Implementation><![CDATA[	d ..PeriodenVorjahr.SetAt(wert, periode)
]]></Implementation>
</Method>

<Method name="GetPeriodeVorjahr">
<FormalSpec>periode:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[	quit ..PeriodenVorjahr.GetAt(periode)
]]></Implementation>
</Method>

<Method name="SetPeriodeBudgetAkt">
<FormalSpec>periode:%Integer,wert:%Decimal</FormalSpec>
<Implementation><![CDATA[	d ..PeriodenBudgetAkt.SetAt(wert, periode)
]]></Implementation>
</Method>

<Method name="GetPeriodeBudgetAkt">
<FormalSpec>periode:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[	quit ..PeriodenBudgetAkt.GetAt(periode)
]]></Implementation>
</Method>

<Method name="SetPeriodeBudgetNeu">
<FormalSpec>periode:%Integer,wert:%Decimal</FormalSpec>
<Implementation><![CDATA[	d ..PeriodenBudgetNeu.SetAt(wert, periode)
]]></Implementation>
</Method>

<Method name="GetPeriodeBudgetNeu">
<FormalSpec>periode:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[	quit ..PeriodenBudgetNeu.GetAt(periode)
]]></Implementation>
</Method>

<Method name="SetPeriodeBudgetGew">
<FormalSpec>periode:%Integer,wert:%Decimal</FormalSpec>
<Implementation><![CDATA[	d ..PeriodenBudgetGew.SetAt(wert, periode)
]]></Implementation>
</Method>

<Method name="GetPeriodeBudgetGew">
<FormalSpec>periode:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[	quit ..PeriodenBudgetGew.GetAt(periode)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("Jahr")</DataLocation>
<DefaultData>KontoJahrDefaultData</DefaultData>
<IdLocation>^DBFibu.KontoC("Jahr")</IdLocation>
<IndexLocation>^DBFibu.KontoJahrI</IndexLocation>
<StreamLocation>^DBFibu.KontoJahrS</StreamLocation>
<Data name="KontoJahrDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>MandantJahr</Value>
</Value>
<Value name="3">
<Value>KontoNr</Value>
</Value>
<Value name="4">
<Value>Kurzname</Value>
</Value>
<Value name="5">
<Value>Totalisierungskey</Value>
</Value>
<Value name="6">
<Value>Soll</Value>
</Value>
<Value name="7">
<Value>KontoBezeichnung</Value>
</Value>
<Value name="8">
<Value>KontoBezeichnung2</Value>
</Value>
<Value name="9">
<Value>Kontotyp</Value>
</Value>
<Value name="10">
<Value>Zeilenvorschub</Value>
</Value>
<Value name="11">
<Value>MwstFaktor</Value>
</Value>
<Value name="12">
<Value>PrefixBelegnr</Value>
</Value>
<Value name="13">
<Value>LetzteBelegnr</Value>
</Value>
<Value name="14">
<Value>AutoBelegnr</Value>
</Value>
<Value name="15">
<Value>Mengencode</Value>
</Value>
<Value name="16">
<Value>Mengentext</Value>
</Value>
<Value name="17">
<Value>FibuEB</Value>
</Value>
<Value name="18">
<Value>FibuUmsatzS</Value>
</Value>
<Value name="19">
<Value>FibuUmsatzH</Value>
</Value>
<Value name="20">
<Value>FibuEBMenge</Value>
</Value>
<Value name="21">
<Value>FibuUmsatzSMenge</Value>
</Value>
<Value name="22">
<Value>FibuUmsatzHMenge</Value>
</Value>
<Value name="23">
<Value>EBGesperrt</Value>
</Value>
<Value name="24">
<Value>Buchungsstatus</Value>
</Value>
<Value name="25">
<Value>Benutzernamen</Value>
</Value>
<Value name="26">
<Value>Erfassungsdatum</Value>
</Value>
<Value name="27">
<Value>Drucktyp</Value>
</Value>
<Value name="28">
<Value>Steuerungscode</Value>
</Value>
<Value name="29">
<Value>Abschlusscodierung</Value>
</Value>
<Value name="30">
<Value>FibuEBFW</Value>
</Value>
<Value name="31">
<Value>FibuUmsatzSFW</Value>
</Value>
<Value name="32">
<Value>FibuUmsatzHFW</Value>
</Value>
<Value name="33">
<Value>MwstFaktorAlternativ</Value>
</Value>
<Value name="34">
<Value>Konvertierungskonto</Value>
</Value>
<Value name="35">
<Value>BebuEB</Value>
</Value>
<Value name="36">
<Value>BebuUmsatzS</Value>
</Value>
<Value name="37">
<Value>BebuUmsatzH</Value>
</Value>
<Value name="38">
<Value>BebuSaldo</Value>
</Value>
<Value name="39">
<Value>DruckFett</Value>
</Value>
<Value name="40">
<Value>DruckKursiv</Value>
</Value>
<Value name="41">
<Value>DruckUnterstrichen</Value>
</Value>
<Value name="42">
<Value>DruckRaster</Value>
</Value>
<Value name="43">
<Value>DruckGroesse</Value>
</Value>
<Value name="44">
<Value>DruckNullstellen</Value>
</Value>
<Value name="45">
<Value>BebuErtragsart</Value>
</Value>
<Value name="46">
<Value>BebuKostenstelle</Value>
</Value>
<Value name="47">
<Value>Mwst</Value>
</Value>
<Value name="48">
<Value>Gegenkonto</Value>
</Value>
<Value name="49">
<Value>Fremdwaehrung</Value>
</Value>
<Value name="50">
<Value>MwstAlternativ</Value>
</Value>
<Value name="51">
<Value>FibuBudgetAkt</Value>
</Value>
<Value name="52">
<Value>FibuBudgetNext</Value>
</Value>
<Value name="53">
<Value>FibuVorjahr1</Value>
</Value>
<Value name="54">
<Value>FibuVorjahr2</Value>
</Value>
<Value name="55">
<Value>FibuBudgetAktFW</Value>
</Value>
<Value name="56">
<Value>FibuBudgetNextFW</Value>
</Value>
<Value name="57">
<Value>FibuVorjahr1FW</Value>
</Value>
<Value name="58">
<Value>FibuVorjahr2FW</Value>
</Value>
<Value name="59">
<Value>FibuBudgetAktMenge</Value>
</Value>
<Value name="60">
<Value>FibuBudgetNextMenge</Value>
</Value>
<Value name="61">
<Value>FibuVorjahr1Menge</Value>
</Value>
<Value name="62">
<Value>FibuVorjahr2Menge</Value>
</Value>
<Value name="63">
<Value>ProjektKostenstelle</Value>
</Value>
<Value name="64">
<Value>ProjektGegenkonto</Value>
</Value>
</Data>
<Data name="PeriodenAktuell">
<Attribute>PeriodenAktuell</Attribute>
<Structure>subnode</Structure>
<Subscript>"PeriodenAktuell"</Subscript>
</Data>
<Data name="PeriodenBudgetAkt">
<Attribute>PeriodenBudgetAkt</Attribute>
<Structure>subnode</Structure>
<Subscript>"PeriodenBudgetAkt"</Subscript>
</Data>
<Data name="PeriodenBudgetGew">
<Attribute>PeriodenBudgetGew</Attribute>
<Structure>subnode</Structure>
<Subscript>"PeriodenBudgetGew"</Subscript>
</Data>
<Data name="PeriodenBudgetNeu">
<Attribute>PeriodenBudgetNeu</Attribute>
<Structure>subnode</Structure>
<Subscript>"PeriodenBudgetNeu"</Subscript>
</Data>
<Data name="PeriodenVorjahr">
<Attribute>PeriodenVorjahr</Attribute>
<Structure>subnode</Structure>
<Subscript>"PeriodenVorjahr"</Subscript>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="Abschlusscodierung">
</Property>
<Property name="AutoBelegnr">
</Property>
<Property name="BebuEB">
</Property>
<Property name="BebuErtragsart">
</Property>
<Property name="BebuKostenstelle">
</Property>
<Property name="BebuSaldo">
</Property>
<Property name="BebuUmsatzH">
</Property>
<Property name="BebuUmsatzS">
</Property>
<Property name="Benutzernamen">
</Property>
<Property name="BereichInklKontoCalc">
</Property>
<Property name="BereichTypNrCalc">
</Property>
<Property name="Buchungsstatus">
</Property>
<Property name="DruckFett">
</Property>
<Property name="DruckGroesse">
</Property>
<Property name="DruckKursiv">
</Property>
<Property name="DruckNullstellen">
</Property>
<Property name="DruckRaster">
</Property>
<Property name="DruckUnterstrichen">
</Property>
<Property name="Drucktyp">
</Property>
<Property name="EBGesperrt">
</Property>
<Property name="Erfassungsdatum">
</Property>
<Property name="FibuBudgetAkt">
</Property>
<Property name="FibuBudgetAktFW">
</Property>
<Property name="FibuBudgetAktMenge">
</Property>
<Property name="FibuBudgetNext">
</Property>
<Property name="FibuBudgetNextFW">
</Property>
<Property name="FibuBudgetNextMenge">
</Property>
<Property name="FibuEB">
</Property>
<Property name="FibuEBFW">
</Property>
<Property name="FibuEBMenge">
</Property>
<Property name="FibuSaldo">
</Property>
<Property name="FibuSaldoFW">
</Property>
<Property name="FibuSaldoMenge">
</Property>
<Property name="FibuUmsatzH">
</Property>
<Property name="FibuUmsatzHFW">
</Property>
<Property name="FibuUmsatzHMenge">
</Property>
<Property name="FibuUmsatzS">
</Property>
<Property name="FibuUmsatzSFW">
</Property>
<Property name="FibuUmsatzSMenge">
</Property>
<Property name="FibuVorjahr1">
</Property>
<Property name="FibuVorjahr1FW">
</Property>
<Property name="FibuVorjahr1Menge">
</Property>
<Property name="FibuVorjahr2">
</Property>
<Property name="FibuVorjahr2FW">
</Property>
<Property name="FibuVorjahr2Menge">
</Property>
<Property name="Fremdwaehrung">
</Property>
<Property name="Gegenkonto">
</Property>
<Property name="IsMwstKonto">
</Property>
<Property name="Konto">
</Property>
<Property name="KontoBezeichnung">
</Property>
<Property name="KontoBezeichnung2">
</Property>
<Property name="KontoNr">
</Property>
<Property name="Kontotyp">
</Property>
<Property name="Konvertierungskonto">
</Property>
<Property name="Kurzname">
</Property>
<Property name="LetzteBelegnr">
</Property>
<Property name="MandantJahr">
</Property>
<Property name="Mengencode">
</Property>
<Property name="Mengentext">
</Property>
<Property name="Mwst">
</Property>
<Property name="MwstAlternativ">
</Property>
<Property name="MwstFaktor">
</Property>
<Property name="MwstFaktorAlternativ">
</Property>
<Property name="PrefixBelegnr">
</Property>
<Property name="ProjektGegenkonto">
</Property>
<Property name="ProjektKostenstelle">
</Property>
<Property name="Soll">
</Property>
<Property name="Steuerungscode">
</Property>
<Property name="Totalisierungskey">
</Property>
<Property name="Zeilenvorschub">
</Property>
<Property name="childsub">
</Property>
</Storage>
</Class>


<Class name="DBFibu.MwstAbrechnungDetail">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61858,41859.291874</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Abrechnung">
<Type>DBFibu.MwstAbrechnungKopf</Type>
<Cardinality>parent</Cardinality>
<Inverse>Detail</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Abrechnung"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="AbrechnungIndex">
<Properties>Abrechnung</Properties>
</Index>

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

<Property name="Umsatz">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Steuer">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Method name="GetUmsatzByZifferJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set umsatz = 0
	&sql(SELECT SUM(Umsatz) INTO :umsatz FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung->Mandant = :MandantOid AND Abrechnung->Jahr = :Jahr AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set umsatz = 0
	}
	Quit umsatz
]]></Implementation>
</Method>

<Method name="GetUmsatzByZifferBisQuartal">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,BisQuartal:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set umsatz = 0
	&sql(SELECT SUM(Umsatz) INTO :umsatz FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung->Mandant = :MandantOid AND Abrechnung->Jahr = :Jahr AND Ziffer = :Ziffer AND Abrechnung->Quartal <= :BisQuartal)
	if (SQLCODE'=0) {
		set umsatz = 0
	}
	Quit umsatz
]]></Implementation>
</Method>

<Method name="GetUmsatzByZifferQuartal">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,Quartal:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set umsatz = 0
	&sql(SELECT Umsatz INTO :umsatz FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung->Mandant = :MandantOid AND Abrechnung->Jahr = :Jahr AND Abrechnung->Quartal = :Quartal AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set umsatz = 0
	}
	Quit umsatz
]]></Implementation>
</Method>

<Method name="GetUmsatzByZifferAbrechnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>AbrechnungOid:%String,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set umsatz = 0
	&sql(SELECT Umsatz INTO :umsatz FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung = :AbrechnungOid AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set umsatz = 0
	}
	Quit umsatz
]]></Implementation>
</Method>

<Method name="GetSteuerByZifferJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set steuer = 0
	&sql(SELECT SUM(Steuer) INTO :steuer FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung->Mandant = :MandantOid AND Abrechnung->Jahr = :Jahr AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set steuer = 0
	}
	Quit steuer
]]></Implementation>
</Method>

<Method name="GetSteuerByZifferBisQuartal">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,BisQuartal:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set steuer = 0
	&sql(SELECT SUM(Steuer) INTO :steuer FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung->Mandant = :MandantOid AND Abrechnung->Jahr = :Jahr AND Ziffer = :Ziffer AND Abrechnung->Quartal <= :BisQuartal)
	if (SQLCODE'=0) {
		set steuer = 0
	}
	Quit steuer
]]></Implementation>
</Method>

<Method name="GetSteuerByZifferQuartal">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,Quartal:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set steuer = 0
	&sql(SELECT Steuer INTO :steuer FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung->Mandant = :MandantOid AND Abrechnung->Jahr = :Jahr AND Abrechnung->Quartal = :Quartal AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set steuer = 0
	}
	Quit steuer
]]></Implementation>
</Method>

<Method name="GetSteuerByZifferAbrechnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>AbrechnungOid:%String,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set steuer = 0
	&sql(SELECT Steuer INTO :steuer FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung = :AbrechnungOid AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set steuer = 0
	}
	Quit steuer
]]></Implementation>
</Method>

<Method name="GetOidByZifferAbrechnung">
<ClassMethod>1</ClassMethod>
<FormalSpec>AbrechnungOid:%String,Ziffer:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID INTO :oid FROM DBFibu.MwstAbrechnungDetail WHERE Abrechnung = :AbrechnungOid AND Ziffer = :Ziffer)
	if (SQLCODE'=0) {
		set oid = ""
	}
	Quit oid
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.MwstAbrechnungDetailD</DataLocation>
<DefaultData>MwstAbrechnungDetailDefaultData</DefaultData>
<IdLocation>^DBFibu.MwstAbrechnungDetailD</IdLocation>
<IndexLocation>^DBFibu.MwstAbrechnungDetailI</IndexLocation>
<StreamLocation>^DBFibu.MwstAbrechnungDetailS</StreamLocation>
<Data name="MwstAbrechnungDetailDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Abrechnung</Value>
</Value>
<Value name="3">
<Value>Ziffer</Value>
</Value>
<Value name="4">
<Value>Umsatz</Value>
</Value>
<Value name="5">
<Value>Steuer</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="Abrechnung">
</Property>
<Property name="Steuer">
</Property>
<Property name="Umsatz">
</Property>
<Property name="Ziffer">
</Property>
<Property name="childsub">
</Property>
</Storage>
</Class>


<Class name="DBFibu.MwstAbrechnungKopf">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61858,34047.849338</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

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

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

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

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

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

<Property name="TextZu280">
<Type>%String</Type>
<Parameter name="MAXLEN" value="250"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Detail">
<Type>DBFibu.MwstAbrechnungDetail</Type>
<Cardinality>children</Cardinality>
<Inverse>Abrechnung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="Buchung">
<Type>DBFibu.Buchung</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstAbrechnung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Method name="DeleteAbrechnungByQuartal">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,Quartal:%Integer</FormalSpec>
<Implementation><![CDATA[	&sql(DELETE FROM DBFibu.MwstAbrechnungKopf WHERE Mandant = :MandantOid AND Jahr = :Jahr AND Quartal = :Quartal)
]]></Implementation>
</Method>

<Method name="GetAbrechnungOidByQuartal">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,Quartal:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set oid = ""
	&sql(SELECT ID into :oid FROM DBFibu.MwstAbrechnungKopf WHERE Mandant = :MandantOid AND Jahr = :Jahr AND Quartal = :Quartal)
	if (SQLCODE'=0) {
		Set oid = ""
	}
	quit oid
]]></Implementation>
</Method>

<Method name="%OnDelete">
<Description>
[Previously private]</Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	Set strSQL="UPDATE DBFibu.Buchung SET MwstAbrechnung = NULL WHERE MwstAbrechnung = '"_myId_"'"
	w "St: "_strSQL,!
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
	w sc,!
	
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="DeleteTeilbuchung">
<Code>	Set strSQL="UPDATE DBFibu.Buchung SET MwstAbrechnung = NULL WHERE MwstAbrechnung = '"_{ID}_"'"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()</Code>
<Event>DELETE</Event>
<Foreach>row</Foreach>
</Trigger>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.MwstAbrechnungKopfD</DataLocation>
<DefaultData>MwstAbrechnungKopfDefaultData</DefaultData>
<IdLocation>^DBFibu.MwstAbrechnungKopfD</IdLocation>
<IndexLocation>^DBFibu.MwstAbrechnungKopfI</IndexLocation>
<StreamLocation>^DBFibu.MwstAbrechnungKopfS</StreamLocation>
<Data name="MwstAbrechnungKopfDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Mandant</Value>
</Value>
<Value name="3">
<Value>VonDatum</Value>
</Value>
<Value name="4">
<Value>BisDatum</Value>
</Value>
<Value name="5">
<Value>Quartal</Value>
</Value>
<Value name="6">
<Value>Definitiv</Value>
</Value>
<Value name="7">
<Value>TextZu280</Value>
</Value>
<Value name="8">
<Value>Jahr</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="BisDatum">
</Property>
<Property name="Definitiv">
</Property>
<Property name="Jahr">
</Property>
<Property name="Mandant">
</Property>
<Property name="Quartal">
</Property>
<Property name="TextZu280">
</Property>
<Property name="VonDatum">
</Property>
</Storage>
</Class>


<Project name="DBFibu" Target="##class(DBFibu.SD.MwstJahr).MoveNextOnMwstCode(&quot;1&quot;, 2010, 62)" TargetType="2">
  <Items>
    <ProjectItem name="DBFibu.AF.BuchungAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.KontoAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.BCheckAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.BankAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.BuchungstextAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.EinzahlungsscheinAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.FremdwaehrungAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.KontoBereichTypAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.AF.SD.MwstAF" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.Buchung" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.Konst" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.Konto" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.KontoJahr" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.MwstAbrechnungDetail" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.MwstAbrechnungKopf" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.BCheck" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.Bank" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.Buchungstext" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.Einzahlungsschein" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.Fremdwaehrung" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.KontoBereichTyp" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.Mwst" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.SD.MwstJahr" type="CLS"></ProjectItem>
    <ProjectItem name="DBFibu.Teilbuchung" type="CLS"></ProjectItem>
  </Items>
</Project>


<Class name="DBFibu.SD.BCheck">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62416,57275.840645</TimeChanged>
<TimeCreated>61724,53784.51567</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Bank">
<Type>DBFibu.SD.Bank</Type>
<Cardinality>one</Cardinality>
<Inverse>CheckBank</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Bank"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="BankIndex">
<Properties>Bank</Properties>
<Unique>1</Unique>
</Index>

<Property name="CheckTyp">
<Description>
Check Typ</Description>
<Type>%Integer</Type>
</Property>

<Property name="TypReferenzzeile">
<Description>
Typ Referenzzeile</Description>
<Type>%Integer</Type>
</Property>

<Property name="RGBetragDrucken">
<Description>
Rechnungsbetrag drucken</Description>
<Type>%Boolean</Type>
</Property>

<Property name="CheckText1">
<Description>
Textzeile 1</Description>
<Type>%String</Type>
</Property>

<Property name="CheckText2">
<Description>
Textzeile 2</Description>
<Type>%String</Type>
</Property>

<Property name="CheckText3">
<Description>
Textzeile 3</Description>
<Type>%String</Type>
</Property>

<Property name="NummerAktuell">
<Description>
Checknummerkreis aktuell</Description>
<Type>%Integer</Type>
</Property>

<Property name="NummerLast">
<Description>
Checknummerkreis Last</Description>
<Type>%Integer</Type>
</Property>

<Property name="Waehrungscode">
<Description>
Waehrungscode</Description>
<Type>%String</Type>
</Property>

<Property name="BankinternenNr">
<Description>
Bankinternenummer</Description>
<Type>%String</Type>
</Property>

<Property name="BankkontoNr">
<Description>
Bankkontonummer</Description>
<Type>%String</Type>
</Property>

<Property name="BankteilnehmerNr">
<Description>
Bankteilnehmernummer</Description>
<Type>%String</Type>
</Property>

<Property name="RandLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="RandOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="UnterschriftPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="UnterschriftFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="GutschriftNrPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="GutschriftNrFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="BelegNrPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="BelegNrFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="AuszahlungFuerPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="AuszahlungFuerFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="KontoPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="KontoFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="BetragPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="BetragFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="WaehrungPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="WaehrungFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="AuszahlungVonPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="AuszahlungVonFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="CodierzeilePos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="CodierzeileFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="BetragWortePos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="BetragWorteFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="OrtDatumPos">
<Type>DBCore.COPosition</Type>
</Property>

<Property name="OrtDatumFont">
<Type>DBCore.COFont</Type>
</Property>

<Property name="Zahlungskond">
<Type>DBDebiKredi.SD.DZahlungskond</Type>
<Cardinality>many</Cardinality>
<Inverse>BCheck</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Drucker">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Schacht">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Method name="GetCheckByBankNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>BankNr:%Integer,MandOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	set id = ""
	&sql(SELECT ID INTO :id FROM DBFibu_SD.BCheck
			WHERE Bank->BankNr = :BankNr AND Bank->Mandant = :MandOid)
	Quit id
]]></Implementation>
</Method>

<Method name="GetZahlungskondOid">
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	set myId = ..%Id()
	&sql(SELECT ID INTO :id FROM DBDebiKredi_SD.DZahlungskond
			WHERE BCheck = :myId)
	Quit id
]]></Implementation>
</Method>

<Method name="DeleteKondRelation">
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	set myId = ..%Id()
	&sql(Update DBDebiKredi_SD.DZahlungskond Set BCheck = ""
			WHERE BCheck = :myId)
	quit 1
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.BCheckD</DataLocation>
<DefaultData>BCheckDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.BCheckD</IdLocation>
<IndexLocation>^DBFibu.SD.BCheckI</IndexLocation>
<StreamLocation>^DBFibu.SD.BCheckS</StreamLocation>
<Data name="BCheckDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Bank</Value>
</Value>
<Value name="3">
<Value>CheckTyp</Value>
</Value>
<Value name="4">
<Value>TypReferenzzeile</Value>
</Value>
<Value name="5">
<Value>RGBetragDrucken</Value>
</Value>
<Value name="6">
<Value>CheckText1</Value>
</Value>
<Value name="7">
<Value>CheckText2</Value>
</Value>
<Value name="8">
<Value>CheckText3</Value>
</Value>
<Value name="9">
<Value>NummerAktuell</Value>
</Value>
<Value name="10">
<Value>NummerLast</Value>
</Value>
<Value name="11">
<Value>Waehrungscode</Value>
</Value>
<Value name="12">
<Value>BankinternenNr</Value>
</Value>
<Value name="13">
<Value>BankkontoNr</Value>
</Value>
<Value name="14">
<Value>BankteilnehmerNr</Value>
</Value>
<Value name="15">
<Value>RandLinks</Value>
</Value>
<Value name="16">
<Value>RandOben</Value>
</Value>
<Value name="17">
<Value>UnterschriftPos</Value>
</Value>
<Value name="18">
<Value>UnterschriftFont</Value>
</Value>
<Value name="19">
<Value>GutschriftNrPos</Value>
</Value>
<Value name="20">
<Value>GutschriftNrFont</Value>
</Value>
<Value name="21">
<Value>BelegNrPos</Value>
</Value>
<Value name="22">
<Value>BelegNrFont</Value>
</Value>
<Value name="23">
<Value>AuszahlungFuerPos</Value>
</Value>
<Value name="24">
<Value>AuszahlungFuerFont</Value>
</Value>
<Value name="25">
<Value>KontoPos</Value>
</Value>
<Value name="26">
<Value>KontoFont</Value>
</Value>
<Value name="27">
<Value>BetragPos</Value>
</Value>
<Value name="28">
<Value>BetragFont</Value>
</Value>
<Value name="29">
<Value>WaehrungPos</Value>
</Value>
<Value name="30">
<Value>WaehrungFont</Value>
</Value>
<Value name="31">
<Value>AuszahlungVonPos</Value>
</Value>
<Value name="32">
<Value>AuszahlungVonFont</Value>
</Value>
<Value name="33">
<Value>CodierzeilePos</Value>
</Value>
<Value name="34">
<Value>CodierzeileFont</Value>
</Value>
<Value name="35">
<Value>BetragWortePos</Value>
</Value>
<Value name="36">
<Value>BetragWorteFont</Value>
</Value>
<Value name="37">
<Value>OrtDatumPos</Value>
</Value>
<Value name="38">
<Value>OrtDatumFont</Value>
</Value>
<Value name="39">
<Value>Drucker</Value>
</Value>
<Value name="40">
<Value>Schacht</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="AuszahlungFuerFont">
</Property>
<Property name="AuszahlungFuerPos">
</Property>
<Property name="AuszahlungVonFont">
</Property>
<Property name="AuszahlungVonPos">
</Property>
<Property name="Bank">
</Property>
<Property name="BankinternenNr">
</Property>
<Property name="BankkontoNr">
</Property>
<Property name="BankteilnehmerNr">
</Property>
<Property name="BelegNrFont">
</Property>
<Property name="BelegNrPos">
</Property>
<Property name="BetragFont">
</Property>
<Property name="BetragPos">
</Property>
<Property name="BetragWorteFont">
</Property>
<Property name="BetragWortePos">
</Property>
<Property name="CheckText1">
</Property>
<Property name="CheckText2">
</Property>
<Property name="CheckText3">
</Property>
<Property name="CheckTyp">
</Property>
<Property name="CodierzeileFont">
</Property>
<Property name="CodierzeilePos">
</Property>
<Property name="Drucker">
</Property>
<Property name="GutschriftNrFont">
</Property>
<Property name="GutschriftNrPos">
</Property>
<Property name="KontoFont">
</Property>
<Property name="KontoPos">
</Property>
<Property name="NummerAktuell">
</Property>
<Property name="NummerLast">
</Property>
<Property name="OrtDatumFont">
</Property>
<Property name="OrtDatumPos">
</Property>
<Property name="RGBetragDrucken">
</Property>
<Property name="RandLinks">
</Property>
<Property name="RandOben">
</Property>
<Property name="Schacht">
</Property>
<Property name="TypReferenzzeile">
</Property>
<Property name="UnterschriftFont">
</Property>
<Property name="UnterschriftPos">
</Property>
<Property name="WaehrungFont">
</Property>
<Property name="WaehrungPos">
</Property>
<Property name="Waehrungscode">
</Property>
</Storage>
</Class>


<Class name="DBFibu.SD.Bank">
<Description>
</Description>
<Super>%Persistent,%XML.Adaptor,%Populate,DBCore.MandantRel</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61100,61967.491223</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="BankNr">
<Description>
BankNr.</Description>
<Type>%Integer</Type>
</Property>

<Index name="BankNrIndex">
<Properties>Mandant,BankNr</Properties>
<Unique>1</Unique>
</Index>

<Property name="ClearingNr">
<Description>
Clearing Nr.</Description>
<Type>%Integer</Type>
</Property>

<Property name="BankAdr1">
<Description>
Adr1</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="BankAdr2">
<Description>
Adr2</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="BankAdr3">
<Description>
Adr3</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="BankKontoNr">
<Description>
Bank-Konto-Nr</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="IBANNr">
<Description>
IBAN-Nr</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="VESRPfad">
<Description>
Laufwerk/Dateiname</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="32765"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="VESRTeilnehmerNr">
<Description>
VESR Teilnehmer</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="VESRMaxTageVerzug">
<Description>
Max. Tage Verzug</Description>
<Type>%Integer</Type>
</Property>

<Property name="VESRMinBetragAbweisungKlOP">
<Description>
Minimal Fr. für Abweisung</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="VESRMinProzentAbweisungKlOP">
<Description>
Minimal % für Abweisung</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="VESRMinBetragAbweisungGrOP">
<Description>
Minimal Fr. für Abweisung</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="VESRMinProzentAbweisungGrOP">
<Description>
Minimal % für Abweisung</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="VESRVerbuchungsart">
<Description>
FibuVerbuchungsart</Description>
<Type>%Integer</Type>
</Property>

<Property name="DTAIdentifikation">
<Description>
Identifikation</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="DTAPfad">
<Description>
Pfad DTA SAD Datei</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="32765"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="DTATestphase">
<Description>
Testphase</Description>
<Type>%Boolean</Type>
</Property>

<Property name="DTADateiInklDatum">
<Description>
DTA-Dateiname um Datum ergänzen</Description>
<Type>%Boolean</Type>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Property name="VESRFibuKonto">
<Description>
 Kontonummer Fibu (VESR)</Description>
<Type>DBFibu.Konto</Type>
<Cardinality>one</Cardinality>
<Inverse>BankVESRFibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="VESRFibuKonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="VESRFibuKontoIndex">
<Properties>VESRFibuKonto</Properties>
</Index>

<Property name="DTAFibuKonto">
<Description>
 Kontonummer Fibu (Bank DTA)</Description>
<Type>DBFibu.Konto</Type>
<Cardinality>one</Cardinality>
<Inverse>BankDTAFibuKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="DTAFibuKonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="DTAFibuKontoIndex">
<Properties>DTAFibuKonto</Properties>
</Index>

<Property name="Ort">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="POPSPEC" value="City()"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Plz">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="15"/>
<Parameter name="POPSPEC" value="USZip()"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="PlzInklZusatz">
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="15"/>
<Parameter name="POPSPEC" value="USZip()"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<UDLText name="T">
<Content><![CDATA[
//Relationship Plz As DBCore.Postleitzahl [ Cardinality = one, Inverse = BankPlz ];

]]></Content>
</UDLText>

<UDLText name="T">
<Content><![CDATA[
//Index PlzIndex On Plz;

]]></Content>
</UDLText>

<Property name="DebitorBank">
<Type>DBDebiKredi.Debitor</Type>
<Cardinality>many</Cardinality>
<Inverse>Bank</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="EinzahlungsscheinBank">
<Type>DBFibu.SD.Einzahlungsschein</Type>
<Cardinality>many</Cardinality>
<Inverse>Bank</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ZahlungBank">
<Type>DBDebiKredi.Zahlung</Type>
<Cardinality>many</Cardinality>
<Inverse>Bank</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="CheckBank">
<Type>DBFibu.SD.BCheck</Type>
<Cardinality>many</Cardinality>
<Inverse>Bank</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="VESRAdressnrPruefen">
<Description>
Adressnummer pruefen</Description>
<Type>%Boolean</Type>
</Property>

<Property name="DTAIdentifikationLohn">
<Description>
Identifikation Lohn</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="DTAPfadLohn">
<Description>
Pfad DTA SAD Datei Lohn</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="32765"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="DTATestphaseLohn">
<Description>
Testphase Lohn</Description>
<Type>%Boolean</Type>
</Property>

<Property name="DTADateiInklDatumLohn">
<Description>
DTA-Dateiname um Datum ergänzen Lohn</Description>
<Type>%Boolean</Type>
</Property>

<Method name="IsBankNrVergeben">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String,BankNr:%Integer</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	&sql(SELECT ID INTO :id FROM DBFibu_SD.Bank
			WHERE BankNr = :BankNr AND Mandant =:aktMandant)
	if (id="") {
		Quit 0
	}
	Quit 1
]]></Implementation>
</Method>

<Method name="GetOidByBankNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String,BankNr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT ID INTO :id FROM DBFibu_SD.Bank
			WHERE BankNr = :BankNr AND Mandant =:aktMandant)
	Quit id
]]></Implementation>
</Method>

<Method name="GetBankNrByOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String,Oid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set nr = ""
	&sql(SELECT BankNr INTO :nr FROM DBFibu_SD.Bank
			WHERE ID = :Oid AND Mandant =:aktMandant)
	Quit nr
]]></Implementation>
</Method>

<Method name="LastBank">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set aktMandant = " "_aktMandant
	set banknr = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant,""),-1)
	set oid = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant,banknr,""),-1)
	Quit oid
]]></Implementation>
</Method>

<Method name="FirstBank">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set aktMandant = " "_aktMandant
	set banknr = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant,""))
	set oid = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant,banknr,""))
	Quit oid
]]></Implementation>
</Method>

<Method name="NextBank">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String,Banknr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set aktMandant = " "_aktMandant
	set banknr = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, Banknr))
	set oid = ""
	if banknr '= "" {
		set oid = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, banknr, ""))
	
		if oid = "" {
			set banknr = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, Banknr),-1)
			if banknr '= "" {
				set oid = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, banknr, ""),-1)
			}
		}
	} else {
		
		set oid = ##class(DBFibu.SD.Bank).LastBank()
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="PrevBank">
<ClassMethod>1</ClassMethod>
<FormalSpec>aktMandant:%String,Banknr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set aktMandant = " "_aktMandant
	set banknr = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, Banknr),-1)
	set oid = ""
	if banknr '= "" {
		set oid = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, banknr, ""),-1)
	
		if oid = "" {
			set banknr = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, Banknr))
			if banknr '= "" {
				set oid = $Order(^DBFibu.SD.BankI("BankNrIndex",aktMandant, banknr, ""))
			}
		}
	} else {
		
		set oid = ##class(DBFibu.SD.Bank).FirstBank()
	}
	
	Quit oid
]]></Implementation>
</Method>

<Method name="GetBankOidByVESRTeilnehmerNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>VESRTeilnehmerNr:%String,BankTeilnehmerNr:%String,MandOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	/*
	Set strSQL="SELECT bank.ID As ID FROM DBFibu_SD.Bank bank INNER JOIN DBFibu_SD.Einzahlungsschein ez ON ez.Bank = bank.ID WHERE bank.VESRTeilnehmerNr = '"_TeilnehmerNr_"' AND SUBSTR(ez.BankteilnehmerNr,0,LENGTH('"_BankTeilnehmerNr_"')) = '"_BankTeilnehmerNr_"' AND bank.Mandant = '"_MandOid_"'"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
    IF $$$ISOK(sc) {
		Set sc = rs.Next(.sc)
		IF $$$ISOK(sc) {
			Set saldovortrag=rs.Data("Buchungsbetrag")
		}
    }
    */
	&sql(SELECT bank.ID INTO :id FROM DBFibu_SD.Bank bank INNER JOIN DBFibu_SD.Einzahlungsschein ez ON ez.Bank = bank.ID
			WHERE bank.VESRTeilnehmerNr = :VESRTeilnehmerNr AND SUBSTR(ez.BankteilnehmerNr,0,LENGTH(:BankTeilnehmerNr)) = :BankTeilnehmerNr AND bank.Mandant = :MandOid)
	Quit id
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.BankD</DataLocation>
<DefaultData>BankDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.BankD</IdLocation>
<IndexLocation>^DBFibu.SD.BankI</IndexLocation>
<StreamLocation>^DBFibu.SD.BankS</StreamLocation>
<Data name="BankDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>BankNr</Value>
</Value>
<Value name="3">
<Value>ClearingNr</Value>
</Value>
<Value name="4">
<Value>BankAdr1</Value>
</Value>
<Value name="5">
<Value>BankAdr2</Value>
</Value>
<Value name="6">
<Value>BankAdr3</Value>
</Value>
<Value name="7">
<Value>BankKontoNr</Value>
</Value>
<Value name="8">
<Value>IBANNr</Value>
</Value>
<Value name="9">
<Value>VESRPfad</Value>
</Value>
<Value name="10">
<Value>VESRTeilnehmerNr</Value>
</Value>
<Value name="11">
<Value>VESRMaxTageVerzug</Value>
</Value>
<Value name="12">
<Value>VESRMinBetragAbweisung</Value>
</Value>
<Value name="13">
<Value>VESRMinProzentAbweisung</Value>
</Value>
<Value name="14">
<Value>VESRVerbuchungsart</Value>
</Value>
<Value name="15">
<Value>DTAIdentifikation</Value>
</Value>
<Value name="16">
<Value>DTAPfad</Value>
</Value>
<Value name="17">
<Value>DTATestphase</Value>
</Value>
<Value name="18">
<Value>DTADateiInklDatum</Value>
</Value>
<Value name="19">
<Value>Mandant</Value>
</Value>
<Value name="20">
<Value>VESRFibuKonto</Value>
</Value>
<Value name="21">
<Value>DTAFibuKonto</Value>
</Value>
<Value name="22">
<Value>Ort</Value>
</Value>
<Value name="23">
<Value>Plz</Value>
</Value>
<Value name="24">
<Value>PlzInklZusatz</Value>
</Value>
<Value name="25">
<Value>VESRMinBetragAbweisungKlOP</Value>
</Value>
<Value name="26">
<Value>VESRMinProzentAbweisungKlOP</Value>
</Value>
<Value name="27">
<Value>VESRMinBetragAbweisungGrOP</Value>
</Value>
<Value name="28">
<Value>VESRMinProzentAbweisungGrOP</Value>
</Value>
<Value name="29">
<Value>VESRAdressnrPruefen</Value>
</Value>
<Value name="30">
<Value>DTAIdentifikationLohn</Value>
</Value>
<Value name="31">
<Value>DTAPfadLohn</Value>
</Value>
<Value name="32">
<Value>DTATestphaseLohn</Value>
</Value>
<Value name="33">
<Value>DTADateiInklDatumLohn</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="BankAdr1">
</Property>
<Property name="BankAdr2">
</Property>
<Property name="BankAdr3">
</Property>
<Property name="BankKontoNr">
</Property>
<Property name="BankNr">
</Property>
<Property name="ClearingNr">
</Property>
<Property name="DTADateiInklDatum">
</Property>
<Property name="DTADateiInklDatumLohn">
</Property>
<Property name="DTAFibuKonto">
</Property>
<Property name="DTAIdentifikation">
</Property>
<Property name="DTAIdentifikationLohn">
</Property>
<Property name="DTAPfad">
</Property>
<Property name="DTAPfadLohn">
</Property>
<Property name="DTATestphase">
</Property>
<Property name="DTATestphaseLohn">
</Property>
<Property name="IBANNr">
</Property>
<Property name="Mandant">
</Property>
<Property name="Ort">
</Property>
<Property name="Plz">
</Property>
<Property name="PlzInklZusatz">
</Property>
<Property name="VESRAdressnrPruefen">
</Property>
<Property name="VESRFibuKonto">
</Property>
<Property name="VESRMaxTageVerzug">
</Property>
<Property name="VESRMinBetragAbweisung"/>
<Property name="VESRMinBetragAbweisungGrOP">
</Property>
<Property name="VESRMinBetragAbweisungKlOP">
</Property>
<Property name="VESRMinProzentAbweisung"/>
<Property name="VESRMinProzentAbweisungGrOP">
</Property>
<Property name="VESRMinProzentAbweisungKlOP">
</Property>
<Property name="VESRPfad">
</Property>
<Property name="VESRTeilnehmerNr">
</Property>
<Property name="VESRVerbuchungsart">
</Property>
</Storage>
</Class>


<Class name="DBFibu.SD.Buchungstext">
<Super>%Persistent,%Populate,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62416,57276.739715</TimeChanged>
<TimeCreated>61346,32797.069695</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Nummer">
<Type>%Integer</Type>
<Required>1</Required>
</Property>

<Index name="NummerIndex">
<Data>%%ID,Nummer,Buchungstext1,Buchungstext2</Data>
<Properties>Mandant,Nummer</Properties>
<Unique>1</Unique>
</Index>

<Property name="Kurzbezeichnung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Buchungstext1">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Buchungstext2">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Method name="GetTextByNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,Nr:%Integer</FormalSpec>
<ReturnType>DBFibu.SD.Buchungstext</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID InTo :oid 
			FROM DBFibu_SD.Buchungstext 
			WHERE Mandant=:MandOid AND Nummer=:Nr)
	Quit ##class(DBFibu.SD.Buchungstext).%OpenId(oid)
]]></Implementation>
</Method>

<Method name="MoveFirstOnNummer">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set nummer = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,""),1)
	if (nummer '= ""){
		set res = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,nummer,""),1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnNummer">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set nummer = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,""),-1)
	if (nummer '= ""){
		set res = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,nummer,""),-1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnNummer">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,nr:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
    set nummer = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,nr))
	if (nummer '= "") {
		set res = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,nummer,""),1,list)
	} else {
		set list = ##class(DBFibu.SD.Buchungstext).MoveLastOnNummer(MandantOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnNummer">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,nr:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set nummer = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,nr),-1)
    if (nummer '= "") {
		set res = $Order(^DBFibu.SD.BuchungstextI("NummerIndex",MandantOid,nummer,""),-1,list)
	} else {
		set list = ##class(DBFibu.SD.Buchungstext).MoveFirstOnNummer(MandantOid)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="GetTextByKurzbez">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,kbez:%String</FormalSpec>
<ReturnType>DBFibu.SD.Buchungstext</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT TOP 1 ID InTo :oid 
			FROM DBFibu_SD.Buchungstext 
			WHERE Mandant=:MandOid AND Kurzbezeichnung=:kbez)
	Quit ##class(DBFibu.SD.Buchungstext).%OpenId(oid)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.BuchungstextD</DataLocation>
<DefaultData>BuchungstextDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.BuchungstextD</IdLocation>
<IndexLocation>^DBFibu.SD.BuchungstextI</IndexLocation>
<StreamLocation>^DBFibu.SD.BuchungstextS</StreamLocation>
<Data name="BuchungstextDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nummer</Value>
</Value>
<Value name="3">
<Value>Kurzbezeichnung</Value>
</Value>
<Value name="4">
<Value>Buchungstext1</Value>
</Value>
<Value name="5">
<Value>Buchungstext2</Value>
</Value>
<Value name="6">
<Value>Mandant</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="Buchungstext1">
</Property>
<Property name="Buchungstext2">
</Property>
<Property name="Kurzbezeichnung">
</Property>
<Property name="Mandant">
</Property>
<Property name="Nummer">
</Property>
</Storage>
</Class>


<Class name="DBFibu.SD.Einzahlungsschein">
<Description>
</Description>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61107,59910.793392</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="EZTyp">
<Description>
Einzahlungsschein Typ</Description>
<Type>%Integer</Type>
</Property>

<Property name="RGBetragDrucken">
<Description>
Rechnungsbetrag drucken</Description>
<Type>%Boolean</Type>
</Property>

<Property name="PostKontoNr">
<Description>
Postkontonr</Description>
<Type>%String</Type>
</Property>

<Property name="TypReferenzzeile">
<Description>
Typ Referenzzeile</Description>
<Type>%Integer</Type>
</Property>

<Property name="EZText1">
<Description>
Textzeile 1</Description>
<Type>%String</Type>
</Property>

<Property name="EZText2">
<Description>
Textzeile 2</Description>
<Type>%String</Type>
</Property>

<Property name="EZText3">
<Description>
Textzeile 3</Description>
<Type>%String</Type>
</Property>

<Property name="EZText4">
<Description>
Textzeile 4</Description>
<Type>%String</Type>
</Property>

<Property name="EZText5">
<Description>
Textzeile 5</Description>
<Type>%String</Type>
</Property>

<Property name="EZText6">
<Description>
Textzeile 6</Description>
<Type>%String</Type>
</Property>

<Property name="EZText7">
<Description>
Textzeile 7</Description>
<Type>%String</Type>
</Property>

<Property name="Bank">
<Type>DBFibu.SD.Bank</Type>
<Cardinality>one</Cardinality>
<Inverse>EinzahlungsscheinBank</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Bank"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="BankIndex">
<Properties>Bank</Properties>
<Unique>1</Unique>
</Index>

<Method name="GetEZByBankNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>BankNr:%Integer,MandOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	
	set id = ""
	&sql(SELECT ID INTO :id FROM DBFibu_SD.Einzahlungsschein
			WHERE Bank->BankNr = :BankNr AND Bank->Mandant = :MandOid)
	Quit id
]]></Implementation>
</Method>

<Property name="BankteilnehmerNr">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="RandLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="RandOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinzahlungFuerLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinzahlungFuerOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinzahlungFuerBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinzahlungFuerHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsKontoLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsKontoOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsKontoBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsKontoHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragFrankenLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragFrankenOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragFrankenBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragFrankenHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragRappenLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragRappenOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragRappenBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsBetragRappenHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsReferenzNrLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsReferenzNrOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsReferenzNrBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsReferenzNrHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinbezahltVonLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinbezahltVonOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinbezahltVonBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinbezahltVonHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinzahlungFuerLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinzahlungFuerOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinzahlungFuerBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinzahlungFuerHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzKontoLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzKontoOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzKontoBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzKontoHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragFrankenLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragFrankenOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragFrankenBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragFrankenHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragRappenLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragRappenOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragRappenBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzBetragRappenHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzReferenzNrLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzReferenzNrOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzReferenzNrBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzReferenzNrHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinbezahltVonLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinbezahltVonOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinbezahltVonBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzEinbezahltVonHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzMitteilungLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzMitteilungOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzMitteilungBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzMitteilungHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzCodierzeileLinks">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzCodierzeileOben">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzCodierzeileBreite">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EzCodierzeileHoehe">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="EsEinzahlungFuerFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EsEinzahlungFuerFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EsKontoFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EsKontoFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EsBetragFrankenFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EsBetragFrankenFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EsBetragRappenFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EsBetragRappenFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EsReferenzNrFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EsReferenzNrFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EsEinbezahltVonFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EsEinbezahltVonFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzEinzahlungFuerFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzEinzahlungFuerFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzKontoFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzKontoFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzBetragFrankenFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzBetragFrankenFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzBetragRappenFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzBetragRappenFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzReferenzNrFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzReferenzNrFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzEinbezahltVonFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzEinbezahltVonFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Property name="EzMitteilungFontName">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="EzMitteilungFontSize">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

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

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

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

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

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.EinzahlungsscheinD</DataLocation>
<DefaultData>EinzahlungsscheinDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.EinzahlungsscheinD</IdLocation>
<IndexLocation>^DBFibu.SD.EinzahlungsscheinI</IndexLocation>
<StreamLocation>^DBFibu.SD.EinzahlungsscheinS</StreamLocation>
<Data name="EinzahlungsscheinDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>EZTyp</Value>
</Value>
<Value name="3">
<Value>RGBetragDrucken</Value>
</Value>
<Value name="4">
<Value>PostKontoNr</Value>
</Value>
<Value name="5">
<Value>TypReferenzzeile</Value>
</Value>
<Value name="6">
<Value>EZText1</Value>
</Value>
<Value name="7">
<Value>EZText2</Value>
</Value>
<Value name="8">
<Value>EZText3</Value>
</Value>
<Value name="9">
<Value>EZText4</Value>
</Value>
<Value name="10">
<Value>EZText5</Value>
</Value>
<Value name="11">
<Value>EZText6</Value>
</Value>
<Value name="12">
<Value>EZText7</Value>
</Value>
<Value name="13">
<Value>EZAbstandOben</Value>
</Value>
<Value name="14">
<Value>EZAbstandLinks</Value>
</Value>
<Value name="15">
<Value>BankteilnehmerNr</Value>
</Value>
<Value name="16">
<Value>AbstandBetragOben</Value>
</Value>
<Value name="17">
<Value>AbstandBetragLinks</Value>
</Value>
<Value name="18">
<Value>AbstandReferenzOben</Value>
</Value>
<Value name="19">
<Value>AbstandReferenzLinks</Value>
</Value>
<Value name="20">
<Value>AbstandCodierzeileOben</Value>
</Value>
<Value name="21">
<Value>AbstandCodierzeileLinks</Value>
</Value>
<Value name="22">
<Value>Bank</Value>
</Value>
<Value name="23">
<Value>RandLinks</Value>
</Value>
<Value name="24">
<Value>RandOben</Value>
</Value>
<Value name="25">
<Value>EsEinzahlungFuerLinks</Value>
</Value>
<Value name="26">
<Value>EsEinzahlungFuerOben</Value>
</Value>
<Value name="27">
<Value>EsEinzahlungFuerBreite</Value>
</Value>
<Value name="28">
<Value>EsEinzahlungFuerHoehe</Value>
</Value>
<Value name="29">
<Value>EsKontoLinks</Value>
</Value>
<Value name="30">
<Value>EsKontoOben</Value>
</Value>
<Value name="31">
<Value>EsKontoBreite</Value>
</Value>
<Value name="32">
<Value>EsKontoHoehe</Value>
</Value>
<Value name="33">
<Value>EsBetragFrankenLinks</Value>
</Value>
<Value name="34">
<Value>EsBetragFrankenOben</Value>
</Value>
<Value name="35">
<Value>EsBetragFrankenBreite</Value>
</Value>
<Value name="36">
<Value>EsBetragFrankenHoehe</Value>
</Value>
<Value name="37">
<Value>EsBetragRappenLinks</Value>
</Value>
<Value name="38">
<Value>EsBetragRappenOben</Value>
</Value>
<Value name="39">
<Value>EsBetragRappenBreite</Value>
</Value>
<Value name="40">
<Value>EsBetragRappenHoehe</Value>
</Value>
<Value name="41">
<Value>EsReferenzNrLinks</Value>
</Value>
<Value name="42">
<Value>EsReferenzNrOben</Value>
</Value>
<Value name="43">
<Value>EsReferenzNrBreite</Value>
</Value>
<Value name="44">
<Value>EsReferenzNrHoehe</Value>
</Value>
<Value name="45">
<Value>EsEinbezahltVonLinks</Value>
</Value>
<Value name="46">
<Value>EsEinbezahltVonOben</Value>
</Value>
<Value name="47">
<Value>EsEinbezahltVonBreite</Value>
</Value>
<Value name="48">
<Value>EsEinbezahltVonHoehe</Value>
</Value>
<Value name="49">
<Value>EzEinzahlungFuerLinks</Value>
</Value>
<Value name="50">
<Value>EzEinzahlungFuerOben</Value>
</Value>
<Value name="51">
<Value>EzEinzahlungFuerBreite</Value>
</Value>
<Value name="52">
<Value>EzEinzahlungFuerHoehe</Value>
</Value>
<Value name="53">
<Value>EzKontoLinks</Value>
</Value>
<Value name="54">
<Value>EzKontoOben</Value>
</Value>
<Value name="55">
<Value>EzKontoBreite</Value>
</Value>
<Value name="56">
<Value>EzKontoHoehe</Value>
</Value>
<Value name="57">
<Value>EzBetragFrankenLinks</Value>
</Value>
<Value name="58">
<Value>EzBetragFrankenOben</Value>
</Value>
<Value name="59">
<Value>EzBetragFrankenBreite</Value>
</Value>
<Value name="60">
<Value>EzBetragFrankenHoehe</Value>
</Value>
<Value name="61">
<Value>EzBetragRappenLinks</Value>
</Value>
<Value name="62">
<Value>EzBetragRappenOben</Value>
</Value>
<Value name="63">
<Value>EzBetragRappenBreite</Value>
</Value>
<Value name="64">
<Value>EzBetragRappenHoehe</Value>
</Value>
<Value name="65">
<Value>EzReferenzNrLinks</Value>
</Value>
<Value name="66">
<Value>EzReferenzNrOben</Value>
</Value>
<Value name="67">
<Value>EzReferenzNrBreite</Value>
</Value>
<Value name="68">
<Value>EzReferenzNrHoehe</Value>
</Value>
<Value name="69">
<Value>EzEinbezahltVonLinks</Value>
</Value>
<Value name="70">
<Value>EzEinbezahltVonOben</Value>
</Value>
<Value name="71">
<Value>EzEinbezahltVonBreite</Value>
</Value>
<Value name="72">
<Value>EzEinbezahltVonHoehe</Value>
</Value>
<Value name="73">
<Value>EzMitteilungLinks</Value>
</Value>
<Value name="74">
<Value>EzMitteilungOben</Value>
</Value>
<Value name="75">
<Value>EzMitteilungBreite</Value>
</Value>
<Value name="76">
<Value>EzMitteilungHoehe</Value>
</Value>
<Value name="77">
<Value>EzCodierzeileLinks</Value>
</Value>
<Value name="78">
<Value>EzCodierzeileOben</Value>
</Value>
<Value name="79">
<Value>EzCodierzeileBreite</Value>
</Value>
<Value name="80">
<Value>EzCodierzeileHoehe</Value>
</Value>
<Value name="81">
<Value>EsEinzahlungFuerFontName</Value>
</Value>
<Value name="82">
<Value>EsEinzahlungFuerFontSize</Value>
</Value>
<Value name="83">
<Value>EsEinzahlungFuerFontBold</Value>
</Value>
<Value name="84">
<Value>EsEinzahlungFuerFontItalic</Value>
</Value>
<Value name="85">
<Value>EsEinzahlungFuerFontStrikeout</Value>
</Value>
<Value name="86">
<Value>EsEinzahlungFuerFontUnderline</Value>
</Value>
<Value name="87">
<Value>EsKontoFontName</Value>
</Value>
<Value name="88">
<Value>EsKontoFontSize</Value>
</Value>
<Value name="89">
<Value>EsKontoFontBold</Value>
</Value>
<Value name="90">
<Value>EsKontoFontItalic</Value>
</Value>
<Value name="91">
<Value>EsKontoFontStrikeout</Value>
</Value>
<Value name="92">
<Value>EsKontoFontUnderline</Value>
</Value>
<Value name="93">
<Value>EsBetragFrankenFontName</Value>
</Value>
<Value name="94">
<Value>EsBetragFrankenFontSize</Value>
</Value>
<Value name="95">
<Value>EsBetragFrankenFontBold</Value>
</Value>
<Value name="96">
<Value>EsBetragFrankenFontItalic</Value>
</Value>
<Value name="97">
<Value>EsBetragFrankenFontStrikeout</Value>
</Value>
<Value name="98">
<Value>EsBetragFrankenFontUnderline</Value>
</Value>
<Value name="99">
<Value>EsBetragRappenFontName</Value>
</Value>
<Value name="100">
<Value>EsBetragRappenFontSize</Value>
</Value>
<Value name="101">
<Value>EsBetragRappenFontBold</Value>
</Value>
<Value name="102">
<Value>EsBetragRappenFontItalic</Value>
</Value>
<Value name="103">
<Value>EsBetragRappenFontStrikeout</Value>
</Value>
<Value name="104">
<Value>EsBetragRappenFontUnderline</Value>
</Value>
<Value name="105">
<Value>EsReferenzNrFontName</Value>
</Value>
<Value name="106">
<Value>EsReferenzNrFontSize</Value>
</Value>
<Value name="107">
<Value>EsReferenzNrFontBold</Value>
</Value>
<Value name="108">
<Value>EsReferenzNrFontItalic</Value>
</Value>
<Value name="109">
<Value>EsReferenzNrFontStrikeout</Value>
</Value>
<Value name="110">
<Value>EsReferenzNrFontUnderline</Value>
</Value>
<Value name="111">
<Value>EsEinbezahltVonFontName</Value>
</Value>
<Value name="112">
<Value>EsEinbezahltVonFontSize</Value>
</Value>
<Value name="113">
<Value>EsEinbezahltVonFontBold</Value>
</Value>
<Value name="114">
<Value>EsEinbezahltVonFontItalic</Value>
</Value>
<Value name="115">
<Value>EsEinbezahltVonFontStrikeout</Value>
</Value>
<Value name="116">
<Value>EsEinbezahltVonFontUnderline</Value>
</Value>
<Value name="117">
<Value>EzEinzahlungFuerFontName</Value>
</Value>
<Value name="118">
<Value>EzEinzahlungFuerFontSize</Value>
</Value>
<Value name="119">
<Value>EzEinzahlungFuerFontBold</Value>
</Value>
<Value name="120">
<Value>EzEinzahlungFuerFontItalic</Value>
</Value>
<Value name="121">
<Value>EzEinzahlungFuerFontStrikeout</Value>
</Value>
<Value name="122">
<Value>EzEinzahlungFuerFontUnderline</Value>
</Value>
<Value name="123">
<Value>EzKontoFontName</Value>
</Value>
<Value name="124">
<Value>EzKontoFontSize</Value>
</Value>
<Value name="125">
<Value>EzKontoFontBold</Value>
</Value>
<Value name="126">
<Value>EzKontoFontItalic</Value>
</Value>
<Value name="127">
<Value>EzKontoFontStrikeout</Value>
</Value>
<Value name="128">
<Value>EzKontoFontUnderline</Value>
</Value>
<Value name="129">
<Value>EzBetragFrankenFontName</Value>
</Value>
<Value name="130">
<Value>EzBetragFrankenFontSize</Value>
</Value>
<Value name="131">
<Value>EzBetragFrankenFontBold</Value>
</Value>
<Value name="132">
<Value>EzBetragFrankenFontItalic</Value>
</Value>
<Value name="133">
<Value>EzBetragFrankenFontStrikeout</Value>
</Value>
<Value name="134">
<Value>EzBetragFrankenFontUnderline</Value>
</Value>
<Value name="135">
<Value>EzBetragRappenFontName</Value>
</Value>
<Value name="136">
<Value>EzBetragRappenFontSize</Value>
</Value>
<Value name="137">
<Value>EzBetragRappenFontBold</Value>
</Value>
<Value name="138">
<Value>EzBetragRappenFontItalic</Value>
</Value>
<Value name="139">
<Value>EzBetragRappenFontStrikeout</Value>
</Value>
<Value name="140">
<Value>EzBetragRappenFontUnderline</Value>
</Value>
<Value name="141">
<Value>EzReferenzNrFontName</Value>
</Value>
<Value name="142">
<Value>EzReferenzNrFontSize</Value>
</Value>
<Value name="143">
<Value>EzReferenzNrFontBold</Value>
</Value>
<Value name="144">
<Value>EzReferenzNrFontItalic</Value>
</Value>
<Value name="145">
<Value>EzReferenzNrFontStrikeout</Value>
</Value>
<Value name="146">
<Value>EzReferenzNrFontUnderline</Value>
</Value>
<Value name="147">
<Value>EzEinbezahltVonFontName</Value>
</Value>
<Value name="148">
<Value>EzEinbezahltVonFontSize</Value>
</Value>
<Value name="149">
<Value>EzEinbezahltVonFontBold</Value>
</Value>
<Value name="150">
<Value>EzEinbezahltVonFontItalic</Value>
</Value>
<Value name="151">
<Value>EzEinbezahltVonFontStrikeout</Value>
</Value>
<Value name="152">
<Value>EzEinbezahltVonFontUnderline</Value>
</Value>
<Value name="153">
<Value>EzMitteilungFontName</Value>
</Value>
<Value name="154">
<Value>EzMitteilungFontSize</Value>
</Value>
<Value name="155">
<Value>EzMitteilungFontBold</Value>
</Value>
<Value name="156">
<Value>EzMitteilungFontItalic</Value>
</Value>
<Value name="157">
<Value>EzMitteilungFontStrikeout</Value>
</Value>
<Value name="158">
<Value>EzMitteilungFontUnderline</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="AbstandBetragLinks"/>
<Property name="AbstandBetragOben"/>
<Property name="AbstandCodierzeileLinks"/>
<Property name="AbstandCodierzeileOben"/>
<Property name="AbstandReferenzLinks"/>
<Property name="AbstandReferenzOben"/>
<Property name="Bank">
</Property>
<Property name="BankteilnehmerNr">
</Property>
<Property name="EZAbstandLinks"/>
<Property name="EZAbstandOben"/>
<Property name="EZText1">
</Property>
<Property name="EZText2">
</Property>
<Property name="EZText3">
</Property>
<Property name="EZText4">
</Property>
<Property name="EZText5">
</Property>
<Property name="EZText6">
</Property>
<Property name="EZText7">
</Property>
<Property name="EZTyp">
</Property>
<Property name="EsBetragFrankenBreite">
</Property>
<Property name="EsBetragFrankenFontBold">
</Property>
<Property name="EsBetragFrankenFontItalic">
</Property>
<Property name="EsBetragFrankenFontName">
</Property>
<Property name="EsBetragFrankenFontSize">
</Property>
<Property name="EsBetragFrankenFontStrikeout">
</Property>
<Property name="EsBetragFrankenFontUnderline">
</Property>
<Property name="EsBetragFrankenHoehe">
</Property>
<Property name="EsBetragFrankenLinks">
</Property>
<Property name="EsBetragFrankenOben">
</Property>
<Property name="EsBetragRappenBreite">
</Property>
<Property name="EsBetragRappenFontBold">
</Property>
<Property name="EsBetragRappenFontItalic">
</Property>
<Property name="EsBetragRappenFontName">
</Property>
<Property name="EsBetragRappenFontSize">
</Property>
<Property name="EsBetragRappenFontStrikeout">
</Property>
<Property name="EsBetragRappenFontUnderline">
</Property>
<Property name="EsBetragRappenHoehe">
</Property>
<Property name="EsBetragRappenLinks">
</Property>
<Property name="EsBetragRappenOben">
</Property>
<Property name="EsEinbezahltVonBreite">
</Property>
<Property name="EsEinbezahltVonFontBold">
</Property>
<Property name="EsEinbezahltVonFontItalic">
</Property>
<Property name="EsEinbezahltVonFontName">
</Property>
<Property name="EsEinbezahltVonFontSize">
</Property>
<Property name="EsEinbezahltVonFontStrikeout">
</Property>
<Property name="EsEinbezahltVonFontUnderline">
</Property>
<Property name="EsEinbezahltVonHoehe">
</Property>
<Property name="EsEinbezahltVonLinks">
</Property>
<Property name="EsEinbezahltVonOben">
</Property>
<Property name="EsEinzahlungFuerBreite">
</Property>
<Property name="EsEinzahlungFuerFontBold">
</Property>
<Property name="EsEinzahlungFuerFontItalic">
</Property>
<Property name="EsEinzahlungFuerFontName">
</Property>
<Property name="EsEinzahlungFuerFontSize">
</Property>
<Property name="EsEinzahlungFuerFontStrikeout">
</Property>
<Property name="EsEinzahlungFuerFontUnderline">
</Property>
<Property name="EsEinzahlungFuerHoehe">
</Property>
<Property name="EsEinzahlungFuerLinks">
</Property>
<Property name="EsEinzahlungFuerOben">
</Property>
<Property name="EsKontoBreite">
</Property>
<Property name="EsKontoFontBold">
</Property>
<Property name="EsKontoFontItalic">
</Property>
<Property name="EsKontoFontName">
</Property>
<Property name="EsKontoFontSize">
</Property>
<Property name="EsKontoFontStrikeout">
</Property>
<Property name="EsKontoFontUnderline">
</Property>
<Property name="EsKontoHoehe">
</Property>
<Property name="EsKontoLinks">
</Property>
<Property name="EsKontoOben">
</Property>
<Property name="EsReferenzNrBreite">
</Property>
<Property name="EsReferenzNrFontBold">
</Property>
<Property name="EsReferenzNrFontItalic">
</Property>
<Property name="EsReferenzNrFontName">
</Property>
<Property name="EsReferenzNrFontSize">
</Property>
<Property name="EsReferenzNrFontStrikeout">
</Property>
<Property name="EsReferenzNrFontUnderline">
</Property>
<Property name="EsReferenzNrHoehe">
</Property>
<Property name="EsReferenzNrLinks">
</Property>
<Property name="EsReferenzNrOben">
</Property>
<Property name="EzBetragFrankenBreite">
</Property>
<Property name="EzBetragFrankenFontBold">
</Property>
<Property name="EzBetragFrankenFontItalic">
</Property>
<Property name="EzBetragFrankenFontName">
</Property>
<Property name="EzBetragFrankenFontSize">
</Property>
<Property name="EzBetragFrankenFontStrikeout">
</Property>
<Property name="EzBetragFrankenFontUnderline">
</Property>
<Property name="EzBetragFrankenHoehe">
</Property>
<Property name="EzBetragFrankenLinks">
</Property>
<Property name="EzBetragFrankenOben">
</Property>
<Property name="EzBetragRappenBreite">
</Property>
<Property name="EzBetragRappenFontBold">
</Property>
<Property name="EzBetragRappenFontItalic">
</Property>
<Property name="EzBetragRappenFontName">
</Property>
<Property name="EzBetragRappenFontSize">
</Property>
<Property name="EzBetragRappenFontStrikeout">
</Property>
<Property name="EzBetragRappenFontUnderline">
</Property>
<Property name="EzBetragRappenHoehe">
</Property>
<Property name="EzBetragRappenLinks">
</Property>
<Property name="EzBetragRappenOben">
</Property>
<Property name="EzCodierzeileBreite">
</Property>
<Property name="EzCodierzeileHoehe">
</Property>
<Property name="EzCodierzeileLinks">
</Property>
<Property name="EzCodierzeileOben">
</Property>
<Property name="EzEinbezahltVonBreite">
</Property>
<Property name="EzEinbezahltVonFontBold">
</Property>
<Property name="EzEinbezahltVonFontItalic">
</Property>
<Property name="EzEinbezahltVonFontName">
</Property>
<Property name="EzEinbezahltVonFontSize">
</Property>
<Property name="EzEinbezahltVonFontStrikeout">
</Property>
<Property name="EzEinbezahltVonFontUnderline">
</Property>
<Property name="EzEinbezahltVonHoehe">
</Property>
<Property name="EzEinbezahltVonLinks">
</Property>
<Property name="EzEinbezahltVonOben">
</Property>
<Property name="EzEinzahlungFuerBreite">
</Property>
<Property name="EzEinzahlungFuerFontBold">
</Property>
<Property name="EzEinzahlungFuerFontItalic">
</Property>
<Property name="EzEinzahlungFuerFontName">
</Property>
<Property name="EzEinzahlungFuerFontSize">
</Property>
<Property name="EzEinzahlungFuerFontStrikeout">
</Property>
<Property name="EzEinzahlungFuerFontUnderline">
</Property>
<Property name="EzEinzahlungFuerHoehe">
</Property>
<Property name="EzEinzahlungFuerLinks">
</Property>
<Property name="EzEinzahlungFuerOben">
</Property>
<Property name="EzKontoBreite">
</Property>
<Property name="EzKontoFontBold">
</Property>
<Property name="EzKontoFontItalic">
</Property>
<Property name="EzKontoFontName">
</Property>
<Property name="EzKontoFontSize">
</Property>
<Property name="EzKontoFontStrikeout">
</Property>
<Property name="EzKontoFontUnderline">
</Property>
<Property name="EzKontoHoehe">
</Property>
<Property name="EzKontoLinks">
</Property>
<Property name="EzKontoOben">
</Property>
<Property name="EzMitteilungBreite">
</Property>
<Property name="EzMitteilungFontBold">
</Property>
<Property name="EzMitteilungFontItalic">
</Property>
<Property name="EzMitteilungFontName">
</Property>
<Property name="EzMitteilungFontSize">
</Property>
<Property name="EzMitteilungFontStrikeout">
</Property>
<Property name="EzMitteilungFontUnderline">
</Property>
<Property name="EzMitteilungHoehe">
</Property>
<Property name="EzMitteilungLinks">
</Property>
<Property name="EzMitteilungOben">
</Property>
<Property name="EzReferenzNrBreite">
</Property>
<Property name="EzReferenzNrFontBold">
</Property>
<Property name="EzReferenzNrFontItalic">
</Property>
<Property name="EzReferenzNrFontName">
</Property>
<Property name="EzReferenzNrFontSize">
</Property>
<Property name="EzReferenzNrFontStrikeout">
</Property>
<Property name="EzReferenzNrFontUnderline">
</Property>
<Property name="EzReferenzNrHoehe">
</Property>
<Property name="EzReferenzNrLinks">
</Property>
<Property name="EzReferenzNrOben">
</Property>
<Property name="PostKontoNr">
</Property>
<Property name="RGBetragDrucken">
</Property>
<Property name="RandLinks">
</Property>
<Property name="RandOben">
</Property>
<Property name="TypReferenzzeile">
</Property>
</Storage>
</Class>


<Class name="DBFibu.SD.Fremdwaehrung">
<Description>
</Description>
<Super>%Persistent,%Populate,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61100,52360.18046</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="FWCode">
<Type>%Integer</Type>
<Required>1</Required>
<Parameter name="MAXVAL" value="9"/>
<Parameter name="MINVAL" value="0"/>
</Property>

<Index name="FWCodeIndex">
<Properties>FWCode,Mandant</Properties>
<Unique>1</Unique>
</Index>

<Property name="Faktor">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="KursAnkauf">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="KursVK">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Waehrung">
<Type>%String</Type>
<Parameter name="MAXLEN" value="3"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="ISOSWIFTCode">
<Type>%String</Type>
<Parameter name="MAXLEN" value="3"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Property name="KontoFremdwaehrung">
<Type>DBFibu.KontoJahr</Type>
<Cardinality>many</Cardinality>
<Inverse>Fremdwaehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="TeilbuchungWaehrung">
<Type>DBFibu.Teilbuchung</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="DebitorFremdwaehrung">
<Type>DBDebiKredi.Debitor</Type>
<Cardinality>many</Cardinality>
<Inverse>Fremdwaehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KreditorFremdwaehrung">
<Type>DBDebiKredi.Kreditor</Type>
<Cardinality>many</Cardinality>
<Inverse>Fremdwaehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AKWaehrung">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="LagerbewWaehrung">
<Type>DBAgrofresh.Lagerbew</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FibuKontoKursdifferenz">
<Type>DBFibu.Konto</Type>
<Cardinality>one</Cardinality>
<Inverse>KontoFWKursdifferenz</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="FibuKontoErloesminderungen"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="FibuKontoKursdifferenzIndex">
<Properties>FibuKontoKursdifferenz</Properties>
</Index>

<Property name="OPWaehrung">
<Type>DBDebiKredi.OP</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BKWaehrung">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="DebitorUmsatzWaehrung">
<Type>DBDebiKredi.DebitorUmsatz</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ZahlungWaehrung">
<Type>DBDebiKredi.Zahlung</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KreditorUmsatzWaehrung">
<Type>DBDebiKredi.KreditorUmsatz</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="LagerbewFaktWaehrung">
<Type>DBFakturierung.Lagerbew</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktAKWaehrung">
<Type>DBFakturierung.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktArtWaehrung">
<Type>DBFakturierung.ArtWaehrung</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktStrgEinkauf">
<Type>DBFakturierung.SD.StrgEinkauf</Type>
<Cardinality>many</Cardinality>
<Inverse>WaehrungEK</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="FaktEKBWaehrung">
<Type>DBFaktEK.Bestellungskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Waehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KursEkTabelleAnkauf">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="KursEkTabelleVK">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Method name="GetFWOidByCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,FWCode:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	QUIT:(MandantOid="")||(FWCode<0)
	&sql(SELECT ID INTO :oid
		 FROM DBFibu_SD.Fremdwaehrung
		 WHERE Mandant = :MandantOid AND FWCode = :FWCode)
	Quit oid
]]></Implementation>
</Method>

<Method name="GetFWCodeByOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,FWOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set code = 0
	QUIT:(MandantOid="")||(FWOid="")
	&sql(SELECT TOP 1 FWCode INTO :code
		 FROM DBFibu_SD.Fremdwaehrung
		 WHERE Mandant = :MandantOid AND ID = :FWOid)
	Quit +code
]]></Implementation>
</Method>

<Method name="DeleteAll">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	&sql(DELETE FROM DBFibu_SD.Fremdwaehrung
		 WHERE Mandant =:MandantOid)
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="DeleteAllWithoutBasis">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	&sql(DELETE FROM DBFibu_SD.Fremdwaehrung
		 WHERE Mandant =:MandantOid AND FWCode != 1)
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBFibu.SD.Fremdwaehrung).%OpenId(myID)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="CopyFWFromMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>OldMandOid:%String,NewMandOid:%String</FormalSpec>
<Implementation><![CDATA[
	Quit:(OldMandOid="")||(NewMandOid="")
	&sql(SELECT Count(*) InTo :Cnt From DBCore.Mandant WHERE ID=:NewMandOid)
	If (Cnt) {
		Set strSQL="SELECT ID FROM DBFibu_SD.Fremdwaehrung WHERE Mandant = "_OldMandOid
		Set s=##class(%ResultSet).%New("%DynamicQuery:SQL")
		Do s.Prepare(strSQL)
		Do s.Execute()
		While s.Next(.osc) {
			If $$$ISERR(osc) Quit
			Set n=..%New()
			Set o=..%OpenId(s.ID)
			Set n=o.%ConstructClone(0)
			Set n.Mandant= NewMandOid
			Do n.%Save()
		}
	}
]]></Implementation>
</Method>

<Method name="GetSWIFTCodeByFWCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String,FWCode:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ISOSWIFTCode INTO :oid 
		 FROM DBFibu_SD.Fremdwaehrung 
		 WHERE Mandant = :MandOid AND FWCode = :FWCode ORDER BY FWCode)
	Quit oid
]]></Implementation>
</Method>

<Method name="GetBezByCodeClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>code:%Integer,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	Set myId = ##class(DBFibu.SD.Fremdwaehrung).GetFWOidByCode(MandOid, code)
	Quit ##class(DBFibu.SD.Fremdwaehrung).GetBezeichnungClass(myId, MandOid, Lang)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.FremdwaehrungD</DataLocation>
<DefaultData>FremdwaehrungDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.FremdwaehrungD</IdLocation>
<IndexLocation>^DBFibu.SD.FremdwaehrungI</IndexLocation>
<StreamLocation>^DBFibu.SD.FremdwaehrungS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="FremdwaehrungDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>FWCode</Value>
</Value>
<Value name="3">
<Value>Faktor</Value>
</Value>
<Value name="4">
<Value>KursAnkauf</Value>
</Value>
<Value name="5">
<Value>KursVerkauf</Value>
</Value>
<Value name="6">
<Value>Waehrung</Value>
</Value>
<Value name="7">
<Value>ISOSWIFTCode</Value>
</Value>
<Value name="8">
<Value>Mandant</Value>
</Value>
<Value name="9">
<Value>FibuKontoEinkauf</Value>
</Value>
<Value name="10">
<Value>FibuKontoVerkauf</Value>
</Value>
<Value name="11">
<Value>MwstImport</Value>
</Value>
<Value name="12">
<Value>MwstExport</Value>
</Value>
<Value name="13">
<Value>FibuKontoErloesminderungen</Value>
</Value>
<Value name="14">
<Value>KursVK</Value>
</Value>
<Value name="15">
<Value>FibuKontoEK</Value>
</Value>
<Value name="16">
<Value>FibuKontoVK</Value>
</Value>
<Value name="17">
<Value>FibuKontoKursdifferenz</Value>
</Value>
<Value name="18">
<Value>KursEkTabelleAnkauf</Value>
</Value>
<Value name="19">
<Value>KursEkTabelleVK</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="FWCode">
</Property>
<Property name="Faktor">
</Property>
<Property name="FibuKontoEK"/>
<Property name="FibuKontoErloesminderungen"/>
<Property name="FibuKontoKursdifferenz">
</Property>
<Property name="FibuKontoVK"/>
<Property name="ISOSWIFTCode">
</Property>
<Property name="KursAnkauf">
</Property>
<Property name="KursEkTabelleAnkauf">
</Property>
<Property name="KursEkTabelleVK">
</Property>
<Property name="KursVK">
</Property>
<Property name="Mandant">
</Property>
<Property name="MwstExport"/>
<Property name="MwstImport"/>
<Property name="Waehrung">
</Property>
</Storage>
</Class>


<Class name="DBFibu.SD.KontoBereichTyp">
<Super>%Persistent,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61163,57195.759508</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

<Property name="Nr">
<Description>
Nr normal 1-9, für Kontensortierung 0 wenn nicht Verwaltungsktoplan eingestellt ist</Description>
<Type>%String</Type>
<Required>1</Required>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Index name="NrIndex">
<Properties>Mandant,Nr</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bezeichnung">
<Description>
Bezeichnung</Description>
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

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

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

<Method name="GetOidByNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Nr:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID Into :oid FROM DBFibu_SD.KontoBereichTyp
			WHERE Mandant = :MandantOid AND Nr = :Nr)
	Quit oid
]]></Implementation>
</Method>

<Method name="GetTypByNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Nr:%String</FormalSpec>
<ReturnType>KontoBereichTyp</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	&sql(SELECT ID Into :oid FROM DBFibu_SD.KontoBereichTyp
			WHERE Mandant = :MandantOid AND Nr = :Nr)
	Quit ##class(KontoBereichTyp).%OpenId(oid)
]]></Implementation>
</Method>

<Method name="DeleteAllByMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<Implementation><![CDATA[
	&sql(DELETE FROM DBFibu_SD.KontoBereichTyp
			WHERE Mandant = :MandantOid)
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.KontoBereichTypD</DataLocation>
<DefaultData>KontoBereichTypDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.KontoBereichTypD</IdLocation>
<IndexLocation>^DBFibu.SD.KontoBereichTypI</IndexLocation>
<StreamLocation>^DBFibu.SD.KontoBereichTypS</StreamLocation>
<Data name="KontoBereichTypDefaultData">
<Structure>listnode</Structure>
<Subscript/>
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Nr</Value>
</Value>
<Value name="3">
<Value>Bezeichnung</Value>
</Value>
<Value name="4">
<Value>Mandant</Value>
</Value>
<Value name="5">
<Value>VonKonto</Value>
</Value>
<Value name="6">
<Value>BisKonto</Value>
</Value>
<Value name="7">
<Value>VonKontoNr</Value>
</Value>
<Value name="8">
<Value>BisKontoNr</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="Bezeichnung">
</Property>
<Property name="BisKontoNr">
</Property>
<Property name="Mandant">
</Property>
<Property name="Nr">
</Property>
<Property name="VonKontoNr">
</Property>
</Storage>
</Class>


<Class name="DBFibu.SD.Mwst">
<Description>
</Description>
<Super>%Persistent,%Populate,%XML.Adaptor,DBCore.MandantRel</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61100,52510.390474</TimeCreated>
<Inheritance>right</Inheritance>

<Parameter name="XMLIGNOREINVALIDATTRIBUTE">
<Description><![CDATA[
Controls how to handle attributes that are unexpected.
-> If this parameter is 1 (the default), such attributes are ignored.
-> If it is 0, they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNOREINVALIDTAG">
<Description><![CDATA[
Controls how to handle tags that are unexpected. 
-> If this parameter is 1, such tags are ignored. 
-> If it is 0 (the default), they are treated as errors, and import fails.]]></Description>
<Default>1</Default>
</Parameter>

<Parameter name="XMLIGNORENULL">
<Default>1</Default>
</Parameter>

<Property name="IdForExport">
<Type>%XML.Id</Type>
<Private>1</Private>
<Transient>1</Transient>
<Parameter name="XMLNAME" value="ID"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
</Property>

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

<ForeignKey name="FKMandant">
<Properties>Mandant</Properties>
<ReferencedClass>DBCore.Mandant</ReferencedClass>
<ReferencedKey>MandIdIndex</ReferencedKey>
</ForeignKey>

<Index name="MandantIdx">
<Properties>Mandant</Properties>
</Index>

<Property name="MwstCode">
<Type>%Integer</Type>
<Parameter name="MAXVAL" value="99"/>
<Parameter name="MINVAL" value="1"/>
</Property>

<Property name="Jahr">
<Type>DBFibu.SD.MwstJahr</Type>
<Cardinality>children</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

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

<UDLText name="T">
<Content><![CDATA[
/*
Klassenmethode, welche die Anzahl erfasster Mehrwertsteuercodes zurückgibt
*/
]]></Content>
</UDLText>

<Method name="GetAnzMwstCodes">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set cnt = ""
	//embedded SQL Statement, welches die Anzahl MwstCodes in cnt speichert
	&sql(SELECT COUNT(*) INTO :cnt
		 FROM DBFibu_SD.Mwst
		 WHERE Mandant =:MandantOid)
	Quit:(SQLCODE'=0) 0
	Quit +cnt
]]></Implementation>
</Method>

<Method name="GetMwstOidByCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,MwstCode:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	QUIT:(MandantOid="")||(MwstCode<0)
	&sql(SELECT ID INTO :oid
		 FROM DBFibu_SD.Mwst
		 WHERE Mandant = :MandantOid AND MwstCode = :MwstCode)
	Quit:(SQLCODE'=0) ""
	Quit oid
]]></Implementation>
</Method>

<Method name="GetMwstCodeByOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,MwstOid:%String</FormalSpec>
<ReturnType>%Integer</ReturnType>
<Implementation><![CDATA[
	set code = ""
	QUIT:(MandantOid="")||(MwstOid="")
	&sql(SELECT MwstCode INTO :code
		 FROM DBFibu_SD.Mwst
		 WHERE Mandant = :MandantOid AND ID = :MwstOid)
	Quit:(SQLCODE'=0) 0
	Quit code
]]></Implementation>
</Method>

<Method name="CopyMwstFromMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>OldMandOid:%String,NewMandOid:%String</FormalSpec>
<Implementation><![CDATA[
	Quit:(OldMandOid="")||(NewMandOid="")
	&sql(SELECT Count(*) InTo :Cnt From DBCore.Mandant WHERE ID=:NewMandOid)
	If (Cnt) {
		Set strSQL="SELECT ID, Mandant, MwstCode, MwstSatzFibu, MwstSatzFakturierung, ZifferMwstFormular, ZusatzZifferMwstFormular, SteuerungInklExkl, FibuKonto FROM DBFibu_SD.Mwst WHERE Mandant = "_OldMandOid
		Set s=##class(%ResultSet).%New("%DynamicQuery:SQL")
		Do s.Prepare(strSQL)
		Do s.Execute()
		While s.Next(.osc) {
			If $$$ISERR(osc) Quit
			Set n=..%New()
			Set o=..%OpenId(s.ID)
			Set n=o.%ConstructClone(0)
			Set n.Mandant= NewMandOid
			Do n.%Save()
		}
	}
]]></Implementation>
</Method>

<Method name="GetFibuKontoJahrOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>nr:%String,mandJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	Set id = ""
	&sql(SELECT ID InTo :id 
			FROM DBFibu.KontoJahr 
			WHERE KontoNr = :nr AND 
					MandantJahr = :mandJahrOid)
	Quit:(SQLCODE'=0) ""
	Quit id
]]></Implementation>
</Method>

<Method name="GetFibuKontoJahrMwstExportOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>nr:%String,mandJahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	Set id = ""
	&sql(SELECT ID InTo :id 
			FROM DBFibu.KontoJahr 
			WHERE KontoNr = :nr AND 
					MandantJahr = :mandJahrOid)
	Quit:(SQLCODE'=0) ""
	Quit id
]]></Implementation>
</Method>

<Method name="GetOidByStrgForOrderMgmt">
<Description>
Gibt die Oid für die Auftragsverwaltung gemäss Einstellung
MWST steuerung auf Auftrag und der auf dem Detail eingestellten Mwst 
Para 1: Steuerung auf Auftragskopf (MwstCode)
Para 2: Die Oid des dem Detail urspruenglich zugewiesenem Codes</Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>StrgHeader:%Integer,srcOid:%String,mandOid:%String,Gebindeschein:%Boolean=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set retValue = ""
	if ((srcOid = "") || (srcOid = $c(0))) {
		quit ""
	}
	set srcMwst = ##class(DBFibu.SD.Mwst).%OpenId(srcOid)
	
	// Steuerung ist gleich wie auf dem Detail -> keine Aenderung
	if (srcMwst.SteuerungInklExkl = StrgHeader) {
		set retValue = srcOid
		
		// Von Exklusive auf Inklusive wechseln
	} elseif ((StrgHeader = ##class(DBCore.Konst).MWSTSTEUERUNGINKL()) &&
		(srcMwst.SteuerungInklExkl = ##class(DBCore.Konst).MWSTSTEUERUNGEXKL())) {
		// Mwst-Code des Details auf inklusiv setzen, dies geschieht indem der Satz des Mwst-Codes -1 genommen wird
		set retValue = ##class(DBFibu.SD.Mwst).GetMwstOidByCode(mandOid, srcMwst.MwstCode - 1)
			
		// Von Inklusive auf Exklusive wechseln
	} elseif ((StrgHeader = ##class(DBCore.Konst).MWSTSTEUERUNGEXKL()) &&
		(srcMwst.SteuerungInklExkl = ##class(DBCore.Konst).MWSTSTEUERUNGINKL())) {
		// Mwst-Code des Artikels auf exklusiv setzen, dies geschieht indem der Satz des Mwst-Codes +1 genommen wird
		set retValue = ##class(DBFibu.SD.Mwst).GetMwstOidByCode(mandOid, srcMwst.MwstCode + 1)
		
		// Ist was Urproduktion soll es Urproduktion bleiben
	} elseif ((StrgHeader = ##class(DBCore.Konst).MWSTSTEUERUNGURPROD()) ||
		(srcMwst.SteuerungInklExkl = ##class(DBCore.Konst).MWSTSTEUERUNGURPROD())) {
		if (Gebindeschein = 0) {
			// Wenn Auftrag Urpord und der übergebene MWST Code 3,4,21 oder 22 ist, muss auf Code 11 gewechselt werden (Wegen Alliance)
			if ((srcMwst.SteuerungInklExkl '= ##class(DBCore.Konst).MWSTSTEUERUNGURPROD()) &&	
				((srcMwst.MwstCode = 3) || (srcMwst.MwstCode = 4) || (srcMwst.MwstCode = 21) || (srcMwst.MwstCode = 22))) {
				Set retValue = ##class(DBFibu.SD.Mwst).GetMwstOidByCode(srcMwst.Mandant,11)
			} else {
				set retValue = srcOid
			}
		} else {
			set retValue = srcOid
		}
	
	} else {
		set retValue = srcOid
	}
	k srcMwst
	Quit retValue
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if ((myId '= "") && (myId '= $c(0))) {	
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,myId)
		if (idJahr '= "") {
			Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
			set text = rs.GetBezeichnung(MandOid, Lang)
		}
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set text = ""
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,..%Id())
	if (idJahr '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
		set text = rs.GetBezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetKurzbezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set text = ""
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,..%Id())
	if (idJahr '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
		set text = rs.GetKurzbezeichnung(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetKurzbezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if ((myId '= "") && (myId '= $c(0))) {
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,myId)
		if (idJahr '= "") {
			Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
			set text = rs.GetKurzbezeichnung(MandOid, Lang)
		}
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetBezeichnungFaktClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if ((myId '= "") && (myId '= $c(0))) {
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,myId)
		if (idJahr '= "") {
			Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
			set text = rs.GetBezeichnungFakt(MandOid, Lang)
		}
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetBezeichnungFakt">
<FormalSpec>MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set text = ""
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,..%Id())
	if (idJahr '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
		set text = rs.GetBezeichnungFakt(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetBezeichnungUrprodClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if ((myId '= "") && (myId '= $c(0))) {
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,myId)
		if (idJahr '= "") {
			Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
			set text = rs.GetBezeichnungUrprod(MandOid, Lang)
		}
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetBezeichnungUrprod">
<FormalSpec>MandOid:%String,Lang:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set text = ""
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	set idJahr = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(Jahr,..%Id())
	if (idJahr '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(idJahr)
		set text = rs.GetBezeichnungUrprod(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="GetMwstSatzFibu">
<FormalSpec>Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set satz = 0
	set myId = ..%Id()
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	&sql(SELECT TOP 1 MwstSatzFibu into :satz FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = :myId AND Jahr >= :Jahr Order by Jahr ASC)
	Quit:(SQLCODE'=0) 0
	Quit satz
]]></Implementation>
</Method>

<Method name="GetMwstSatzFibuClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set satz = 0
	if ((myId '= "") && (myId '= $c(0))) {
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		&sql(SELECT TOP 1 MwstSatzFibu into :satz FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = :myId AND Jahr >= :Jahr Order by Jahr ASC)
		Quit:(SQLCODE'=0) 0
	}
	Quit satz
]]></Implementation>
</Method>

<Method name="GetMwstSatzFakturierung">
<FormalSpec>Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set satz = 0
	set myId = ..%Id()
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	&sql(SELECT TOP 1 MwstSatzFakturierung into :satz FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = :myId AND Jahr >= :Jahr Order by Jahr ASC)
	Quit:(SQLCODE'=0) 0
	Quit satz
]]></Implementation>
</Method>

<Method name="GetMwstSatzFakturierungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set satz = 0
	if ((myId '= "") && (myId '= $c(0))) {
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		&sql(SELECT TOP 1 MwstSatzFakturierung into :satz FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = :myId AND Jahr >= :Jahr Order by Jahr ASC)
		Quit:(SQLCODE'=0) 0
	}
	Quit satz
]]></Implementation>
</Method>

<Method name="GetMwstSatzExport">
<FormalSpec>Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set satz = 0
	set myId = ..%Id()
	set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
	&sql(SELECT TOP 1 MwstSatzExport into :satz FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = :myId AND Jahr >= :Jahr Order by Jahr ASC)
	Quit:(SQLCODE'=0) 0
	Quit satz
]]></Implementation>
</Method>

<Method name="GetMwstSatzExportClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myId:%String,Datum:%Date,EndeGeschJahr:%Date=0</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set satz = 0
	if ((myId '= "") && (myId '= $c(0))) {
		set Jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum, EndeGeschJahr)
		&sql(SELECT TOP 1 MwstSatzExport into :satz FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = :myId AND Jahr >= :Jahr Order by Jahr ASC)
		Quit:(SQLCODE'=0) 0
	}
	Quit satz
]]></Implementation>
</Method>

<Method name="GetMwstOidByJahrOidClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>JahrOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set myId = ""
	if ((JahrOid '= "") && (JahrOid '= $c(0))) {
		&sql(SELECT Mwst->ID into :myId FROM DBFibu_SD.MwstJahr WHERE ID = :JahrOid)
		Quit:(SQLCODE'=0) ""
	}
	Quit myId
]]></Implementation>
</Method>

<Property name="KontoMwst">
<Type>DBFibu.KontoJahr</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="TeilbuchungMwst">
<Type>DBFibu.Teilbuchung</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="KontoMwstAlternativ">
<Type>DBFibu.KontoJahr</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstAlternativ</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragskopfAbzug1">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragskopfAbzug2">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragskopfAbzug3">
<Type>DBAgrofresh.Auftragskopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestkopfAbzug1">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug1Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestkopfAbzug2">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug2Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestkopfAbzug3">
<Type>DBAgrofreshEK.BestellungsKopf</Type>
<Cardinality>many</Cardinality>
<Inverse>Abzug3Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelMwstEK">
<Type>DBAgrofresh.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelMwstVK">
<Type>DBAgrofresh.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstVK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeMwstVK">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstVK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeMwstEK">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragspositionMwst">
<Type>DBAgrofresh.Auftragspos</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebDetailMwst">
<Type>DBAgrofresh.GebDetail</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebDetailEKMwst">
<Type>DBAgrofreshEK.GebDetail</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeMwstMieteAuf">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstMieteAufw</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeMwstMieteErl">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstMieteErl</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="AuftragspositionMwstExport">
<Type>DBAgrofresh.Auftragspos</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstExport</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="OPMwst">
<Type>DBDebiKredi.OPMwst</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="BestellungsposMwst">
<Type>DBAgrofreshEK.Bestellungspos</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="ArtikelFaktEK">
<Type>DBFakturierung.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="ArtikelFaktVK">
<Type>DBFakturierung.Artikel</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstVK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktAuftragspositionMwst">
<Type>DBFakturierung.Auftragspos</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktAuftragspositionMwstExport">
<Type>DBFakturierung.Auftragspos</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstExport</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="GebindeMwstAdminkosten">
<Type>DBAgrofresh.SD.Gebinde</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstAdminkosten</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="WerkzeugEK">
<Type>DBSpezial.Mecano.Werkzeug</Type>
<Cardinality>many</Cardinality>
<Inverse>MwstEK</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FaktEKBestPosMwst">
<Type>DBFaktEK.Bestellungspos</Type>
<Cardinality>many</Cardinality>
<Inverse>Mwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Method name="SetDataFromOldDataClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String</FormalSpec>
<Implementation><![CDATA[
	// Alle Kopfdaten abfragen
	set strSQL = "SELECT ID FROM DBFibu_SD.Mwst WHERE Mandant="_MandOid	
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
	
	IF $$$ISOK(sc) {
		While rs.Next(.sc) {
			Set kopfId =rs.Data("ID")
			
			set lbGlobal = $GET(^DBFibu.SD.MwstD(kopfId))
			set fibuKonto = $ListGet(lbGlobal, 16)
			set fibuKontoExport = $ListGet(lbGlobal, 40)
			set mwstExport = +$ListGet(lbGlobal, 6)
			
			set kurzBezDE = $GET(^DBFibu.SD.MwstD(kopfId,"Kurzbezeichnung","de"))
			set kurzBezIT = $GET(^DBFibu.SD.MwstD(kopfId,"Kurzbezeichnung","it"))
			set kurzBezEN = $GET(^DBFibu.SD.MwstD(kopfId,"Kurzbezeichnung","en"))
			set kurzBezFR = $GET(^DBFibu.SD.MwstD(kopfId,"Kurzbezeichnung","fr"))
			
			set bezDE = $GET(^DBFibu.SD.MwstD(kopfId,"Bezeichnung","de"))
			set bezIT = $GET(^DBFibu.SD.MwstD(kopfId,"Bezeichnung","it"))
			set bezEN = $GET(^DBFibu.SD.MwstD(kopfId,"Bezeichnung","en"))
			set bezFR = $GET(^DBFibu.SD.MwstD(kopfId,"Bezeichnung","fr"))
			
			set bezUrprodDE = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungUrprod","de"))
			set bezUrprodIT = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungUrprod","it"))
			set bezUrprodEN = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungUrprod","en"))
			set bezUrprodFR = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungUrprod","fr"))
			
			set bezFaktDE = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungFakt","de"))
			set bezFaktIT = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungFakt","it"))
			set bezFaktEN = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungFakt","en"))
			set bezFaktFR = $GET(^DBFibu.SD.MwstD(kopfId,"BezeichnungFakt","fr"))
			
			// Alle Jahresdaten abfragen
			set strSQL = "SELECT ID FROM DBFibu_SD.MwstJahr WHERE Mwst->ID = '"_kopfId_"'"
			Set rsDet = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
			Do rsDet.Prepare(strSQL)
			Set scDet=rsDet.Execute()
	
			IF $$$ISOK(scDet) {
				While rsDet.Next(scDet) {
					Set detId =rsDet.Data("ID")
					
					set mwstJahr = ##class(DBFibu.SD.MwstJahr).%OpenId(detId)
					if (mwstJahr '= "") {
						if ((kurzBezDE '= "") && (kurzBezDE '= $C(0))) {
							d mwstJahr.SetKurzbezeichnung(MandOid, "de", kurzBezDE)
						}
						if ((kurzBezFR '= "") && (kurzBezFR '= $C(0))) {
							d mwstJahr.SetKurzbezeichnung(MandOid, "fr", kurzBezFR)
						}
						if ((kurzBezIT '= "") && (kurzBezIT '= $C(0))) {
							d mwstJahr.SetKurzbezeichnung(MandOid, "it", kurzBezIT)
						}
						if ((kurzBezEN '= "") && (kurzBezEN '= $C(0))) {
							d mwstJahr.SetKurzbezeichnung(MandOid, "en", kurzBezEN)
						}
						
						if ((bezDE '= "") && (bezDE '= $C(0))) {
							d mwstJahr.SetBezeichnung(MandOid, "de", bezDE)
						}
						if ((bezFR '= "") && (bezFR '= $C(0))) {
							d mwstJahr.SetBezeichnung(MandOid, "fr", bezFR)
						}
						if ((bezIT '= "") && (bezIT '= $C(0))) {
							d mwstJahr.SetBezeichnung(MandOid, "it", bezIT)
						}
						if ((bezEN '= "") && (bezEN '= $C(0))) {
							d mwstJahr.SetBezeichnung(MandOid, "en", bezEN)
						}
						
						if ((bezFaktDE '= "") && (bezFaktDE '= $C(0))) {
							d mwstJahr.SetBezeichnungFakt(MandOid, "de", bezFaktDE)
						}
						if ((bezFaktFR '= "") && (bezFaktFR '= $C(0))) {
							d mwstJahr.SetBezeichnungFakt(MandOid, "fr", bezFaktFR)
						}
						if ((bezFaktIT '= "") && (bezFaktIT '= $C(0))) {
							d mwstJahr.SetBezeichnungFakt(MandOid, "it", bezFaktIT)
						}
						if ((bezFaktEN '= "") && (bezFaktEN '= $C(0))) {
							d mwstJahr.SetBezeichnungFakt(MandOid, "en", bezFaktEN)
						}
						
						if ((bezUrprodDE '= "") && (bezUrprodDE '= $C(0))) {
							d mwstJahr.SetBezeichnungUrprod(MandOid, "de", bezUrprodDE)
						}
						if ((bezUrprodFR '= "") && (bezUrprodFR '= $C(0))) {
							d mwstJahr.SetBezeichnungUrprod(MandOid, "fr", bezUrprodFR)
						}
						if ((bezUrprodIT '= "") && (bezUrprodIT '= $C(0))) {
							d mwstJahr.SetBezeichnungUrprod(MandOid, "it", bezUrprodIT)
						}
						if ((bezUrprodEN '= "") && (bezUrprodEN '= $C(0))) {
							d mwstJahr.SetBezeichnungUrprod(MandOid, "en", bezUrprodEN)
						}
						
						if ((+mwstExport '= 0) && (mwstExport '= $C(0))) {
							s mwstJahr.MwstSatzExport = +mwstExport
						}
						
						//w "fibuKonto "_fibuKonto, !
						if ((fibuKonto '= "") && (fibuKonto '= $C(0))) {
							set ktoId = ##class(DBFibu.Konto).GetOidByKontoNr(MandOid, fibuKonto)
							if ((ktoId '= "") && (ktoId '= $C(0))) {
								s mwstJahr.FibuKontoNr = fibuKonto
							}
						}
						if ((fibuKontoExport '= "") && (fibuKontoExport '= $C(0))) {
							set ktoId = ##class(DBFibu.Konto).GetOidByKontoNr(MandOid, fibuKonto)
							if ((ktoId '= "") && (ktoId '= $C(0))) {
								s mwstJahr.FibuKontoNrMwstExport = fibuKontoExport
							}
						}
						s state = mwstJahr.%Save()
					}
				}
			}
			
			
		}
	}
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>^DBFibu.SD.MwstD</DataLocation>
<DefaultData>MwstDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.MwstD</IdLocation>
<IndexLocation>^DBFibu.SD.MwstI</IndexLocation>
<StreamLocation>^DBFibu.SD.MwstS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="BezeichnungFakt">
<Attribute>BezeichnungFakt</Attribute>
<Structure>subnode</Structure>
<Subscript>"BezeichnungFakt"</Subscript>
</Data>
<Data name="BezeichnungUrprod">
<Attribute>BezeichnungUrprod</Attribute>
<Structure>subnode</Structure>
<Subscript>"BezeichnungUrprod"</Subscript>
</Data>
<Data name="Kurzbezeichnung">
<Attribute>Kurzbezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Kurzbezeichnung"</Subscript>
</Data>
<Data name="MwstDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>MwstCode</Value>
</Value>
<Value name="3">
<Value>Aktiv</Value>
</Value>
<Value name="4">
<Value>MwstSatzFibu</Value>
</Value>
<Value name="5">
<Value>MwstSatzFakturierung</Value>
</Value>
<Value name="6">
<Value>MwstSatzExport</Value>
</Value>
<Value name="7">
<Value>MwstSatzAbDatumFibu</Value>
</Value>
<Value name="8">
<Value>MwstSatzAbDatumExport</Value>
</Value>
<Value name="9">
<Value>ZifferMwstFormular</Value>
</Value>
<Value name="10">
<Value>ZusatzZifferMwstFormular</Value>
</Value>
<Value name="11">
<Value>MwstSatzAbDatumFakt</Value>
</Value>
<Value name="12">
<Value>AbDatum</Value>
</Value>
<Value name="13">
<Value>SteuerungInklExkl</Value>
</Value>
<Value name="14">
<Value>FibuKonto</Value>
</Value>
<Value name="15">
<Value>Mandant</Value>
</Value>
<Value name="16">
<Value>FibuKontoNr</Value>
</Value>
<Value name="17">
<Value>ZifMwstFormSubtrahieren</Value>
</Value>
<Value name="18">
<Value>ZusatzZifMwstFormSubtrahieren</Value>
</Value>
<Value name="19">
<Value>MwstFormularZiffer1Umsatz</Value>
</Value>
<Value name="20">
<Value>FormZiffer1Umsatz</Value>
</Value>
<Value name="21">
<Value>FormZiffer1UmsatzAddieren</Value>
</Value>
<Value name="22">
<Value>FormZiffer1Steuer</Value>
</Value>
<Value name="23">
<Value>FormZiffer1SteuerAddieren</Value>
</Value>
<Value name="24">
<Value>FormZiffer2Umsatz</Value>
</Value>
<Value name="25">
<Value>FormZiffer2UmsatzAddieren</Value>
</Value>
<Value name="26">
<Value>FormZiffer2Steuer</Value>
</Value>
<Value name="27">
<Value>FormZiffer2SteuerAddieren</Value>
</Value>
<Value name="28">
<Value>FormZiffer3Umsatz</Value>
</Value>
<Value name="29">
<Value>FormZiffer3UmsatzAddieren</Value>
</Value>
<Value name="30">
<Value>FormZiffer3Steuer</Value>
</Value>
<Value name="31">
<Value>FormZiffer3SteuerAddieren</Value>
</Value>
<Value name="32">
<Value>FormZiffer4Umsatz</Value>
</Value>
<Value name="33">
<Value>FormZiffer4UmsatzAddieren</Value>
</Value>
<Value name="34">
<Value>FormZiffer4Steuer</Value>
</Value>
<Value name="35">
<Value>FormZiffer4SteuerAddieren</Value>
</Value>
<Value name="36">
<Value>FormZiffer5Umsatz</Value>
</Value>
<Value name="37">
<Value>FormZiffer5UmsatzAddieren</Value>
</Value>
<Value name="38">
<Value>FormZiffer5Steuer</Value>
</Value>
<Value name="39">
<Value>FormZiffer5SteuerAddieren</Value>
</Value>
<Value name="40">
<Value>FibuKontoNrMwstExport</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="AbDatum"/>
<Property name="Aktiv"/>
<Property name="FibuKontoNr"/>
<Property name="FibuKontoNrMwstExport"/>
<Property name="FormZiffer1Steuer"/>
<Property name="FormZiffer1SteuerAddieren"/>
<Property name="FormZiffer1Umsatz"/>
<Property name="FormZiffer1UmsatzAddieren"/>
<Property name="FormZiffer2Steuer"/>
<Property name="FormZiffer2SteuerAddieren"/>
<Property name="FormZiffer2Umsatz"/>
<Property name="FormZiffer2UmsatzAddieren"/>
<Property name="FormZiffer3Steuer"/>
<Property name="FormZiffer3SteuerAddieren"/>
<Property name="FormZiffer3Umsatz"/>
<Property name="FormZiffer3UmsatzAddieren"/>
<Property name="FormZiffer4Steuer"/>
<Property name="FormZiffer4SteuerAddieren"/>
<Property name="FormZiffer4Umsatz"/>
<Property name="FormZiffer4UmsatzAddieren"/>
<Property name="FormZiffer5Steuer"/>
<Property name="FormZiffer5SteuerAddieren"/>
<Property name="FormZiffer5Umsatz"/>
<Property name="FormZiffer5UmsatzAddieren"/>
<Property name="Mandant">
</Property>
<Property name="MwstCode">
</Property>
<Property name="MwstSatzAbDatumExport"/>
<Property name="MwstSatzAbDatumFakt"/>
<Property name="MwstSatzAbDatumFibu"/>
<Property name="MwstSatzExport"/>
<Property name="MwstSatzFakturierung"/>
<Property name="MwstSatzFibu"/>
<Property name="SteuerungInklExkl">
</Property>
<Property name="ZifMwstFormSubtrahieren"/>
<Property name="ZifferMwstFormular"/>
<Property name="ZusatzZifMwstFormSubtrahieren"/>
<Property name="ZusatzZifferMwstFormular"/>
</Storage>
</Class>


<Class name="DBFibu.SD.MwstJahr">
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>62011,33567.04728</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="Mwst">
<Type>DBFibu.SD.Mwst</Type>
<Cardinality>parent</Cardinality>
<Inverse>Jahr</Inverse>
<Relationship>1</Relationship>
</Property>

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

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

<Property name="Kurzbezeichnung">
<Description>
Bez Sprache1</Description>
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="MwstSatzFibu">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstSatzFakturierung">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstSatzExport">
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Index name="MwstJahrInklExklIndex">
<Data>%%ID,Mwst,MwstCode</Data>
<Properties>Aktiv,Mandant,Jahr,SteuerungInklExkl,MwstCode</Properties>
<Unique>1</Unique>
</Index>

<Property name="Bezeichnung">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="BezeichnungFakt">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="BezeichnungUrprod">
<Type>%String</Type>
<Collection>array</Collection>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="FibuKontoNr">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<ForeignKey name="FibuKonto">
<OnDelete>cascade</OnDelete>
<OnUpdate>cascade</OnUpdate>
<Properties>Mandant,FibuKontoNr</Properties>
<ReferencedClass>DBFibu.Konto</ReferencedClass>
<ReferencedKey>KontoIndex</ReferencedKey>
</ForeignKey>

<Property name="FibuKontoNrMwstExport">
<Type>%String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<ForeignKey name="FibuKontoMwstExport">
<OnDelete>cascade</OnDelete>
<OnUpdate>cascade</OnUpdate>
<Properties>Mandant,FibuKontoNrMwstExport</Properties>
<ReferencedClass>DBFibu.Konto</ReferencedClass>
<ReferencedKey>KontoIndex</ReferencedKey>
</ForeignKey>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<Index name="MwstCodeIndex">
<Data>%%ID,Mwst,MwstCode</Data>
<Properties>Aktiv,Mandant,Jahr,MwstCode</Properties>
<Unique>1</Unique>
</Index>

<Method name="GetKurzbezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Kurzbezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetKurzbezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(myID)
		if (rs '= "") {
			set text = rs.GetKurzbezeichnung(MandOid, Lang)
		}
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetKurzbezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String=""</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Kurzbezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..Bezeichnung, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(myID)
		if (rs '= "") {
			set text = rs.GetBezeichnung(MandOid, Lang)
		}
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnung">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String=""</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..Bezeichnung, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungFakt">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..BezeichnungFakt, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungFaktClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(myID)
		set text = rs.GetBezeichnungFakt(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnungFakt">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String=""</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..BezeichnungFakt, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungUrprod">
<FormalSpec>MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[	Quit ##Class(DBUtils.StringUtils).GetText(..BezeichnungUrprod, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetBezeichnungUrprodClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>myID:%String,MandOid:%String,Lang:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set text = ""
	if (myID '= "") {
		Set rs=##Class(DBFibu.SD.MwstJahr).%OpenId(myID)
		set text = rs.GetBezeichnungUrprod(MandOid, Lang)
	}
	Quit text
]]></Implementation>
</Method>

<Method name="SetBezeichnungUrprod">
<FormalSpec>MandOid:%String,Lang:%String,Value:%String=""</FormalSpec>
<Implementation><![CDATA[	Do ##class(DBUtils.StringUtils).SetText(..BezeichnungUrprod, Value, Lang, MandOid)
]]></Implementation>
</Method>

<Method name="GetExportKontoByMwstDateClass">
<ClassMethod>1</ClassMethod>
<FormalSpec>Mwst:%String,Datum:%Date</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set KontoNr = ""
	if ((Mwst '= "") && (Datum '= 0)) {
		set jahr = ##class(DBUtils.DateUtils).GetYearFromDate(Datum)
		&sql(SELECT TOP 1 FibuKontoNrMwstExport INTO :KontoNr
			 FROM DBFibu_SD.MwstJahr
			 WHERE Mwst = :Mwst AND Jahr >= :jahr Order by Jahr ASC)
		Quit:(SQLCODE'=0) ""
	}
	Quit KontoNr
]]></Implementation>
</Method>

<Method name="MoveFirstOnMwstCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,""),1)
	if (mwst '= ""){
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst,""),1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnMwstCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,""),-1)
	if (mwst '= ""){
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst,""),-1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnMwstCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,mwstCode:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
    set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwstCode))
	if (mwst '= "") {
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst,""),1,list)
	} else {
		set list = ##class(DBFibu.SD.MwstJahr).MoveLastOnMwstCode(MandantOid, Jahr)
	}	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnMwstCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,mwstCode:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
    set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwstCode),-1)
	if (mwst '= "") {
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstCodeIndex",1,MandantOid,Jahr,mwst,""),-1,list)
	} else {
		set list = ##class(DBFibu.SD.MwstJahr).MoveFirstOnMwstCode(MandantOid, Jahr)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MoveFirstOnMwstInklExkl">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,codeIE:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,""),1)
	if (mwst '= ""){
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst,""),1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveLastOnMwstInklExkl">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,codeIE:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
	set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,""),-1)
	if (mwst '= ""){
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst,""),-1,list)
	} else {
		Quit ""	
	}
	Quit list
]]></Implementation>
</Method>

<Method name="MoveNextOnMwstInklExkl">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,codeIE:%Integer,mwstCode:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
    set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwstCode))
	if (mwst '= "") {
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst,""),1,list)
	} else {
		set list = ##class(DBFibu.SD.MwstJahr).MoveLastOnMwstInklExkl(MandantOid,Jahr,codeIE)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="MovePrevOnMwstInklExkl">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,codeIE:%Integer,mwstCode:%Integer</FormalSpec>
<ReturnType>%List</ReturnType>
<Implementation><![CDATA[
	set list = $ListBuild()
	set MandantOid = " "_MandantOid
    set mwst = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwstCode),-1)
	if (mwst '= "") {
		set parent = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, ""), 1)
		set child = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,""), 1)
		set list = $Get(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst, parent,child))
		//set res = $Order(^DBFibu.SD.MwstJahrI("MwstJahrInklExklIndex",1,MandantOid,Jahr,codeIE,mwst,""),-1,list)
	} else {
		set list = ##class(DBFibu.SD.MwstJahr).MoveLastOnMwstInklExkl(MandantOid,Jahr,codeIE)
	}
	
	Quit list
]]></Implementation>
</Method>

<Method name="ExistsMwstJahrByJahrCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,MwstCode:%Integer</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	QUIT:(MandantOid="")||(MwstCode<=0)||(Jahr<=0)
	&sql(SELECT TOP 1 ID INTO :oid
		 FROM DBFibu_SD.MwstJahr
		 WHERE Mandant = :MandantOid AND Jahr = :Jahr AND MwstCode = :MwstCode)
	Quit:(SQLCODE'=0) 0
	Quit 1
]]></Implementation>
</Method>

<Method name="GetMwstJahrOidByJahrCode">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer,MwstCode:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	QUIT:(MandantOid="")||(MwstCode<=0)||(Jahr<=0)
	&sql(SELECT TOP 1 ID INTO :oid
		 FROM DBFibu_SD.MwstJahr
		 WHERE Mandant = :MandantOid AND Jahr <= :Jahr AND MwstCode = :MwstCode ORDER BY Jahr Desc)
	Quit:(SQLCODE'=0) ""
	Quit oid
]]></Implementation>
</Method>

<Method name="GetMwstJahrOidByJahrMwst">
<ClassMethod>1</ClassMethod>
<FormalSpec>Jahr:%Integer,Mwst:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set oid = ""
	QUIT:(Mwst="")||(Jahr<=0)
	&sql(SELECT TOP 1 ID INTO :oid
		 FROM DBFibu_SD.MwstJahr
		 WHERE Jahr <= :Jahr AND Mwst->ID =:Mwst ORDER BY Jahr Desc)
	Quit:(SQLCODE'=0) ""
	Quit oid
]]></Implementation>
</Method>

<Method name="GetFirstMwstOidByMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT TOP 1 Mwst INTO :id 
			FROM DBFibu_SD.MwstJahr 
			WHERE Mandant = :MandantOid AND
					Jahr = :Jahr
			ORDER BY MwstCode)
	Quit:(SQLCODE'=0) ""
	Quit id
]]></Implementation>
</Method>

<Method name="GetLastMwstOidByMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT TOP 1 Mwst INTO :id 
			FROM DBFibu_SD.MwstJahr 
			WHERE Mandant = :MandantOid AND
					Jahr = :Jahr
			ORDER BY MwstCode DESC)
	Quit:(SQLCODE'=0) ""
	Quit id
]]></Implementation>
</Method>

<Method name="GetLastMwstOidKl90ByMandant">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandantOid:%String,Jahr:%Integer</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	set id = ""
	&sql(SELECT TOP 1 Mwst INTO :id 
			FROM DBFibu_SD.MwstJahr 
			WHERE Mandant = :MandantOid AND
					Jahr = :Jahr AND 
					MwstCode < 90
			ORDER BY MwstCode DESC)
	Quit:(SQLCODE'=0) ""
	Quit id
]]></Implementation>
</Method>

<Method name="GetFibuKontoNrByJahrMwst">
<ClassMethod>1</ClassMethod>
<FormalSpec>Jahr:%Integer,Mwst:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set oid = ""
	//QUIT:(Mwst="")||(Jahr<=0)
	&sql(SELECT TOP 1 FibuKontoNr INTO :oid
		 FROM DBFibu_SD.MwstJahr
		 WHERE Jahr <= :Jahr AND Mwst->ID =:Mwst ORDER BY Jahr Desc)
	Quit:(SQLCODE'=0) ""
	Quit oid
]]></Implementation>
</Method>

<Method name="GetSatzFibuByFormularZiffer">
<ClassMethod>1</ClassMethod>
<FormalSpec>Jahr:%Integer,Ziffer:%Integer</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<Implementation><![CDATA[
	set satz = 0
	&sql(SELECT TOP 1 MwstSatzFibu INTO :satz
		 FROM DBFibu_SD.MwstJahr
		 WHERE Jahr <= :Jahr AND 
		 ((FormZiffer1Steuer = :Ziffer) OR (FormZiffer2Steuer = :Ziffer) OR (FormZiffer3Steuer = :Ziffer)
		 OR (FormZiffer4Steuer = :Ziffer) OR (FormZiffer5Steuer = :Ziffer))
		 ORDER BY Jahr Desc, MwstCode DESC)
	Quit:(SQLCODE'=0) 0
	Quit satz
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("Jahr")</DataLocation>
<DefaultData>MwstJahrDefaultData</DefaultData>
<IdLocation>^DBFibu.SD.MwstC("Jahr")</IdLocation>
<IndexLocation>^DBFibu.SD.MwstJahrI</IndexLocation>
<StreamLocation>^DBFibu.SD.MwstJahrS</StreamLocation>
<Data name="Bezeichnung">
<Attribute>Bezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Bezeichnung"</Subscript>
</Data>
<Data name="BezeichnungFakt">
<Attribute>BezeichnungFakt</Attribute>
<Structure>subnode</Structure>
<Subscript>"BezeichnungFakt"</Subscript>
</Data>
<Data name="BezeichnungUrprod">
<Attribute>BezeichnungUrprod</Attribute>
<Structure>subnode</Structure>
<Subscript>"BezeichnungUrprod"</Subscript>
</Data>
<Data name="Kurzbezeichnung">
<Attribute>Kurzbezeichnung</Attribute>
<Structure>subnode</Structure>
<Subscript>"Kurzbezeichnung"</Subscript>
</Data>
<Data name="MwstJahrDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>Jahr</Value>
</Value>
<Value name="3">
<Value>Aktiv</Value>
</Value>
<Value name="4">
<Value>MwstSatzFibu</Value>
</Value>
<Value name="5">
<Value>MwstSatzFakturierung</Value>
</Value>
<Value name="6">
<Value>MwstSatzExport</Value>
</Value>
<Value name="7">
<Value>FibuKontoNr</Value>
</Value>
<Value name="8">
<Value>FibuKontoNrMwstExport</Value>
</Value>
<Value name="9">
<Value>FormZiffer1Umsatz</Value>
</Value>
<Value name="10">
<Value>FormZiffer1UmsatzAddieren</Value>
</Value>
<Value name="11">
<Value>FormZiffer1Steuer</Value>
</Value>
<Value name="12">
<Value>FormZiffer1SteuerAddieren</Value>
</Value>
<Value name="13">
<Value>FormZiffer2Umsatz</Value>
</Value>
<Value name="14">
<Value>FormZiffer2UmsatzAddieren</Value>
</Value>
<Value name="15">
<Value>FormZiffer2Steuer</Value>
</Value>
<Value name="16">
<Value>FormZiffer2SteuerAddieren</Value>
</Value>
<Value name="17">
<Value>FormZiffer3Umsatz</Value>
</Value>
<Value name="18">
<Value>FormZiffer3UmsatzAddieren</Value>
</Value>
<Value name="19">
<Value>FormZiffer3Steuer</Value>
</Value>
<Value name="20">
<Value>FormZiffer3SteuerAddieren</Value>
</Value>
<Value name="21">
<Value>FormZiffer4Umsatz</Value>
</Value>
<Value name="22">
<Value>FormZiffer4UmsatzAddieren</Value>
</Value>
<Value name="23">
<Value>FormZiffer4Steuer</Value>
</Value>
<Value name="24">
<Value>FormZiffer4SteuerAddieren</Value>
</Value>
<Value name="25">
<Value>FormZiffer5Umsatz</Value>
</Value>
<Value name="26">
<Value>FormZiffer5UmsatzAddieren</Value>
</Value>
<Value name="27">
<Value>FormZiffer5Steuer</Value>
</Value>
<Value name="28">
<Value>FormZiffer5SteuerAddieren</Value>
</Value>
<Value name="29">
<Value>Mandant</Value>
</Value>
<Value name="30">
<Value>MwstCode</Value>
</Value>
<Value name="31">
<Value>SteuerungInklExkl</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="Aktiv">
</Property>
<Property name="FibuKontoNr">
</Property>
<Property name="FibuKontoNrMwstExport">
</Property>
<Property name="FormZiffer1Steuer">
</Property>
<Property name="FormZiffer1SteuerAddieren">
</Property>
<Property name="FormZiffer1Umsatz">
</Property>
<Property name="FormZiffer1UmsatzAddieren">
</Property>
<Property name="FormZiffer2Steuer">
</Property>
<Property name="FormZiffer2SteuerAddieren">
</Property>
<Property name="FormZiffer2Umsatz">
</Property>
<Property name="FormZiffer2UmsatzAddieren">
</Property>
<Property name="FormZiffer3Steuer">
</Property>
<Property name="FormZiffer3SteuerAddieren">
</Property>
<Property name="FormZiffer3Umsatz">
</Property>
<Property name="FormZiffer3UmsatzAddieren">
</Property>
<Property name="FormZiffer4Steuer">
</Property>
<Property name="FormZiffer4SteuerAddieren">
</Property>
<Property name="FormZiffer4Umsatz">
</Property>
<Property name="FormZiffer4UmsatzAddieren">
</Property>
<Property name="FormZiffer5Steuer">
</Property>
<Property name="FormZiffer5SteuerAddieren">
</Property>
<Property name="FormZiffer5Umsatz">
</Property>
<Property name="FormZiffer5UmsatzAddieren">
</Property>
<Property name="Jahr">
</Property>
<Property name="Mandant">
</Property>
<Property name="Mwst">
</Property>
<Property name="MwstCode">
</Property>
<Property name="MwstSatzExport">
</Property>
<Property name="MwstSatzFakturierung">
</Property>
<Property name="MwstSatzFibu">
</Property>
<Property name="SteuerungInklExkl">
</Property>
<Property name="childsub">
</Property>
</Storage>
</Class>


<Class name="DBFibu.Teilbuchung">
<Description>
Teilbuchung (Soll oder Haben) einer Buchung</Description>
<Super>%Persistent,%XML.Adaptor</Super>
<TimeChanged>62423,57859</TimeChanged>
<TimeCreated>61304,34048.720304</TimeCreated>
<Inheritance>right</Inheritance>

<Property name="BelegNr">
<Description>
Belegnummer</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Valutadatum">
<Description>
Valutadatum</Description>
<Type>%Date</Type>
</Property>

<Index name="ValutadatumIndex">
<Properties>Valutadatum</Properties>
</Index>

<Index name="ValutaKontoIndex">
<Properties>Hauptkonto,Valutadatum</Properties>
</Index>

<Property name="Buchungsperiode">
<Description>
Buchungsperiode (abhaengig von Valutadatum und Geschaeftsjahr)</Description>
<Type>%Integer</Type>
</Property>

<Property name="Soll">
<Description>
Soll-Haben-Code (True = Soll)</Description>
<Type>%Boolean</Type>
</Property>

<Index name="SollIndex">
<Properties>Soll</Properties>
</Index>

<Property name="Buchungstext1">
<Description>
Buchungstext 1</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Buchungstext2">
<Description>
Buchungstext 2</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Buchungsbetrag">
<Description>
Buchungsbetrag</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Waehrung">
<Description>
Fremdwährung</Description>
<Type>DBFibu.SD.Fremdwaehrung</Type>
<Cardinality>one</Cardinality>
<Inverse>TeilbuchungWaehrung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Fremdwaehrung"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="FWFaktor">
<Description>
Fremdwährung - Faktor</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FWKurs">
<Description>
Fremdwährung - Kurs</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FWBuchungsbetrag">
<Description>
Fremdwährung - Buchungsbetrag</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Buchungsmenge">
<Description>
Buchungsmenge</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Mengeneinheit">
<Description>
Mengeneinheit</Description>
<Type>%Library.String</Type>
<Parameter name="MAXLEN" value="255"/>
<Parameter name="TRUNCATE" value="1"/>
</Property>

<Property name="Mwst">
<Description>
Mwst-Code</Description>
<Type>DBFibu.SD.Mwst</Type>
<Cardinality>one</Cardinality>
<Inverse>TeilbuchungMwst</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Mwst"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Property name="MwstSatz">
<Description>
Mwst-Satz</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstFaktor">
<Description>
Mwst-Faktor</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstBetrag">
<Description>
Mwst-Betrag</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Mwstkonto">
<Description>
Mwst-Konto</Description>
<Type>DBFibu.KontoJahr</Type>
<Cardinality>one</Cardinality>
<Inverse>TeilbuchungMwstKonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Mwstkonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="MwstkontoIndex">
<Properties>Mwstkonto</Properties>
</Index>

<Property name="Hauptkonto">
<Description>
Hauptkonto</Description>
<Type>DBFibu.KontoJahr</Type>
<Cardinality>one</Cardinality>
<Inverse>TeilbuchungHauptkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Hauptkonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="HauptkontoIndex">
<Properties>Hauptkonto</Properties>
</Index>

<Property name="Gegenkonto">
<Description>
Gegenkonto</Description>
<Type>DBFibu.KontoJahr</Type>
<Cardinality>one</Cardinality>
<Inverse>TeilbuchungGegenkonto</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLELEMENTREF" value="1"/>
<Parameter name="XMLNAME" value="Gegenkonto"/>
<Parameter name="XMLPROJECTION" value="ATTRIBUTE"/>
<Parameter name="XMLREFERENCE" value="ID"/>
</Property>

<Index name="GegenkontoIndex">
<Properties>Gegenkonto</Properties>
</Index>

<Property name="Buchung">
<Description>
Buchung</Description>
<Type>DBFibu.Buchung</Type>
<Cardinality>parent</Cardinality>
<Inverse>TeilbuchungBuchung</Inverse>
<Relationship>1</Relationship>
</Property>

<Property name="Kopfbuchung">
<Description>
Wichtig fuer Sammelbuchung um Kopfbuchung neu zu berechnen</Description>
<Type>%Boolean</Type>
</Property>

<Property name="BuchungsbetragSH">
<Description>
Betrag berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {BuchungsbetragSH}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Hauptkonto},{Soll},{Buchungsbetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MengeSH">
<Description>
Menge berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {MengeSH}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Hauptkonto},{Soll},{Buchungsmenge},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FWBetragSH">
<Description>
BetragFW berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {FWBetragSH}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Hauptkonto},{Soll},{FWBuchungsbetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstbetragSH">
<Description>
BetragMwst berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {MwstbetragSH}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Mwstkonto},{Soll},{MwstBetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="MwstbetragSHnachHauptkonto">
<Description>
BetragMwst berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {MwstbetragSHnachHauptkonto}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Hauptkonto},{Soll},{MwstBetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="Belegdatum">
<Description>
Belegdatum</Description>
<Type>%Date</Type>
</Property>

<Index name="BelegdatumIndex">
<Properties>Belegdatum</Properties>
</Index>

<Property name="ProjektBuchung">
<Description>
ProjektBuchung</Description>
<Type>DBProjekt.Buchung</Type>
<Cardinality>many</Cardinality>
<Inverse>FibuBuchung</Inverse>
<Relationship>1</Relationship>
<Parameter name="XMLPROJECTION" value="NONE"/>
</Property>

<Property name="FWMwstBetrag">
<Description>
Mwst-Betrag</Description>
<Type>%Decimal</Type>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FWBetragMwstSH">
<Description>
BetragMwst berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {FWBetragMwstSH}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Mwstkonto},{Soll},{FWMwstBetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="FWBetragMwstSHnachHauptkonto">
<Description>
BetragMwst berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {FWBetragMwstSHnachHauptkonto}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Hauptkonto},{Soll},{FWMwstBetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Property name="BuchungsbetragSHnachMwstkonto">
<Description>
BetragMwst berechnet nach SollHaben-Code anhand des Hauptkontos</Description>
<Type>%Decimal</Type>
<Calculated>1</Calculated>
<SqlComputeCode> Set {BuchungsbetragSHnachMwstkonto}=##class(DBFibu.Teilbuchung).GetBetragBySHCodes({Mwstkonto},{Soll},{Buchungsbetrag},{Mwst}) </SqlComputeCode>
<SqlComputed>1</SqlComputed>
<Parameter name="SCALE" value="5"/>
</Property>

<Method name="GetBetragBySHCodes">
<Description>
Liefert den Betrag zurueck um auf ein Konto zu kumulieren</Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>kontoOid:%String,buchungSoll:%Boolean,betrag:%Decimal(SCALE=5),mwstOid:%String</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	set kontoSoll = 0
		
	if (kontoOid '= "") {
		&sql(SELECT Soll INTO :kontoSoll FROM DBFibu.KontoJahr WHERE ID=:kontoOid)
		if (SQLCODE '= 0) {
			set kontoSoll = 0
		}
		
	} else {
		
		// Kein Konto (kann bei Mwst-Buchungen ohne Mwst (Code 71) passieren)
		set mwstCode = 0
		&sql(SELECT MwstCode INTO :mwstCode FROM DBFibu_SD.Mwst WHERE ID=:mwstOid)
		if (SQLCODE '= 0) {
			set mwstCode = 0
		}
		if (mwstCode < 50) {
			set kontoSoll = 1
		} else {
			set kontoSoll = 0
		}
		
	}
	
	If (kontoSoll = 0) {
		if (buchungSoll = 0) {
			quit betrag
		} else {
			quit ((-1)*betrag)
		}
	} else {
		if (buchungSoll = 0) {
			quit ((-1)*betrag)
		} else {
			quit betrag
		}
	}

	quit betrag
]]></Implementation>
</Method>

<Method name="GetBetragBySHCodeKonto">
<Description>
Liefert den Betrag zurueck um auf ein Konto zu kumulieren</Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>buchungSoll:%Boolean,kontoSoll:%Boolean,betrag:%Decimal(SCALE=5)</FormalSpec>
<ReturnType>%Decimal</ReturnType>
<SqlProc>1</SqlProc>
<ReturnTypeParams>SCALE=5</ReturnTypeParams>
<Implementation><![CDATA[
	If 'kontoSoll {
		if 'buchungSoll {
			quit betrag
		} else {
			quit ((-1)*betrag)
		}
	} else {
		if 'buchungSoll {
			quit ((-1)*betrag)
		} else {
			quit betrag
		}
	}
]]></Implementation>
</Method>

<Method name="%OnBeforeSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	If ('Insert) {
		set teilbuchungId = ..%Id()
		set oldBetrag = 0
		set oldMenge = 0
		set oldBetragFw = 0
		set oldBetragMwst = 0
		set oldBetragMwstFw = 0
		set oldKontoId = 0
		set oldMwstKontoId = 0
		set oldMengencode = 0
		set oldPeriode = 0
		&sql(SELECT Buchungsbetrag, Buchungsmenge, FWBuchungsbetrag, MwstBetrag, FWMwstBetrag, Hauptkonto->ID, MwstKonto->ID, Hauptkonto->Mengencode, Buchungsperiode INTO :oldBetrag, :oldMenge, :oldBetragFw, :oldBetragMwst, :oldBetragMwstFw, :oldKontoId, :oldMwstKontoId, :oldMengencode, :oldPeriode FROM DBFibu.Teilbuchung WHERE ID=:teilbuchungId)
		Set ^BuchungOldBetrag(teilbuchungId) = (oldBetrag-oldBetragMwst)
		Set ^BuchungOldMenge(teilbuchungId) = oldMenge
		Set ^BuchungOldBetragFw(teilbuchungId) = oldBetragFw
		Set ^BuchungOldBetragMwst(teilbuchungId) = oldBetragMwst
		Set ^BuchungOldBetragMwstFw(teilbuchungId) = oldBetragMwstFw
		Set ^BuchungOldKontoId(teilbuchungId) = oldKontoId
		Set ^BuchungOldMwstKontoId(teilbuchungId) = oldMwstKontoId
		Set ^BuchungOldMengencode(teilbuchungId) = oldMengencode
		Set ^BuchungOldPeriode(teilbuchungId) = oldPeriode
	}
	
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="%OnAfterSave">
<FormalSpec>Insert:%Boolean</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	set teilbuchungId = ..%Id()
	
	set soll = ..Soll
	
	If ('Insert) {
		set oldBetrag = ^BuchungOldBetrag(teilbuchungId)
		set oldMenge = ^BuchungOldMenge(teilbuchungId)
		set oldBetragFw = ^BuchungOldBetragFw(teilbuchungId)
		set oldBetragMwst = ^BuchungOldBetragMwst(teilbuchungId)
		set oldBetragMwstFw = ^BuchungOldBetragMwstFw(teilbuchungId)
		set oldKontoId = ^BuchungOldKontoId(teilbuchungId)
		set oldMwstKontoId = ^BuchungOldMwstKontoId(teilbuchungId)
		set oldMengencode = ^BuchungOldMengencode(teilbuchungId)
		set oldPeriode = ^BuchungOldPeriode(teilbuchungId)
		
		if oldMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation() {
			set oldMenge = 0
		}
		
		w oldKontoId,!
		do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetrag, oldMenge, oldBetragFw, soll, oldKontoId, 1, oldPeriode)
		
		if (oldMwstKontoId '= "") {
			w oldMwstKontoId,!
			do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetragMwst, 0, oldBetragMwstFw, soll, oldMwstKontoId, 1, oldPeriode)
		}
	}
	
	set newBetrag = (..Buchungsbetrag-..MwstBetrag)
	set newMenge = ..Buchungsmenge
	set newBetragFw = ..FWBuchungsbetrag
	set newBetragMwst = ..MwstBetrag
	set newBetragMwstFw = ..FWMwstBetrag
	set newKontoId = ..Hauptkonto.%Id()
	set newPriode = ..Buchungsperiode
	set newMwstKontoId = ""
	if (..Mwstkonto '= "") {
		set newMwstKontoId = ..Mwstkonto.%Id()
	}
	set newMengencode = ..Hauptkonto.Mengencode
	
	if (newMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation()) {
		set newMenge = 0
	}
	
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(newBetrag, newMenge, newBetragFw, soll, newKontoId, 0, newPriode)
	
	if (newMwstKontoId '= "") {
		do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(newBetragMwst, 0, newBetragMwstFw, soll, newMwstKontoId, 0, newPriode)
	}
	
	KILL ^BuchungOldBetrag(teilbuchungId)
	KILL ^BuchungOldMenge(teilbuchungId)
	KILL ^BuchungOldBetragFw(teilbuchungId)
	KILL ^BuchungOldBetragMwst(teilbuchungId)
	KILL ^BuchungOldBetragMwstFw(teilbuchungId)
	KILL ^BuchungOldKontoId(teilbuchungId)
	KILL ^BuchungOldMwstKontoId(teilbuchungId)
	KILL ^BuchungOldMengencode(teilbuchungId)
	KILL ^BuchungOldPeriode(teilbuchungId)
	
	Quit $$$OK
]]></Implementation>
</Method>

<Method name="%OnDelete">
<Description>
[Previously private]</Description>
<ClassMethod>1</ClassMethod>
<FormalSpec>oid:%ObjectIdentity</FormalSpec>
<ReturnType>%Status</ReturnType>
<ServerOnly>1</ServerOnly>
<Implementation><![CDATA[
	set myId = $lg(oid,1)
	
	Set strSQLProjekt="SELECT ID FROM DBProjekt.Buchung WHERE FibuBuchung = '"_myId_"'"
	Set rsProjekt = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rsProjekt.Prepare(strSQLProjekt)
	Set scProjekt=rsProjekt.Execute()
	IF $$$ISOK(scProjekt) {
		while (rsProjekt.Next(.scProjekt)) {
			Set idProjekt=rsProjekt.Data("ID")
			Set statusProjekt = ##class(DBProjekt.Buchung).%DeleteId(idProjekt) 
			if ($$$ISERR(statusProjekt)) {
				w "Fehler beim Löschen der Projektbuchung: ", statusProjekt, !
			}
		}
    }
	
	set kontoId = ""
	set mwstkontoId = ""
	set kontoMengencode = ""
	set soll = 0
	set oldBetrag = 0
	set oldMenge = 0
	set oldBetragFw = 0
	set oldBetragMwst = 0
	set oldBetragMwstFw = 0
	set oldPeriode = 0
	
	&sql(SELECT Hauptkonto->Mengencode,
				Hauptkonto->ID, 
				Mwstkonto->ID,
				Soll, 
				Buchungsbetrag, 
				Buchungsmenge,
				FWBuchungsbetrag,
				MwstBetrag,
				FWMwstBetrag,
				Buchungsperiode
			INTO 
				:kontoMengencode,
				:kontoId, 
				:mwstkontoId, 
				:soll,
				:oldBetrag,
				:oldMenge,
				:oldBetragFw,
				:oldBetragMwst,
				:oldBetragMwstFw,
				:oldPeriode
			FROM DBFibu.Teilbuchung WHERE ID=:myId)	
	
	set oldBetrag = (oldBetrag-oldBetragMwst)
	
	if (kontoMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation()) {
		set oldMenge = 0
	}
	
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetrag, oldMenge, oldBetragFw , soll, kontoId, 1, oldPeriode)
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetragMwst, 0, oldBetragMwstFw, soll, mwstkontoId, 1, oldPeriode)
	
	Quit $$$OK
]]></Implementation>
</Method>

<Trigger name="InsertTeilbuchung">
<Code><![CDATA[	new newBetrag
	new newMenge
	new newBetragFw
	new newBetragMwst
	new newBetragMwstFw
	new kontoId
	new mwstkontoId
	new kontoMengencode
	new soll
	new periode
	
	set kontoId = {Hauptkonto*O}
	set mwstkontoId = {Mwstkonto*O}
	&sql(SELECT Mengencode INTO :kontoMengencode FROM DBFibu.KontoJahr WHERE ID=:kontoId)
	set soll = {Soll}
	set newBetrag = ({Buchungsbetrag*N}-{MwstBetrag*N})
	set newMenge = {Buchungsmenge*N}
	set newBetragFw = {FWBuchungsbetrag*N}
	set newBetragMwst = {MwstBetrag*N}
	set newBetragMwstFw = {FWMwstBetrag*N}
	set periode = {Buchungsperiode*N}
	
	if (kontoMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation()) {
		set newMenge = 0
	}
	
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(newBetrag, newMenge, newBetragFw, soll, kontoId, 0, periode)
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(newBetragMwst, 0, newBetragMwstFw, soll, mwstkontoId, 0, periode)]]></Code>
<Event>INSERT</Event>
<Time>AFTER</Time>
<Foreach>row</Foreach>
</Trigger>

<Trigger name="UpdateTeilbuchung">
<Code><![CDATA[	new kontoId
	new mwstkontoId
	new kontoMengencode
	new soll
	new oldBetrag
	new newBetrag
	new oldMenge
	new newMenge
	new oldBetragFw
	new newBetragFw
	new oldBetragMwst
	new newBetragMwst
	new oldBetragMwstFw
	new newBetragMwstFw
	new oldPeriode
	new newPeriode
	
	set kontoId = {Hauptkonto*O}
	set mwstkontoId = {Mwstkonto*O}
	&sql(SELECT Mengencode INTO :kontoMengencode FROM DBFibu.KontoJahr WHERE ID=:kontoId)
	set soll = {Soll*O}
	set oldBetrag = ({Buchungsbetrag*O}-{MwstBetrag*O})
	set oldMenge = {Buchungsmenge*O}
	set oldBetragFw = {FWBuchungsbetrag*O}
	set oldBetragMwst = {MwstBetrag*O}
	set oldBetragMwstFw = {FWMwstBetrag*O}
	set oldPeriode = {Buchungsperiode*O}
	
	if (kontoMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation()) {
		set oldMenge = 0
	}
	
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetrag, oldMenge, oldBetragFw, soll, kontoId, 1, oldPeriode)
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetragMwst, 0, oldBetragMwstFw, soll, mwstkontoId, 1, oldPeriode)
	
	set kontoId = {Hauptkonto*N}
	set mwstkontoId = {Mwstkonto*N}
	&sql(SELECT Mengencode INTO :kontoMengencode FROM DBFibu.KontoJahr WHERE ID=:kontoId)
	set soll = {Soll*N}
	set newBetrag = ({Buchungsbetrag*N}-{MwstBetrag*N})
	set newMenge = {Buchungsmenge*N}
	set newBetragFw = {FWBuchungsbetrag*N}
	set newBetragMwst = {MwstBetrag*N}
	set newBetragMwstFw = {FWMwstBetrag*N}
	set newPeriode = {Buchungsperiode*N}
	
	if kontoMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation() {
		set newMenge = 0
	}
	
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(newBetrag, newMenge, newBetragFw, soll, kontoId, 0, newPeriode)
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(newBetragMwst, 0, newBetragMwstFw, soll, mwstkontoId, 0, newPeriode)]]></Code>
<Event>UPDATE</Event>
<Time>AFTER</Time>
<Foreach>row</Foreach>
</Trigger>

<Trigger name="DeleteTeilbuchung">
<Code><![CDATA[	
	w "DBFibu.Teilbuchung.Trigger DeleteTeilbuchung - Start",!
	
	Set strSQLProjekt="SELECT ID FROM DBProjekt.Buchung WHERE FibuBuchung = '"_{ID}_"'"
	Set rsProjekt = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")

	Do rsProjekt.Prepare(strSQLProjekt)
	Set scProjekt=rsProjekt.Execute()
	IF $$$ISOK(scProjekt) {
		while (rsProjekt.Next(.scProjekt)) {
			Set idProjekt=rsProjekt.Data("ID")
			Set statusProjekt = ##class(DBProjekt.Buchung).%DeleteId(idProjekt) 
			if ($$$ISERR(statusProjekt)) {
				w "Fehler beim Löschen der Projektbuchung: ", statusProjekt, !
			}
		}
    }
    
	new kontoId
	new kontoMengencode
	new soll
	new oldBetrag
	new oldMenge
	new oldBetragFw
	new oldBetragMwst
	new oldBetragMwstFw
	new mwstkontoId
	new oldPeriode
	
	set kontoId = {Hauptkonto*O}
	set mwstkontoId = {Mwstkonto*O}
	&sql(SELECT Mengencode INTO :kontoMengencode FROM DBFibu.KontoJahr WHERE ID=:kontoId)
	set soll = {Soll}
	set oldBetrag = ({Buchungsbetrag*O}-{MwstBetrag*O})
	set oldMenge = {Buchungsmenge*O}
	set oldBetragFw = {FWBuchungsbetrag*O}
	set oldBetragMwst = {MwstBetrag*O}
	set oldBetragMwstFw = {FWMwstBetrag*O}
	set oldPeriode = {Buchungsperiode*O}
	
	if (kontoMengencode '= ##class(DBFibu.Konst).KontoMengeMitKumulation()) {
		set oldMenge = 0
	}
	
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetrag, oldMenge, oldBetragFw, soll, kontoId, 1, oldPeriode)
	do ##class(DBFibu.Teilbuchung).AddBetragToSaldo(oldBetragMwst, 0, oldBetragMwstFw, soll, mwstkontoId, 1, oldPeriode)
	
	w "DBFibu.Teilbuchung.Trigger DeleteTeilbuchung - Ende",!]]></Code>
<Event>DELETE</Event>
<Foreach>row</Foreach>
</Trigger>

<Method name="AddBetragToSaldo">
<ClassMethod>1</ClassMethod>
<FormalSpec>oldBetrag:%Decimal(SCALE=5),oldMenge:%Decimal(SCALE=5),oldBetragFw:%Decimal(SCALE=5),soll:%Boolean,kontoId:%String,storno:%Boolean,periode:%Integer</FormalSpec>
<Implementation><![CDATA[
	if (kontoId '= "") {
		if storno {
			set oldBetrag = ((-1)*oldBetrag)
			set oldMenge = ((-1)*oldMenge)
			set oldBetragFw = ((-1)*oldBetragFw)
		}
		
		Set kto = ##class(DBFibu.KontoJahr).%OpenId(kontoId)
		
		if (soll) {
			set kto.FibuUmsatzS = kto.FibuUmsatzS + oldBetrag
			set kto.FibuUmsatzSMenge = kto.FibuUmsatzSMenge + oldMenge
			set kto.FibuUmsatzSFW = kto.FibuUmsatzSFW + oldBetragFw
			
		} else {
			set kto.FibuUmsatzH = kto.FibuUmsatzH + oldBetrag
			set kto.FibuUmsatzHMenge = kto.FibuUmsatzHMenge + oldMenge
			set kto.FibuUmsatzHFW = kto.FibuUmsatzHFW + oldBetragFw		
		}
		
		set periodeaktuell = kto.GetPeriodeAktuell(periode)
			
		if (((kto.Soll = 1) && (soll = 1)) || ((kto.Soll '= 1) && (soll '= 1))) {
			do kto.SetPeriodeAktuell(periode,periodeaktuell+oldBetrag)
		} else {
			do kto.SetPeriodeAktuell(periode,periodeaktuell-oldBetrag)
		}
	
		do kto.%Save()
			
	}
]]></Implementation>
</Method>

<Method name="ChangeBelegNr">
<ClassMethod>1</ClassMethod>
<FormalSpec>buchungOid:%String,oldBelegNr:%String,newBelegNr:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	Set strSQL="SELECT ID FROM DBFibu.Teilbuchung WHERE Buchung="_buchungOid_" AND BelegNr='"_oldBelegNr_"'"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
	set res = $$$OK
    IF $$$ISOK(sc) {
		while (rs.Next(.sc)) {
			Set id = rs.Data("ID")
			Set tb = ##class(DBFibu.Teilbuchung).%OpenId(id)
			Set tb.BelegNr = newBelegNr
			Set s = tb.%Save()
			If ($$$ISERR(s)) {
				Set res = s
			}
		}
    }
    Quit res
]]></Implementation>
</Method>

<Method name="GetKopfbuchungOid">
<ClassMethod>1</ClassMethod>
<FormalSpec>buchungOid:%String</FormalSpec>
<ReturnType>%String</ReturnType>
<Implementation><![CDATA[
	Set strSQL="SELECT ID FROM DBFibu.Teilbuchung WHERE Buchung="_buchungOid_" AND Kopfbuchung=1"
	Set rs = ##class(%Library.ResultSet).%New("%DynamicQuery:SQL")
	
	Do rs.Prepare(strSQL)
	Set sc=rs.Execute()
	Set id = ""
	while (rs.Next(.sc)) {
		Set id = rs.Data("ID")
	}
    
    Quit id
]]></Implementation>
</Method>

<Method name="ChangeKontiToKontiJahr">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandOid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set teilbuchungId = ""
	set hauptkontoId = ""
	set gegenkontoId = ""
	set mwstkontoId = ""
	set valutadatum = ""
	
	&sql(DECLARE TeilbuchCursor CURSOR FOR
			SELECT ID, Hauptkonto, Gegenkonto, Mwstkonto, Valutadatum 
				INTO :teilbuchungId, :hauptkontoId, :gegenkontoId, :mwstkontoId, :valutadatum
			FROM DBFibu.Teilbuchung tb
			WHERE (SELECT Mandant FROM DBFibu.Konto k WHERE k.ID=tb.Hauptkonto)=:MandOid
			ORDER BY Buchung->Journalnr
	)
 
	&sql(OPEN TeilbuchCursor)
	
	FOR { &sql(FETCH TeilbuchCursor)
    	QUIT:SQLCODE  
    	
    	set mandJahrOid = ##class(DBCore.MandantJahr).GetIdByDatum(MandOid,valutadatum)
    	if (mandJahrOid = "") {
	    	w "Kein Mandantjahr zu Valutadatum: "_valutadatum_" gefunden",!
    	} else {
	    	set tb = ##class(DBFibu.Teilbuchung).%OpenId(teilbuchungId)
	    	
	    	set hkJahr = ##class(DBFibu.KontoJahr).GetOidByKontoOidJahr(mandJahrOid,hauptkontoId)
	    	set gkJahr = ##class(DBFibu.KontoJahr).GetOidByKontoOidJahr(mandJahrOid,gegenkontoId)
	    	set mkJahr = ##class(DBFibu.KontoJahr).GetOidByKontoOidJahr(mandJahrOid,mwstkontoId)
	    	
	    	if (hkJahr '= "") {
	    		do tb.HauptkontoSetObjectId(hkJahr)
	    	} else {
		    	set tb.Hauptkonto = ""
	    	}
	    	if (gkJahr '= "") {
	    		do tb.GegenkontoSetObjectId(gkJahr)
	    	} else {
		    	set tb.Gegenkonto = ""
	    	}
	    	if (mkJahr '= "") {
	    		do tb.MwstkontoSetObjectId(mkJahr)
	    	} else {
		    	set tb.Mwstkonto = ""
	    	}
	    	
	    	set status = tb.%Save()
	    	if ($$$ISERR(status)) {
		    	w "Fehler beim Speichern der Teilbuchung "_teilbuchungId_": "_status,!
	    	}
    	}
	}
	
	&sql(CLOSE TeilbuchCursor)
	
	Quit 1
]]></Implementation>
</Method>

<Method name="SetBuchungMandJahrFromTeilbuch">
<ClassMethod>1</ClassMethod>
<FormalSpec>MandJahrOid:%String</FormalSpec>
<ReturnType>%Boolean</ReturnType>
<SqlProc>1</SqlProc>
<Implementation><![CDATA[
	set buchungOid = ""
	&sql(DECLARE BuchungCursor CURSOR FOR
			SELECT DISTINCT Buchung 
				INTO :buchungOid
			FROM DBFibu.Teilbuchung tb
			WHERE Hauptkonto->MandantJahr=:MandJahrOid
			ORDER BY Buchung->Journalnr
	)
	
	&sql(OPEN BuchungCursor)
	
	FOR { &sql(FETCH BuchungCursor)
    	QUIT:SQLCODE  
    	
    	set buchung = ##class(DBFibu.Buchung).%OpenId(buchungOid)
    	do buchung.MandantJahrSetObjectId(MandJahrOid)
    	
    	set status = buchung.%Save()
    	if ($$$ISERR(status)) {
	    	w "Fehler beim Speichern der Buchung "_buchungOid_": "_status,!
    	}
	}
	
	&sql(CLOSE BuchungCursor)
	
	Quit 1
]]></Implementation>
</Method>

<Method name="MwstCodeNachfuehren">
<ClassMethod>1</ClassMethod>
<FormalSpec>kontoJahrOid:%String,vonMwstOid:%String,nachMwstOid:%String</FormalSpec>
<ReturnType>%Status</ReturnType>
<Implementation><![CDATA[
	set tbOid = ""
	
	&sql(DECLARE CurMwstCodeNachfuehren CURSOR FOR
	    SELECT ID
	    INTO :tbOid
	    FROM DBFibu.Teilbuchung
	    WHERE Hauptkonto=:kontoJahrOid
	    ORDER BY Buchung->Journalnr)
	    
	&sql(OPEN CurMwstCodeNachfuehren)
	
	&sql(FETCH CurMwstCodeNachfuehren)
	While (SQLCODE = 0) {
		
		set tb = ##class(DBFibu.Teilbuchung).%OpenId(tbOid)      
	
		set definitiv = 0
		if ((tb.Buchung.MwstAbrechnung '= "") && (tb.Buchung.MwstAbrechnung '= $c(0))) {
			set definitiv = tb.Buchung.MwstAbrechnung.Definitiv
		}
		
		if (definitiv = 0) {
			if ((vonMwstOid="x") || (vonMwstOid=tb.MwstGetObjectId())) {
				if ((nachMwstOid'="") && (nachMwstOid'=$c(0))) {
					set jahr = ##class(DBUtils.DateUtils).GetYearFromDate(tb.Valutadatum)
					set mwstJahrOid = ##class(DBFibu.SD.MwstJahr).GetMwstJahrOidByJahrMwst(jahr, nachMwstOid)
					set mwstJahr = ##class(DBFibu.SD.MwstJahr).%OpenId(mwstJahrOid)
		
					do tb.MwstSetObjectId(nachMwstOid)
					set tb.MwstSatz = mwstJahr.MwstSatzFibu
		
					set mwstFibuKontoOid = ##class(DBFibu.KontoJahr).GetOidByKontoNrJahr(tb.Buchung.MandantJahr.%Id(), mwstJahr.FibuKontoNr)
		
					do tb.MwstkontoSetObjectId(mwstFibuKontoOid)
		
					if (mwstJahr.MwstSatzFibu = 100) {
						// 100% Mwst
						set tb.MwstBetrag = tb.Buchungsbetrag
			
					} elseif (mwstJahr.MwstSatzFibu = 0) {
						// 0% Mwst
						set tb.MwstBetrag = 0
			
					} else {
						if (mwstJahr.SteuerungInklExkl = 1) {
							// Inklusive
							set tempMwstBetrag = ((tb.Buchungsbetrag * tb.MwstSatz) / (100 + tb.MwstSatz)) 
							set tb.MwstBetrag = ##class(DBUtils.NumberUtils).RoundGemEinst(tb.Buchung.MandantJahr.Mandant, tempMwstBetrag)
				
						} elseif (mwstJahr.SteuerungInklExkl = 2) {
							// Urproduktion
							set tempMwstBetrag = (tb.Buchungsbetrag * (tb.MwstSatz / 100))
							set tb.MwstBetrag = ##class(DBUtils.NumberUtils).RoundGemEinst(tb.Buchung.MandantJahr.Mandant, tempMwstBetrag)
				
						} else {
							// Exklusiv
							set tempMwstBetrag = ((tb.Buchungsbetrag * tb.MwstSatz) / (100 + tb.MwstSatz)) 
							set tb.MwstBetrag = ##class(DBUtils.NumberUtils).RoundGemEinst(tb.Buchung.MandantJahr.Mandant, tempMwstBetrag)
				
						}
					}
				} else {
					set tb.Mwst = ""
					set tb.MwstSatz = 0
					set tb.Mwstkonto = ""
					set tb.MwstBetrag = 0
			
				}
		
				set cs = tb.%Save()
				if ($$$ISERR(cs)) {
					w "MwstCodeNachfuehren, Error: ", cs, !
				}
			}
		}
		&sql(FETCH CurMwstCodeNachfuehren)
	}

	&sql(CLOSE CurMwstCodeNachfuehren)
 
	
        
	Quit $$$OK
]]></Implementation>
</Method>

<Storage name="Default">
<Type>%Library.CacheStorage</Type>
<DataLocation>{%%PARENT}("TeilbuchungBuchung")</DataLocation>
<DefaultData>TeilbuchungDefaultData</DefaultData>
<IdLocation>^DBFibu.BuchungC("TeilbuchungBuchung")</IdLocation>
<IndexLocation>^DBFibu.TeilbuchungI</IndexLocation>
<StreamLocation>^DBFibu.TeilbuchungS</StreamLocation>
<Data name="TeilbuchungDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
<Value name="2">
<Value>BelegNr</Value>
</Value>
<Value name="3">
<Value>Belegdatum</Value>
</Value>
<Value name="4">
<Value>Buchungsperiode</Value>
</Value>
<Value name="5">
<Value>Soll</Value>
</Value>
<Value name="6">
<Value>Buchungstext1</Value>
</Value>
<Value name="7">
<Value>Buchungstext2</Value>
</Value>
<Value name="8">
<Value>Buchungsbetrag</Value>
</Value>
<Value name="9">
<Value>Fremdwaehrung</Value>
</Value>
<Value name="10">
<Value>FWFaktor</Value>
</Value>
<Value name="11">
<Value>FWKurs</Value>
</Value>
<Value name="12">
<Value>FWBuchungsbetrag</Value>
</Value>
<Value name="13">
<Value>Buchungsmenge</Value>
</Value>
<Value name="14">
<Value>Mengeneinheit</Value>
</Value>
<Value name="15">
<Value>Mwst</Value>
</Value>
<Value name="16">
<Value>MwstSatz</Value>
</Value>
<Value name="17">
<Value>MwstFaktor</Value>
</Value>
<Value name="18">
<Value>MwstBetrag</Value>
</Value>
<Value name="19">
<Value>Mwstkonto</Value>
</Value>
<Value name="20">
<Value>Hauptkonto</Value>
</Value>
<Value name="21">
<Value>Gegenkonto</Value>
</Value>
<Value name="22">
<Value>Kopfbuchung</Value>
</Value>
<Value name="23">
<Value>Waehrung</Value>
</Value>
<Value name="24">
<Value>Valutadatum</Value>
</Value>
<Value name="25">
<Value>FWMwstBetrag</Value>
</Value>
</Data>
<Property name="%%CLASSNAME">
</Property>
<Property name="BelegNr">
</Property>
<Property name="Belegdatum">
</Property>
<Property name="BetragFwSH"/>
<Property name="BetragMwstSH"/>
<Property name="BetragMwstSHnachHauptkonto"/>
<Property name="BetragSH"/>
<Property name="Buchung">
</Property>
<Property name="Buchungsbetrag">
</Property>
<Property name="BuchungsbetragSH">
</Property>
<Property name="BuchungsbetragSHnachMwstkonto">
</Property>
<Property name="Buchungsmenge">
</Property>
<Property name="Buchungsperiode">
</Property>
<Property name="Buchungstext1">
</Property>
<Property name="Buchungstext2">
</Property>
<Property name="FWBetragMwstSH">
</Property>
<Property name="FWBetragMwstSHnachHauptkonto">
</Property>
<Property name="FWBetragSH">
</Property>
<Property name="FWBuchungsbetrag">
</Property>
<Property name="FWFaktor">
</Property>
<Property name="FWKurs">
</Property>
<Property name="FWMwstBetrag">
</Property>
<Property name="Gegenkonto">
</Property>
<Property name="Hauptkonto">
</Property>
<Property name="Kopfbuchung">
</Property>
<Property name="MengeSH">
</Property>
<Property name="Mengeneinheit">
</Property>
<Property name="Mwst">
</Property>
<Property name="MwstBetrag">
</Property>
<Property name="MwstFaktor">
</Property>
<Property name="MwstSatz">
</Property>
<Property name="MwstbetragSH">
</Property>
<Property name="MwstbetragSHnachHauptkonto">
</Property>
<Property name="Mwstkonto">
</Property>
<Property name="Soll">
</Property>
<Property name="Valutadatum">
</Property>
<Property name="Waehrung">
</Property>
<Property name="childsub">
</Property>
</Storage>
</Class>
</Export>
