public void SearchPayerForDrugstoreWithoutSuppliersWithDrugsSearchRegion()
        {
            var client    = DataMother.CreateTestClientWithUser();
            var payer     = client.Payers.First();
            var recipient = session.Query <Recipient>().First();

            payer.Recipient = recipient;
            session.Save(payer);
            var homeRegion = session.Load <Region>(1UL);
            var supplier   = new Supplier(homeRegion, payer)
            {
                Name              = "Тестовый поставщик",
                FullName          = "Тестовый поставщик",
                ContactGroupOwner = new ContactGroupOwner(ContactGroupType.ClientManagers)
            };

            supplier.AddRegion(session.Query <Region>().First(r => r.DrugsSearchRegion), session);
            session.Save(supplier);

            var filter = new PayerFilter(session)
            {
                SearchBy         = SearchBy.PayerId,
                SearchText       = payer.Id.ToString(),
                ClientType       = SearchClientType.Drugstore,
                WithoutSuppliers = true
            };
            var items = filter.Find();

            Assert.That(items.Count, Is.EqualTo(1));
        }
        public void Search_payer_without_document()
        {
            var payer = DataMother.CreatePayerForBillingDocumentTest();

            var period = DateTime.Now.ToPeriod();
            var filter = new PayerFilter(session)
            {
                SearchWithoutDocuments = true, Period = period, DocumentType = DocumentType.Invoice
            };
            var items = filter.Find();

            Assert.Contains(payer.Id, items.Select(i => i.PayerId).ToArray());

            Save(payer.BuildInvoices(DateTime.Now, period));
            Flush();

            items = filter.Find();
            Assert.That(items.Select(i => i.PayerId).ToArray(), Is.Not.Contains(payer.Id));
        }
        public void Search()
        {
            var filter = new PayerFilter(DbSession);

            if (IsPost || Request.QueryString.Keys.Cast <string>().Any(k => k.StartsWith("filter.")))
            {
                ((ARDataBinder)Binder).AutoLoad = AutoLoadBehavior.NullIfInvalidKey;
                BindObjectInstance(filter, IsPost ? ParamStore.Form : ParamStore.QueryString, "filter");
                PropertyBag["searchResults"] = filter.Find();
            }
            PropertyBag["filter"] = filter;
        }
        public void Do_not_include_payer_that_was_not_registred()
        {
            var payer = DataMother.CreatePayerForBillingDocumentTest();

            var period = DateTime.Now.AddMonths(-1).ToPeriod();
            var filter = new PayerFilter(session)
            {
                SearchWithoutDocuments = true, Period = period, DocumentType = DocumentType.Invoice
            };
            var items = filter.Find();

            Assert.That(items.Select(i => i.PayerId).ToArray(), Is.Not.Contains(payer.Id));
        }
        public void If_payer_have_report_it_not_disabled()
        {
            var payer  = DataMother.CreatePayer();
            var report = DataMother.Report(payer);

            Save(payer);
            Save(report);

            Flush();

            var filter = new PayerFilter(session);
            var items  = filter.Find();

            var item = items.FirstOrDefault(i => payer.Id == i.PayerId);

            Assert.That(item, Is.Not.Null, "не удалось найти плателщика {0} нашли {1}", payer.Id, items.Implode());
            Assert.That(item.IsDisabled, Is.False);
        }