// Начисление заработной платы public async Task Payroll(OrderServicesCarWashBll order, IEnumerable <OrderCarWashWorkersBll> idBrigade, int serveses) { OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); var resultСortege = CountEmployeesAndCheckPayroll(order, idBrigade); var resultDiscont = Discont(order); foreach (var item in idBrigade) { if (resultСortege.Item2 == false) { orderCarWashWorkers.IdCarWashWorkers = item.IdCarWashWorkers; orderCarWashWorkers.IdOrder = order.Id; orderCarWashWorkers.CalculationStatus = false; orderCarWashWorkers.closedDayStatus = false; orderCarWashWorkers.typeServicesId = StatusTypeServises(serveses, 2); // изменить } else { orderCarWashWorkers = item; } var orderPrice = resultDiscont >= 50 ? order.TotalCostOfAllServices : order.DiscountPrice; orderCarWashWorkers.Payroll = await PercentOfTheOrder(item.IdCarWashWorkers, resultСortege.Item1, orderPrice, false, orderCarWashWorkers.typeServicesId.Value); await SaveResult(orderCarWashWorkers, resultСortege.Item2); } }
private async Task SaveResult(OrderCarWashWorkersBll orderCarWashWorkers, bool checkPayroll) { if (checkPayroll) { await _orderCarWashWorkers.Update(orderCarWashWorkers); } else { await _orderCarWashWorkers.Insert(orderCarWashWorkers); } }
public void PayAllEmployees(IEnumerable <OrderInfoViewBll> Salary) // IEnumerable<OrderInfoViewBll> Salary - del { var OrderCarWashWorkersWhere = Mapper.Map <IEnumerable <OrderCarWashWorkersBll> >(_unitOfWork.OrderCarWasWorkersUnitOFWork.GetWhere(x => x.CalculationStatus == false)); OrderCarWashWorkersBll CloseSalaryAll = new OrderCarWashWorkersBll(); CostsBll costs = new CostsBll(); foreach (var item in OrderCarWashWorkersWhere) { CloseSalaryAll.Id = item.Id; CloseSalaryAll.IdOrder = item.IdOrder; CloseSalaryAll.IdCarWashWorkers = item.IdCarWashWorkers; CloseSalaryAll.CalculationStatus = true; OrderCarWashWorkers orderCarWash = Mapper.Map <OrderCarWashWorkersBll, OrderCarWashWorkers>(CloseSalaryAll); _unitOfWork.OrderCarWasWorkersUnitOFWork.Update(orderCarWash); _unitOfWork.Save(); } //_costServices.AddCost(Salary.Sum(x => x.Expr1)); //costs.Type = 1; //costs.Name = "Выплата заработной платы для всех сотрудников"; //costs.expenses = Salary.Sum(x => x.Expr1); //costs.Date = DateTime.Now; //Costs teamSalary = Mapper.Map<CostsBll, Costs>(costs); //_unitOfWork.CostsUnitOfWork.Insert(teamSalary); //_unitOfWork.Save(); #region заполнение таблицы WageBll //List<WageBll> Wage = new List<WageBll>(); //foreach (var item in Salary) //{ // Wage.Add(new WageBll // { // IdCarWashWorkers = item.id, // CostsId = teamSalary.Id // }); //} //IEnumerable<Wage> wages = Mapper.Map<IEnumerable<WageBll>, IEnumerable<Wage>>(Wage); //_unitOfWork.WageUnitOfWork.Insert(wages.ToList()); //_unitOfWork.Save(); #endregion }
// Выбор Администратора private async Task ChoiceAdministrator(int adminСategory, int idOrder, double?orderPrice, int serveses, int idAdmin, bool update) { OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); orderCarWashWorkers.IdOrder = idOrder; orderCarWashWorkers.IdCarWashWorkers = idAdmin; orderCarWashWorkers.CalculationStatus = false; orderCarWashWorkers.typeServicesId = StatusTypeServises(serveses, 1); // изменить orderCarWashWorkers.Payroll = await PercentOfTheOrder(idAdmin, 1, orderPrice, true, orderCarWashWorkers.typeServicesId.Value); orderCarWashWorkers.closedDayStatus = false; await SaveResult(orderCarWashWorkers, update); }
public async Task CurrentShift() { var ordersFulfilled = await _orderCarWashWorkers.SampleForPayroll(DateTime.Now); var DayClose = await _dayResult.DayResultViewInfo(); OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); foreach (var itemShift in DayClose) { var resultShift = ordersFulfilled.Where(x => x.IdCarWashWorkers == itemShift.carWashWorkersId); foreach (var itemOrder in resultShift) { orderCarWashWorkers.Id = itemOrder.Id; orderCarWashWorkers.IdOrder = itemOrder.IdOrder; orderCarWashWorkers.IdCarWashWorkers = itemOrder.IdCarWashWorkers; orderCarWashWorkers.CalculationStatus = false; orderCarWashWorkers.Payroll = itemOrder.Payroll; orderCarWashWorkers.closedDayStatus = true; orderCarWashWorkers.typeServicesId = itemOrder.typeServicesId; await _orderCarWashWorkers.UpdateOrderCarWashWorkers(orderCarWashWorkers); } var resultCarWashWorkers = await _carWashWorkers.CarWashWorkersId(itemShift.carWashWorkersId); var InterestRate = (double)resultCarWashWorkers.InterestRate.Value / 100; if (resultCarWashWorkers.IdPosition >= 3) { await _bonusModules.PremiumAccrual(itemShift.carWashWorkersId, itemShift.payroll.Value / InterestRate); } else { var bonusAdmin = await _orderCarWashWorkers.SampleForPayroll(itemShift.carWashWorkersId, DateTime.Now); var test1 = bonusAdmin.Where(x => x.typeServicesId == 4).Sum(s => s.Payroll); var test2 = bonusAdmin.Where(x => x.typeServicesId == 6).Sum(s => s.Payroll); var test3 = bonusAdmin.Where(x => x.typeServicesId == 8).Sum(s => s.Payroll); var test4 = bonusAdmin.Where(x => x.typeServicesId == 10).Sum(s => s.Payroll); var result = test1 + test2 + test3 + test4; // await _bonusModules.PremiumAccrual(itemShift.carWashWorkersId, itemShift.payroll.Value / InterestRate); await _bonusModules.PremiumAccrual(itemShift.carWashWorkersId, result.Value / InterestRate); } } }
// Начисление заработной платы за оформление заказа (хранения шин) public async Task AdminWageTireStorage(int idOrder, int quantityTire) { var category = await _brigadeForToday.GetDateTimeNow(); var adminSelectionByCategory = category.Single(x => x.StatusId == 1); OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); orderCarWashWorkers.IdOrder = idOrder; orderCarWashWorkers.IdCarWashWorkers = adminSelectionByCategory.IdCarWashWorkers.Value; orderCarWashWorkers.CalculationStatus = false; orderCarWashWorkers.Payroll = 5 * quantityTire; orderCarWashWorkers.closedDayStatus = false; orderCarWashWorkers.typeServicesId = 7; await _orderCarWashWorkers.Insert(orderCarWashWorkers); }
private async Task ChoiceAdministrator(OrderServicesCarWashBll order, double?orderPrice, bool update) { OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); foreach (var item in order.OrderCarWashWorkers) { var payroll = item.Payroll; if (item.typeServicesId <= 2 || item.typeServicesId == 11) { orderCarWashWorkers = item; orderCarWashWorkers.Payroll = await PercentOfTheOrder(item.CarWashWorkers.id, 1, orderPrice, true, orderCarWashWorkers.typeServicesId.Value); if (item.Payroll == orderCarWashWorkers.Payroll) { await SaveResult(orderCarWashWorkers, update); } } } }
// Начисление ЗП за хранение шин public async Task Payroll(int idOrder, int idBrigade, int idAdmin, ReviwOrderModelBll reviwOrder) // ??? срочно проверить оформление заказа шин { var amountOfCurrentOrder = reviwOrder.priceSilicone + reviwOrder.priceWheelWash; OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); orderCarWashWorkers.IdCarWashWorkers = idBrigade; orderCarWashWorkers.IdOrder = idOrder; orderCarWashWorkers.CalculationStatus = false; orderCarWashWorkers.typeServicesId = StatusTypeServises(8, 2); // изменить orderCarWashWorkers.Payroll = await PercentOfTheOrder(idBrigade, 1, amountOfCurrentOrder, false, orderCarWashWorkers.typeServicesId.Value); orderCarWashWorkers.closedDayStatus = false; await _orderCarWashWorkers.Insert(orderCarWashWorkers); orderCarWashWorkers.IdCarWashWorkers = idAdmin; orderCarWashWorkers.typeServicesId = StatusTypeServises(7, 1); // изменить orderCarWashWorkers.Payroll = await PercentOfTheOrder(idAdmin, 1, amountOfCurrentOrder, true, orderCarWashWorkers.typeServicesId.Value); await _orderCarWashWorkers.Insert(orderCarWashWorkers); }
public async Task CurrentShift(DateTime date) { var ordersFulfilled = await TableCalculationStatusFolse(); var ordersFulfilledWhere = ordersFulfilled.Where(x => x.OrderServicesCarWash.ClosingData?.ToString("dd.MM.yyyy") == date.ToString("dd.MM.yyyy")); if (DateTime.Now != date) { statusFalse = ordersFulfilledWhere.Any(x => x.CalculationStatus == false); } if (statusFalse) { var DayClose = await DayResultViewInfo(); OrderCarWashWorkersBll orderCarWashWorkers = new OrderCarWashWorkersBll(); foreach (var itemShift in DayClose) { var resultShift = ordersFulfilledWhere.Where(x => x.IdCarWashWorkers == itemShift.carWashWorkersId); foreach (var itemOrder in resultShift) { orderCarWashWorkers.Id = itemOrder.Id; orderCarWashWorkers.IdOrder = itemOrder.IdOrder; orderCarWashWorkers.IdCarWashWorkers = itemOrder.IdCarWashWorkers; orderCarWashWorkers.CalculationStatus = false; orderCarWashWorkers.Payroll = itemOrder.Payroll; orderCarWashWorkers.closedDayStatus = true; orderCarWashWorkers.typeServicesId = itemOrder.typeServicesId; OrderCarWashWorkers orderCarWash = Mapper.Map <OrderCarWashWorkersBll, OrderCarWashWorkers>(orderCarWashWorkers); _unitOfWork.OrderCarWasWorkersUnitOFWork.Update(orderCarWash); await _unitOfWork.Save(); } } } }
public async Task <ActionResult> ChangeEmployee(int?idOrder, int?idBrigade, int?idEmployee) { if (idBrigade == null) { return(RedirectToAction("EditingStaffOnOrder", "CarWashWorkersViews", new RouteValueDictionary(new { idOrder = idOrder, idEmployee = idEmployee }))); } else { OrderCarWashWorkersView order = Mapper.Map <OrderCarWashWorkersView>(await _orderCarWash.Change(idOrder, idEmployee)); order.IdCarWashWorkers = idBrigade.Value; OrderCarWashWorkersBll carWashWorkersBll = Mapper.Map <OrderCarWashWorkersView, OrderCarWashWorkersBll>(order); await _orderCarWash.Update(carWashWorkersBll); } return(RedirectToAction("CompletedOrders", "Order", new RouteValueDictionary(new { idOrder = idOrder }))); }
public OrderCarWashWorkers TransformAnEntity(OrderCarWashWorkersBll entity) => Mapper.Map <OrderCarWashWorkersBll, OrderCarWashWorkers>(entity);
public async Task Update(OrderCarWashWorkersBll elementToUpdate) { _unitOfWork.OrderCarWasWorkersUnitOFWork.Update(TransformAnEntity(elementToUpdate)); await _unitOfWork.Save(); }
public async Task Insert(OrderCarWashWorkersBll element) { _unitOfWork.OrderCarWasWorkersUnitOFWork.Insert(TransformAnEntity(element)); await _unitOfWork.Save(); }