Example #1
0
        // Начисление заработной платы
        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);
            }
        }
Example #2
0
 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
        }
Example #4
0
        // Выбор Администратора
        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);
        }
Example #5
0
        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);
                }
            }
        }
Example #6
0
        // Начисление заработной платы за оформление заказа (хранения шин)
        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);
        }
Example #7
0
        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);
                    }
                }
            }
        }
Example #8
0
        // Начисление ЗП за хранение шин
        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();
 }