示例#1
0
        public async Task <ResponseResult> CheckBangKe(DateTime date)
        {
            var result = new ResponseResult();

            try
            {
                var transportations = await _transportationRepo.Where(e => e.TransportDate.Month == date.Month &&
                                                                      e.TransportDate.Year == date.Year &&
                                                                      e.Status == CommonConstants.Status.Active);

                transportations = transportations.OrderBy(e => e.TransportDate);
                if (transportations.Count() > 0)
                {
                    ResponseResultHelper.MakeSuccess(result);
                }
                else
                {
                    ResponseResultHelper.MakeFailure(result, $"Tháng {date.Month}/{date.Year} không có dữ liệu");
                }
            }
            catch (Exception ex)
            {
                ResponseResultHelper.MakeException(result, ex);
            }
            return(result);
        }
        public async Task <ResponseResult> UpdateTransportationMoney(DateTime fromDate, DateTime toDate)
        {
            var result    = new ResponseResult();
            var trackings = new List <UpdateTransportationMoney>();

            try
            {
                if (fromDate.Date > toDate.Date)
                {
                    ResponseResultHelper.MakeFailure(result, "Từ ngày phải bé hơn Đến ngày");
                    return(result);
                }

                if (toDate.Month != fromDate.Month)
                {
                    ResponseResultHelper.MakeFailure(result, "Pham vi phải trong vòng 1 tháng");
                    return(result);
                }

                var transportations = _repo.AsQueryable().Where(t => t.Status == CommonConstants.Status.Active && fromDate.Date <= t.TransportDate.Date && t.TransportDate.Date <= toDate.Date).ToList();

                if (!transportations.Any())
                {
                    ResponseResultHelper.MakeFailure(result, "Không tìm thấy dữ liệu");
                    return(result);
                }
                var datetime = DateTime.UtcNow;
                foreach (var transportation in transportations)
                {
                    var obj = new UpdateTransportationMoney();
                    obj.TransportationId   = transportation.Id;
                    obj.OldMoney           = transportation.Money;
                    obj.TransportationDate = transportation.TransportDate;

                    var companyIds = JsonConvert.DeserializeObject <List <int> >(transportation.CompanyIds);
                    var newMoney   = await GenerateMoney(companyIds, transportation.CarId);

                    transportation.Money       = newMoney.Data;
                    transportation.UpdatedDate = datetime;
                    transportation.UpdatedBy   = contextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value;

                    obj.NewMoney = newMoney.Data;
                    trackings.Add(obj);
                }

                var saveChange = await _repo.SaveChanges(result);

                if (saveChange)
                {
                    result.Data = trackings;
                    ResponseResultHelper.MakeSuccess(result, "Cập nhập giá thành công");
                }
            }
            catch (Exception ex)
            {
                ResponseResultHelper.MakeException(result, ex);
            }
            return(result);
        }
        public async Task <ResponseResult> Filter(DateTime fromDate, DateTime toDate)
        {
            var result = new ResponseResult();

            try
            {
                if (fromDate.Date > toDate.Date)
                {
                    ResponseResultHelper.MakeFailure(result, "Từ ngày phải bé hơn Đến ngày");
                    return(result);
                }

                if ((toDate.Date - fromDate.Date).TotalDays > 92)
                {
                    ResponseResultHelper.MakeFailure(result, "Pham vi lọc phải bé hơn 3 tháng");
                    return(result);
                }


                //var query = await _repo.Where(tr => fromDate.Date <= tr.TransportDate.Date && tr.TransportDate.Date <= toDate.Date && tr.Status != CommonConstants.Status.Deleted);
                //var transportations = query.OrderBy(tr=>tr.DocumentNumber).ToList();


                //var transportationGetAllViewModels = new List<TransportationGetAllViewModel>();

                //foreach (var transportation in transportations)
                //{
                //    _repo.EntryReference(transportation, e => e.Car);
                //    _repo.EntryReference(transportation, e => e.DriverPrimary);
                //    _repo.EntryReference(transportation, e => e.DriverSecondary);

                //    var newRecord = _mapper.Map<Transportation, TransportationGetAllViewModel>(transportation);
                //    var companiesString = new List<string>();
                //    var companyIds = JsonConvert.DeserializeObject<List<int>>(transportation.CompanyIds);
                //    foreach (var companyId in companyIds)
                //    {
                //        var company = await _companyRepo.GetById(companyId);
                //        if (company != null)
                //        {
                //            companiesString.Add($"{company.Code}|{company.Name}");
                //        }
                //    }


                //    newRecord.Companies = string.Join(" - ", companiesString);
                //    transportationGetAllViewModels.Add(newRecord);
                //}
                var dbConnectionSQL = DbConnectionSQL.Instance();
                var dbCommand       = dbConnectionSQL.GetCommand(dbConnectionSQL.GetConnection(), "TransportationFilter", CommandType.StoredProcedure);
                var parameters      = new List <DbParameter>();

                var fromDateParam = dbCommand.CreateParameter();
                fromDateParam.DbType        = DbType.Date;
                fromDateParam.ParameterName = "FromDate";
                fromDateParam.Value         = fromDate.Date;
                parameters.Add(fromDateParam);

                var toDateParam = dbCommand.CreateParameter();
                toDateParam.DbType        = DbType.Date;
                toDateParam.ParameterName = "ToDate";
                toDateParam.Value         = toDate.Date;
                parameters.Add(toDateParam);



                var dataTable = dbConnectionSQL.ExecuteTable("TransportationFilter", parameters);
                var transportationGetAllViewModels = dbConnectionSQL.ConvertDataTableToList <TransportationGetAllViewModel>(dataTable);
                var pagination = new Pagination();
                pagination.Records      = transportationGetAllViewModels;
                pagination.TotalRecords = transportationGetAllViewModels.Count;

                result.Data = pagination;
                ResponseResultHelper.MakeSuccess(result);
            }
            catch (Exception ex)
            {
                ResponseResultHelper.MakeException(result, ex);
            }
            return(result);
        }