Exemple #1
0
        protected virtual void FillDatabase(Session ssn)
        {
            department1           = Prepare_hrmDepartment(ssn, "1");
            department2           = Prepare_hrmDepartment(ssn, "2");
            country1              = Prepare_csCountry(ssn, "1");
            address1              = Prepare_csAddress(ssn, "1", country1);
            address2              = Prepare_csAddress(ssn, "1", country1);
            contractCategory1     = Prepare_crmContractCategory(ssn, "1");
            documentCategory1     = Prepare_crmDocumentCategory(ssn, "1");
            legalPersonRussianRu1 = Prepare_crmCLegalPerson(ssn, "1", address1);
            legalPersonRussianRu2 = Prepare_crmCLegalPerson(ssn, "2", address2);
            partyRu1              = legalPersonRussianRu1.Party; // Prepare_crmPartyRu(ssn, "1", address1, legalPersonRussianRu1);
            partyRu2              = legalPersonRussianRu2.Party; // Prepare_crmPartyRu(ssn, "2", address2, legalPersonRussianRu2);

            unit1             = Prepare_csUnit(ssn, "1");
            nomenclatureType1 = Prepare_csNomenclatureType(ssn, "1");
            costItem1         = Prepare_fmCostItem(ssn, "1");

            valuta1 = Prepare_csValuta(ssn, "1", nomenclatureType1, unit1, costItem1);

            physicalPersonRu1 = Prepare_crmPhysicalPerson(ssn, "1", address1);
            physicalPersonRu2 = Prepare_crmPhysicalPerson(ssn, "1", address2);
            staff1            = Prepare_hrmStaff(ssn, "1", physicalPersonRu1, department1);
            staff2            = Prepare_hrmStaff(ssn, "2", physicalPersonRu2, department2);
        }
Exemple #2
0
        protected fmCSAImportResult ImportNMB(IObjectSpace os)
        {
            crmBank bank = BankGet(os, "044579852", "НМБ");
            fmCSATaskImporterFile task = ImportTaskGet(os, bank, "NMB", "fmSAImportTest03.txt");
            crmCLegalPerson       pers = LegalPersonGet(os, "2518", "НПО машиностроения", "5012039795", "509950001");
            crmBankAccount        acc;

            acc = BankAccountGet(os, bank, "40502810000000000007", pers.Person);
            acc.PrefferedParty = pers.Party;
            os.CommitChanges();
            fmCSAImportResult result = task.ExecuteTask(GetTestDataStream("fmSAImportTest03.txt"));

            return(result);
        }
Exemple #3
0
        //
        static crmCLegalPerson GetLegalPerson(Session ses, String code)
        {
            crmCLegalPerson     rc     = null;
            XPQuery <crmCParty> Partys = new XPQuery <crmCParty>(ses);
            var qp = from p in Partys
                     where p.Code == code
                     select p;

            foreach (crmCParty p in qp)
            {
                rc = (crmCLegalPerson)p.ComponentObject;
                break;
            }
            return(rc);
        }
Exemple #4
0
 protected crmCLegalPerson LegalPersonGet(IObjectSpace os, String code, String name, String INN, String KPP)
 {
     if (_leg_pers.ContainsKey(code))
     {
         return(os.GetObject <crmCLegalPerson>(_leg_pers[code]));
     }
     else
     {
         crmCLegalPerson pers = os.CreateObject <crmCLegalPerson>();
         pers.Code = code;
         pers.Name = name;
         pers.INN  = INN;
         pers.KPP  = KPP;
         return(pers);
     }
 }
Exemple #5
0
        protected virtual crmCLegalPerson Prepare_crmCLegalPerson(Session ssn, string modificator, csAddress address)
        {
            crmCLegalPerson legalPersonRussianRu1 = new crmCLegalPerson(ssn);

            legalPersonRussianRu1.Name     = "ИнтекоАГ" + modificator;
            legalPersonRussianRu1.NameFull = "ИнтекоАГ" + modificator;
//            legalPersonRussianRu1.RegNumber = "Рег Ном " + modificator;
            legalPersonRussianRu1.INN               = "ИНН 1111111111";
            legalPersonRussianRu1.Code              = "LP" + modificator;
            legalPersonRussianRu1.Description       = "LegalPerson Description" + modificator;
            legalPersonRussianRu1.KPP               = "КПП 222222222";
            legalPersonRussianRu1.RegCode           = "RC";
            legalPersonRussianRu1.Person.Address    = address;
            legalPersonRussianRu1.Party.AddressFact = address;
            legalPersonRussianRu1.Party.AddressPost = address;
            //            legalPersonRussianRu1.Address = address;
            return(legalPersonRussianRu1);
        }
 public override void UpdateDatabaseAfterUpdateSchema()
 {
     base.UpdateDatabaseAfterUpdateSchema();
     if (this.CurrentDBVersion != new Version("1.1.1.224"))
     {
         return;
     }
     using (IObjectSpace os = ObjectSpace.CreateNestedObjectSpace()) {
         TrwSettings     instance   = TrwSettings.GetInstance(os);
         crmCLegalPerson other_sale = os.FindObject <crmCLegalPerson>(new BinaryOperator("Code", "12582"));
         other_sale.Name          = "Прочие заказчики";
         instance.PersonOtherSale = other_sale.Person;
         crmCLegalPerson other_bay = os.FindObject <crmCLegalPerson>(new BinaryOperator("Code", "12581"));
         other_bay.Name          = "Прочие поставщики";
         instance.PersonOtherBay = other_bay.Person;
         //
         UpdateTrwSubjects(os);
         os.CommitChanges();
     }
 }
Exemple #7
0
        //
        static crmCLegalPerson NewLegalPerson(Session ses, ExcelParty ep)
        {
            crmCLegalPerson lp = new crmCLegalPerson(ses);

            lp.Code                         = ep.code;
            lp.Name                         = ep.name;
            lp.INN                          = ep.inn;
            lp.KPP                          = ep.kpp;
            lp.PersonType                   = GetPersonType(ses, ep.lpt);
            lp.AddressLegal.Country         = GetCountry(ses, ep.country);
            lp.AddressLegal.City            = ep.city;
            lp.AddressLegal.AddressHandmake = ep.addr;
            lp.AddressFact.Country          = lp.AddressLegal.Country;
            lp.AddressFact.City             = ep.city;
            lp.AddressFact.AddressHandmake  = ep.addr;
            if (!String.IsNullOrEmpty(ep.close.Trim()))
            {
                lp.IsClosed = true;
            }
            return(lp);
        }
Exemple #8
0
        protected fmCSAImportResult ImportVTB(IObjectSpace os)
        {
            crmBank bank = BankGet(os, "044525187", "ВТБ");
            fmCSATaskImporterFile task = ImportTaskGet(os, bank, "VTB", "fmSAImportTest01.txt");
            crmCLegalPerson       pers = LegalPersonGet(os, "2518", "НПО машиностроения", "5012039795", "509950001");
            crmBankAccount        acc;

            acc = BankAccountGet(os, bank, "40702840500030002016", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702840200030002015", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702810400030003459", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702978400030001542", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702978100030001541", pers.Person);
            acc.PrefferedParty = pers.Party;
            os.CommitChanges();
            fmCSAImportResult result = task.ExecuteTask(GetTestDataStream("fmSAImportTest01.txt"));

            return(result);
        }
Exemple #9
0
        /// <summary>
        ///
        /// </summary>
        private void UpdateParty()
        {
            IList <crmCParty> partys = ObjectSpace.GetObjects <crmCParty>(CriteriaOperator.Parse("Person is Null"));

            foreach (crmCParty party in partys)
            {
                if (party.ComponentType == typeof(crmCLegalPerson))
                {
                    crmCLegalPerson lp = (crmCLegalPerson)party.ComponentObject;
                    party.Person = lp.Person;
                }
                if (party.ComponentType == typeof(crmCLegalPersonUnit))
                {
                    crmCLegalPersonUnit lpu = (crmCLegalPersonUnit)party.ComponentObject;
                    if (lpu.LegalPerson != null)
                    {
                        party.Person = lpu.LegalPerson.Person;
                    }
                }
                if (party.ComponentType == typeof(crmCPhysicalParty))
                {
                    crmCPhysicalParty php = (crmCPhysicalParty)party.ComponentObject;
                    if (php.Person != null)
                    {
                        party.Person = php.Person.Person;
                    }
                }
                if (party.ComponentType == typeof(crmCBusinessman))
                {
                    crmCBusinessman bm = (crmCBusinessman)party.ComponentObject;
                    if (bm.Person != null)
                    {
                        party.Person = bm.Person.Person;
                    }
                }
            }
        }
Exemple #10
0
        protected fmCSAImportResult ImportEVF(IObjectSpace os)
        {
            crmBank bank = BankGet(os, "044525204", "Еврофинанс");
            fmCSATaskImporterFile task = ImportTaskGet(os, bank, "EVF", "fmSAImportTest04.txt");
            crmCLegalPerson       pers = LegalPersonGet(os, "2518", "НПО машиностроения", "5012039795", "509950001");
            crmBankAccount        acc;

            acc = BankAccountGet(os, bank, "40702810000002651190", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702840500002651039", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702840500002651181", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702840600002651191", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702978200002651188", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40702978300002651198", pers.Person);
            acc.PrefferedParty = pers.Party;
            os.CommitChanges();
            fmCSAImportResult result = task.ExecuteTask(GetTestDataStream("fmSAImportTest04.txt"));

            return(result);
        }
Exemple #11
0
        protected fmCSAImportResult ImportSBRF(IObjectSpace os)
        {
            crmBank bank = BankGet(os, "044525225", "Сбербанк");
            fmCSATaskImporterFile task = ImportTaskGet(os, bank, "SBRF", "fmSAImportTest02.txt");
            crmCLegalPerson       pers = LegalPersonGet(os, "2518", "НПО машиностроения", "5012039795", "509950001");
            crmBankAccount        acc;

            acc = BankAccountGet(os, bank, "40502810240040102530", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40502810940040105316", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40502840440040202530", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40502840540040102530", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40502978040040202530", pers.Person);
            acc.PrefferedParty = pers.Party;
            acc = BankAccountGet(os, bank, "40502978140040102530", pers.Person);
            acc.PrefferedParty = pers.Party;
            os.CommitChanges();
            fmCSAImportResult result = task.ExecuteTask(GetTestDataStream("fmSAImportTest02.txt"));

            return(result);
        }
Exemple #12
0
        public void import(String filename)
        {
//            CsvEngine engine = new CsvEngine(new CsvOptions("ImportPartyRecord", ';',6));
//            engine.Options.IgnoreFirstLines = 1;
//            Npgsql.NpgsqlConnection con = new Npgsql.NpgsqlConnection("Server=npomash;User Id=pg_adm;Password='******';Database=ermdev;Encoding=UNICODE;");
//            IXpoDataStoreProvider dsp = new ConnectionDataStoreProvider(con);

//            IDbConnection con = PostgreSqlConnectionProvider.CreateConnection("Server=npomash;User Id=pg_adm;Password='******';Database=ermdev;Encoding=UNICODE;");
            IDbConnection con = PostgreSqlConnectionProvider.CreateConnection("Server=alt-dev;User Id=pg_adm;Password='******';Database=ermprod;Encoding=UNICODE;");
//
            IDataLayer   data_layer   = XpoDefault.GetDataLayer(con, AutoCreateOption.None);
            IObjectLayer object_layer = new SimpleObjectLayer(data_layer);
            Int32        count        = 0;

//            ObjectSpaceProvider osp = new ObjectSpaceProvider(dsp);
            //
//            XafApplication application = new ImportApplication();
//            ModuleBase testModule = new ModuleBase();
//            testModule.AdditionalExportedTypes.Add(typeof(crmCParty));
//            testModule.AdditionalExportedTypes.Add(typeof(crmCBusinessman));
//            testModule.AdditionalExportedTypes.Add(typeof(crmCPhysicalParty));
//            testModule.AdditionalExportedTypes.Add(typeof(crmCLegalPerson));
//            application.Modules.Add(testModule);
//            application.Setup("ImportApplication", osp);
//            using (IObjectSpace os = application.CreateObjectSpace()) {
            using (UnitOfWork uow_base = new UnitOfWork(object_layer)) {
                DataTable tbl = (new CsvEngine("ImportPartyRecord", ';', 6)).ReadFileAsDT(filename);
                foreach (DataRow row in tbl.Rows)
                {
                    using (UnitOfWork uow = uow_base.BeginNestedUnitOfWork()) {
                        ImportPartyRecord rec = new ImportPartyRecord();
                        rec.Type = ((String)row.ItemArray[0]).Trim();
                        rec.Code = ((String)row.ItemArray[1]).Trim();
                        rec.INN  = ((String)row.ItemArray[2]).Trim();
                        rec.KPP  = ((String)row.ItemArray[3]).Trim();
                        rec.Name = ((String)row.ItemArray[4]).Trim();
                        rec.Addr = ((String)row.ItemArray[5]).Trim();
                        System.Console.WriteLine(rec.Type + "@" + rec.Code + "@" + rec.INN + "@" + rec.KPP + "@" + rec.Name + "@" + rec.Addr);
                        XPQuery <crmCParty> q_party = new XPQuery <crmCParty>(uow, true);
                        crmCParty           party   = q_party.FirstOrDefault(obj => obj.Code == rec.Code);
                        if (party != null)
                        {
                            continue;
                        }
                        switch (rec.Type)
                        {
                        case "ИП":
                            crmCBusinessman bm = new crmCBusinessman(uow);
                            bm.Code = rec.Code;
                            bm.Name = rec.Name;
                            bm.INN  = rec.INN;
                            bm.AddressLegal.AddressHandmake = rec.Addr;
                            bm.AddressFact.AddressHandmake  = rec.Addr;
                            break;

                        case "ФЛ":
                            crmCPhysicalParty phl = new crmCPhysicalParty(uow);
                            phl.Code = rec.Code;
                            phl.Name = rec.Name;
                            phl.INN  = rec.INN;
                            phl.AddressLegal.AddressHandmake = rec.Addr;
                            phl.AddressFact.AddressHandmake  = rec.Addr;
                            break;

                        default:
                            crmCLegalPerson lp = new crmCLegalPerson(uow);
                            lp.Code = rec.Code;
                            lp.Name = rec.Name;
                            lp.INN  = rec.INN;
                            lp.KPP  = rec.KPP;
                            lp.AddressLegal.AddressHandmake = rec.Addr;
                            lp.AddressFact.AddressHandmake  = rec.Addr;
                            break;
                        }
                        uow.CommitChanges();
                        count++;
                    }
                }
                uow_base.CommitChanges();
                System.Console.WriteLine("All count: " + count);
            }
        }
Exemple #13
0
        //
        static void Main(string[] args)
        {
            Session bses = GetSession();
            int     i    = 1;

            if (args[0] == "city")
            {
                using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) {
                    XPQuery <csAddress> aq = new XPQuery <csAddress>(ses);
                    var q = from address in aq
                            where (address.City == null ||
                                   address.City == "" ||
                                   address.City == " ") &&
                            !(address.AddressString == null ||
                              address.AddressString == "" ||
                              address.AddressString == " ")
                            select address;
                    foreach (csAddress address in q)
                    {
                        System.Console.WriteLine(address.AddressString + " : " +
                                                 address.AddressHandmake + " : " +
                                                 address.City);
                        address.City = "Не задан";
                    }
                    System.Console.WriteLine(q.Count());
                    ses.CommitChanges();
                }
            }
            if (args[0] == "party")
            {
                Excel.Application xlApp       = null;
                Excel.Workbook    xlWorkBook  = null;
                Excel.Worksheet   xlWorkSheet = null;

                xlApp = new Excel.ApplicationClass();

                // Открытие документа (книги) excel
                xlWorkBook = xlApp.Workbooks.Open("e:\\party2.xls");

                // Выбирается Лист (если существует)
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                //
                //try {
                while (true)
                {
                    using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) {
                        i++;
                        ExcelParty ep = new ExcelParty();
                        //                    Excel.Range range = xlWorkSheet.get_Range("A" + i, "P" + i);
                        //                    Excel.Range range2 = xlWorkSheet.get_Range("A1");
                        if (xlWorkSheet.get_Range("A" + i).Value2 == null)
                        {
                            break;
                        }
                        ep.code = xlWorkSheet.get_Range("A" + i).Value2.ToString();
                        ep.type = xlWorkSheet.get_Range("B" + i).Value2.ToString();
                        if (xlWorkSheet.get_Range("C" + i).Value2 != null)
                        {
                            ep.close = xlWorkSheet.get_Range("C" + i).Value2.ToString();
                        }
                        else
                        {
                            ep.close = String.Empty;
                        }
                        if (xlWorkSheet.get_Range("E" + i).Value2 != null)
                        {
                            ep.country = UpFirstCase(xlWorkSheet.get_Range("E" + i).Value2.ToString());
                        }
                        else
                        {
                            ep.country = String.Empty;
                        }
                        if (xlWorkSheet.get_Range("F" + i).Value2 != null)
                        {
                            ep.city = UpFirstCase(xlWorkSheet.get_Range("F" + i).Value2.ToString());
                        }
                        else
                        {
                            ep.city = "-";
                        }
                        if (xlWorkSheet.get_Range("G" + i).Value2 != null)
                        {
                            ep.legal = xlWorkSheet.get_Range("G" + i).Value2.ToString();
                        }
                        else
                        {
                            ep.legal = String.Empty;
                        }
                        if (xlWorkSheet.get_Range("H" + i).Value2 != null)
                        {
                            ep.lpt = xlWorkSheet.get_Range("H" + i).Value2.ToString();
                        }
                        else
                        {
                            ep.lpt = "-";
                        }
                        ep.inn = xlWorkSheet.get_Range("I" + i).Value2.ToString();
                        if (xlWorkSheet.get_Range("J" + i).Value2 != null)
                        {
                            ep.kpp = xlWorkSheet.get_Range("J" + i).Value2.ToString();
                        }
                        else
                        {
                            ep.kpp = String.Empty;
                        }
                        ep.name = xlWorkSheet.get_Range("K" + i).Value2.ToString();
                        ep.addr = xlWorkSheet.get_Range("L" + i).Value2.ToString();
                        //                    party.NameFull = party.Name;
                        //                    party.AddressFact.AddressHandmake = xlWorkSheet.get_Range("L" + i, "L" + i).Value2.ToString();
                        //                    party.INN = xlWorkSheet.get_Range("I" + i, "I" + i).Value2.ToString();
                        //                    party.KPP = xlWorkSheet.get_Range("J" + i, "J" + i).Value2.ToString();
                        switch (ep.type)
                        {
                        case "ЛЮ":
                            crmCLegalPerson lp = NewLegalPerson(ses, ep);
                            //lp.Save();
                            break;

                        case "ЛФ":
                            crmCPhysicalParty php = new crmCPhysicalParty(ses);
                            php.Code                         = ep.code;
                            php.NameHandmake                 = ep.name;
                            php.INN                          = ep.inn;
                            php.AddressLegal.Country         = GetCountry(ses, ep.country);
                            php.AddressLegal.City            = ep.city;
                            php.AddressLegal.AddressHandmake = ep.addr;
                            php.AddressFact.Country          = php.AddressLegal.Country;
                            php.AddressFact.City             = ep.city;
                            php.AddressFact.AddressHandmake  = ep.addr;
                            if (!String.IsNullOrEmpty(ep.close.Trim()))
                            {
                                php.IsClosed = true;
                            }
                            //php.Save();
                            break;

                        case "ИП":
                            crmCBusinessman bp = new crmCBusinessman(ses);
                            bp.Code                         = ep.code;
                            bp.NameHandmake                 = ep.name;
                            bp.INN                          = ep.inn;
                            bp.PersonType                   = GetPersonType(ses, ep.lpt);
                            bp.AddressLegal.Country         = GetCountry(ses, ep.country);
                            bp.AddressLegal.City            = ep.city;
                            bp.AddressLegal.AddressHandmake = ep.addr;
                            bp.AddressFact.Country          = bp.AddressLegal.Country;
                            bp.AddressFact.City             = ep.city;
                            bp.AddressFact.AddressHandmake  = ep.addr;
                            if (!String.IsNullOrEmpty(ep.close.Trim()))
                            {
                                bp.IsClosed = true;
                            }
                            //bp.Save();
                            break;

                        case "ФИЛИАЛ":
                            crmCLegalPersonUnit lpu = UpdateLegalPersonUnit(ses, ep);
                            //lpu.Save();
                            break;

                        case "ПРОЧИЕ":
                            crmCParty party2 = new crmCParty(ses);
                            party2.Code = ep.code;
                            party2.Name = ep.name;
                            party2.INN  = ep.inn;
                            party2.AddressFact.Country         = GetCountry(ses, ep.country);
                            party2.AddressFact.City            = ep.city;
                            party2.AddressFact.AddressHandmake = ep.addr;
                            if (!String.IsNullOrEmpty(ep.close.Trim()))
                            {
                                party2.IsClosed = true;
                            }
                            //party2.Save();
                            break;

                        case "ДОМ":
                            crmCParty party = new crmCParty(ses);
                            party.Code = ep.code;
                            party.Name = ep.name;
                            party.INN  = ep.inn;
                            party.AddressFact.Country         = GetCountry(ses, ep.country);
                            party.AddressFact.City            = ep.city;
                            party.AddressFact.AddressHandmake = ep.addr;
                            if (!String.IsNullOrEmpty(ep.close.Trim()))
                            {
                                party.IsClosed = true;
                            }
                            //party.Save();
                            break;

                        default:
                            throw new NotSupportedException();
                        }

                        //MessageBox.Show(xlWorkSheet.get_Range("B1", "B1").Value2.ToString());

                        System.Console.WriteLine(ep.type + ' ' + ep.code + ' ' + ep.name + ' ' + ep.addr);
                        ses.CommitChanges();
                    }
                }
                //}
                //catch (Exception e) {
                //        if (xlWorkSheet != null) releaseObject(xlWorkSheet);
                //        if (xlWorkBook != null) releaseObject(xlWorkBook);
                //        if (xlApp != null) releaseObject(xlApp);
                //        xlWorkSheet = null;
                //        xlWorkBook = null;
                //        xlApp = null;
                //        GC.Collect();
                //        System.Console.WriteLine(e);
                //        throw new Exception("Error clear", e);
                //    }

                // Закрытие книги
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
            }
            if (args[0] == "dogovor")
            {
                Excel.Application xlApp       = null;
                Excel.Workbook    xlWorkBook  = null;
                Excel.Worksheet   xlWorkSheet = null;

                xlApp = new Excel.ApplicationClass();

                // Открытие документа (книги) excel
                xlWorkBook = xlApp.Workbooks.Open("e:\\Договора.xlsx");

                // Выбирается Лист (если существует)
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                //
                try {
                    while (true)
                    {
                        using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) {
                            i++;
                            ExcelDogovor dog = new ExcelDogovor();
                            //                    Excel.Range range = xlWorkSheet.get_Range("A" + i, "P" + i);
                            //                    Excel.Range range2 = xlWorkSheet.get_Range("A1");
                            if (xlWorkSheet.get_Range("A" + i).Value2 == null)
                            {
                                break;
                            }
                            dog.staff_code = xlWorkSheet.get_Range("A" + i).Value2.ToString();
                            dog.dep_code   = xlWorkSheet.get_Range("B" + i).Value2.ToString();
                            dog.type       = xlWorkSheet.get_Range("C" + i).Value2.ToString();

                            dog.dog_id  = xlWorkSheet.get_Range("F" + i).Value2.ToString();
                            dog.dog_num = xlWorkSheet.get_Range("G" + i).Value2.ToString();
                            String str_date = xlWorkSheet.get_Range("H" + i).Value2.ToString();
                            dog.dog_date = DateTime.Parse(str_date.Substring(0, 4) + "." +
                                                          str_date.Substring(4, 2) + "." +
                                                          str_date.Substring(6, 2));
                            if (xlWorkSheet.get_Range("I" + i).Value2 != null)
                            {
                                dog.dop_id   = xlWorkSheet.get_Range("I" + i).Value2.ToString();
                                dog.dop_num  = xlWorkSheet.get_Range("J" + i).Value2.ToString();
                                str_date     = xlWorkSheet.get_Range("K" + i).Value2.ToString();
                                dog.dop_date = DateTime.Parse(str_date.Substring(0, 4) + "." +
                                                              str_date.Substring(4, 2) + "." +
                                                              str_date.Substring(6, 2));
                                //dog.dop_date = (DateTime)xlWorkSheet.get_Range("K" + i).Value2;
                            }

                            dog.customer_code = xlWorkSheet.get_Range("L" + i).Value2.ToString();
                            dog.supplier_code = xlWorkSheet.get_Range("P" + i).Value2.ToString();

                            crmCParty cust = GetParty(ses, dog.customer_code);
                            if (cust == null)
                            {
                                new KeyNotFoundException(dog.customer_code);
                            }
                            crmCParty supl = GetParty(ses, dog.supplier_code);
                            if (supl == null)
                            {
                                new KeyNotFoundException(dog.supplier_code);
                            }

                            dog.dep = GetDepartment(ses, dog.dep_code);
                            if (dog.dep == null)
                            {
                                new KeyNotFoundException(dog.dep_code);
                            }

                            dog.reg_dep = GetDepartment(ses, "00-056");
                            if (dog.reg_dep == null)
                            {
                                new KeyNotFoundException("00-056");
                            }

                            dog.reg_staff = GetStaff(ses, dog.staff_code);
                            if (dog.reg_staff == null)
                            {
                                new KeyNotFoundException(dog.staff_code);
                            }

                            crmContract     contract = GetContract(ses, dog);
                            crmContractDeal deal     = new crmDealWithStage(ses);

                            deal.State = DealStates.DEAL_FORMATION;

                            deal.CuratorDepartment     = dog.dep;
                            deal.UserRegistrator       = dog.reg_staff;
                            deal.DepartmentRegistrator = dog.reg_dep;
                            deal.Customer = cust;
                            deal.Supplier = supl;

                            contract.ContractDeals.Add(deal);
                            if (dog.type == "ДОГ")
                            {
                                deal.ContractKind     = ContractKind.CONTRACT;
                                deal.ContractDocument = contract.ContractDocument;
                            }
                            else
                            {
                                deal.ContractKind = ContractKind.ADDENDUM;
                                crmContractDocument contract_document = new crmContractDocument(ses);
                                contract_document.DocumentCategory = GetDocumentCategory(ses, "ДС");
                                contract_document.Number           = dog.dop_num;
                                contract_document.Date             = dog.dop_date;
                                deal.ContractDocument = contract_document;
                                contract.ContractDocuments.Add(contract_document);
                            }

                            System.Console.WriteLine(dog.type + ' ' + dog.dog_id + ' ' + dog.dog_num + ' ' + dog.dog_date + ' ' + dog.customer_code + ' ' + dog.supplier_code);
                            ses.CommitChanges();
                        }
                    }
                }
                catch (Exception e) {
                    if (xlWorkSheet != null)
                    {
                        releaseObject(xlWorkSheet);
                    }
                    if (xlWorkBook != null)
                    {
                        releaseObject(xlWorkBook);
                    }
                    if (xlApp != null)
                    {
                        releaseObject(xlApp);
                    }
                    xlWorkSheet = null;
                    xlWorkBook  = null;
                    xlApp       = null;
                    GC.Collect();
                    System.Console.WriteLine(e);
                    throw e;
                }

                // Закрытие книги
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
            }
            if (args[0] == "subject")
            {
                Excel.Application xlApp       = null;
                Excel.Workbook    xlWorkBook  = null;
                Excel.Worksheet   xlWorkSheet = null;

                xlApp = new Excel.ApplicationClass();

                // Открытие документа (книги) excel
                xlWorkBook = xlApp.Workbooks.Open("e:\\subject.xlsx");

                // Выбирается Лист (если существует)
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                //
                try {
                    while (true)
                    {
                        using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) {
                            i++;
                            FinanceTema ft = new FinanceTema();
                            if (xlWorkSheet.get_Range("A" + i).Value2 == null)
                            {
                                break;
                            }
                            ft.dir  = xlWorkSheet.get_Range("A" + i).Value2.ToString();
                            ft.code = xlWorkSheet.get_Range("B" + i).Value2.ToString();
                            ft.name = xlWorkSheet.get_Range("C" + i).Value2.ToString();
                            if (xlWorkSheet.get_Range("D" + i).Value2 != null)
                            {
                                ft.desc = xlWorkSheet.get_Range("D" + i).Value2.ToString();
                            }
                            else
                            {
                                ft.desc = ft.name;
                            }
                            fmCDirection  dir  = GetObject <fmCDirection>(ses, ft.dir);
                            fmCSubjectExt subj = GetObject <fmCSubjectExt>(ses, ft.code);
                            if (subj == null)
                            {
                                subj = new fmCSubjectExt(ses);
                            }
                            subj.Code        = ft.code;
                            subj.Direction   = dir;
                            subj.Name        = ft.name;
                            subj.NameFull    = ft.name;
                            subj.Description = ft.desc;
                            if (subj.Name.Length > 80)
                            {
                                subj.Name = subj.Name.Substring(0, 80);
                            }
                            subj.Save();
                            System.Console.WriteLine(ft.dir + ' ' + ft.code + ' ' + ft.name);
                            ses.CommitChanges();
                        }
                    }
                }
                catch (Exception e) {
                    if (xlWorkSheet != null)
                    {
                        releaseObject(xlWorkSheet);
                    }
                    if (xlWorkBook != null)
                    {
                        releaseObject(xlWorkBook);
                    }
                    if (xlApp != null)
                    {
                        releaseObject(xlApp);
                    }
                    xlWorkSheet = null;
                    xlWorkBook  = null;
                    xlApp       = null;
                    GC.Collect();
                    System.Console.WriteLine(e);
                    throw e;
                }

                // Закрытие книги
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
            }
            if (args[0] == "order")
            {
                Excel.Application xlApp       = null;
                Excel.Workbook    xlWorkBook  = null;
                Excel.Worksheet   xlWorkSheet = null;

                xlApp = new Excel.ApplicationClass();

                // Открытие документа (книги) excel
                xlWorkBook = xlApp.Workbooks.Open("e:\\order2.xlsx");

                // Выбирается Лист (если существует)
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
                //
                try {
                    while (true)
                    {
                        using (UnitOfWork ses = bses.BeginNestedUnitOfWork()) {
                            i++;
                            FinanceOrder fo = new FinanceOrder();
                            if (xlWorkSheet.get_Range("A" + i).Value2 == null)
                            {
                                break;
                            }
                            if (xlWorkSheet.get_Range("A" + i).Value2 is Double)
                            {
                                fo.buh_int_num = (Int32)((Double)xlWorkSheet.get_Range("A" + i).Value2);
                            }
                            if (xlWorkSheet.get_Range("B" + i).Value2 != null)
                            {
                                fo.buh_account = xlWorkSheet.get_Range("B" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.buh_account = "";
                            }
                            fo.code = xlWorkSheet.get_Range("C" + i).Value2.ToString();
                            if (xlWorkSheet.get_Range("D" + i).Value2 != null)
                            {
                                fo.is_closed = true;
                            }
                            else
                            {
                                fo.is_closed = false;
                            }
                            if (xlWorkSheet.get_Range("E" + i).Value2 != null)
                            {
                                fo.subj = xlWorkSheet.get_Range("E" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.subj = "";
                            }
                            if (xlWorkSheet.get_Range("F" + i).Value2 != null)
                            {
                                fo.name_short = xlWorkSheet.get_Range("F" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.name_short = "";
                            }
                            if (xlWorkSheet.get_Range("G" + i).Value2 != null)
                            {
                                fo.name_full = xlWorkSheet.get_Range("G" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.name_full = "";
                            }
                            if (xlWorkSheet.get_Range("H" + i).Value2 != null)
                            {
                                fo.desc = xlWorkSheet.get_Range("H" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.desc = "";
                            }
                            if (xlWorkSheet.get_Range("I" + i).Value2 != null)
                            {
                                fo.data_from = xlWorkSheet.get_Range("I" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.data_from = "";
                            }
                            if (xlWorkSheet.get_Range("J" + i).Value2 != null)
                            {
                                fo.data_to = xlWorkSheet.get_Range("J" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.data_to = "";
                            }
                            if (xlWorkSheet.get_Range("K" + i).Value2 != null)
                            {
                                fo.base_doc = xlWorkSheet.get_Range("K" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.base_doc = "";
                            }
                            if (xlWorkSheet.get_Range("L" + i).Value2 != null)
                            {
                                fo.work_type = xlWorkSheet.get_Range("L" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.work_type = "";
                            }
                            if (xlWorkSheet.get_Range("M" + i).Value2 != null)
                            {
                                fo.finans = xlWorkSheet.get_Range("M" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.finans = "";
                            }
                            if (xlWorkSheet.get_Range("N" + i).Value2 != null)
                            {
                                fo.source = xlWorkSheet.get_Range("N" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.source = "";
                            }
                            if (xlWorkSheet.get_Range("O" + i).Value2 != null)
                            {
                                fo.army = xlWorkSheet.get_Range("O" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.army = "";
                            }
                            if (xlWorkSheet.get_Range("P" + i).Value2 != null)
                            {
                                fo.nds_mode = xlWorkSheet.get_Range("P" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.nds_mode = "";
                            }
                            if (xlWorkSheet.get_Range("Q" + i).Value2 != null)
                            {
                                fo.acc_mode = xlWorkSheet.get_Range("Q" + i).Value2.ToString();
                            }
                            else
                            {
                                fo.acc_mode = "";
                            }
                            if (xlWorkSheet.get_Range("R" + i).Value2 != null)
                            {
                                if (xlWorkSheet.get_Range("R" + i).Value2 is Double)
                                {
                                    fo.koeff_ozm = (Decimal)((Double)xlWorkSheet.get_Range("R" + i).Value2);
                                }
                            }
                            if (xlWorkSheet.get_Range("S" + i).Value2 != null)
                            {
                                if (xlWorkSheet.get_Range("S" + i).Value2 is Double)
                                {
                                    fo.koeff_kb = (Decimal)((Double)xlWorkSheet.get_Range("S" + i).Value2);
                                }
                            }
                            fmCSubjectExt subj = GetObject <fmCSubjectExt>(ses, fo.subj);
                            fmCOrderExt   ord  = GetObject <fmCOrderExt>(ses, fo.code);
                            if (ord == null)
                            {
                                ord        = new fmCOrderExt(ses);
                                ord.Status = fmIOrderStatus.Loaded;
                            }
                            ord.Code        = fo.code;
                            ord.Subject     = subj;
                            ord.IsClosed    = fo.is_closed;
                            ord.Name        = fo.name_short;
                            ord.NameFull    = fo.name_full;
                            ord.Description = fo.desc;
                            if (!String.IsNullOrEmpty(fo.data_from))
                            {
                                ord.DateBegin = new DateTime(Int32.Parse(fo.data_from.Substring(0, 4)),
                                                             Int32.Parse(fo.data_from.Substring(4, 2)),
                                                             Int32.Parse(fo.data_from.Substring(6, 2)));
                            }
                            if (!String.IsNullOrEmpty(fo.data_to))
                            {
                                ord.DateEnd = new DateTime(Int32.Parse(fo.data_to.Substring(0, 4)),
                                                           Int32.Parse(fo.data_to.Substring(4, 2)),
                                                           Int32.Parse(fo.data_to.Substring(6, 2)));
                            }
                            if (!String.IsNullOrEmpty(fo.acc_mode))
                            {
                                ord.AnalitycAccouterType = GetObject <fmСOrderAnalitycAccouterType>(ses, fo.acc_mode);
                            }
                            if (!String.IsNullOrEmpty(fo.nds_mode))
                            {
                                ord.AnalitycAVT = GetObject <fmСOrderAnalitycAVT>(ses, fo.nds_mode);
                            }
                            ord.BuhAccount  = fo.buh_account;
                            ord.BuhIntNum   = fo.buh_int_num;
                            ord.KoeffKB     = fo.koeff_kb;
                            ord.KoeffOZM    = fo.koeff_ozm;
                            ord.SourceOther = fo.base_doc;
                            //                                ord.
                            if (!String.IsNullOrEmpty(fo.work_type))
                            {
                                ord.AnalitycWorkType = GetObject <fmСOrderAnalitycWorkType>(ses, fo.work_type);
                            }
                            if (!String.IsNullOrEmpty(fo.acc_mode))
                            {
                                ord.AnalitycFinanceSource = GetObject <fmСOrderAnalitycFinanceSource>(ses, fo.finans);
                            }
                            if (!String.IsNullOrEmpty(fo.acc_mode))
                            {
                                ord.AnalitycOrderSource = GetObject <fmСOrderAnalitycOrderSource>(ses, fo.source);
                            }
                            if (!String.IsNullOrEmpty(fo.acc_mode))
                            {
                                ord.AnalitycMilitary = GetObject <fmСOrderAnalitycMilitary>(ses, fo.army);
                            }
                            System.Console.WriteLine(fo.subj + ' ' + fo.code + ' ' + fo.name_short);
                            ses.CommitChanges();
                        }
                    }
                }
                catch (Exception e) {
                    if (xlWorkSheet != null)
                    {
                        releaseObject(xlWorkSheet);
                    }
                    if (xlWorkBook != null)
                    {
                        releaseObject(xlWorkBook);
                    }
                    if (xlApp != null)
                    {
                        releaseObject(xlApp);
                    }
                    xlWorkSheet = null;
                    xlWorkBook  = null;
                    xlApp       = null;
                    GC.Collect();
                    System.Console.WriteLine(e);
                    throw e;
                }
                // Закрытие книги
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
            }
        }
        protected void FillDatabaseForAnalysis(Session ssn)
        {
            IObjectSpace objectSpace = new ObjectSpace((UnitOfWork)ssn);

            int  RecordCountGenerated = 10000; // Максимальное количество генерируемых записей в журнале регистрации crmCashFlowRegister
            Guid token = Guid.NewGuid();

            // Делаем три валюты
            IList <csValuta> valutaList = new List <csValuta>();

            csValuta valutaRUR = objectSpace.CreateObject <csValuta>();

            valutaRUR.Code      = "RUR";
            valutaRUR.NameShort = "Руб.";
            valutaRUR.NameFull  = "Рубль";
            valutaList.Add(valutaRUR);

            csValuta valutaUSD = objectSpace.CreateObject <csValuta>();

            valutaUSD.Code      = "USD";
            valutaUSD.NameShort = "bak";
            valutaUSD.NameFull  = "Dollar";
            valutaList.Add(valutaUSD);

            csValuta valutaEUR = objectSpace.CreateObject <csValuta>();

            valutaEUR.Code      = "EUR";
            valutaEUR.NameShort = "euro";
            valutaEUR.NameFull  = "Euro";
            valutaList.Add(valutaEUR);

            objectSpace.CommitChanges();


            //// Создаём maxContractDocumentCount документов
            //int maxContractDocumentCount = 300;
            //IList<fmSubject> ContractDocumentList = new List<fmSubject>();

            //for (int i = 0; i < maxContractDocumentCount; i++) {
            //    fmSubject сontractDocument = objectSpace.CreateObject<fmSubject>();
            //    сontractDocument.Code = "S" + i.ToString();
            //    сontractDocument.Name = "Subj" + i.ToString();
            //    сontractDocument.DateBegin = DateTime.Now;
            //    сontractDocument.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30));
            //    ContractDocumentList.Add(subject);
            //}

            //objectSpace.CommitChanges();


            // Создаём maxSubjectCount тем
            int maxSubjectCount = 120;
            IList <fmCSubjectExt> subjectList = new List <fmCSubjectExt>();

            for (int i = 0; i < maxSubjectCount; i++)
            {
                fmCSubjectExt subject = objectSpace.CreateObject <fmCSubjectExt>();
                subject.Code      = "S" + i.ToString();
                subject.Name      = "Subj" + i.ToString();
                subject.DateBegin = DateTime.Now;
                subject.DateEnd   = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30));
                subjectList.Add(subject);
            }

            objectSpace.CommitChanges();

            // Создаём maxCostItemCount
            int maxCostItemCount            = 10;
            IList <fmCostItem> costItemList = new List <fmCostItem>();

            for (int i = 0; i < maxCostItemCount; i++)
            {
                fmCostItem costItem = objectSpace.CreateObject <fmCostItem>();
                costItem.Code = "CI" + i.ToString();
                costItem.Name = "CostItem" + i.ToString();
                costItemList.Add(costItem);
            }

            objectSpace.CommitChanges();


            // Заготавливаем maxCostModelCount
            int maxCostModelCount = 5;
            IList <crmCostModel> CostModelList = new List <crmCostModel>();

            for (int i = 0; i < maxCostModelCount; i++)
            {
                crmCostModel costModel = objectSpace.CreateObject <crmCostModel>();

                costModel.Code        = "CM: " + i.ToString();
                costModel.Description = "CostModel: " + i.ToString();
                costModel.Name        = "CostModel " + i.ToString();

                CostModelList.Add(costModel);

                //objectSpace.CommitChanges();
            }

            objectSpace.CommitChanges();

            /*
             * // Заготавливаем maxContragentPartyRuCount штук контрагентов
             * int maxContragentPartyRuCount = 120;
             * IList<crmPartyRu> ContragentPartyRuList = new List<crmPartyRu>();
             *
             * for (int i = 0; i < maxContragentPartyRuCount; i++) {
             *  crmPartyRu partyRu = objectSpace.CreateObject<crmPartyRu>();
             *
             *  partyRu.Code = "cF";
             *  partyRu.Description = "ContragentParty " + i.ToString();
             *
             *  //crmPhysicalPerson person = objectSpace.CreateObject<crmPhysicalPerson>();
             *  //person.INN = "CP INN" + i;
             *  //person.FirstName = "Гадя " + i;
             *  //person.MiddleName = "Петрович " + i;
             *  //person.MiddleName = "Хренова " + i;
             *
             *  crmCPerson person = objectSpace.CreateObject<crmCPerson>();
             *  person.INN = "CP INN" + i;
             *  //person.FirstName = "Гадя " + i;
             *  //person.MiddleName = "Петрович " + i;
             *  //person.MiddleName = "Хренова " + i;
             *
             *  partyRu.Person = person;
             *  person.Partys.Add(partyRu);
             *
             *  ContragentPartyRuList.Add(partyRu);
             *
             *  //objectSpace.CommitChanges();
             * }
             *
             * objectSpace.CommitChanges();
             */


            // Заготавливаем maxContragentcLegalPersonCount штук контрагентов
            int maxCLegalPersonCount = 120;
            IList <crmCLegalPerson> CLegalPersonList = new List <crmCLegalPerson>();

            for (int i = 0; i < maxCLegalPersonCount; i++)
            {
                crmCLegalPerson cLegalPerson = objectSpace.CreateObject <crmCLegalPerson>();
                cLegalPerson.Name        = "ИнтекоАГ" + i;
                cLegalPerson.NameFull    = "ИнтекоАГ" + i;
                cLegalPerson.INN         = "ИНН 1111111111";
                cLegalPerson.Code        = "LP" + i;
                cLegalPerson.Description = "LegalPerson Description" + i;
                cLegalPerson.KPP         = "КПП 222222222";
                cLegalPerson.RegCode     = "RC";
                //cLegalPerson.Person.Address = address;
                //cLegalPerson.Party.AddressFact = address;
                //cLegalPerson.Party.AddressPost = address;
                cLegalPerson.Party.Person = cLegalPerson.Person;

                CLegalPersonList.Add(cLegalPerson);
            }

            objectSpace.CommitChanges();

            // Заготавливаем maxContractPartyCount штук участников договоров
            int maxContractPartyCount = 50;
            IList <crmContractParty> ContractPartyList = new List <crmContractParty>();

            for (int i = 0; i < maxContractPartyCount; i++)
            {
                crmContractParty contractParty = objectSpace.CreateObject <crmContractParty>();

                contractParty.INN       = "INN: " + i.ToString();
                contractParty.KPP       = "KPP: " + i.ToString();
                contractParty.Name      = "ContractParty " + i.ToString();
                contractParty.Party     = CLegalPersonList[GetRandomIntegerFromInterval(1, CLegalPersonList.Count) - 1].Party;
                contractParty.RegNumber = "RegNumber " + i.ToString();

                ContractPartyList.Add(contractParty);

                //objectSpace.CommitChanges();
            }

            objectSpace.CommitChanges();

            // SHU 2011-12-26 Order не вводится, т.к. имеет срабатывает правило Validation Required для какого-то поля
            // Заготавливаем maxOrderCount штук заказов
            int maxOrderCount             = 30;
            IList <fmCOrderExt> OrderList = new List <fmCOrderExt>();

            for (int i = 0; i < maxOrderCount; i++)
            {
                fmCOrderExt order = objectSpace.CreateObject <fmCOrderExt>();

                //order.Code = "Ord: " + i.ToString();
                order.Description = "Order: " + i.ToString();
                //order.Name = "Order " + i.ToString();
                //order.DateBegin = DateTime.Now;
                //order.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30));
                order.Subject = subjectList[GetRandomIntegerFromInterval(1, subjectList.Count) - 1];

                OrderList.Add(order);

                //objectSpace.CommitChanges();
            }

            objectSpace.CommitChanges();

            // Заготавливаем maxNDSRateCount штук формул расчёта НДС
            int maxNDSRateCount           = 1;
            IList <csNDSRate> NDSRateList = new List <csNDSRate>();

            for (int i = 0; i < maxNDSRateCount; i++)
            {
                csNDSRate ndsRate = objectSpace.CreateObject <csNDSRate>();

                ndsRate.Code        = "20/120"; // + i.ToString();
                ndsRate.Numerator   = 20;       // + i.ToString();
                ndsRate.Denominator = 120;      // + i.ToString();
                ndsRate.Name        = "20/120";
                //ndsRate.RateOfNDS = 120/100;

                NDSRateList.Add(ndsRate);

                //objectSpace.CommitChanges();
            }

            objectSpace.CommitChanges();


            // Создаём maxStageCount этапов
            int maxStageCount          = 20;
            IList <crmStage> stageList = new List <crmStage>();

            for (int i = 0; i < maxStageCount; i++)
            {
                crmDeliveryPlan deliveryPlan = objectSpace.CreateObject <crmDeliveryPlan>();
                deliveryPlan.DateBegin      = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 5));
                deliveryPlan.DateEnd        = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 15));
                deliveryPlan.CostItem       = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                deliveryPlan.CostModel      = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1];
                deliveryPlan.DeliveryMethod = DeliveryMethod.UNIT_AT_THE_END;
                deliveryPlan.NDSRate        = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1];
                deliveryPlan.Valuta         = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];

                crmPaymentPlan paymentPlan = objectSpace.CreateObject <crmPaymentPlan>();
                paymentPlan.DateBegin = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 5));
                paymentPlan.DateEnd   = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 15));
                paymentPlan.CostItem  = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                paymentPlan.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1];
                paymentPlan.NDSRate   = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1];
                paymentPlan.Valuta    = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];

                crmStage stage = objectSpace.CreateObject <crmStage>();
                deliveryPlan.Stage = stage;
                stage.Code         = "S" + i.ToString();
                //stage.DeliveryDate = null; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 20));
                ////stage.CurrentCost = "Stg" + i.ToString();
                ////stage.CurrentPayment = "Stg" + i.ToString();
                //stage.Customer = null; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                ////stage.DeliveryItem = "Stg" + i.ToString();
                ////stage.DeliveryItems = "Stg" + i.ToString();
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.DeliveryMethod = DeliveryMethod.UNIT_AT_THE_END;
                ////stage.DeliveryUnits = "Stg" + i.ToString();
                stage.DescriptionLong  = "Stage" + i.ToString();
                stage.DescriptionShort = "Stg" + i.ToString();
                //stage.FullCode = "Stg" + i.ToString();
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1];
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.PaymentMethod = PaymentMethod.ADVANCE;
                stage.DeliveryPlan = deliveryPlan; // ДОРАБОТАТЬ!!! "Stg" + i.ToString();
                stage.PaymentPlan  = paymentPlan;  // ДОРАБОТАТЬ!!! "Stg" + i.ToString();
                stage.CostItem     = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                stage.CostModel    = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1];

                //stage.PaymentUnits = "Stg" + i.ToString();
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.PaymentValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                //stage.Settlement = "Stg" + i.ToString();
                stage.SettlementDate = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 50));
                stage.StageStructure = null;  // ДОРАБОТАТЬ!!! "Stg" + i.ToString();
                //stage.StageMain = "Stg" + i.ToString();
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.StageType = StageType.FINANCE;
                //stage.Supplier = null; // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];

                stage.DateFinish = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 40));
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.DateBegin = DateTime.Now;
                // ОТВАЛИВАЕТСЯ, ПОКА НЕТ ВРЕМЕНИ РАЗБИРАТЬСЯ !!! stage.DateEnd = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30));

                stageList.Add(stage);
            }

            objectSpace.CommitChanges();

            // Создаём maxContractCategoryCount Категорий контрактов
            int maxContractCategoryCount = 10;
            IList <crmContractCategory> сontractCategoryList = new List <crmContractCategory>();

            for (int i = 0; i < maxContractCategoryCount; i++)
            {
                crmContractCategory contractCategory = objectSpace.CreateObject <crmContractCategory>();
                contractCategory.Code = "CC" + i.ToString();
                contractCategory.Name = "ContractCategory " + i.ToString();
                сontractCategoryList.Add(contractCategory);
            }

            objectSpace.CommitChanges();

            // Создаём maxDepartmentCount подразделений
            int maxDepartmentCount = 20;
            IList <hrmDepartment> departmentList = new List <hrmDepartment>();

            for (int i = 0; i < maxDepartmentCount; i++)
            {
                hrmDepartment department = objectSpace.CreateObject <hrmDepartment>();
                department.Code = "Dep" + i.ToString();
                department.Name = "Department " + i.ToString();
                departmentList.Add(department);
            }

            objectSpace.CommitChanges();

            // Создаём maxStaffCount сотрудников
            int maxStaffCount = 30;
            IList <hrmStaff>          staffList          = new List <hrmStaff>();
            IList <crmPhysicalPerson> physicalPersonList = new List <crmPhysicalPerson>();

            for (int i = 0; i < maxStaffCount; i++)
            {
                crmPhysicalPerson physicalPerson = objectSpace.CreateObject <crmPhysicalPerson>();
                physicalPerson.FirstName  = "Иван " + i.ToString();
                physicalPerson.MiddleName = "Иванович " + i.ToString();
                physicalPerson.LastName   = "Иванов " + i.ToString();
                physicalPerson.INN        = "ИНН " + i.ToString();

                hrmStaff staff = objectSpace.CreateObject <hrmStaff>();
                staff.PhysicalPerson = physicalPerson;
                staff.Department     = departmentList[GetRandomIntegerFromInterval(1, departmentList.Count) - 1];
                staffList.Add(staff);
            }

            // Создаём maxDocumentCategoryCount видов категорий документов
            int maxDocumentCategoryCount = 10;
            IList <crmContractDocumentType> contractDocumentTypeList = new List <crmContractDocumentType>();

            for (int i = 0; i < maxDocumentCategoryCount; i++)
            {
                crmContractDocumentType contractDocumentType = objectSpace.CreateObject <crmContractDocumentType>();
                contractDocumentType.Code = "CD " + i.ToString();
                contractDocumentType.Name = "Contract Document Type " + i.ToString();
                contractDocumentTypeList.Add(contractDocumentType);
            }

            objectSpace.CommitChanges();

            // Создаём maxPaymentItemCount
            int maxPaymentItemCount = 10;
            IList <crmPaymentMoney> paymentItemList = new List <crmPaymentMoney>();

            for (int i = 0; i < maxPaymentItemCount; i++)
            {
                crmPaymentMoney paymentItem = objectSpace.CreateObject <crmPaymentMoney>();
                paymentItem.AccountSumma  = GetRandomIntegerFromInterval(1, 100);
                paymentItem.AccountValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                //paymentItem.CostItem;
                //paymentItem.CostModel;
                //paymentItem.CurrentCost;
                paymentItem.Date        = DateTime.Now;
                paymentItem.Description = "PaymentItem " + i.ToString();
                paymentItemList.Add(paymentItem);
            }

            objectSpace.CommitChanges();


            // Создаём maxObligationUnitCount обязательств
            int maxObligationUnitCount = 20;
            IList <crmObligationUnit> obligationUnitList = new List <crmObligationUnit>();

            for (int i = 0; i < maxObligationUnitCount; i++)
            {
                crmPaymentUnit obligationUnit = objectSpace.CreateObject <crmPaymentUnit>();
                obligationUnit.Code      = "PU" + i.ToString();
                obligationUnit.Name      = "PaymentUnit" + i.ToString();
                obligationUnit.CostItem  = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                obligationUnit.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1];
                ////obligationUnit.Creditor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                //obligationUnit.CurrentCost = "Subj" + i.ToString();
                ////obligationUnit.Debitor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                obligationUnit.NDSRate  = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1];
                obligationUnit.Order    = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1];
                obligationUnit.Receiver = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                obligationUnit.Sender   = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                ////obligationUnit.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1];
                ////obligationUnit.SummCost = GetRandomIntegerFromInterval(1, 100);
                ////obligationUnit.SummNDS = GetRandomIntegerFromInterval(1, 100);
                obligationUnit.SummFull  = GetRandomIntegerFromInterval(1, 100);
                obligationUnit.Valuta    = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                obligationUnit.DatePlane = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 40));
                obligationUnit.DateBegin = DateTime.Now;
                obligationUnit.DateEnd   = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30));

                obligationUnitList.Add(obligationUnit);
            }

            objectSpace.CommitChanges();

            //const int maxObligationUnitCount = 30;
            //IList<crmObligationUnit> obligationUnitList = new List<crmObligationUnit>();

            for (int i = 0; i < maxObligationUnitCount; i++)
            {
                crmDeliveryUnit obligationUnit = objectSpace.CreateObject <crmDeliveryUnit>();
                obligationUnit.Code      = "DU" + i.ToString();
                obligationUnit.Name      = "DeliveryUnit" + i.ToString();
                obligationUnit.CostItem  = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                obligationUnit.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1];
                ////obligationUnit.Creditor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                //obligationUnit.CurrentCost = "Subj" + i.ToString();
                ////obligationUnit.Debitor = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                obligationUnit.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1];
                if (OrderList.Count > 0)
                {
                    obligationUnit.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1];
                }
                obligationUnit.Receiver = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                obligationUnit.Sender   = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1];
                ////obligationUnit.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1];
                ////obligationUnit.SummCost = GetRandomIntegerFromInterval(1, 100);
                ////obligationUnit.SummNDS = GetRandomIntegerFromInterval(1, 100);
                obligationUnit.SummFull  = GetRandomIntegerFromInterval(1, 100);
                obligationUnit.Valuta    = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                obligationUnit.DatePlane = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 40));
                obligationUnit.DateBegin = DateTime.Now;
                obligationUnit.DateEnd   = DateTime.Now.AddDays(GetRandomIntegerFromInterval(1, 30));

                obligationUnitList.Add(obligationUnit);
            }

            objectSpace.CommitChanges();

            /*
             * // Заготавливаем maxPrimaryPartyRuCount штук первичных участников договоров
             * int maxPrimaryPartyRuCount = 7;
             * IList<crmPartyRu> primaryPartyRuList = new List<crmPartyRu>();
             *
             * for (int i = 0; i < maxPrimaryPartyRuCount; i++) {
             *  crmPartyRu partyRu = objectSpace.CreateObject<crmPartyRu>();
             *
             *  partyRu.Code = "pF";
             *  partyRu.Description = "PrimaryParty " + i.ToString();
             *
             *  //crmPhysicalPerson person = objectSpace.CreateObject<crmPhysicalPerson>();
             *  //person.INN = "PP INN" + i;
             *  //person.FirstName = "Ганс " + i;
             *  //person.MiddleName = "Христиан " + i;
             *  //person.MiddleName = "Андерсен " + i;
             *
             *  crmCPerson person = objectSpace.CreateObject<crmCPerson>();
             *  person.INN = "PP INN" + i;
             *  //person.FirstName = "Ганс " + i;
             *  //person.MiddleName = "Христиан " + i;
             *  //person.MiddleName = "Андерсен " + i;
             *
             *  partyRu.Person = person;
             *  person.Partys.Add(partyRu);
             *
             *  primaryPartyRuList.Add(partyRu);
             * }
             *
             * objectSpace.CommitChanges();
             */


            // Заготавливаем maxContragentcLegalPersonCount штук контрагентов
            int maxPrimaryCLegalPersonCount = 120;
            IList <crmCLegalPerson> PrimaryCLegalPersonList = new List <crmCLegalPerson>();

            for (int i = 0; i < maxPrimaryCLegalPersonCount; i++)
            {
                crmCLegalPerson cLegalPerson = objectSpace.CreateObject <crmCLegalPerson>();
                cLegalPerson.Name        = "Кремль" + i;
                cLegalPerson.NameFull    = "Кремль" + i;
                cLegalPerson.INN         = "ИНН ААААААААА";
                cLegalPerson.Code        = "LPK" + i;
                cLegalPerson.Description = "LegalPerson Кремль Description" + i;
                cLegalPerson.KPP         = "КПП ББББББББ";
                cLegalPerson.RegCode     = "RCK";
                //cLegalPerson.Person.Address = address;
                //cLegalPerson.Party.AddressFact = address;
                //cLegalPerson.Party.AddressPost = address;
                cLegalPerson.Party.Person = cLegalPerson.Person;

                PrimaryCLegalPersonList.Add(cLegalPerson);
            }

            objectSpace.CommitChanges();


            // Создаём maxContractCount контрактов
            int maxContractCount             = 300;
            IList <crmContract> contractList = new List <crmContract>();

            for (int i = 0; i < maxContractCount; i++)
            {
                crmContractDocument contractDocument = objectSpace.CreateObject <crmContractDocument>();
                contractDocument.Date             = DateTime.Now;
                contractDocument.DocumentCategory = contractDocumentTypeList[GetRandomIntegerFromInterval(1, contractDocumentTypeList.Count) - 1];
                contractDocument.Number           = "Doc № " + i.ToString();


                crmContractDeal contractDeal = objectSpace.CreateObject <crmContractDeal>();
                contractDeal.Category          = сontractCategoryList[GetRandomIntegerFromInterval(1, сontractCategoryList.Count) - 1];
                contractDeal.ContractKind      = ContractKind.CONTRACT;
                contractDeal.CuratorDepartment = departmentList[GetRandomIntegerFromInterval(1, departmentList.Count) - 1];
                //contractDeal.Customer = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party;
                contractDeal.DateRegistration = DateTime.Now;
                //contractDeal.Supplier = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party;
                contractDeal.UserRegistrator       = staffList[GetRandomIntegerFromInterval(1, staffList.Count) - 1];
                contractDeal.DepartmentRegistrator = contractDeal.UserRegistrator.Department;

                //contractDeal.Customer = ContragentPartyRuList[GetRandomIntegerFromInterval(1, ContragentPartyRuList.Count) - 1];
                //contractDeal.DealVersions
                //contractDeal.Project = ;
                //contractDeal.State
                //contractDeal.Supplier = ContragentPartyRuList[GetRandomIntegerFromInterval(1, ContragentPartyRuList.Count) - 1];


                //---
                crmDealVersion dealVersion = objectSpace.CreateObject <crmDealVersion>();
                //dealVersion.Category = сontractCategoryList[GetRandomIntegerFromInterval(1, сontractCategoryList.Count) - 1];
                //dealVersion.ContractDeal = contractDeal;
                //dealVersion.ContractDocument = contractDocument;
                //dealVersion.ContractDocuments.Add(contractDocument);
                //dealVersion.Customer = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party;
                dealVersion.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                //dealVersion.Supplier = ContractPartyList[GetRandomIntegerFromInterval(1, ContractPartyList.Count) - 1].Party;
                dealVersion.CostModel = CostModelList[GetRandomIntegerFromInterval(1, CostModelList.Count) - 1];
                //dealVersion.Curator = contractDeal.CuratorDepartment;
                dealVersion.DateBegin  = DateTime.Now;
                dealVersion.DateEnd    = DateTime.Now.AddDays(10);
                dealVersion.DateFinish = DateTime.Now.AddDays(20);
                dealVersion.DealCode   = "DC " + i.ToString();
                //dealVersion.DealDocument = contractDocument;
                //dealVersion.DealNomenclatures.Add(
                if (dealVersion != null)
                {
                    dealVersion.DescriptionLong  = "Полное описание для " + dealVersion.DealCode;
                    dealVersion.DescriptionShort = "Краткое описание для " + dealVersion.DealCode;
                }
                dealVersion.NDSRate = NDSRateList[GetRandomIntegerFromInterval(1, NDSRateList.Count) - 1];
                if (OrderList.Count > 0)
                {
                    dealVersion.Order = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1];
                }
                dealVersion.PaymentValuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                //dealVersion.Registrator = contractDeal.DepartmentRegistrator;
                dealVersion.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                //dealVersion.StageStructure
                //---


                contractDeal.Current = dealVersion;
                contractDeal.DealVersions.Add(dealVersion);

                crmContract contract = objectSpace.CreateObject <crmContract>();
                contract.ContractCategory = сontractCategoryList[GetRandomIntegerFromInterval(1, сontractCategoryList.Count) - 1];

                contractDeal.Contract         = contract;
                contractDeal.ContractDocument = contractDocument;
                contractDeal.ContractDocuments.Add(contractDocument);
                contractDocument.Contract = contract;
                contract.ContractDeals.Add(contractDeal);
                contract.ContractDocuments.Add(contractDocument);

                //contract.ContractDocument = DateTime.Now;
                //contract.Delo = "Delo " + i.ToString();
                contract.Description           = "Описание документа " + i.ToString();
                contract.UserRegistrator       = contractDeal.UserRegistrator;
                contract.DepartmentRegistrator = contract.UserRegistrator.Department;
                contractList.Add(contract);

                //this.ObjectSpace.CommitChanges();
                if ((i % 100) == 0)
                {
                    objectSpace.CommitChanges();
                }
            }

            objectSpace.CommitChanges();



            // Создаём записи регистра crmDebtorCreditorDebtRegister
            for (int i = 0; i < RecordCountGenerated; i++)
            {
                //try {
                // crmDebtorCreditorDebtRegister
                crmDebtorCreditorDebtRegister debtorCreditorDebtRegister = objectSpace.CreateObject <crmDebtorCreditorDebtRegister>();

                debtorCreditorDebtRegister.Token = token;

                debtorCreditorDebtRegister.ContragentParty = CLegalPersonList[GetRandomIntegerFromInterval(1, CLegalPersonList.Count) - 1].Party;
                debtorCreditorDebtRegister.PrimaryParty    = PrimaryCLegalPersonList[GetRandomIntegerFromInterval(1, PrimaryCLegalPersonList.Count) - 1].Party;

                debtorCreditorDebtRegister.Contract     = contractList[GetRandomIntegerFromInterval(1, contractList.Count) - 1];
                debtorCreditorDebtRegister.ContractDeal = debtorCreditorDebtRegister.Contract.ContractDeals[0];

                debtorCreditorDebtRegister.CreditValuta    = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                debtorCreditorDebtRegister.CreditCost      = GetRandomIntegerFromInterval(1, 100);
                debtorCreditorDebtRegister.CreditCostInRUR = GetRandomIntegerFromInterval(1, 100);

                debtorCreditorDebtRegister.DebitValuta    = debtorCreditorDebtRegister.CreditValuta;
                debtorCreditorDebtRegister.DebitCost      = GetRandomIntegerFromInterval(1, 100);
                debtorCreditorDebtRegister.DebitCostInRUR = GetRandomIntegerFromInterval(1, 100);

                debtorCreditorDebtRegister.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                if (OrderList.Count > 0)
                {
                    debtorCreditorDebtRegister.fmOrder = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1];
                }
                debtorCreditorDebtRegister.ObligationUnit         = obligationUnitList[GetRandomIntegerFromInterval(1, obligationUnitList.Count) - 1];
                debtorCreditorDebtRegister.ObligationUnitDateTime = DateTime.Now;
                debtorCreditorDebtRegister.PlaneFact = ((i % 2) == 0) ? PlaneFact.PLAN : PlaneFact.FACT;
                debtorCreditorDebtRegister.Stage     = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1];
                //debtorCreditorDebtRegister.StageTech = ;
                if (subjectList.Count > 0)
                {
                    debtorCreditorDebtRegister.Subject = subjectList[GetRandomIntegerFromInterval(1, subjectList.Count) - 1];
                }

                //cashFlowRegister.Save();
                //objectSpace.CommitChanges();
                //} catch {
                //}
                if ((i % 1000) == 0)
                {
                    objectSpace.CommitChanges();
                }
            }

            objectSpace.CommitChanges();


            // Создаём записи регистра crmCashFlowRegister
            for (int i = 0; i < RecordCountGenerated; i++)
            {
                //try {
                // crmCashFlowRegister
                crmCashFlowRegister cashFlowRegister = objectSpace.CreateObject <crmCashFlowRegister>();

                cashFlowRegister.Token = token;

                cashFlowRegister.ContragentParty = CLegalPersonList[GetRandomIntegerFromInterval(1, CLegalPersonList.Count) - 1].Party;
                cashFlowRegister.PrimaryParty    = PrimaryCLegalPersonList[GetRandomIntegerFromInterval(1, PrimaryCLegalPersonList.Count) - 1].Party;

                cashFlowRegister.Contract     = contractList[GetRandomIntegerFromInterval(1, contractList.Count) - 1];
                cashFlowRegister.ContractDeal = cashFlowRegister.Contract.ContractDeals[0];       //cashFlowRegister.Contract.ContractDeals[0];
                cashFlowRegister.Cost         = GetRandomIntegerFromInterval(1, 100);
                //cashFlowRegister.CostInRUR = GetRandomIntegerFromInterval(1, 100);
                cashFlowRegister.SumIn    = GetRandomIntegerFromInterval(1, 100);
                cashFlowRegister.CostItem = costItemList[GetRandomIntegerFromInterval(1, costItemList.Count) - 1];
                if (OrderList.Count > 0)
                {
                    cashFlowRegister.fmOrder = OrderList[GetRandomIntegerFromInterval(1, OrderList.Count) - 1];
                }
                if (obligationUnitList.Count > 0)
                {
                    cashFlowRegister.ObligationUnit = obligationUnitList[GetRandomIntegerFromInterval(1, obligationUnitList.Count) - 1];
                }
                cashFlowRegister.ObligationUnitDateTime = DateTime.Now;
                cashFlowRegister.PaymentCost            = GetRandomIntegerFromInterval(1, 100);
                cashFlowRegister.PaymentItem            = paymentItemList[GetRandomIntegerFromInterval(1, paymentItemList.Count) - 1];
                cashFlowRegister.PaymentValuta          = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];
                //cashFlowRegister.PlaneFact = ((i % 2) == 0) ? PlaneFact.PLAN : PlaneFact.FACT;
                cashFlowRegister.Section = CashFlowRegisterSection.CONTRACT_PLAN;       // Исправить на нормальное назначение
                //cashFlowRegister.Stage = stageList[GetRandomIntegerFromInterval(1, stageList.Count) - 1];
                //cashFlowRegister.StageTech = ;
                if (subjectList.Count > 0)
                {
                    cashFlowRegister.Subject = subjectList[GetRandomIntegerFromInterval(1, subjectList.Count) - 1];
                }
                cashFlowRegister.Valuta = valutaList[GetRandomIntegerFromInterval(1, valutaList.Count) - 1];

                //cashFlowRegister.FinancialDeal


                //cashFlowRegister.Save();
                //objectSpace.CommitChanges();
                //} catch {
                //}
                if ((i % 1000) == 0)
                {
                    objectSpace.CommitChanges();
                }
            }

            objectSpace.CommitChanges();
        }
Exemple #15
0
        public void CreateAllReferencesOnlyTest([Values("", "0", "1", "2", "3", "4")]  string modificator)
        {
            //Session ssn = session1;
            UnitOfWork ssn = new UnitOfWork(Common.dataLayer);

            crmContractCategory contractCategory = Prepare_crmContractCategory(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(contractCategory, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            crmCostModel costModel = Prepare_crmCostModel(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(costModel, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csCountry country = Prepare_csCountry(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(country, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csUnit unit = Prepare_csUnit(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(unit, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csNomenclatureType nomenclatureType = Prepare_csNomenclatureType(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(nomenclatureType, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            fmCostItem costItem = Prepare_fmCostItem(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(costItem, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csMaterial material = Prepare_csMaterial(ssn, modificator, nomenclatureType, unit, costItem);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(material, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csService service = Prepare_csService(ssn, modificator, nomenclatureType, unit, costItem);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(service, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csValuta valuta = Prepare_csValuta(ssn, modificator, nomenclatureType, unit, costItem);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(valuta, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            csAddress address = Prepare_csAddress(ssn, modificator, country);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(address, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            crmPhysicalPerson physicalPersonRu = Prepare_crmPhysicalPerson(ssn, modificator, address);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(physicalPersonRu, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            crmCBusinessman businessmanRu = Prepare_crmBusinessmanRu(ssn, modificator, physicalPersonRu, address);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(businessmanRu, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            crmCLegalPerson legalPersonRussianRu = Prepare_crmCLegalPerson(ssn, modificator, address);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(legalPersonRussianRu, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            //crmPartyRu partyRu = Prepare_crmPartyRu(ssn, modificator, address, legalPersonRussianRu);
            //if (Common.CheckValidationRule) {
            //    ruleResult = ruleSet.ValidateTarget(partyRu, DefaultContexts.Save);
            //    Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            //}

            fmCSubject subject = Prepare_fmSubject(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(subject, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            hrmDepartment department = Prepare_hrmDepartment(ssn, modificator);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(department, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            hrmStaff staff = Prepare_hrmStaff(ssn, modificator, physicalPersonRu, department);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(staff, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            crmUserParty userParty = Prepare_crmUserParty(ssn, modificator, legalPersonRussianRu.Party);

            if (Common.CheckValidationRule)
            {
                ruleResult = ruleSet.ValidateTarget(userParty, DefaultContexts.Save);
                Assert.AreEqual(ValidationState.Valid, ruleResult.State);
            }

            ssn.CommitChanges();
        }