| | |
| | | Expression<Func<Order, bool>> expression = t => true; |
| | | |
| | | expression = expression.And(t => t.IsDeleted == false && t.IsEn == true && t.OrderStatus == 0); |
| | | expression = expression.And(t => t.WordStartTime >= DateTime.Now.Date.AddDays(-30)); |
| | | // expression = expression.And(t => t.WordEndTime >= DateTime.Now.Date.AddDays(-30)); |
| | | if (!string.IsNullOrEmpty(page.OrderName)) |
| | | { |
| | | expression = expression.And(t => t.OrderName.Contains(page.OrderName)); |
| | |
| | | { |
| | | switch (orderDto.OrderStatus) |
| | | { |
| | | case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "发布"; break; |
| | | case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "发布中"; break; |
| | | case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "招工完毕"; break; |
| | | case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "结算完毕"; break; |
| | | default: break; |
| | |
| | | var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); |
| | | var userRes = new BaseRepository<User>(); |
| | | var order = await orderRes.GetByIdAsync(orderid); |
| | | if (order.IsDeleted == true) |
| | | { |
| | | throw Oops.Oh("订单已经删除无法查看!"); |
| | | } |
| | | orderDto = _mapper.Map<OrderDto>(order); |
| | | switch (orderDto.OrderStatus) |
| | | { |
| | | case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "发布"; break; |
| | | case (int)OrderStatuses.fabu: orderDto.OrderStatusName = "发布中"; break; |
| | | case (int)OrderStatuses.zhaogongwanbi: orderDto.OrderStatusName = "招工完毕"; break; |
| | | case (int)OrderStatuses.jiesuanwanbi: orderDto.OrderStatusName = "结算完毕"; break; |
| | | default: break; |
| | |
| | | } |
| | | } |
| | | |
| | | orderBiddings = orderBiddings.Where(x => (x.IsSelected == null || x.IsSelected != false)).ToList(); |
| | | orderBiddings = orderBiddings.Where(x => (x.IsSelected == null || x.IsSelected != false)).OrderBy(x=>x.IsSelected).ThenByDescending(x=>x.IsCollect).ToList(); |
| | | var orderBiddingDtos = _mapper.Map<List<OrderBiddingDto>>(orderBiddings); |
| | | if(orderBiddingDtos != null&& orderBiddingDtos.Count > 0) |
| | | { |
| | |
| | | |
| | | RefAsync<int> total = 0; |
| | | |
| | | |
| | | var orderBiddingDetailCheckRepository = new BaseRepository<OrderBiddingDetailCheck>(); |
| | | var orderBiddingWorkPriceRepository = new BaseRepository<OrderBiddingWorkPrice>(); |
| | | var orderBiddingRes = new BaseRepository<OrderBidding>(); |
| | | |
| | | var data = await orderRepository.Context.Queryable<Order, OrderBidding, OrderBiddingDetail ,UserCompany>((a, b ,c ,d) => |
| | | new JoinQueryInfos(JoinType.Inner, a.Id == b.OrderId , |
| | | JoinType.Inner, b.Id == c.OrderBiddingId , |
| | | JoinType.Inner, a.OrderUserId == d.UserId |
| | | )) |
| | | .Where((a, b, c, d) => a.IsEn == true && a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false |
| | | && b.IsSelected == true && b.WorkerUserId == userid && d.IsEn == true && d.IsDeleted == false ) |
| | | .Where((a, b, c, d) => a.IsDeleted == false && b.IsEn == true && b.IsDeleted == false && c.IsEn == true && c.IsDeleted == false |
| | | && b.IsSelected == true && b.WorkerUserId == userid && d.IsEn == true && d.IsDeleted == false) //a.IsEn == true && |
| | | .WhereIF(page.WordDate.HasValue, (a, b, c, d) => (c.WorkDate == page.WordDate)) |
| | | .WhereIF(page.WordDateStart.HasValue, (a, b, c, d) => (c.WorkDate >= page.WordDateStart)) |
| | | .WhereIF(page.WordDateEnd.HasValue, (a, b, c, d) => (c.WorkDate <= page.WordDateEnd)) |
| | |
| | | WorkCount = c.WorkCount, |
| | | Suppliername = d.Suppliername, |
| | | OrderBiddingId = c.OrderBiddingId, |
| | | IsGuding = b.IsGuding, |
| | | }) |
| | | |
| | | .ToPageListAsync(page.PageIndex, page.PageSize, total); |
| | |
| | | string DakaMingxi = ""; |
| | | int hours = 0; |
| | | int minutes = 0; |
| | | |
| | | int jiabanhours = 0; |
| | | int jiabanminutes = 0; |
| | | |
| | | for (int i = 0; i < orderBiddingDetailChecks.Count; i++) |
| | | { |
| | | |
| | |
| | | hours += timeDifference.Hours; |
| | | minutes += timeDifference.Minutes; |
| | | |
| | | // 获取当前时间 |
| | | DateTime now = DateTime.Now; |
| | | |
| | | // 创建一个表示晚上8点的时间(假定今天) |
| | | DateTime eveningTime = new DateTime(now.Year, now.Month, now.Day, 20, 0, 0); // 20:00:0 |
| | | //计算是否为晚上8点后的加班时间 |
| | | if (orderBiddingDetailChecks[i].Checktime.Value > eveningTime) |
| | | { |
| | | var timeDifferencejiaban = orderBiddingDetailChecks[i].Checktime.Value - eveningTime; |
| | | jiabanhours += timeDifferencejiaban.Hours; |
| | | jiabanminutes += timeDifferencejiaban.Minutes; |
| | | } |
| | | } |
| | | } |
| | | //如果当天还没有填写申请,则计算工作时间和工资 |
| | | if(dakaDto.IsShenPi == 0) |
| | | { |
| | | var orderBidding = await orderBiddingRes.GetByIdAsync(dakaDto.OrderBiddingId); |
| | | //当前有效的工价 |
| | | var orderBiddingWorkPrice = (await orderBiddingWorkPriceRepository.GetListAsync(x => x.OrderBiddingId == dakaDto.OrderBiddingId && x.IsEn == true && x.IsDeleted == false && x.EffectTime <= dakaDto.WorkDate)).OrderByDescending(x => x.Id).FirstOrDefault(); |
| | | if (orderBiddingWorkPrice != null) |
| | | { |
| | | dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; |
| | | //如果为半固定的临时工,工价固定11块 |
| | | if (orderBidding != null && orderBidding.IsGuding.HasValue && orderBidding.IsGuding.Value == true) |
| | | { |
| | | dakaDto.WorkPrice = 11; |
| | | } |
| | | else |
| | | { |
| | | dakaDto.WorkPrice = orderBiddingWorkPrice.WorkPrice; |
| | | } |
| | | } |
| | | dakaDto.WorkTime = hours+(minutes/60); |
| | | if(dakaDto.WorkerType == 0) |
| | | { |
| | | dakaDto.TodaySalary = dakaDto.WorkTime * dakaDto.WorkPrice; |
| | | |
| | | //如果为半固定的临时工,加班每个小时增加4块钱 |
| | | if (orderBidding != null && orderBidding.IsGuding.HasValue && orderBidding.IsGuding.Value == true) |
| | | { |
| | | var jiabanshijian = jiabanhours + (jiabanminutes / 60); |
| | | dakaDto.TodaySalary += (jiabanshijian * 4); |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | orderDakaMingxiDto.WorkPrice = order.WorkPrice; |
| | | orderDakaMingxiDto.TodaySalary = orderBiddingDetail.TodaySalary; |
| | | orderDakaMingxiDto.IsShenPi = orderBiddingDetail.IsShenPi; |
| | | orderDakaMingxiDto.ShenPitime = orderBiddingDetail.ShenPitime; |
| | | orderDakaMingxiDto.WorkCount = orderBiddingDetail.WorkCount; |
| | | orderDakaMingxiDto.WorkerUserId = orderBidding.WorkerUserId; |
| | | var user = await userRes.GetByIdAsync(orderDakaMingxiDto.WorkerUserId); |
| | |
| | | var order = await orderRes.GetByIdAsync(orderBidding.OrderId); |
| | | |
| | | |
| | | if (order == null || order.OrderStatus > 1 || order.IsDeleted == true || order.IsEn == false ) |
| | | if (order == null || order.OrderStatus > 1 || order.IsDeleted == true)// || order.IsEn == false |
| | | { |
| | | throw Oops.Oh("该招工状态已无法打卡确认!"); |
| | | } |