Пример #1
0
        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));
        }
Пример #3
0
        public void Show_payer_with_no_users()
        {
            client = DataMother.CreateTestClientWithAddress();
            payer  = client.Payers.First();

            Open(payer);
            AssertText(String.Format("Плательщик {0}", payer));
        }
Пример #4
0
        public void SetUp()
        {
            var log = new RejectWaybillLog();

            _client       = DataMother.CreateTestClientWithAddress();
            log.ForClient = session.Get <ClientForReading>(_client.Id);
            log.LogTime   = DateTime.Now;
            Save(log);
            Flush();
        }
Пример #5
0
        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)));
        }
Пример #9
0
        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("*"));
        }
Пример #10
0
        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"));
        }