public void FindWaybillsWithClientTest() { // Создаем двух клиентов и документы для них var client = DataMother.CreateTestClientWithAddress(); var documentLog = DataMother.CreateTestDocumentLog(supplier, client); var document = DataMother.CreateTestDocument(supplier, client, documentLog); document.WriteTime = DateTime.Now.AddDays(-1); document.Lines[0].SerialNumber = "123"; var client1 = DataMother.CreateTestClientWithAddress(); var documentLog1 = DataMother.CreateTestDocumentLog(supplier, client1); var document1 = DataMother.CreateTestDocument(supplier, client1, documentLog1); document1.WriteTime = DateTime.Now.AddDays(-1); document1.Lines[0].Product = "123"; Save(document); Save(document1); Flush(); // Ищем накладные только для первого клиента var filter = new ParsedWaybillsFilter { Session = session, Period = new DatePeriod(DateTime.Now.AddDays(-7), DateTime.Now), ClientId = client.Id, ClientName = client.Name }; var documentsInfo = filter.Find(); var testDocument = documentsInfo.FirstOrDefault(d => ((ParsedWaybillsItem)d).SupplierCode == supplier.Id); Assert.That(testDocument, Is.Not.Null); Assert.That(((ParsedWaybillsItem)testDocument).SupplierCode, Is.EqualTo(supplier.Id)); Assert.That(((ParsedWaybillsItem)testDocument).SerialNumber, Is.EqualTo("*")); Assert.That(((ParsedWaybillsItem)testDocument).Product, Is.Null); }
public void FilterGetAllDocumentsIfNoOnlyNoParsedTest() { // Создаем поставщика var supplier = DataMother.CreateSupplier(); Save(supplier); var client = DataMother.CreateTestClientWithAddress(); Save(client); // Создаем много документов, чтобы не влезали на одну страницу for (int i = 0; i < 33; i++) { var documentLog = new DocumentReceiveLog(supplier); documentLog.ForClient = client; Save(documentLog); } // Создаем фильтр и устанавливаем параметр Только неразобранные var filter = new DocumentFilter(); filter.Supplier = supplier; filter.OnlyNoParsed = true; var documents = filter.Find(session); // должны получить документы в количестве равном одной странице Assert.That(documents.Count, Is.EqualTo(filter.PageSize)); // ищем все документы filter.OnlyNoParsed = false; documents = filter.Find(session); // должны получить документы в количестве большем одной страницы Assert.That(documents.Count, Is.GreaterThan(filter.PageSize)); }
public void Show_payer_with_no_users() { client = DataMother.CreateTestClientWithAddress(); payer = client.Payers.First(); Open(payer); AssertText(String.Format("Плательщик {0}", payer)); }
public void SetUp() { var log = new RejectWaybillLog(); _client = DataMother.CreateTestClientWithAddress(); log.ForClient = session.Get <ClientForReading>(_client.Id); log.LogTime = DateTime.Now; Save(log); Flush(); }
public void Send_notification() { var client = DataMother.CreateTestClientWithAddress(); var address = client.Addresses.First(); Open(address); AssertText("Адрес доставки"); ClickButton("Отправить уведомления о регистрации поставщикам"); AssertText("Уведомления отправлены"); }
public void Build_data() { var supplier = DataMother.CreateSupplier(); Save(supplier); for (int i = 0; i < 1000; i++) { var client = DataMother.CreateTestClientWithAddress(); session.SaveOrUpdate(client); Save(DataMother.CreateTestDocumentLog(supplier, client)); } }
public void Copy_supplier_code_from_base_price() { var supplier = DataMother.CreateSupplier(); var price = supplier.AddPrice("Тестовый 1"); Save(supplier); var client = DataMother.CreateTestClientWithAddress(); var intersection = session.Query <AddressIntersection>() .First(a => a.Intersection.Price == supplier.Prices[0] && a.Intersection.Client == client); intersection.SupplierDeliveryId = "d1"; Save(intersection); intersection = session.Query <AddressIntersection>() .First(a => a.Intersection.Price == price && a.Intersection.Client == client); intersection.SupplierDeliveryId = "d2"; Save(intersection); Flush(); session.Clear(); var manage = new managep { DbSession = session }; var data = manage.GetData(supplier); var table = data.Tables["Prices"]; var row = table.NewRow(); row["BuyingMatrix"] = 0; row["AgencyEnabled"] = 1; row["Enabled"] = 1; row["UpCost"] = 0; row["PriceType"] = 0; row["IsLocal"] = 0; table.Rows.Add(row); var message = ""; manage.Save(supplier, data, "", ref message); supplier = session.Get <Supplier>(supplier.Id); Assert.That(supplier.Prices.Count, Is.EqualTo(3)); intersection = session.Query <AddressIntersection>() .First(a => a.Intersection.Price == price && a.Intersection.Client == client); Assert.That(intersection.SupplierDeliveryId, Is.EqualTo("d2")); intersection = session.Query <AddressIntersection>() .First(a => a.Intersection.Price == supplier.Prices[2] && a.Intersection.Client == client); Assert.That(intersection.SupplierDeliveryId, Is.EqualTo("d1")); }
public void Move_address() { var src = DataMother.CreateTestClientWithAddress(); var dst = DataMother.TestClient(); var address = src.Addresses[0]; //должны быть уникальные имена что можно было сделать проверку на правильность написания письма MakeNameUniq(src); MakeNameUniq(src.Payers); MakeNameUniq(src.Payers.SelectMany(p => p.Orgs)); MakeNameUniq(dst); MakeNameUniq(dst.Payers); MakeNameUniq(dst.Payers.SelectMany(p => p.Orgs)); controller.MoveUserOrAddress(dst.Id, 0u, address.Id, dst.Orgs().First().Id, true); controller.SendMails(); session.Flush(); session.Refresh(dst); session.Refresh(src); Assert.That(src.Addresses.Count, Is.EqualTo(0)); Assert.That(src.Disabled, Is.True); Assert.That(dst.Addresses.Count, Is.EqualTo(1)); Assert.That(dst.Addresses[0].Id, Is.EqualTo(address.Id)); var mail = Emails.FirstOrDefault(m => m.Subject.Contains("Перемещение адреса доставки")); Assert.That(mail, Is.Not.Null, "не могу найти уведомление о перемещении " + Emails.Select(n => n.Subject).Implode()); Assert.That(mail.Body, Is.StringContaining(String.Format("Старый клиент {0} плательщик {1} юр.лицо {2}", src.Name, src.Payers[0].Name, src.Payers[0].Orgs[0].Name))); Assert.That(mail.Body, Is.StringContaining(String.Format("Новый клиент {0} плательщик {1} юр.лицо {2}", dst.Name, dst.Payers[0].Name, dst.Payers[0].Orgs[0].Name))); }
public void FindWaybillsTest() { var client = DataMother.CreateTestClientWithAddress(); var documentLog = DataMother.CreateTestDocumentLog(supplier, client); var document = DataMother.CreateTestDocument(supplier, client, documentLog); document.WriteTime = DateTime.Now.AddDays(-1); document.Lines[0].SerialNumber = "123"; Save(document); Flush(); var filter = new ParsedWaybillsFilter { Session = session, Period = new DatePeriod(DateTime.Now.AddDays(-7), DateTime.Now) }; var documentsInfo = filter.Find(); var testDocument = documentsInfo.FirstOrDefault(d => ((ParsedWaybillsItem)d).SupplierCode == supplier.Id); Assert.That(testDocument, Is.Not.Null); Assert.That(((ParsedWaybillsItem)testDocument).SupplierCode, Is.EqualTo(supplier.Id)); Assert.That(((ParsedWaybillsItem)testDocument).SerialNumber, Is.EqualTo("*")); }
public void Move_address() { var supplier = DataMother.CreateSupplier(); Save(supplier); var price = supplier.Prices.First(); var client = DataMother.CreateTestClientWithAddress(); var recepient = DataMother.TestClient(); var address = client.Addresses.First(); var legalEntity = recepient.Orgs().First(); address.MoveToAnotherClient(session, recepient, legalEntity); session.CreateSQLQuery(@"update Customers.AddressIntersection ai join Customers.Intersection i on ai.IntersectionId = i.Id set ai.SupplierDeliveryId = '123' where i.PriceId = :priceId and ai.AddressId = :addressId ") .SetParameter("addressId", address.Id) .SetParameter("priceId", price.Id) .ExecuteUpdate(); Assert.That(address.Client, Is.EqualTo(recepient)); Assert.That(address.Payer, Is.EqualTo(legalEntity.Payer)); Assert.That(address.LegalEntity, Is.EqualTo(legalEntity)); var supplierDeliveryId = session.CreateSQLQuery(@" select ai.SupplierDeliveryId from Customers.AddressIntersection ai join Customers.Intersection i on ai.IntersectionId = i.Id where i.PriceId = :priceId and ai.AddressId = :addressId ") .SetParameter("addressId", address.Id) .SetParameter("priceId", price.Id) .UniqueResult <string>(); Assert.That(supplierDeliveryId, Is.EqualTo("123")); }