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")); }
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)); }
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")); }
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)); }
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("мытье головы хозяйственным мылом")); }