示例#1
0
 public void ClientAddressesMonitor()
 {
     var filter = new ClientAddressFilter();
     BindObjectInstance(filter, IsPost ? ParamStore.Form : ParamStore.QueryString, "filter", AutoLoadBehavior.NullIfInvalidKey);
     if(filter.Session == null)
         filter.Session = DbSession;
     PropertyBag["Clients"] = filter.Find();
     PropertyBag["filter"] = filter;
 }
示例#2
0
 public void ClientAddressesMonitorToExcel([DataBind("filter")] ClientAddressFilter filter)
 {
     CancelLayout();
     CancelView();
     if(filter.Session == null)
         filter.Session = DbSession;
     var result = ExportModel.GetClientAddressesMonitor(filter);
     this.RenderFile("Клиенты и адреса в регионе, по которым не принимаются накладные.xls", result);
 }
示例#3
0
        public void ClientAddressFilterTest()
        {
            var filter = new ClientAddressFilter {
                Period = new DatePeriod(DateTime.Now.AddDays(-14), DateTime.Now)
            };

            filter.Session = session;
            var results = filter.Find();

            Assert.That(results.Count(t => t.ClientId == _client.Id), Is.GreaterThan(0));
        }
示例#4
0
        public static byte[] GetClientAddressesMonitor(ClientAddressFilter filter)
        {
            var book = new HSSFWorkbook();

            var sheet = book.CreateSheet("Клиенты и адреса в регионе, по которым не принимаются накладные");

            var row         = 0;
            var headerStyle = NPOIExcelHelper.GetHeaderStype(book);
            var dataStyle   = NPOIExcelHelper.GetDataStyle(book);
            var sheetRow    = sheet.CreateRow(row++);

            NPOIExcelHelper.FillNewCell(sheetRow, 0, "Клиенты и адреса в регионе, по которым не принимаются накладные", headerStyle);
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Период: с {0} по {1}",
                                                                   filter.Period.Begin.ToString("dd.MM.yyyy"),
                                                                   filter.Period.End.ToString("dd.MM.yyyy")),
                                        book.CreateCellStyle());
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Дата подготовки отчета: {0}", DateTime.Now), book.CreateCellStyle());
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Регион: {0}", filter.Region == null ? "Все" : filter.Region.Name), book.CreateCellStyle());
            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, String.Format("Клиент: {0}", filter.ClientText), book.CreateCellStyle());
            sheet.CreateRow(row++);
            var tableHeaderRow = row;

            sheetRow = sheet.CreateRow(row++);
            NPOIExcelHelper.FillNewCell(sheetRow, 0, "Код клиента", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 1, "Наименование клиента", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 2, "Регион", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 3, "Код адреса", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 4, "Адрес", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 5, "Код поставщика", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 6, "Наименование поставщика", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 7, "Количество непринятых накладных", headerStyle);
            NPOIExcelHelper.FillNewCell(sheetRow, 8, "Причина", headerStyle);

            var items = filter.Find(true);

            foreach (var item in items)
            {
                sheetRow = sheet.CreateRow(row++);
                NPOIExcelHelper.FillNewCell(sheetRow, 0, item.ClientId.ToString(), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 1, item.ClientName, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 2, item.RegionName, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 3, item.AddressId.ToString(), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 4, item.AddressName, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 5, item.SupplierId.ToString(), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 6, item.SupplierName, dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 7, item.Count.ToString(), dataStyle);
                NPOIExcelHelper.FillNewCell(sheetRow, 8, item.RejectReasonName, dataStyle);
            }

            // добавляем автофильтр
            sheet.SetAutoFilter(new CellRangeAddress(tableHeaderRow, row, 0, 8));

            sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 8));

            // устанавливаем ширину столбцов
            for (int i = 0; i < 9; i++)
            {
                sheet.SetColumnWidth(i, sheet.GetColumnWidth(i) * 2);
            }

            sheet.SetColumnWidth(4, sheet.GetColumnWidth(4) * 3);
            sheet.SetColumnWidth(8, sheet.GetColumnWidth(8) * 3);

            var buffer = new MemoryStream();

            book.Write(buffer);
            return(buffer.ToArray());
        }