Esempio n. 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);
        }
Esempio n. 2
0
 public void ParsedWaybillsToExcel([DataBind("filter")] ParsedWaybillsFilter filter)
 {
     if(filter.Session == null)
         filter.Session = DbSession;
     var result = ExportModel.GetParcedWaybills(filter);
     this.RenderFile("Отчет о состоянии формализованных накладных.xls", result);
 }
Esempio n. 3
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("*"));
        }
Esempio n. 4
0
        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());
        }