Пример #1
0
        private static void FormatUserAndAdresses(Worksheet ws, UserFinderFilter filter)
        {
            int headerRow = 3;

            ExcelHelper.WriteHeader1(ws, headerRow, 0, "Код клиента", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 1, "Наименование клиента", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 2, "Регион", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 3, filter.HeadCodeName, true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 4, filter.HeadName, true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 5, "Дата регистрации", true, true);
            if (filter.ShowUserNames())
            {
                ExcelHelper.WriteHeader1(ws, headerRow, 6, "С этим адресом зарегистрированы пользователи, код пользователя (комментарий к пользователю)", true, true);
            }

            ws.Cells.ColumnWidth[0] = 4000;
            ws.Cells.ColumnWidth[1] = 12000;
            ws.Cells.ColumnWidth[2] = 6000;
            ws.Cells.ColumnWidth[3] = 3000;
            ws.Cells.ColumnWidth[4] = 12000;
            ws.Cells.ColumnWidth[5] = 8000;
            if (filter.ShowUserNames())
            {
                ws.Cells.ColumnWidth[6] = 15000;
            }

            ws.Cells.Rows[headerRow].Height = 514;
        }
Пример #2
0
        private static void AnalysisOfWorkDrugstoresFormat(Worksheet ws)
        {
            int headerRow = 5;

            ExcelHelper.WriteHeader1(ws, headerRow, 0, "Код", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 1, "Наименование", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 2, "Количество пользователей", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 3, "Количество адресов доставки", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 4, "Регион", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 5, "Обновления (Новый/Старый)", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 6, "Падение обновлений", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 7, "Заказы (Новый/Старый)", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 8, "Падение заказов", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 9, "Адреса (Новый/Старый)", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 10, "Автозаказ", true, true);

            ws.Cells.ColumnWidth[0]  = 4000;
            ws.Cells.ColumnWidth[1]  = 6000;
            ws.Cells.ColumnWidth[2]  = 4000;
            ws.Cells.ColumnWidth[3]  = 4000;
            ws.Cells.ColumnWidth[4]  = 6000;
            ws.Cells.ColumnWidth[5]  = 6000;
            ws.Cells.ColumnWidth[6]  = 4000;
            ws.Cells.ColumnWidth[7]  = 10000;
            ws.Cells.ColumnWidth[8]  = 4000;
            ws.Cells.ColumnWidth[9]  = 6000;
            ws.Cells.ColumnWidth[10] = 6000;

            ws.Cells.Rows[headerRow].Height = 514;
        }
Пример #3
0
        public static byte[] ExcelSwitchOffClients(SwitchOffClientsFilter filter)
        {
            var wb = new Workbook();
            var ws = new Worksheet("Список отключенных клиентов");

            int row      = 4;
            int colShift = 0;

            ws.Merge(0, 0, 0, 6);

            ExcelHelper.WriteHeader1(ws, 0, 0, "Список отключенных клиентов", false, true);

            ws.Merge(1, 1, 1, 2);
            ExcelHelper.Write(ws, 1, 0, "Регион:", false);
            string regionName;

            if (filter.Region == null)
            {
                regionName = "Все";
            }
            else
            {
                regionName = filter.Region.Name;
            }
            ExcelHelper.Write(ws, 1, 1, regionName, false);

            ws.Merge(2, 1, 2, 2);
            ExcelHelper.Write(ws, 2, 0, "Период:", false);
            if (filter.Period.Begin != filter.Period.End)
            {
                ExcelHelper.Write(ws, 2, 1,
                                  "С " + filter.Period.Begin.ToString("dd.MM.yyyy") + " по " + filter.Period.End.ToString("dd.MM.yyyy"), false);
            }
            else
            {
                ExcelHelper.Write(ws, 2, 1, "За " + filter.Period.Begin.ToString("dd.MM.yyyy"), false);
            }

            var reportData = GetExcelSwitchOffClients(filter);

            foreach (var item in reportData)
            {
                ExcelHelper.Write(ws, row, colShift + 0, item.ClientId, true);
                ExcelHelper.Write(ws, row, colShift + 1, item.ClientName, true);
                ExcelHelper.Write(ws, row, colShift + 2, item.RegionName, true);
                ExcelHelper.Write(ws, row, colShift + 3, item.LogTime, true);
                ExcelHelper.Write(ws, row, colShift + 4, item.Comment, true);
                row++;
            }

            FormatSwitchOffClients(ws, filter);

            wb.Worksheets.Add(ws);
            var ms = new MemoryStream();

            wb.Save(ms);

            return(ms.ToArray());
        }
Пример #4
0
        public static byte[] ExcelWhoWasNotUpdated(WhoWasNotUpdatedFilter filter)
        {
            var wb = new Workbook();
            var ws = new Worksheet("Кто не обновлялся с опред. даты");

            int row      = 4;
            int colShift = 0;

            ws.Merge(0, 0, 0, 6);

            ExcelHelper.WriteHeader1(ws, 0, 0, "Кто не обновлялся с опред. даты", false, true);

            ws.Merge(1, 1, 1, 2);
            ExcelHelper.Write(ws, 1, 0, "Регион:", false);
            string regionName;

            if (filter.Regions != null && filter.Regions.Any())
            {
                regionName = filter.GetRegionNames();
            }
            else
            {
                regionName = "Все";
            }
            ExcelHelper.Write(ws, 1, 1, regionName, false);

            ws.Merge(2, 1, 2, 2);
            ExcelHelper.Write(ws, 2, 0, "Нет обновлений с:", false);
            ExcelHelper.Write(ws, 2, 1, filter.BeginDate.ToString("dd.MM.yyyy"), false);

            var reportData = filter.Find(true);

            foreach (var item in reportData)
            {
                ExcelHelper.Write(ws, row, colShift + 0, item.ClientId, true);
                ExcelHelper.Write(ws, row, colShift + 1, item.ClientName, true);
                ExcelHelper.Write(ws, row, colShift + 2, item.UserId, true);
                ExcelHelper.Write(ws, row, colShift + 3, item.UserName, true);
                ExcelHelper.Write(ws, row, colShift + 4, item.RegionName, true);
                ExcelHelper.Write(ws, row, colShift + 5, item.Registrant, true);
                ExcelHelper.Write(ws, row, colShift + 6, item.UpdateDate, true);
                row++;
            }

            FormatWhoWasNotUpdated(ws);

            wb.Worksheets.Add(ws);
            var ms = new MemoryStream();

            wb.Save(ms);

            return(ms.ToArray());
        }
Пример #5
0
        private static void FormatSwitchOffClients(Worksheet ws, SwitchOffClientsFilter filter)
        {
            int headerRow = 3;

            ExcelHelper.WriteHeader1(ws, headerRow, 0, "Код клиента", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 1, "Наименование клиента", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 2, "Регион", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 3, "Дата отключения", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 4, "Комментарий оператора", true, true);

            ws.Cells.ColumnWidth[0] = 4000;
            ws.Cells.ColumnWidth[1] = 12000;
            ws.Cells.ColumnWidth[2] = 6000;
            ws.Cells.ColumnWidth[3] = 5000;
            ws.Cells.ColumnWidth[4] = 20000;

            ws.Cells.Rows[headerRow].Height = 514;
        }
Пример #6
0
        private static void FormatWhoWasNotUpdated(Worksheet ws, int headerRow = 4)
        {
            ExcelHelper.WriteHeader1(ws, headerRow, 0, "Код клиента", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 1, "Наименование клиента", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 2, "Код пользователя", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 3, "Комментарий пользователя", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 4, "Регион", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 5, "Регистратор", true, true);
            ExcelHelper.WriteHeader1(ws, headerRow, 6, "Дата обновления", true, true);

            ws.Cells.ColumnWidth[0] = 4000;
            ws.Cells.ColumnWidth[1] = 12000;
            ws.Cells.ColumnWidth[2] = 4000;
            ws.Cells.ColumnWidth[3] = 12000;
            ws.Cells.ColumnWidth[4] = 6000;
            ws.Cells.ColumnWidth[5] = 8000;
            ws.Cells.ColumnWidth[6] = 6000;

            ws.Cells.Rows[headerRow].Height = 514;
        }
Пример #7
0
        public static byte[] GetCallsHistory(CallRecordFilter filter)
        {
            var wb = new Workbook();
            var ws = new Worksheet("История звонков");

            int row = 1;
            int col = 1;

            ExcelHelper.WriteHeader1(ws, 0, 1, "Дата звонка", true, true);
            ExcelHelper.WriteHeader1(ws, 0, 2, "Номер звонившего", true, true);
            ExcelHelper.WriteHeader1(ws, 0, 3, "Имя звонившего", true, true);
            ExcelHelper.WriteHeader1(ws, 0, 4, "Куда звонил", true, true);
            ExcelHelper.WriteHeader1(ws, 0, 5, "Кому звонил", true, true);
            ExcelHelper.WriteHeader1(ws, 0, 6, "Тип звонка", true, true);
            filter.PageSize = UInt16.MaxValue;
            var calls = filter.Find();

            foreach (var call in calls)
            {
                ExcelHelper.Write(ws, row, col, call.WriteTime, true);
                ExcelHelper.Write(ws, row, col + 1, call.From, true);
                ExcelHelper.Write(ws, row, col + 2, call.NameSource, true);
                ExcelHelper.Write(ws, row, col + 3, call.To, true);
                ExcelHelper.Write(ws, row, col + 4, call.NameDestination, true);
                ExcelHelper.Write(ws, row, col + 5, call.GetCallType(), true);
                row++;
            }
            for (ushort i = 1; i <= 6; i++)
            {
                ws.Cells.ColumnWidth[i] = 20 * 256;
            }
            wb.Worksheets.Add(ws);
            var buffer = new MemoryStream();

            wb.Save(buffer);
            return(buffer.ToArray());
        }
Пример #8
0
        public static byte[] ExcelAnalysisOfWorkDrugstores(AnalysisOfWorkDrugstoresFilter filter)
        {
            var wb = new Workbook();
            var ws = new Worksheet("Сравнительный анализ работы аптек");

            int row      = 6;
            int colShift = 0;

            ws.Merge(0, 0, 0, 10);

            ExcelHelper.WriteHeader1(ws, 0, 0, "Сравнительный анализ работы аптек", false, true);

            ws.Merge(1, 1, 1, 2);
            ExcelHelper.Write(ws, 1, 0, "Регион:", false);
            string regionName;

            if (filter.Regions != null && filter.Regions.Any())
            {
                regionName = filter.GetRegionNames();
            }
            else
            {
                regionName = "Все";
            }

            ExcelHelper.Write(ws, 1, 1, regionName, false);

            ws.Merge(2, 1, 2, 2);
            ExcelHelper.Write(ws, 2, 0, "Старый период:", false);
            if (filter.FistPeriod.Begin != filter.FistPeriod.End)
            {
                ExcelHelper.Write(ws, 2, 1, "С " + filter.FistPeriod.Begin.ToString("dd.MM.yyyy") + " по " + filter.FistPeriod.End.ToString("dd.MM.yyyy"), false);
            }
            else
            {
                ExcelHelper.Write(ws, 2, 1, "За " + filter.FistPeriod.Begin.ToString("dd.MM.yyyy"), false);
            }

            ws.Merge(3, 1, 3, 2);
            ExcelHelper.Write(ws, 3, 0, "Новый период:", false);
            if (filter.LastPeriod.Begin != filter.LastPeriod.End)
            {
                ExcelHelper.Write(ws, 3, 1, "С " + filter.LastPeriod.Begin.ToString("dd.MM.yyyy") + " по " + filter.LastPeriod.End.ToString("dd.MM.yyyy"), false);
            }
            else
            {
                ExcelHelper.Write(ws, 3, 1, "За " + filter.LastPeriod.Begin.ToString("dd.MM.yyyy"), false);
            }

            var reportData = filter.Find(true).Cast <AnalysisOfWorkFiled>().ToList();

            reportData.Each(x => x.ForExport = true);

            foreach (var item in reportData)
            {
                ExcelHelper.Write(ws, row, colShift + 0, item.Id, true);
                ExcelHelper.Write(ws, row, colShift + 1, item.Name, true);
                ExcelHelper.Write(ws, row, colShift + 2, item.UserCount, true);
                ExcelHelper.Write(ws, row, colShift + 3, item.AddressCount, true);
                ExcelHelper.Write(ws, row, colShift + 4, item.RegionName, true);
                ExcelHelper.Write(ws, row, colShift + 5, item.Updates, true);
                ExcelHelper.Write(ws, row, colShift + 6, item.ProblemUpdates, true);
                ExcelHelper.Write(ws, row, colShift + 7, item.Orders, true);
                ExcelHelper.Write(ws, row, colShift + 8, item.ProblemOrders, true);
                ExcelHelper.Write(ws, row, colShift + 9, item.Addresses, true);
                ExcelHelper.Write(ws, row, colShift + 10, item.AutoOrder, true);
                row++;
            }

            AnalysisOfWorkDrugstoresFormat(ws);

            wb.Worksheets.Add(ws);
            var ms = new MemoryStream();

            wb.Save(ms);

            return(ms.ToArray());
        }
Пример #9
0
        public static byte[] GetUserOrAdressesInformation(UserFinderFilter filter)
        {
            var wb = new Workbook();
            var ws = new Worksheet("зарегистрированные пользователи и адреса в регионе");

            int row      = 4;
            int colShift = 0;

            ws.Merge(0, 0, 0, 6);

            if (filter.FinderType == RegistrationFinderType.Users)
            {
                ExcelHelper.WriteHeader1(ws, 0, 0, "зарегистрированные пользователи", false, true);
            }
            if (filter.FinderType == RegistrationFinderType.Addresses)
            {
                ExcelHelper.WriteHeader1(ws, 0, 0, "зарегистрированные адреса", false, true);
            }

            ws.Merge(1, 1, 1, 2);
            ExcelHelper.Write(ws, 1, 0, "Регион:", false);
            string regionName;

            if (filter.Region == null)
            {
                regionName = "Все";
            }
            else
            {
                regionName = filter.Region.Name;
            }
            ExcelHelper.Write(ws, 1, 1, regionName, false);

            ws.Merge(2, 1, 2, 2);
            ExcelHelper.Write(ws, 2, 0, "Период:", false);
            if (filter.Period.Begin != filter.Period.End)
            {
                ExcelHelper.Write(ws, 2, 1,
                                  "С " + filter.Period.Begin.ToString("dd.MM.yyyy") + " по " + filter.Period.End.ToString("dd.MM.yyyy"), false);
            }
            else
            {
                ExcelHelper.Write(ws, 2, 1, "За " + filter.Period.Begin.ToString("dd.MM.yyyy"), false);
            }

            var reportData = GetRegistrationInformation(filter);

            var showUserNames = filter.ShowUserNames();

            foreach (var item in reportData)
            {
                ExcelHelper.Write(ws, row, colShift + 0, item.ClientId, true);
                ExcelHelper.Write(ws, row, colShift + 1, item.ClientName, true);
                ExcelHelper.Write(ws, row, colShift + 2, item.RegionName, true);
                ExcelHelper.Write(ws, row, colShift + 3, item.Id, true);
                ExcelHelper.Write(ws, row, colShift + 4, item.Name, true);
                ExcelHelper.Write(ws, row, colShift + 5, item.RegistrationDate, true);
                if (showUserNames)
                {
                    ExcelHelper.Write(ws, row, colShift + 6, item.UserNames, true);
                }
                row++;
            }

            FormatUserAndAdresses(ws, filter);

            wb.Worksheets.Add(ws);
            var ms = new MemoryStream();

            wb.Save(ms);

            return(ms.ToArray());
        }