Пример #1
0
        public async Task <ApiResponse <DailyReport> > SaveDailyReport(DailyReportDTO dailyReport)
        {
            ApiResponse <DailyReport> result = new ApiResponse <DailyReport>();

            try
            {
                DailyReport report = new DailyReport();
                report.ReportDate = dailyReport.ReportDate;
                report.TotalAmountOfServicesCost           = dailyReport.TotalAmountOfServicesCost;
                report.TotalNumberOfBarbersSignedIn        = dailyReport.TotalNumberOfBarbersSignedIn;
                report.TotalNumberOfCustomers              = dailyReport.TotalNumberOfCustomers;
                report.AverageCustomerWaitingTimeInMinutes = dailyReport.AverageCustomerWaitingTimeInMinutes;

                var CreatedReport = await unitOfWork.DailyReportsManager.CreateAsync(report);

                result.Data      = report;
                result.Succeeded = true;
                return(result);
            }
            catch (Exception ex)
            {
                result.Succeeded = false;
                result.Errors.Add(ex.Message);
                return(result);
            }
        }
Пример #2
0
        public DailyReportDTO GetDailyReport(DateTime date)
        {
            _date = date;
            DailyReportDTO dR = new DailyReportDTO();

            dR.Date = date;

            SearchParam p = new SearchParam();

            p.SearchWithDate = true;
            p.From           = date;
            p.To             = date.AddDays(1);

            List <Item> items = _itemService.AllActiveItems();

            _histories         = _historyService.SearchHistories(p);
            _previousHistories = _historyService.GetItemsHistoryFromOtherPreviousDays(_date);
            _nextHistories     = _historyService.GetItemsHistoryAfterThisDate(_date);

            foreach (var i in items)
            {
                DailyItem d = CreateRow(i);
                _perDays.Add(d);
            }

            dR.Records = _perDays;

            return(dR);
        }
Пример #3
0
        public DailyReportDTO GetDailyReport(DateTime startdate, DateTime enddate)
        {
            var query = from days in _db.Tracks
                        where (days.Date >= startdate.Date && days.Date <= enddate)
                        select days;


            var querylist = new List <Track>();

            foreach (var item in query)
            {
                querylist.Add(item);
            }


            var dataDTO = Mapper.Map <List <DailyReportDTO> >(querylist);


            var result = new DailyReportDTO()
            {
                TotalDistance = dataDTO.Sum(o => o.TotalDistance),
                TotalPrice    = dataDTO.Sum(o => o.TotalPrice),
                DrivesCount   = dataDTO.Count()
            };

            return(result);
        }
Пример #4
0
        public virtual async Task <DailyReportDTO> UpsertDailyReportAsync(int customerId, DateTime reportDate)
        {
            var consumedDishes = await _consumedDishRepository.GetItemsAsync(d => d.UserId == customerId && d.DateOfConsume == reportDate);

            var report = new DailyReportDTO()
            {
                ReportDate = reportDate
            };

            if (consumedDishes.Any())
            {
                var dbReport =
                    (await _reportRepository.GetItemsAsync(
                         i => i.UserId == customerId && i.ReportDate == reportDate, null, "User"))
                    .FirstOrDefault();

                dbReport ??= new DailyReport {
                    UserId = customerId, ReportDate = reportDate
                };

                _calculationService.CalculateDailyAmount(consumedDishes, dbReport);
                _dietService.ValidateDailyReport(dbReport);

                var result = 0;

                if (dbReport.Id > 0)
                {
                    result = await _reportRepository.UpdateItemAsync(dbReport);
                }
                else
                {
                    result = await _reportRepository.AddItemAsync(dbReport);

                    var customer = (result > 0) ? await _userRepository.GetItemAsync(customerId) : null;

                    dbReport.User = (result > 0) ? new User()
                    {
                        Name = customer.Name, Surname = customer.Surname
                    } : null;
                }

                if (result > 0 || dbReport.Id != 0)
                {
                    report = _mapper.Map <DailyReportDTO>(dbReport);
                }
            }
            else
            {
                report.HasWarnings = true;
                report.Warnings    = "There are no consume data for daily report!";
            }

            return(report);
        }
Пример #5
0
 public async Task <IActionResult> SaveDailyReport(DailyReportDTO dailyReport)
 {
     return(await AddItemResponseHandler(async() => await service.SaveDailyReport(dailyReport)));
 }
Пример #6
0
 public DailyReportDetailsMaker(XLWorkbook wb, DailyReportDTO dto)
 {
     _wb  = wb;
     _dto = dto;
 }
Пример #7
0
 public DailyReporter(DailyReportDTO dailyReport, string path)
 {
     _dailyReport = dailyReport;
     _path        = path;
 }