Пример #1
0
        /// <summary>
        /// Создает DataTable обьект содержащий все посещения пользователя.
        /// </summary>
        /// <returns></returns>
        public static DataTable GetVisitsTable(Person person)
        {
            var table   = new DataTable();
            var journal = PersonObject.GetVisitsList(person.Name);

            var journalVisits = journal ?? new List <Visit>();

            if (journalVisits.Count == 0)
            {
                table.Columns.Add(" ");
                table.Rows.Add(" ");
                return(table);
            }

            // Создаем Заголовки таблицы, берем из первого элемента Visit
            var headers = journalVisits.First().GetHeadersForValues();

            table.Columns.AddRange(headers);

            // Заполняем строки значениями из журнала
            foreach (var item in journalVisits.Reverse <Visit>())
            {
                table.Rows.Add(item.GetValues());
            }
            return(table);
        }
Пример #2
0
        // Path To Photo
        public static void EditPathToPhoto(string personName, string newFileNameNoExtens)
        {
            var oldPathToPhoto = PersonObject.GetLink(personName)?.PathToPhoto;

            if (oldPathToPhoto == null)
            {
                return;
            }
            var fileInfo    = new FileInfo(oldPathToPhoto);
            var newFilePath = fileInfo.DirectoryName + "\\" + newFileNameNoExtens + fileInfo.Extension;

            if (personName != null && DataBaseLevel.ContainsNameKey(personName))
            {
                PersonObject.GetLink(personName).PathToPhoto = newFilePath;
            }
        }
Пример #3
0
        public static bool EditPersonalNumber(string namePerson, string newNumber)
        {
            var isExist = FindByPersonalNumber(DataBaseLevel.GetPersonsList(), newNumber, out _);

            if (isExist)
            {
                MessageBox.Show($@"Такой номер уже назначен клиенту: 

 {namePerson}", @"Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }
            else if (string.IsNullOrEmpty(newNumber))
            {
                // MessageBox.Show($@"Личный номер удалён", @"Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                PersonObject.GetLink(namePerson).IdString = string.Empty;
                return(false);
            }
            PersonObject.GetLink(namePerson).IdString = newNumber;
            return(true);
        }
Пример #4
0
        /// <summary>
        /// Только тут создаются заголовки Выборочных полей и записываются их данные в структуру PersonField
        /// </summary>
        /// <param name="first"></param>
        /// <returns></returns>
        public static IEnumerable <PersonField> GetPersonFieldsShort(Person first)
        {
            var person = first;
            // Главные поля, всегда отображаются
            var personFields = new List <PersonField>
            {
                new PersonField {
                    HeaderName = "Имя", Value = person.Name
                },
                new PersonField {
                    HeaderName = "Телефон", Value = person.Phone
                },
                //  new PersonField {HeaderName = "Статус", Value = person.Status.ToString()},
            };

            // Все что касается Абонемента
            var instAbonContr = AbonementController.GetInstance();
            var lastAbonement = instAbonContr.GetFirstValid(person.Name) ?? instAbonContr.GetList(person.Name).LastOrDefault();

            if (lastAbonement == null)
            {
                return(personFields);
            }

            personFields.Add(new PersonField {
                HeaderName = "Название", Value = lastAbonement.AbonementName
            });
            personFields.Add(new PersonField {
                HeaderName = "Покупка", Value = $"{lastAbonement.BuyActivationDate:dd/MM/yyyy}"
            });
            personFields.Add(new PersonField {
                HeaderName = "Конец", Value = $"{lastAbonement.EndDate:dd/MM/yyyy}"
            });

            // Последнее посещение в журнале
            var journal = PersonObject.GetVisitsList(person.Name);

            if (journal?.Count > 0)
            {
                var lastVisit = journal.Last().DateTimeVisit.Date; //.ToString("MM/dd/yyyy");
                var numDays   = (DateTime.Now - lastVisit).Days;
                personFields.Add(new PersonField {
                    HeaderName = "Посл.Визит", Value = lastVisit.ToString("MM/dd/yyyy")
                });

                personFields.Add(numDays == 0
                    ? new PersonField {
                    HeaderName = "Был (дн. назад)", Value = $"Сегодня"
                }
                    : new PersonField {
                    HeaderName = "Был (дн. назад)", Value = $"  {numDays}"
                });
            }
            else
            {
                personFields.Add(new PersonField {
                    HeaderName = "Был(дн. назад)", Value = $""
                });
            }

            return(personFields);
        }
Пример #5
0
        /// <summary>
        /// Только тут создаются заголовки всех полей и записываются основные данные
        /// </summary>
        /// <param name="first"></param>
        /// <returns></returns>
        public static IEnumerable <PersonField> GetPersonFieldsFull(Person first)
        {
            var person = first;

            var instAbonContr    = AbonementController.GetInstance();
            var abonHistoriesOld = PersonObject.GetAbonHistoryList(person.Name);
            var abonListAll      = instAbonContr.GetList(person.Name);
            var abonValid        = instAbonContr.GetFirstValid(person.Name);

            // Создается текстовый список всех абонементов.
            var abonHistString = new StringBuilder();

            foreach (var item in abonListAll)
            {
                abonHistString.AppendLine(item?.AbonementName + $"({item?.BuyDate.Date}), ");
            }

            if (abonHistoriesOld != null)
            {
                foreach (var item in abonHistoriesOld)
                {
                    abonHistString.Append(item?.AbonementName + $"({item?.BuyDate}), ");
                }
            }
            // Для выдергивания не форматированного текста в заметки.
            RichTextBox tempSpecialNotesRtb = new RichTextBox();

            MyRichTextBox.Load(tempSpecialNotesRtb, person.SpecialNotes);

            var abon = abonValid ?? abonListAll?.LastOrDefault();

            var isAbonExist  = abon != null;
            var personFields = new List <PersonField>
            {
                new PersonField {
                    HeaderName = "Имя", Value = person.Name
                },
                new PersonField {
                    HeaderName = "Телефон", Value = person.Phone
                },
                new PersonField {
                    HeaderName = "Дата Рождения", Value = $"{person.BirthDate.Date:MM/dd/yyyy}"
                },
                new PersonField {
                    HeaderName = "Пол", Value = person.GenderType.ToString()
                },
                new PersonField {
                    HeaderName = "Статус", Value = person.Status.ToString()
                },
                new PersonField {
                    HeaderName = "ID номер", Value = person.IdString
                },
                new PersonField {
                    HeaderName = "Паспорт", Value = person.Passport
                },
                new PersonField {
                    HeaderName = "Права", Value = person.DriverIdNum
                },
                // Абонемент
                new PersonField {
                    HeaderName = "Название", Value = (isAbonExist) ?abon.AbonementName: ""
                },
                new PersonField {
                    HeaderName = "Доступное время", Value = (isAbonExist) ?abon.TimeTraining.ToString():""
                },
                new PersonField {
                    HeaderName = "Осталось дней", Value = (isAbonExist) ?abon.GetRemainderDays().ToString():""
                },
                new PersonField {
                    HeaderName = "Аэробных", Value = (isAbonExist) ?abon.NumAerobicTr.ToString():""
                },
                new PersonField {
                    HeaderName = "Персональных", Value = (isAbonExist) ?abon.NumPersonalTr.ToString():""
                },

                new PersonField {
                    HeaderName = "Мини Групп", Value = (isAbonExist) ?abon.NumMiniGroup.ToString():""
                },
                new PersonField {
                    HeaderName = "Спа услуги", Value = (isAbonExist) ?abon.Spa.ToString():""
                },
                new PersonField {
                    HeaderName = "Доступный тип", Value = (isAbonExist) ?abon.TypeWorkout.ToString():""
                },
                new PersonField {
                    HeaderName = "Оплата", Value = (isAbonExist) ?abon.PayStatus.ToString():""
                },
                new PersonField {
                    HeaderName = "Абон. Покупка", Value = (isAbonExist) ? $"{abon.BuyDate:MM/dd/yyyy}" :""
                },
                new PersonField {
                    HeaderName = "Абон. Активация", Value = (isAbonExist) ? $"{abon.BuyActivationDate:MM/dd/yyyy}" :""
                },
                new PersonField {
                    HeaderName = "Абон. Конец", Value = (isAbonExist) ? $"{abon.EndDate:MM/dd/yyyy}":""
                },
                new PersonField {
                    HeaderName = "Активация", Value = (isAbonExist) ?abon.IsActivated.ToString():""
                },
                new PersonField {
                    HeaderName = "Заметки", Value = tempSpecialNotesRtb.Text
                },
                new PersonField {
                    HeaderName = "Заморозки", Value = GetFreezeString(person)
                },
                new PersonField {
                    HeaderName = "История Абон.", Value = abonHistString.ToString()
                }
            };

            return(personFields);
        }