public IActionResult SetCommissionRate(CommissionViewModel commissionViewModel) { Guid currentUserGuid = Guid.Parse(HttpContext.User.Claims.FirstOrDefault(x => x.Type == "guid").Value); QrcodeSellerList guid = sellerContext.QrcodeSellerList.First(s => s.SellerId == commissionViewModel.SellerID); //权限验证 if (IsChild(guid.UserGuid, currentUserGuid) && (sellerContext.Commission.FirstOrDefault(x => x.UserGuid == currentUserGuid)?.Rate ?? 0.5) >= commissionViewModel.Rate) { Commission commission = new Commission() { Mtime = DateTime.Now, Rate = commissionViewModel.Rate, SellerId = commissionViewModel.SellerID, UserGuid = guid.UserGuid, CreatedBy = currentUserGuid, }; sellerContext.Commission.Add(commission); sellerContext.SaveChanges(); return(Ok()); } else { return(Forbid()); } }
public async Task <IActionResult> Details(int?id) { if (id == null) { return(NotFound()); } var commissionResult = await _context.Commission.SingleOrDefaultAsync(commission => commission.CommissionID == id); if (commissionResult == null) { return(NotFound()); } CommissionViewModel model = CreateCommissionViewModel(commissionResult); var members = await _context.CommissionMember .Where(commissionMember => commissionMember.CommissionID == commissionResult.CommissionID && commissionMember.Status == CommisionMemberStatus.Lid) .ToListAsync(); foreach (var member in members) { model.CommissionMembers.Add(member); model.Members .Add(_context.ApplicationUser .Find(member.ApplicationUserID)); } return(View(model)); }
public async Task <IActionResult> Index(IFormFile commissionReportFile, [FromServices] IHostingEnvironment hostingEnvironment) { var model = new CommissionViewModel(); if (commissionReportFile == null) { return(View(model)); } string fileName = $"{hostingEnvironment.WebRootPath}\\files\\"; var commissions = new List <CommissionDto>(); try { commissions = await CommissionModelHelper.ReadCommision(commissionReportFile, fileName, _userCompanyId); } catch (Exception ex) { model.ResultModel.Success = false; model.ResultModel.Message = ex.Message; return(View(model)); } return(View(await _modelService.AddRange(commissions, _userCompanyId))); }
public async Task <IActionResult> Approval() { var commissionsResult = await _context.Commission.ToListAsync(); var commissionViewModels = new List <CommissionViewModel>(); foreach (var commissionItem in commissionsResult) { CommissionViewModel model = CreateCommissionViewModel(commissionItem); var commissionMembersResult = await _context.CommissionMember .Where(comissionMember => comissionMember.CommissionID == commissionItem.CommissionID && comissionMember.Status == CommisionMemberStatus.Interesse) .ToListAsync(); // Skip commissions who don't have any members to approve if (commissionMembersResult.Where(comissionMember => comissionMember.Status == CommisionMemberStatus.Interesse).Count() > 0) { foreach (var member in commissionMembersResult) { ApplicationUser applicationUser = _context.ApplicationUser.Find(member.ApplicationUserID); // Don't make it possible to approve members who haven't been approved yet as a user if (applicationUser.Status == Status.Lid) { model.Members.Add(applicationUser); } model.CommissionMembers.Add(member); } commissionViewModels.Add(model); } } return(View(commissionViewModels)); }
public async Task <IActionResult> Edit(int id, CommissionViewModel model) { if (id != model.CommissionID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(CreateCommission(model)); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CommissionExists(model.CommissionID)) { return(NotFound()); } else { throw; } } return(RedirectToAction("Index")); } return(View(model)); }
public IActionResult Index() { var model = new CommissionViewModel(); model.ResultModel = null; return(View(model)); }
private Commission CreateCommission(CommissionViewModel model) { return(new Commission { CommissionID = model.CommissionID, Name = model.Name, Description = model.Description, }); }
public ActionResult Editar(string id) { CommissionBL oBL = new CommissionBL(); int pIntID = 0; int.TryParse(id, out pIntID); CommissionViewModel pCommissionViewModel = oBL.Obtener(pIntID); return(View(pCommissionViewModel)); }
public void Modificar(CommissionViewModel pCommissionViewModel) { commissions ocommissions = oRepositorio.FindById(pCommissionViewModel.commission_id); ocommissions.name = pCommissionViewModel.name; ocommissions.user_id_modified = pCommissionViewModel.user_id_modified; ocommissions.date_modified = DateTime.Now; oRepositorio.Update(ocommissions); oUnitOfWork.SaveChanges(); }
public async Task <IActionResult> Create(CommissionViewModel model) { if (ModelState.IsValid) { _context.Add(CreateCommission(model)); await _context.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(model)); }
public void Agregar(CommissionViewModel pCommissionViewModel) { commissions ocommissions = new commissions { commission_id = 0, name = pCommissionViewModel.name, date_created = DateTime.Now, user_id_created = pCommissionViewModel.user_id_created }; oRepositorio.Add(ocommissions); oUnitOfWork.SaveChanges(); }
public ActionResult Editar([Bind(Include = "commission_id,name")] CommissionViewModel pCommissionViewModel) { // TODO: Add insert logic here if (pCommissionViewModel == null) { return(HttpNotFound()); } CommissionBL oCommissionBL = new CommissionBL(); pCommissionViewModel.user_id_modified = AuthorizeUserAttribute.UsuarioLogeado().user_id; oCommissionBL.Modificar(pCommissionViewModel); return(RedirectToAction("Index")); }
public async Task <CommissionViewModel> AddRange(List <CommissionDto> commissions, int companyId) { var model = new CommissionViewModel(); try { if (commissions?.Count == 0) { model.ResultModel.Success = false; model.ResultModel.Message = "Hiç Kayıt Bulunamadı !"; return(model); } var commissionResult = await _service.AddRangeAsync(_mapper.Map <IEnumerable <Commission> >(commissions)); if (commissionResult.Any()) { IEnumerable <Order> orders = null; foreach (var item in commissionResult) { orders = await _orderService.Where(o => o.CompanyId == companyId && o.OrderNumber == item.OrderNumber); if (orders != null) { foreach (var orderItem in orders) { orderItem.CommissionId = item.Id; orderItem.CommissionStatus = true; _orderService.Update(orderItem); } } } } model.ResultModel.Success = true; model.ResultModel.Message = $"{commissions.Count} adet komisyon detayı başarılı bir şekilde yüklendi."; return(model); } catch (Exception ex) { model.ResultModel.Success = false; model.ResultModel.Message = $"HATA ! - HATA MESAJI : {ex.Message}"; return(model); } }
public ActionResult Crear([Bind(Include = "commission_id,name")] CommissionViewModel pCommissionViewModel) { // TODO: Add insert logic here if (pCommissionViewModel == null) { return(HttpNotFound()); } pCommissionViewModel.commission_id = 0; pCommissionViewModel.user_id_created = AuthorizeUserAttribute.UsuarioLogeado().user_id; CommissionBL oBL = new CommissionBL(); oBL.Agregar(pCommissionViewModel); return(RedirectToAction("Index")); }
public async Task <IActionResult> Update(Guid commissionId, [FromBody] CommissionViewModel commissionVM) { try { var userId = Guid.Parse(_httpContextAccessor.HttpContext.User.FindFirstValue("NameId")); var commissionDto = _mapper.Map <CommissionViewModel, CommissionDto>(commissionVM); commissionDto.LastModificationBy = userId; await _commissionUseCases.Update(commissionId, commissionDto); return(Ok("Commission successfully updated.")); } catch (KeyNotFoundException) { return(NotFound()); } }
public void Delete(CommissionViewModel commission) { throw new NotImplementedException(); }
public bool Update(CommissionViewModel commission) { return(true); }
public CommissionView(CommissionViewModel model) { InitializeComponent(); DataContext = model; }
public bool Create(CommissionViewModel commission) { commissions.Add(commission); return(true); }
public CommissionCollectionViewModel GetCommissionList(CommissionCollectionViewModel model = null, int userId = -1) { if (model == null) { model = new CommissionCollectionViewModel(); } // Get Commissions var query = (from po in _unitOfWork.GetRepository <Txn_PO>().GetQueryable(o => o.Status == 1 && model.SearchDateFrom <= o.PoDate && o.PoDate <= model.SearchDateTo) join pod in _unitOfWork.GetRepository <Txn_PODetail>().GetQueryable(o => o.Status == 1) on po.PoId equals pod.PoId join cd in _unitOfWork.GetRepository <Txn_CommissionDetail>().GetQueryable(o => o.Amount > 0) on pod.PoDetailId equals cd.PoDetailId join p in _unitOfWork.GetRepository <Mst_Profile>().GetQueryable() on cd.ProfileId equals p.ProfileId orderby po.PoDate descending select new CommissionViewModel { UserId = p.UserId, Role = cd.Position, PoDetail = new PoDetailModel { PoId = po.PoId, PoNumber = po.PoNumber, PoDate = po.PoDate, //PoFilePath = p.PoFilePath, //InvoiceFilePath = p.InvoiceFilePath, CustomerName = po.CustomerName, PoDetailId = pod.PoDetailId, ProductName = pod.ProductName, ProductBrand = pod.ProductBrand, ProductType = pod.ProductType, //PricePerUnit = pd.PricePerUnit, //ActualPricePerUnit = pd.ActualPricePerUnit, //Amount = pd.Amount, TotalPrice = pod.TotalPrice, //ActualTotalPrice = pd.ActualTotalPrice, //Tax = pd.Tax, //TransportLocation = pd.TransportLocation, //TransportFee = pd.TransportFee, //ParcelFee = pd.ParcelFee, //ServiceFee = pd.ServiceFee, //OtherFee = pd.OtherFee, //CustomerLead = pd.CustomerLead, //CustomerLeadPercentage = pd.CustomerLeadPercentage, //TotalCost = pd.TotalCost, //Profit = pd.Profit, //ProfitPercentage = pd.ProfitPercentage, //Remark = pd.Remark, //Status = pd.Status, }, CommissionDetail = new CommissionDetailModel { CommissionDetailId = cd.CommissionDetailId, PoDetailId = cd.PoDetailId, ProfileId = cd.ProfileId, Position = cd.Position, Rate = cd.Rate, Amount = cd.Amount, WdTax = 0, Total = 0, Tax = 0, NetTotal = 0 } }); // Set Where cause // -- UserId if (userId > 0) { query = query.Where(o => o.UserId == userId); } else if (model.SearchProfileId > 0) { query = query.Where(o => o.CommissionDetail.ProfileId == model.SearchProfileId); } // -- RoleId if (model.SearchRoleId >= 0) { query = query.Where(o => o.Role == model.SearchRoleId); } model.CommissionViewCollection = query.ToList(); // Mapping Id with lookup name for (int i = 0; i < model.CommissionViewCollection.Count; i++) { CommissionViewModel commission = model.CommissionViewCollection[i]; commission.RoleName = Helper.GetNameFromLookup(commission.Role, Helper.LookupPosition); model.CommissionViewCollection[i] = commission; } // Get Commission Detail for find the sale var listCommissionDetail = (from cd in _unitOfWork.GetRepository <Txn_CommissionDetail>().GetQueryable(o => o.Position == 1) join p in _unitOfWork.GetRepository <Mst_Profile>().GetQueryable() on cd.ProfileId equals p.ProfileId select new { cd.PoDetailId, p.FirstName, p.LastName }).ToList(); // Calculate tax and sum tootal decimal sumAllTotalPrice = decimal.Zero; decimal sumAllCommission = decimal.Zero; decimal sumAllWdTax = decimal.Zero; decimal sumAllTotal = decimal.Zero; decimal sumAllTax = decimal.Zero; decimal sumAllNetTotal = decimal.Zero; List <LookupModel> lookupProductType = Helper.LookupProductType; decimal tax = 0.03m; foreach (CommissionViewModel commission in model.CommissionViewCollection) { string productTypeValue = lookupProductType.FirstOrDefault(o => o.Key == commission.PoDetail.ProductType.ToString()).Value; string[] productTypeNameWithTax = productTypeValue.Split(new string[] { "__" }, StringSplitOptions.None); decimal taxPercentage = decimal.Parse(productTypeNameWithTax[1].Replace("%", "")); decimal wdtaxRate = taxPercentage / 100; // Calculate Date commission.PoDetail.ProductTypeName = productTypeNameWithTax[0]; commission.CommissionDetail.WdTax = commission.CommissionDetail.Amount * wdtaxRate; commission.CommissionDetail.Total = commission.CommissionDetail.Amount - commission.CommissionDetail.WdTax; commission.CommissionDetail.Tax = commission.CommissionDetail.Total * tax; commission.CommissionDetail.NetTotal = commission.CommissionDetail.Total - commission.CommissionDetail.Tax; // Sum Data sumAllTotalPrice += commission.PoDetail.TotalPrice; sumAllCommission += commission.CommissionDetail.Amount; sumAllWdTax += commission.CommissionDetail.WdTax; sumAllTotal += commission.CommissionDetail.Total; sumAllTax += commission.CommissionDetail.Tax; sumAllNetTotal += commission.CommissionDetail.NetTotal; // Set sales var temp = listCommissionDetail.FirstOrDefault(o => o.PoDetailId == commission.CommissionDetail.PoDetailId); commission.CommissionDetail.SalesName = temp.FirstName + " " + temp.LastName; } // Set Sum Data model.SumAllTotalPrice = sumAllTotalPrice; model.SumAllCommission = sumAllCommission; model.SumAllWdTax = sumAllWdTax; model.SumAllTotal = sumAllTotal; model.SumAllTax = sumAllTax; model.SumAllNetTotal = sumAllNetTotal; if (userId > 0 && model.CommissionViewCollection.Count > 0) { model.SearchProfileId = model.CommissionViewCollection[0].CommissionDetail.ProfileId; } return(model); }