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 ParsedWaybillsToExcel([DataBind("filter")] ParsedWaybillsFilter filter) { if(filter.Session == null) filter.Session = DbSession; var result = ExportModel.GetParcedWaybills(filter); this.RenderFile("Отчет о состоянии формализованных накладных.xls", result); }
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 static byte[] GetParcedWaybills(ParsedWaybillsFilter filter) { var book = new HSSFWorkbook(); var sheet = book.CreateSheet("Отчет о состоянии формализованных накладных"); var row = 0; // создаем строку var sheetRow = sheet.CreateRow(row++); // стиль для заголовков var headerStyle = GetHeaderStyle(book); // выводим наименование отчета var headerCell = sheetRow.CreateCell(0); headerCell.CellStyle = headerStyle; headerCell.SetCellValue("Отчет о состоянии формализованных накладных"); // дата построения отчета sheetRow = sheet.CreateRow(row++); var dateCell = sheetRow.CreateCell(0); dateCell.SetCellValue(String.Format("Дата подготовки отчета: {0}", DateTime.Now)); // период построения отчета sheetRow = sheet.CreateRow(row++); dateCell = sheetRow.CreateCell(0); dateCell.SetCellValue(String.Format("Период: с {0} по {1}", filter.Period.Begin.ToString("dd.MM.yyyy"), filter.Period.End.ToString("dd.MM.yyyy"))); // клиент sheetRow = sheet.CreateRow(row++); dateCell = sheetRow.CreateCell(0); dateCell.SetCellValue(String.Format("Клиент: {0}", filter.ClientName)); // добавляем пустую строку перед таблицей sheet.CreateRow(row++); var tableHeaderRow = row; var type = typeof(ParsedWaybillsItem); // формируем заголовки таблицы row = CreateTableHeader(sheet, type, headerStyle, row); var dataStyle = GetDataStyle(book); var centerDataStyle = GetDataStyle(book, true); // формируем данные таблицы row = CreateTableData(sheet, type, dataStyle, centerDataStyle, row, filter.Find); // устанавливаем ширину столбцов for (int i = 0; i < type.GetProperties().Length; i++) { sheet.SetColumnWidth(i, (sheet.GetColumnWidth(i) * 3) / 2); } // добавляем автофильтр sheet.SetAutoFilter(new CellRangeAddress(tableHeaderRow, row, 0, type.GetProperties().Length - 1)); sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 6)); var buffer = new MemoryStream(); book.Write(buffer); return(buffer.ToArray()); }