public void SimpleDocumentSave()
        {
            var entity = new ПоступлениеТоваровУслуг
            {
                Комментарий = "Тестовое наименование"
            };

            dataContext.Save(entity);
            var values = dataContext.Select <ПоступлениеТоваровУслуг>().ToArray();

            Assert.That(values.Length, Is.EqualTo(1));
            Assert.That(values[0].Номер, Is.Not.Null);
            Assert.That(values[0].Комментарий, Is.EqualTo("Тестовое наименование"));

            values[0].Комментарий = "changed";
            Assert.That(values[0].Комментарий, Is.EqualTo("changed"));
            Assert.That(entity.Комментарий, Is.EqualTo("Тестовое наименование"));
            Assert.That(dataContext.Single <ПоступлениеТоваровУслуг>().Комментарий,
                        Is.EqualTo("Тестовое наименование"));

            dataContext.Save(values[0]);
            Assert.That(values[0].Комментарий, Is.EqualTo("changed"));
            Assert.That(entity.Комментарий, Is.EqualTo("Тестовое наименование"));
            Assert.That(dataContext.Single <ПоступлениеТоваровУслуг>().Комментарий,
                        Is.EqualTo("changed"));
        }
        public void CanUpdateExistingTableSectionItem()
        {
            var entity = new ПоступлениеТоваровУслуг
            {
                Комментарий = "Тестовое наименование",
                Услуги      = new List <ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги>()
                {
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Содержание = "test-content"
                    }
                }
            };

            dataContext.Save(entity);
            var existing = dataContext.Select <ПоступлениеТоваровУслуг>().Single();

            existing.Услуги[0].Содержание = "changed-content1";
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги[0].Содержание,
                        Is.EqualTo("test-content"));
            dataContext.Save(existing);
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги[0].Содержание,
                        Is.EqualTo("changed-content1"));

            existing.Услуги[0].Содержание = "changed-content2";
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги[0].Содержание,
                        Is.EqualTo("changed-content1"));
            dataContext.Save(existing);
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги[0].Содержание,
                        Is.EqualTo("changed-content2"));
        }
        public void CanQueryByReference()
        {
            var контрагент = new Контрагенты
            {
                Наименование = "test contractor name",
                ИНН          = "test-inn"
            };
            var акт = new ПоступлениеТоваровУслуг
            {
                Дата               = new DateTime(2016, 6, 1),
                Контрагент         = контрагент,
                ДоговорКонтрагента = new ДоговорыКонтрагентов
                {
                    Наименование = "test contract",
                    Владелец     = контрагент
                }
            };

            dataContext.Save(акт);
            var id          = акт.Контрагент.УникальныйИдентификатор;
            var контрагент2 = dataContext.Single <Контрагенты>(x => x.УникальныйИдентификатор == id);

            var queryResult = dataContext.Select <ПоступлениеТоваровУслуг>()
                              .Where(x => x.Контрагент == контрагент2)
                              .ToArray();

            Assert.That(queryResult.Length, Is.EqualTo(1));
            Assert.That(queryResult[0].ДоговорКонтрагента.Наименование, Is.EqualTo("test contract"));
        }
Exemple #4
0
        public void DoNotOverwriteDocumentWhenObservedListDoesNotChange()
        {
            var акт = new ПоступлениеТоваровУслуг
            {
                Дата       = new DateTime(2016, 6, 1),
                Контрагент = new Контрагенты
                {
                    Наименование = "contractor name"
                }
            };

            dataContext.Save(акт);

            var docVersion = GetDocumentByNumber(акт.Номер).DataVersion;

            var акт2 = dataContext.Single <ПоступлениеТоваровУслуг>(x => x.Номер == акт.Номер && x.Дата == акт.Дата);

            Assert.That(акт2.Услуги.Count, Is.EqualTo(0));
            акт2.Контрагент.Наименование = "changed contractor name";
            dataContext.Save(акт2);

            var контрагент = dataContext.Single <Контрагенты>(x => x.Код == акт.Контрагент.Код);

            Assert.That(контрагент.Наименование, Is.EqualTo("changed contractor name"));
            var newDocVersion = GetDocumentByNumber(акт.Номер).DataVersion;

            Assert.That(newDocVersion, Is.EqualTo(docVersion));
        }
        public void SelectManyWithFilterInInnerSelect()
        {
            var акт = new ПоступлениеТоваровУслуг
            {
                Дата       = new DateTime(2016, 6, 1),
                Контрагент = new Контрагенты
                {
                    Наименование = "test contractor name",
                    ИНН          = "test-inn"
                },
                Услуги = new List <ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги>
                {
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Номенклатура = new Номенклатура {
                            Наименование = "чайник фарфоровый"
                        },
                        Цена       = 12,
                        Количество = 3
                    },
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Номенклатура = new Номенклатура {
                            Наименование = "самовар"
                        },
                        Цена       = 56,
                        Количество = 1
                    }
                }
            };

            dataContext.Save(акт);

            var акты = dataContext.Select <ПоступлениеТоваровУслуг>()
                       .Where(x => x.Номер == акт.Номер && x.Дата == акт.Дата)
                       .SelectMany(x => x.Услуги.Where(y => y.Количество == 1).Select(y => new
            {
                x.Дата,
                Контрагент_Инн                   = x.Контрагент.ИНН,
                Контрагент_Наименование          = x.Контрагент.Наименование,
                Услуги_Номенклатура_Наименование = y.Номенклатура.Наименование,
                Услуги_Номенклатура_Количество   = y.Количество,
                Услуги_Номенклатура_Цена         = y.Цена
            }))
                       .ToArray();

            Assert.That(акты.Length, Is.EqualTo(1));

            Assert.That(акты[0].Дата, Is.EqualTo(new DateTime(2016, 6, 1)));
            Assert.That(акты[0].Контрагент_Инн, Is.EqualTo("test-inn"));
            Assert.That(акты[0].Контрагент_Наименование, Is.EqualTo("test contractor name"));
            Assert.That(акты[0].Услуги_Номенклатура_Наименование, Is.EqualTo("самовар"));
            Assert.That(акты[0].Услуги_Номенклатура_Цена, Is.EqualTo(56));
            Assert.That(акты[0].Услуги_Номенклатура_Количество, Is.EqualTo(1));
        }
Exemple #6
0
        public void CanModifyTableSection()
        {
            var поступлениеТоваровУслуг = new ПоступлениеТоваровУслуг
            {
                ДатаВходящегоДокумента = new DateTime(2016, 6, 1),
                Дата = new DateTime(2016, 6, 1),
                НомерВходящегоДокумента = "12345",
                ВидОперации             = ВидыОперацийПоступлениеТоваровУслуг.Услуги,
                Контрагент = new Контрагенты
                {
                    ИНН          = "7711223344",
                    Наименование = "ООО Тестовый контрагент",
                },
                Организация         = ПолучитьТекущуюОрганизацию(),
                СпособЗачетаАвансов = СпособыЗачетаАвансов.Автоматически,
                Услуги = new List <ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги>
                {
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Номенклатура = new Номенклатура
                        {
                            Наименование = "стрижка"
                        },
                        Количество = 10,
                        Содержание = "стрижка с кудряшками",
                        Сумма      = 120,
                        Цена       = 12,
                        СтавкаНДС  = СтавкиНДС.НДС18,
                        СуммаНДС   = 21.6m
                    }
                }
            };

            dataContext.Save(поступлениеТоваровУслуг);

            поступлениеТоваровУслуг.Услуги[0].Содержание = "стрижка налысо";
            dataContext.Save(поступлениеТоваровУслуг);

            var valueTable = globalContext.Execute("Выбрать * ИЗ Документ.ПоступлениеТоваровУслуг ГДЕ Номер = &Number",
                                                   new Dictionary <string, object>
            {
                { "Number", поступлениеТоваровУслуг.Номер }
            }).Unload();

            Assert.That(valueTable.Count, Is.EqualTo(1));

            var servicesTablePart = valueTable[0]["Услуги"] as dynamic;

            Assert.That(servicesTablePart.Count, Is.EqualTo(1));

            var row1 = servicesTablePart.Получить(0);

            Assert.That(row1.Содержание, Is.EqualTo("стрижка налысо"));
        }
        public void CanSaveDocumentWithTableSection()
        {
            var entity = new ПоступлениеТоваровУслуг
            {
                Комментарий = "Тестовое наименование",
                Услуги      = new List <ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги>()
                {
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Содержание = "chair"
                    },
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Содержание = "table"
                    }
                }
            };

            Assert.That(entity.Услуги[0].Содержание, Is.EqualTo("chair"));
            Assert.That(entity.Услуги[1].Содержание, Is.EqualTo("table"));
            dataContext.Save(entity);
            var readEntity = dataContext.Select <ПоступлениеТоваровУслуг>().Single();

            Assert.That(readEntity.Услуги[0].Содержание, Is.EqualTo("chair"));
            Assert.That(readEntity.Услуги[1].Содержание, Is.EqualTo("table"));

            var t = readEntity.Услуги[0];

            readEntity.Услуги[0] = readEntity.Услуги[1];
            readEntity.Услуги[1] = t;

            Assert.That(entity.Услуги[0].Содержание, Is.EqualTo("chair"));
            Assert.That(entity.Услуги[1].Содержание, Is.EqualTo("table"));

            Assert.That(readEntity.Услуги[0].Содержание, Is.EqualTo("table"));
            Assert.That(readEntity.Услуги[1].Содержание, Is.EqualTo("chair"));

            var readEntity2 = dataContext.Select <ПоступлениеТоваровУслуг>().Single();

            Assert.That(readEntity2.Услуги[0].Содержание, Is.EqualTo("chair"));
            Assert.That(readEntity2.Услуги[1].Содержание, Is.EqualTo("table"));

            dataContext.Save(readEntity);
            var readEntity3 = dataContext.Select <ПоступлениеТоваровУслуг>().Single();

            Assert.That(readEntity3.Услуги[0].Содержание, Is.EqualTo("table"));
            Assert.That(readEntity3.Услуги[1].Содержание, Is.EqualTo("chair"));
        }
Exemple #8
0
        public void ProjectionToAnonymousType()
        {
            var контрагент = new Контрагенты
            {
                Наименование = "test contractor name",
                ИНН          = "test-inn"
            };
            var акт = new ПоступлениеТоваровУслуг
            {
                Дата               = new DateTime(2016, 6, 1),
                Контрагент         = контрагент,
                ДоговорКонтрагента = new ДоговорыКонтрагентов
                {
                    Владелец     = контрагент,
                    Наименование = "test contract",
                    Валютный     = true
                }
            };

            dataContext.Save(акт);

            var акт2 = dataContext.Select <ПоступлениеТоваровУслуг>()
                       .Where(x => x.Номер == акт.Номер && x.Дата == акт.Дата)
                       .Select(x => new
            {
                x.Дата,
                Контрагент_Инн                  = x.Контрагент.ИНН,
                Контрагент_Наименование         = x.Контрагент.Наименование,
                ДоговорКонтрагента_Наименование = x.ДоговорКонтрагента.Наименование,
                ДоговорКонтрагента_Валютный     = x.ДоговорКонтрагента.Валютный,
                Грузополучатель_Наименование    = x.Грузополучатель.Наименование,
                Грузополучатель_ИНН             = x.Грузополучатель.ИНН
            })
                       .ToArray();

            Assert.That(акт2.Length, Is.EqualTo(1));
            Assert.That(акт2[0].Дата, Is.EqualTo(new DateTime(2016, 6, 1)));
            Assert.That(акт2[0].Контрагент_Инн, Is.EqualTo("test-inn"));
            Assert.That(акт2[0].Контрагент_Наименование, Is.EqualTo("test contractor name"));
            Assert.That(акт2[0].ДоговорКонтрагента_Наименование, Is.EqualTo("test contract"));
            Assert.That(акт2[0].ДоговорКонтрагента_Валютный, Is.True);
            Assert.That(акт2[0].Грузополучатель_Наименование, Is.Null);
            Assert.That(акт2[0].Грузополучатель_ИНН, Is.Null);
        }
        public void CanSetListForExistingDocument()
        {
            var entity = new ПоступлениеТоваровУслуг
            {
                Комментарий = "Тестовое наименование"
            };

            dataContext.Save(entity);

            var item = dataContext.Single <ПоступлениеТоваровУслуг>();

            item.Услуги.Add(new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
            {
                Содержание = "test-content"
            });
            dataContext.Save(item);

            Assert.That(dataContext.Single <ПоступлениеТоваровУслуг>().Услуги[0].Содержание,
                        Is.EqualTo("test-content"));
        }
        public void CanDeleteTableSectionItem()
        {
            var entity = new ПоступлениеТоваровУслуг
            {
                Комментарий = "Тестовое наименование",
                Услуги      = new List <ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги>()
                {
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Содержание = "test-content"
                    }
                }
            };

            dataContext.Save(entity);
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги.Count,
                        Is.EqualTo(1));
            entity.Услуги.RemoveAt(0);
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги.Count,
                        Is.EqualTo(1));
            dataContext.Save(entity);
            Assert.That(dataContext.Select <ПоступлениеТоваровУслуг>().Single().Услуги.Count,
                        Is.EqualTo(0));
        }
Exemple #11
0
        public void CanAddDocumentWithTableSection()
        {
            var поступлениеТоваровУслуг = new ПоступлениеТоваровУслуг
            {
                ДатаВходящегоДокумента = new DateTime(2016, 6, 1),
                Дата = new DateTime(2016, 6, 1),
                НомерВходящегоДокумента = "12345",
                ВидОперации             = ВидыОперацийПоступлениеТоваровУслуг.Услуги,
                Контрагент = new Контрагенты
                {
                    ИНН          = "7711223344",
                    Наименование = "ООО Тестовый контрагент",
                },
                Организация         = ПолучитьТекущуюОрганизацию(),
                СпособЗачетаАвансов = СпособыЗачетаАвансов.Автоматически,
                Услуги = new List <ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги>
                {
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Номенклатура = new Номенклатура
                        {
                            Наименование = "стрижка"
                        },
                        Количество = 10,
                        Содержание = "стрижка с кудряшками",
                        Сумма      = 120,
                        Цена       = 12,
                        СтавкаНДС  = СтавкиНДС.НДС18,
                        СуммаНДС   = 21.6m
                    },
                    new ПоступлениеТоваровУслуг.ТабличнаяЧастьУслуги
                    {
                        Номенклатура = new Номенклатура
                        {
                            Наименование = "мытье головы"
                        },
                        Количество = 10,
                        Содержание = "мытье головы хозяйственным мылом",
                        Сумма      = 120,
                        Цена       = 12,
                        СтавкаНДС  = СтавкиНДС.НДС18,
                        СуммаНДС   = 21.6m
                    }
                }
            };

            dataContext.Save(поступлениеТоваровУслуг);

            Assert.That(поступлениеТоваровУслуг.Номер, Is.Not.Null);
            Assert.That(поступлениеТоваровУслуг.Дата, Is.Not.EqualTo(default(DateTime)));
            Assert.That(поступлениеТоваровУслуг.Услуги.Count, Is.EqualTo(2));
            Assert.That(поступлениеТоваровУслуг.Услуги[0].НомерСтроки, Is.EqualTo(1));
            Assert.That(поступлениеТоваровУслуг.Услуги[1].НомерСтроки, Is.EqualTo(2));

            var valueTable = globalContext.Execute("Выбрать * ИЗ Документ.ПоступлениеТоваровУслуг ГДЕ Номер = &Number",
                                                   new Dictionary <string, object>
            {
                { "Number", поступлениеТоваровУслуг.Номер }
            }).Unload();

            Assert.That(valueTable.Count, Is.EqualTo(1));
            Assert.That(valueTable[0]["НомерВходящегоДокумента"], Is.EqualTo("12345"));
            Assert.That(valueTable[0]["ДатаВходящегоДокумента"], Is.EqualTo(new DateTime(2016, 6, 1)));

            var servicesTablePart = valueTable[0]["Услуги"] as dynamic;

            Assert.That(servicesTablePart.Count, Is.EqualTo(2));

            var row1 = servicesTablePart.Получить(0);

            Assert.That(row1.Номенклатура.Наименование, Is.EqualTo("стрижка"));
            Assert.That(row1.Количество, Is.EqualTo(10));
            Assert.That(row1.Содержание, Is.EqualTo("стрижка с кудряшками"));
            Assert.That(row1.Сумма, Is.EqualTo(120));
            Assert.That(row1.Цена, Is.EqualTo(12));

            var row2 = servicesTablePart.Получить(1);

            Assert.That(row2.Номенклатура.Наименование, Is.EqualTo("мытье головы"));
            Assert.That(row2.Содержание, Is.EqualTo("мытье головы хозяйственным мылом"));
        }