using MicroFour.StrataFrame.Business;
using MicroFour.StrataFrame.Security;
using MicroFour.StrataFrame.UI.Windows.Forms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;

namespace ReportSS2.BuisnessObjects
{
    public partial class RechnungenBO
    {

        #region Component Implementation

        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary> 
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            components = new System.ComponentModel.Container();

            this.CheckRulesOnCurrentRow += new CheckRulesOnCurrentRowEventHandler(RechnungenBO_CheckRulesOnCurrentRow);
            this.SetDefaultValues += new SetDefaultValuesEventHandler(RechnungenBO_SetDefaultValues);
        }

        #endregion


        #region BusinessLayer Overriden Methods & Properties

        /// <summary>
        /// The collection of required fields for the business object.
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public override RequiredFieldsCollection RequiredFields
        {
            get
            {
                return base.RequiredFields;
            }
            set
            {
                base.RequiredFields = value;
            }
        }

        /// <summary>
        /// Defines the constraint that defines the parent-child relationship between this business object type and another business object type.
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public override IBusinessParentRelationship ParentRelationship
        {
            get
            {
                return base.ParentRelationship;
            }
            set
            {
                base.ParentRelationship = value;
            }
        }

        /// <summary>
        /// Returns all of the field names in a single string in the form of [field1],[field2],...  This must be used in the place of '*' in select statements if Query Notifications are to be registered.
        /// </summary>
        /// <remarks></remarks>
        protected override String AllFieldNames
        {
            get
            {
                return "[ID],[Status],[FirmaID],[FirmaName],[LieferantID],[LieferantName],[LieferantKrednr],[LieferantPLZ],[LieferantOrt],[Speicherort],[ReNrIntern],[ReNrInternKrzl],[ReNrExtern],[Rechnungsdatum],[Leistungsdatum],[SkontoRechnungBis],[SkontoProzentsatz],[AuftragsNr],[BetragBrutto],[BetragNetto],[BetragSteuer],[ZahlbetragNachSkonto],[BetragSkonto],[Erstellzeitpunkt]";
            }
        }

        /// <summary>
        /// The name of the database that contains the table to which this business object is mapped.
        /// </summary>
        /// <remarks></remarks>
        public override String Database
        {
            get
            {
                return "ERV";
            }
        }

        private static string[] _PrimaryKeyFields = new string[] { "ID" };
        /// <summary>
        /// Gets the field or fields that comprise the primary key for the business object.
        /// </summary>
        /// <remarks></remarks>
        public override string[] PrimaryKeyFields
        {
            get
            {
                return _PrimaryKeyFields;
            }
        }

        /// <summary>
        /// The name of the table in the database to which this business object is mapped.
        /// </summary>
        /// <remarks></remarks>
        public override String TableName
        {
            get
            {
                return "Rechkopf";
            }
        }

        /// <summary>
        /// The schema of the table in the database to which this business object is mapped.
        /// </summary>
        /// <remarks></remarks>
        public override String TableSchema
        {
            get
            {
                return "dbo";
            }
        }

        /// <summary>
        /// Creates and returns an array of DataColumns that contains the schema for the table.  This is used to prevent a round trip to the server to aquire the initial schema for the internal DataTable.
        /// </summary>
        /// <remarks></remarks>
        protected override DataColumn[] CreateTableSchema()
        {
            return new DataColumn[] {
new DataColumn("ID", typeof(System.Decimal)),
new DataColumn("Status", typeof(System.Int32)),
new DataColumn("FirmaID", typeof(System.Int32)),
new DataColumn("FirmaName", typeof(System.String)),
new DataColumn("LieferantID", typeof(System.Decimal)),
new DataColumn("LieferantName", typeof(System.String)),
new DataColumn("LieferantKrednr", typeof(System.String)),
new DataColumn("LieferantPLZ", typeof(System.String)),
new DataColumn("LieferantOrt", typeof(System.String)),
new DataColumn("Speicherort", typeof(System.String)),
new DataColumn("ReNrIntern", typeof(System.Decimal)),
new DataColumn("ReNrInternKrzl", typeof(System.String)),
new DataColumn("ReNrExtern", typeof(System.String)),
new DataColumn("Rechnungsdatum", typeof(System.DateTime)),
new DataColumn("Leistungsdatum", typeof(System.DateTime)),
new DataColumn("SkontoRechnungBis", typeof(System.DateTime)),
new DataColumn("SkontoProzentsatz", typeof(System.Decimal)),
new DataColumn("AuftragsNr", typeof(System.String)),
new DataColumn("BetragBrutto", typeof(System.Decimal)),
new DataColumn("BetragNetto", typeof(System.Decimal)),
new DataColumn("BetragSteuer", typeof(System.Decimal)),
new DataColumn("ZahlbetragNachSkonto", typeof(System.Decimal)),
new DataColumn("BetragSkonto", typeof(System.Decimal)),
new DataColumn("Erstellzeitpunkt", typeof(System.DateTime))};
        }

        /// <summary>
        /// Adds a broken rule to the business object's collection
        /// </summary>
        /// <remarks></remarks>
        protected void AddBrokenRule(RechnungenBOFieldNames Field, string ErrorMessage)
        {
            base.AddBrokenRule(Field, ErrorMessage);
        }

        /// <summary>
        /// Adds a broken rule to the business object's collection
        /// </summary>
        /// <remarks></remarks>
        protected new void AddBrokenRule(string FieldName, string ErrorMessage)
        {
            base.AddBrokenRule(FieldName, ErrorMessage);
        }

        /// <summary>
        /// Adds a broken rules to the business object's collection using the given message key to pull the error message from the localization database
        /// </summary>
        /// <remarks></remarks>
        protected void AddBrokenRuleByKey(RechnungenBOFieldNames Field, string ErrorMessageKey)
        {
            base.AddBrokenRuleByKey(Field, ErrorMessageKey);
        }

        /// <summary>
        /// Adds a broken rules to the business object's collection using the given message key to pull the error message from the localization database
        /// </summary>
        /// <remarks></remarks>
        protected new void AddBrokenRuleByKey(string FieldName, string ErrorMessageKey)
        {
            base.AddBrokenRuleByKey(FieldName, ErrorMessageKey);
        }

        /// <summary>
        /// Gets a collection of the names for all fields that belong to this business object and map to the database.
        /// </summary>
        /// <remarks></remarks>
        public override List<string> AllFieldsList
        {
            get
            {
                return _AllFieldsList;
            }
        }

        /// <summary>
        /// Gets a dictionary of the DbTypes for all fields that belong to this business object and map to the database.
        /// </summary>
        /// <remarks></remarks>
        public override Dictionary<string, DbType> FieldDbTypes
        {
            get
            {
                return _FieldDbTypes;
            }
        }

        /// <summary>
        /// Gets a dictionary of all fields within this business object that map to the FieldNames enumeration for this business object.
        /// </summary>
        /// <remarks></remarks>
        public override BusinessLayerFieldEnumDictionary FieldEnums
        {
            get
            {
                return _FieldEnums;
            }
        }

        /// <summary>
        /// Gets a dictionary of all of the lengths for all fields within this business object that map to a field in the database.
        /// </summary>
        /// <remarks></remarks>
        public override Dictionary<string, int> FieldLengths
        {
            get
            {
                return _FieldLengths;
            }
        }

        /// <summary>
        /// Gets a dictionary of the native DbType (SqlDbType, OracleType, OleDbType, etc.) for all fields within this buisness object that map to a field in the database.
        /// </summary>
        /// <remarks></remarks>
        public override Dictionary<string, int> FieldNativeDbTypes
        {
            get
            {
                return _FieldNativeDbTypes;
            }
        }

        /// <summary>
        /// Gets a dictionary of the security permission keys for each field in the business object.
        /// </summary>
        /// <remarks></remarks>
        public override Dictionary<string, string> FieldPermissionKeys
        {
            get
            {
                return _FieldPermissionKeys;
            }
        }

        #endregion

        #region Field Properties

        /// <summary>
        /// Eindeutiger Identifier
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description("Eindeutiger Identifier"),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal ID
        {
            get
            {
                return (System.Decimal)this.CurrentRow["ID"];
            }
            set
            {
                this.CurrentRow["ID"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Int32 Status
        {
            get
            {
                return (System.Int32)this.CurrentRow["Status"];
            }
            set
            {
                this.CurrentRow["Status"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Int32 FirmaID
        {
            get
            {
                return (System.Int32)this.CurrentRow["FirmaID"];
            }
            set
            {
                this.CurrentRow["FirmaID"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String FirmaName
        {
            get
            {
                return (System.String)this.CurrentRow["FirmaName"];
            }
            set
            {
                this.CurrentRow["FirmaName"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal LieferantID
        {
            get
            {
                return (System.Decimal)this.CurrentRow["LieferantID"];
            }
            set
            {
                this.CurrentRow["LieferantID"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String LieferantName
        {
            get
            {
                return (System.String)this.CurrentRow["LieferantName"];
            }
            set
            {
                this.CurrentRow["LieferantName"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String LieferantKrednr
        {
            get
            {
                return (System.String)this.CurrentRow["LieferantKrednr"];
            }
            set
            {
                this.CurrentRow["LieferantKrednr"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String LieferantPLZ
        {
            get
            {
                return (System.String)this.CurrentRow["LieferantPLZ"];
            }
            set
            {
                this.CurrentRow["LieferantPLZ"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String LieferantOrt
        {
            get
            {
                return (System.String)this.CurrentRow["LieferantOrt"];
            }
            set
            {
                this.CurrentRow["LieferantOrt"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String Speicherort
        {
            get
            {
                return (System.String)this.CurrentRow["Speicherort"];
            }
            set
            {
                this.CurrentRow["Speicherort"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal ReNrIntern
        {
            get
            {
                return (System.Decimal)this.CurrentRow["ReNrIntern"];
            }
            set
            {
                this.CurrentRow["ReNrIntern"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String ReNrInternKrzl
        {
            get
            {
                return (System.String)this.CurrentRow["ReNrInternKrzl"];
            }
            set
            {
                this.CurrentRow["ReNrInternKrzl"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String ReNrExtern
        {
            get
            {
                return (System.String)this.CurrentRow["ReNrExtern"];
            }
            set
            {
                this.CurrentRow["ReNrExtern"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.DateTime Rechnungsdatum
        {
            get
            {
                return (System.DateTime)this.CurrentRow["Rechnungsdatum"];
            }
            set
            {
                this.CurrentRow["Rechnungsdatum"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.DateTime Leistungsdatum
        {
            get
            {
                return (System.DateTime)this.CurrentRow["Leistungsdatum"];
            }
            set
            {
                this.CurrentRow["Leistungsdatum"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.DateTime SkontoRechnungBis
        {
            get
            {
                return (System.DateTime)this.CurrentRow["SkontoRechnungBis"];
            }
            set
            {
                this.CurrentRow["SkontoRechnungBis"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal SkontoProzentsatz
        {
            get
            {
                return (System.Decimal)this.CurrentRow["SkontoProzentsatz"];
            }
            set
            {
                this.CurrentRow["SkontoProzentsatz"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.String AuftragsNr
        {
            get
            {
                return (System.String)this.CurrentRow["AuftragsNr"];
            }
            set
            {
                this.CurrentRow["AuftragsNr"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal BetragBrutto
        {
            get
            {
                return (System.Decimal)this.CurrentRow["BetragBrutto"];
            }
            set
            {
                this.CurrentRow["BetragBrutto"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal BetragNetto
        {
            get
            {
                return (System.Decimal)this.CurrentRow["BetragNetto"];
            }
            set
            {
                this.CurrentRow["BetragNetto"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal BetragSteuer
        {
            get
            {
                return (System.Decimal)this.CurrentRow["BetragSteuer"];
            }
            set
            {
                this.CurrentRow["BetragSteuer"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal ZahlbetragNachSkonto
        {
            get
            {
                return (System.Decimal)this.CurrentRow["ZahlbetragNachSkonto"];
            }
            set
            {
                this.CurrentRow["ZahlbetragNachSkonto"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.Decimal BetragSkonto
        {
            get
            {
                return (System.Decimal)this.CurrentRow["BetragSkonto"];
            }
            set
            {
                this.CurrentRow["BetragSkonto"] = value;
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <remarks></remarks>
        [Browsable(false),
         BusinessFieldDisplayInEditor(),
         Description(""),
         DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public System.DateTime Erstellzeitpunkt
        {
            get
            {
                return (System.DateTime)this.CurrentRow["Erstellzeitpunkt"];
            }
            set
            {
                this.CurrentRow["Erstellzeitpunkt"] = value;
            }
        }

        #endregion

        #region Field Property Events

        #endregion

        #region Nested Types & Field Security

        /// <summary>
        /// Contains all of the field names that belong to the business object.
        /// </summary>
        /// <remarks></remarks>
        public enum RechnungenBOFieldNames
        {
            ID,
            Status,
            FirmaID,
            FirmaName,
            LieferantID,
            LieferantName,
            LieferantKrednr,
            LieferantPLZ,
            LieferantOrt,
            Speicherort,
            ReNrIntern,
            ReNrInternKrzl,
            ReNrExtern,
            Rechnungsdatum,
            Leistungsdatum,
            SkontoRechnungBis,
            SkontoProzentsatz,
            AuftragsNr,
            BetragBrutto,
            BetragNetto,
            BetragSteuer,
            ZahlbetragNachSkonto,
            BetragSkonto,
            Erstellzeitpunkt,
            CUSTOM_FIELD
        }

        /// <summary>
        /// Gets the System.Type of the enumeration that contains the field names for the business object.
        /// </summary>
        /// <remarks></remarks>
        public override System.Type GetFieldEnumType()
        {
            return typeof(RechnungenBOFieldNames);
        }

        /// <summary>
        /// Creates a new CheckFieldSecurityEventArgs object that can be used with this business object type.
        /// </summary>
        /// <remarks></remarks>
        protected override CheckFieldSecurityEventArgsBase CreateNewFieldSecurityEventArgs(System.Enum Field, string CustomField, string PermissionKey, PermissionInfo Perm)
        {
            return new CheckFieldSecurityEventArgs<RechnungenBOFieldNames>(Field, CustomField, PermissionKey, Perm);
        }

        /// <summary>
        /// Describes a method that will handle the CheckFieldScurity event.
        /// </summary>
        /// <remarks></remarks>
        public delegate void CheckFieldSecurityEventHandler(object sender, CheckFieldSecurityEventArgs<RechnungenBOFieldNames> e);

        /// <summary>
        /// Occurs when the business objects needs to check the security on a field.
        /// </summary>
        /// <remarks></remarks>
        public event CheckFieldSecurityEventHandler CheckFieldSecurity;

        /// <summary>
        /// Raises the CheckFieldSecurity event.
        /// </summary>
        /// <remarks></remarks>
        protected override void OnCheckFieldSecurity(CheckFieldSecurityEventArgsBase e)
        {
            if (this.CheckFieldSecurity != null)
            {
                this.CheckFieldSecurity(this, (CheckFieldSecurityEventArgs<RechnungenBOFieldNames>)e);
            }
        }

        #endregion

        #region Item Property Implementation


        private static List<string> _AllFieldsList;
        private static Dictionary<string, DbType> _FieldDbTypes;
        private static BusinessLayerFieldEnumDictionary _FieldEnums;
        private static Dictionary<string, int> _FieldLengths;
        private static Dictionary<string, int> _FieldNativeDbTypes;
        private static Dictionary<string, string> _FieldPermissionKeys;

        /// <summary>
        /// Initializes the static members of the RechnungenBO class.
        /// </summary>
        /// <remarks></remarks>
        static RechnungenBO()
        {
            //-- Create the new shared dictionary and populate it with an 
            //   instance of each property descriptor
            _PropertyDescriptors = new PropertyDescriptorDictionary(29);
            _PropertyDescriptors.Add("ID", new Field_ID_Descriptor());
            _PropertyDescriptors.Add("Status", new Field_Status_Descriptor());
            _PropertyDescriptors.Add("FirmaID", new Field_FirmaID_Descriptor());
            _PropertyDescriptors.Add("FirmaName", new Field_FirmaName_Descriptor());
            _PropertyDescriptors.Add("LieferantID", new Field_LieferantID_Descriptor());
            _PropertyDescriptors.Add("LieferantName", new Field_LieferantName_Descriptor());
            _PropertyDescriptors.Add("LieferantKrednr", new Field_LieferantKrednr_Descriptor());
            _PropertyDescriptors.Add("LieferantPLZ", new Field_LieferantPLZ_Descriptor());
            _PropertyDescriptors.Add("LieferantOrt", new Field_LieferantOrt_Descriptor());
            _PropertyDescriptors.Add("Speicherort", new Field_Speicherort_Descriptor());
            _PropertyDescriptors.Add("ReNrIntern", new Field_ReNrIntern_Descriptor());
            _PropertyDescriptors.Add("ReNrInternKrzl", new Field_ReNrInternKrzl_Descriptor());
            _PropertyDescriptors.Add("ReNrExtern", new Field_ReNrExtern_Descriptor());
            _PropertyDescriptors.Add("Rechnungsdatum", new Field_Rechnungsdatum_Descriptor());
            _PropertyDescriptors.Add("Leistungsdatum", new Field_Leistungsdatum_Descriptor());
            _PropertyDescriptors.Add("SkontoRechnungBis", new Field_SkontoRechnungBis_Descriptor());
            _PropertyDescriptors.Add("SkontoProzentsatz", new Field_SkontoProzentsatz_Descriptor());
            _PropertyDescriptors.Add("AuftragsNr", new Field_AuftragsNr_Descriptor());
            _PropertyDescriptors.Add("BetragBrutto", new Field_BetragBrutto_Descriptor());
            _PropertyDescriptors.Add("BetragNetto", new Field_BetragNetto_Descriptor());
            _PropertyDescriptors.Add("BetragSteuer", new Field_BetragSteuer_Descriptor());
            _PropertyDescriptors.Add("ZahlbetragNachSkonto", new Field_ZahlbetragNachSkonto_Descriptor());
            _PropertyDescriptors.Add("BetragSkonto", new Field_BetragSkonto_Descriptor());
            _PropertyDescriptors.Add("Erstellzeitpunkt", new Field_Erstellzeitpunkt_Descriptor());

            _AllFieldsList = new List<string>(24);
            _AllFieldsList.Add("ID");
            _AllFieldsList.Add("Status");
            _AllFieldsList.Add("FirmaID");
            _AllFieldsList.Add("FirmaName");
            _AllFieldsList.Add("LieferantID");
            _AllFieldsList.Add("LieferantName");
            _AllFieldsList.Add("LieferantKrednr");
            _AllFieldsList.Add("LieferantPLZ");
            _AllFieldsList.Add("LieferantOrt");
            _AllFieldsList.Add("Speicherort");
            _AllFieldsList.Add("ReNrIntern");
            _AllFieldsList.Add("ReNrInternKrzl");
            _AllFieldsList.Add("ReNrExtern");
            _AllFieldsList.Add("Rechnungsdatum");
            _AllFieldsList.Add("Leistungsdatum");
            _AllFieldsList.Add("SkontoRechnungBis");
            _AllFieldsList.Add("SkontoProzentsatz");
            _AllFieldsList.Add("AuftragsNr");
            _AllFieldsList.Add("BetragBrutto");
            _AllFieldsList.Add("BetragNetto");
            _AllFieldsList.Add("BetragSteuer");
            _AllFieldsList.Add("ZahlbetragNachSkonto");
            _AllFieldsList.Add("BetragSkonto");
            _AllFieldsList.Add("Erstellzeitpunkt");

            _FieldDbTypes = new Dictionary<string, DbType>(24);
            _FieldDbTypes.Add("ID", DbType.Decimal);
            _FieldDbTypes.Add("Status", DbType.Int32);
            _FieldDbTypes.Add("FirmaID", DbType.Int32);
            _FieldDbTypes.Add("FirmaName", DbType.AnsiString);
            _FieldDbTypes.Add("LieferantID", DbType.Decimal);
            _FieldDbTypes.Add("LieferantName", DbType.AnsiString);
            _FieldDbTypes.Add("LieferantKrednr", DbType.AnsiString);
            _FieldDbTypes.Add("LieferantPLZ", DbType.AnsiString);
            _FieldDbTypes.Add("LieferantOrt", DbType.AnsiString);
            _FieldDbTypes.Add("Speicherort", DbType.AnsiString);
            _FieldDbTypes.Add("ReNrIntern", DbType.Decimal);
            _FieldDbTypes.Add("ReNrInternKrzl", DbType.AnsiString);
            _FieldDbTypes.Add("ReNrExtern", DbType.AnsiString);
            _FieldDbTypes.Add("Rechnungsdatum", DbType.DateTime);
            _FieldDbTypes.Add("Leistungsdatum", DbType.DateTime);
            _FieldDbTypes.Add("SkontoRechnungBis", DbType.DateTime);
            _FieldDbTypes.Add("SkontoProzentsatz", DbType.Decimal);
            _FieldDbTypes.Add("AuftragsNr", DbType.AnsiString);
            _FieldDbTypes.Add("BetragBrutto", DbType.Decimal);
            _FieldDbTypes.Add("BetragNetto", DbType.Decimal);
            _FieldDbTypes.Add("BetragSteuer", DbType.Decimal);
            _FieldDbTypes.Add("ZahlbetragNachSkonto", DbType.Decimal);
            _FieldDbTypes.Add("BetragSkonto", DbType.Decimal);
            _FieldDbTypes.Add("Erstellzeitpunkt", DbType.DateTime);

            _FieldEnums = new BusinessLayerFieldEnumDictionary(25);
            _FieldEnums.Add("ID", RechnungenBOFieldNames.ID);
            _FieldEnums.Add("Status", RechnungenBOFieldNames.Status);
            _FieldEnums.Add("FirmaID", RechnungenBOFieldNames.FirmaID);
            _FieldEnums.Add("FirmaName", RechnungenBOFieldNames.FirmaName);
            _FieldEnums.Add("LieferantID", RechnungenBOFieldNames.LieferantID);
            _FieldEnums.Add("LieferantName", RechnungenBOFieldNames.LieferantName);
            _FieldEnums.Add("LieferantKrednr", RechnungenBOFieldNames.LieferantKrednr);
            _FieldEnums.Add("LieferantPLZ", RechnungenBOFieldNames.LieferantPLZ);
            _FieldEnums.Add("LieferantOrt", RechnungenBOFieldNames.LieferantOrt);
            _FieldEnums.Add("Speicherort", RechnungenBOFieldNames.Speicherort);
            _FieldEnums.Add("ReNrIntern", RechnungenBOFieldNames.ReNrIntern);
            _FieldEnums.Add("ReNrInternKrzl", RechnungenBOFieldNames.ReNrInternKrzl);
            _FieldEnums.Add("ReNrExtern", RechnungenBOFieldNames.ReNrExtern);
            _FieldEnums.Add("Rechnungsdatum", RechnungenBOFieldNames.Rechnungsdatum);
            _FieldEnums.Add("Leistungsdatum", RechnungenBOFieldNames.Leistungsdatum);
            _FieldEnums.Add("SkontoRechnungBis", RechnungenBOFieldNames.SkontoRechnungBis);
            _FieldEnums.Add("SkontoProzentsatz", RechnungenBOFieldNames.SkontoProzentsatz);
            _FieldEnums.Add("AuftragsNr", RechnungenBOFieldNames.AuftragsNr);
            _FieldEnums.Add("BetragBrutto", RechnungenBOFieldNames.BetragBrutto);
            _FieldEnums.Add("BetragNetto", RechnungenBOFieldNames.BetragNetto);
            _FieldEnums.Add("BetragSteuer", RechnungenBOFieldNames.BetragSteuer);
            _FieldEnums.Add("ZahlbetragNachSkonto", RechnungenBOFieldNames.ZahlbetragNachSkonto);
            _FieldEnums.Add("BetragSkonto", RechnungenBOFieldNames.BetragSkonto);
            _FieldEnums.Add("Erstellzeitpunkt", RechnungenBOFieldNames.Erstellzeitpunkt);
            _FieldEnums.Add("CUSTOM_FIELD", RechnungenBOFieldNames.CUSTOM_FIELD);

            _FieldLengths = new Dictionary<string, int>(24);
            _FieldLengths.Add("ID", 9);
            _FieldLengths.Add("Status", 4);
            _FieldLengths.Add("FirmaID", 4);
            _FieldLengths.Add("FirmaName", 60);
            _FieldLengths.Add("LieferantID", 9);
            _FieldLengths.Add("LieferantName", 60);
            _FieldLengths.Add("LieferantKrednr", 60);
            _FieldLengths.Add("LieferantPLZ", 10);
            _FieldLengths.Add("LieferantOrt", 40);
            _FieldLengths.Add("Speicherort", 250);
            _FieldLengths.Add("ReNrIntern", 9);
            _FieldLengths.Add("ReNrInternKrzl", 10);
            _FieldLengths.Add("ReNrExtern", 60);
            _FieldLengths.Add("Rechnungsdatum", 8);
            _FieldLengths.Add("Leistungsdatum", 8);
            _FieldLengths.Add("SkontoRechnungBis", 8);
            _FieldLengths.Add("SkontoProzentsatz", 9);
            _FieldLengths.Add("AuftragsNr", 60);
            _FieldLengths.Add("BetragBrutto", 9);
            _FieldLengths.Add("BetragNetto", 9);
            _FieldLengths.Add("BetragSteuer", 9);
            _FieldLengths.Add("ZahlbetragNachSkonto", 9);
            _FieldLengths.Add("BetragSkonto", 9);
            _FieldLengths.Add("Erstellzeitpunkt", 8);

            _FieldNativeDbTypes = new Dictionary<string, int>(24);
            _FieldNativeDbTypes.Add("ID", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("Status", (int)System.Data.SqlDbType.Int);
            _FieldNativeDbTypes.Add("FirmaID", (int)System.Data.SqlDbType.Int);
            _FieldNativeDbTypes.Add("FirmaName", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("LieferantID", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("LieferantName", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("LieferantKrednr", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("LieferantPLZ", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("LieferantOrt", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("Speicherort", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("ReNrIntern", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("ReNrInternKrzl", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("ReNrExtern", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("Rechnungsdatum", (int)System.Data.SqlDbType.DateTime);
            _FieldNativeDbTypes.Add("Leistungsdatum", (int)System.Data.SqlDbType.DateTime);
            _FieldNativeDbTypes.Add("SkontoRechnungBis", (int)System.Data.SqlDbType.DateTime);
            _FieldNativeDbTypes.Add("SkontoProzentsatz", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("AuftragsNr", (int)System.Data.SqlDbType.VarChar);
            _FieldNativeDbTypes.Add("BetragBrutto", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("BetragNetto", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("BetragSteuer", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("ZahlbetragNachSkonto", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("BetragSkonto", (int)System.Data.SqlDbType.Decimal);
            _FieldNativeDbTypes.Add("Erstellzeitpunkt", (int)System.Data.SqlDbType.DateTime);

            _FieldPermissionKeys = new Dictionary<string, string>(24);

        }

        private static bool _AreCustomDescriptorsEvaluated = false;
        protected override bool AreCustomDescriptorsEvaluated
        {
            get
            {
                bool llReturn = _AreCustomDescriptorsEvaluated;
                _AreCustomDescriptorsEvaluated = true;
                return llReturn;
            }
        }

        private static PropertyDescriptorDictionary _PropertyDescriptors;
        protected override PropertyDescriptorDictionary PropertyDescriptors
        {
            get
            {
                return _PropertyDescriptors;
            }
        }

        /// <summary>
        /// A private field used to store the System.Type of this business object for use by the FieldPropertyDescriptor classes.
        /// </summary>
        /// <remarks></remarks>

        private static System.Type _ComponentType = typeof(RechnungenBO);

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the ID property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_ID_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_ID_Descriptor() : base("ID") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).ID;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).ID = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the Status property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_Status_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_Status_Descriptor() : base("Status") { }
            private System.Type _PropertyType = typeof(System.Int32);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).Status;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).Status = (System.Int32)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the FirmaID property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_FirmaID_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_FirmaID_Descriptor() : base("FirmaID") { }
            private System.Type _PropertyType = typeof(System.Int32);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).FirmaID;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).FirmaID = (System.Int32)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the FirmaName property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_FirmaName_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_FirmaName_Descriptor() : base("FirmaName") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).FirmaName;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).FirmaName = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the LieferantID property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_LieferantID_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_LieferantID_Descriptor() : base("LieferantID") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).LieferantID;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).LieferantID = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the LieferantName property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_LieferantName_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_LieferantName_Descriptor() : base("LieferantName") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).LieferantName;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).LieferantName = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the LieferantKrednr property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_LieferantKrednr_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_LieferantKrednr_Descriptor() : base("LieferantKrednr") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).LieferantKrednr;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).LieferantKrednr = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the LieferantPLZ property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_LieferantPLZ_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_LieferantPLZ_Descriptor() : base("LieferantPLZ") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).LieferantPLZ;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).LieferantPLZ = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the LieferantOrt property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_LieferantOrt_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_LieferantOrt_Descriptor() : base("LieferantOrt") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).LieferantOrt;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).LieferantOrt = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the Speicherort property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_Speicherort_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_Speicherort_Descriptor() : base("Speicherort") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).Speicherort;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).Speicherort = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the ReNrIntern property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_ReNrIntern_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_ReNrIntern_Descriptor() : base("ReNrIntern") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).ReNrIntern;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).ReNrIntern = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the ReNrInternKrzl property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_ReNrInternKrzl_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_ReNrInternKrzl_Descriptor() : base("ReNrInternKrzl") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).ReNrInternKrzl;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).ReNrInternKrzl = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the ReNrExtern property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_ReNrExtern_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_ReNrExtern_Descriptor() : base("ReNrExtern") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).ReNrExtern;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).ReNrExtern = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the Rechnungsdatum property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_Rechnungsdatum_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_Rechnungsdatum_Descriptor() : base("Rechnungsdatum") { }
            private System.Type _PropertyType = typeof(System.DateTime);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).Rechnungsdatum;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).Rechnungsdatum = (System.DateTime)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the Leistungsdatum property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_Leistungsdatum_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_Leistungsdatum_Descriptor() : base("Leistungsdatum") { }
            private System.Type _PropertyType = typeof(System.DateTime);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).Leistungsdatum;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).Leistungsdatum = (System.DateTime)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the SkontoRechnungBis property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_SkontoRechnungBis_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_SkontoRechnungBis_Descriptor() : base("SkontoRechnungBis") { }
            private System.Type _PropertyType = typeof(System.DateTime);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).SkontoRechnungBis;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).SkontoRechnungBis = (System.DateTime)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the SkontoProzentsatz property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_SkontoProzentsatz_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_SkontoProzentsatz_Descriptor() : base("SkontoProzentsatz") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).SkontoProzentsatz;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).SkontoProzentsatz = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the AuftragsNr property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_AuftragsNr_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_AuftragsNr_Descriptor() : base("AuftragsNr") { }
            private System.Type _PropertyType = typeof(System.String);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).AuftragsNr;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).AuftragsNr = (System.String)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the BetragBrutto property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_BetragBrutto_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_BetragBrutto_Descriptor() : base("BetragBrutto") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).BetragBrutto;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).BetragBrutto = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the BetragNetto property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_BetragNetto_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_BetragNetto_Descriptor() : base("BetragNetto") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).BetragNetto;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).BetragNetto = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the BetragSteuer property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_BetragSteuer_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_BetragSteuer_Descriptor() : base("BetragSteuer") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).BetragSteuer;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).BetragSteuer = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the ZahlbetragNachSkonto property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_ZahlbetragNachSkonto_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_ZahlbetragNachSkonto_Descriptor() : base("ZahlbetragNachSkonto") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).ZahlbetragNachSkonto;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).ZahlbetragNachSkonto = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the BetragSkonto property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_BetragSkonto_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_BetragSkonto_Descriptor() : base("BetragSkonto") { }
            private System.Type _PropertyType = typeof(System.Decimal);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).BetragSkonto;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).BetragSkonto = (System.Decimal)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        /// <summary>
        /// A PropertyDescriptor class used to Get and Set the value of the Erstellzeitpunkt property.
        /// </summary>
        /// <remarks></remarks>
        private class Field_Erstellzeitpunkt_Descriptor : MicroFour.StrataFrame.Business.FieldPropertyDescriptor
        {
            public Field_Erstellzeitpunkt_Descriptor() : base("Erstellzeitpunkt") { }
            private System.Type _PropertyType = typeof(System.DateTime);
            public override object GetValue(Object component)
            {
                return ((RechnungenBO)component).Erstellzeitpunkt;
            }
            public override void SetValue(Object component, object Value)
            {
                ((RechnungenBO)component).Erstellzeitpunkt = (System.DateTime)Value;
            }
            public override System.Type PropertyType
            {
                get
                {
                    return this._PropertyType;
                }
            }
            public override System.Type ComponentType
            {
                get
                {
                    return _ComponentType;
                }
            }
        }

        #endregion

    }

}
