Пример #1
0
 public static ReportOrderVM GetFromOrder(Order order)
 {
     return(new ReportOrderVM
     {
         Order = ReportOrderDetails.FromOrder(order),
         Users = ReportOrderLabor_User.GetFromOrder(order),
         Months = ReportOrderLabor_Month.GetFromOrder(order),
         Materials = order.Materials.ToArray().OrderBy(x => x.Supplier).ThenByDescending(x => x.Date),
     });
 }
Пример #2
0
        public static IEnumerable <ReportOrderLabor_User> GetFromOrder(Order order, int Year = 0, int Month = 0)
        {
            var wOrders   = (Year == 0 || Month == 0) ? order.WorkOrders : order.WorkOrders.Where(x => x.Date.Year == Year && x.Date.Month == Month).ToArray();
            var wVehicles = (Year == 0 || Month == 0) ? order.WorkVehicles : order.WorkVehicles.Where(x => x.Date.Year == Year && x.Date.Month == Month).ToArray();
            var users     = wOrders.Select(x => x.User).Union(wVehicles.Select(x => x.User)).ToArray();

            return(users.Select(u => {
                var rep = new ReportOrderLabor_User();
                rep.UserId = u.UserId;
                rep.UserInfo = u.LastName + " " + u.FirstName;
                var woUsr = wOrders.Where(wo => wo.UserId == u.UserId).ToArray();
                rep.HoursApproved = TimeSpan.FromSeconds(woUsr.Where(x => x.Approved).Sum(wo => wo.Hours.TotalSeconds));
                rep.HoursNotApproved = TimeSpan.FromSeconds(woUsr.Where(x => !x.Approved).Sum(wo => wo.Hours.TotalSeconds));
                rep.Cost_Hours = woUsr.Where(x => x.Approved).Sum(x => x.Cost);
                rep.Cost_Vehicles = wVehicles.Where(wv => wv.UserId == u.UserId && wv.Approved).Sum(wv => wv.Cost_Total);
                rep.Cost_Expenses = 0;
                return rep;
            }).ToArray()
                   .OrderBy(x => x.UserInfo));
        }
Пример #3
0
        public static IEnumerable <ReportOrderLabor_Month> GetFromOrder(Order order)
        {
            var YearsMonths = order.WorkOrders.Select(x => new { Year = x.Date.Year, Month = x.Date.Month })
                              .Union(order.WorkVehicles.Select(x => new { Year = x.Date.Year, Month = x.Date.Month }));

            return(YearsMonths.Select(x => {
                var rep = new ReportOrderLabor_Month();
                rep.Year = x.Year;
                rep.Month = x.Month;
                rep.Users = ReportOrderLabor_User.GetFromOrder(order, x.Year, x.Month);
                rep.HoursApproved = TimeSpan.FromSeconds(rep.Users.Sum(u => u.HoursApproved.TotalSeconds));
                rep.HoursNotApproved = TimeSpan.FromSeconds(rep.Users.Sum(u => u.HoursNotApproved.TotalSeconds));
                rep.Cost_Hours = rep.Users.Sum(u => u.Cost_Hours);
                rep.Cost_Vehicles = rep.Users.Sum(u => u.Cost_Vehicles);
                rep.Cost_Expenses = rep.Users.Sum(u => u.Cost_Expenses);
                return rep;
            })
                   .ToArray()
                   .OrderByDescending(x => x.Year)
                   .ThenByDescending(x => x.Month));
        }