public dynamic GetRootNav(ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { SessionManager.DoWork(ss => { var userinfo = ContextProvider.GetUserInfo(principal); var menus = ss.Query <SysNav>().Where(w => w.Active == true && w.Icon != null && w.Icon.Trim() != "" && w.ParentId == Guid.Parse("10000000-0000-0000-0000-000000000000")).ToList(); var root = (from _menu in menus select new { _menu.Id, _menu.Name, _menu.Icon, _menu.Position, _menu.Url }); result = root.ToList().OrderBy(o => o.Position).ToList(); }); } catch (Exception) { } return(result); }
public dynamic ChangePassword(ClaimsPrincipal principal, string pass) { dynamic result = new ExpandoObject(); bool IsPassDif = true; int status = 0; string infoError = ""; string infoSuccess = ""; try { SessionManager.DoWork(ss => { var getInfoUser = ContextProvider.GetUserInfo(principal); var user = ss.Query <User>().SingleOrDefault(p => p.Id == getInfoUser.Id); if (user != null && pass != null) { var rel = CheckChangePass(user, pass, IsPassDif, infoSuccess, infoError, status); status = rel.Status; infoSuccess = rel.InfoSuccess; infoError = rel.InfoError; } }); } catch (Exception ex) { infoError = ex.Message; status = 3; } result.Status = status; result.InfoSuccess = infoSuccess; result.InfoError = infoError; return(result); }
public string Post(Unit obj, ClaimsPrincipal principal) { var result = string.Empty; SessionManager.DoWork(ss => { try { //var userDTO = ContextProvider.Get(); var userDTO = ContextProvider.GetUserInfo(principal); if (ss.Query <Unit>().SingleOrDefault(p => p.Code == obj.Code) == null) { ss.Save(new Unit { Id = Guid.NewGuid(), Code = obj.Code, Name = obj.Name, CreatedBy = userDTO.Id, CreatedDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), }); result = "Thành công"; } else { result = $"{obj.Code} đã được sử dụng!\nAnh/Chị vui lòng kiểm tra lại."; } } catch (Exception ex) { Console.WriteLine(ex.Message); result = ex.Message; } }); return(result); }
public dynamic Get(string url, ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { SessionManager.DoWork(ss => { var userinfo = ContextProvider.GetUserInfo(principal); var nav = ss.Query <SysNav>().Where(s => s.Url == url && s.Active == true).FirstOrDefault(); if (nav != null) { var permisionDetail = ss.Query <PermisionDetail>().Where(s => s.NavId == nav.Id && s.CheckAction == true).ToList(); var user = ss.Query <User>().Where(s => s.Id == userinfo.Id).ToList(); var permision = (from _permisionDetail in permisionDetail join _user in user on _permisionDetail.PermisionId equals _user.PermisionId select new { _permisionDetail.CheckAction, _permisionDetail.ActionName, _permisionDetail.ActionCode }); result = permision.ToList(); } }); } catch (Exception) { } return(result); }
public dynamic TonKho(ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); var userinfo = ContextProvider.GetUserInfo(principal); try { SessionManager.DoWork(ss => { var lstOrgan = ss.Query <Organization>().ToList(); var lstPromotion = ss.Query <Promotion>().ToList(); var lstGift = ss.Query <Gift>().ToList(); result = ss.Query <Store>().Where(s => s.DepartmentId == userinfo.OrganizationId) .Select(p => new { DepartmentName = ContextProvider.GetOrganizationName(lstOrgan, p.DepartmentId), PromotionName = ContextProvider.GetPromotionName(lstPromotion, p.PromotionId), GiftName = ContextProvider.GiftName(lstGift, p.GiftId), p.Amount, p.UpdatedDate }).ToList(); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } return(result); }
public List <dynamic> GetBranchReport(ClaimsPrincipal principal) { var lstResults = new List <dynamic>(); var userinfo = ContextProvider.GetUserInfo(principal); var isTypeUser = ContextProvider.CheckPermission(userinfo.PermisionId); try { SessionManager.DoWork(ss => { var list = ss.Query <Organization>().Where(p => p.ManageCode == "CN").ToList(); if (isTypeUser != 1 && isTypeUser != 2) { list = list.Where(w => w.Id == userinfo.Organization.Id).ToList(); } lstResults = list.Select(p => (dynamic) new { p.Id, p.Name, p.Code, p.ManageCode, p.ParentId, p.Address, p.Region, value = p.Id, label = p.Name }).ToList(); }); } catch (Exception ex) { } return(lstResults); }
// ông lãnh đạo đồng ý. public string BrowseLeader(ISession ss, Guid transferId, Stage stage, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { var transfer = ss.Get <TransferGift>(transferId); transfer.Status = (int)ContextProvider.statusTransfer.Approve; if (stage.Name == "End Stage") { transfer.IsComplete = true; } var transferlog = ss.Query <TransferGiftLog>() .Single(p => p.TransferGift.Id == transferId && p.Stage.Id == stage.Id && p.AssignDeaprtmentId == userinfo.Organization.Id); transferlog.AssignUserId = userinfo.Id; transferlog.Status = transfer.Status; transferlog.UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); var receivingDepartmentId = ss.Query <ReceivingDepartment>().Single(p => p.TransferGift.Id == transferId).DepartmentId; result = _storeService.HandlerInput(ss, transferId, receivingDepartmentId); if (string.IsNullOrEmpty(result)) { result = "Duyệt thành công!"; } } catch (Exception ex) { result = ex.Message; } return(result); }
public string BrowseLeaderCNN(Guid transferId, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { SessionManager.DoWork(ss => { var transfer = ss.Get <TransferGift>(transferId); var stage = ss.Query <Workflow>().Single(p => p.ProductId == transfer.Product.Id && p.UserId == userinfo.Id).Stage; if (stage == "Last Stage") { transfer.IsComplete = true; } var transferlog = ss.Query <TransferGiftLog>() .Where(p => p.TransferGift.Id == transferId && p.AssignUserId == userinfo.Id) .OrderByDescending(p => p.UpdateDate).First(); transferlog.UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); var receivingDepartmentId = ss.Query <ReceivingDepartment>().Single(p => p.TransferGift.Id == transferId).DepartmentId; result = _storeService.HandlerOrganization(ss, transferId, transfer.DepartmentId.GetValueOrDefault(), receivingDepartmentId); if (string.IsNullOrEmpty(result)) { result = "Browse Success"; } }); } catch (Exception ex) { result = ex.Message; } return(result); }
public string BrowseLeaderQLBH(ISession ss, Guid transferId, Stage stage, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { var transfer = ss.Get <TransferGift>(transferId); if (stage.Name == "Last Stage") { transfer.IsComplete = true; } var transferlog = ss.Query <TransferGiftLog>() .Single(p => p.TransferGift.Id == transferId && p.Stage.Id == stage.Id && p.AssignDeaprtmentId == userinfo.Organization.Id); transferlog.AssignUserId = userinfo.Id; transferlog.UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); var receivingPromotionId = ss.Query <ReceivingPromotion>().Single(p => p.TransferGift.Id == transferId).PromotionId; result = _storeService.HandlerPromotion(ss, transferId, transfer.DepartmentId.GetValueOrDefault(), transfer.PromotionId.GetValueOrDefault(), receivingPromotionId); if (string.IsNullOrEmpty(result)) { result = "Browse Success"; } } catch (Exception ex) { result = ex.Message; } return(result); }
public string EditPermision(PermisionDetail per, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); if (userinfo.PermisionId == 1) { try { SessionManager.DoWork(ss => { var permision = ss.Query <PermisionDetail>().Where(s => s.Id == per.Id).FirstOrDefault(); if (permision != null) { permision.CheckAction = !per.CheckAction; result = "Cập nhật thành công"; } }); } catch (Exception) { throw; } } else { result = "Bạn không có quyền 'phân quyền chức năng.'"; } return(result); }
public string Put(Unit obj, ClaimsPrincipal principal) { var result = string.Empty; SessionManager.DoWork(ss => { try { var unit = ss.Query <Unit>().SingleOrDefault(p => p.Id == obj.Id); if (unit != null) { //var userDTO = ContextProvider.Get(); var userDTO = ContextProvider.GetUserInfo(principal); unit.Code = obj.Code; unit.Name = obj.Name; unit.UpdatedBy = userDTO.Id; unit.UpdatedDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); ss.Update(unit); result = "Cập nhật thành công"; } else { result = $"{obj.Code} không tồn tại!\nAnh/Chị vui lòng kiểm tra lại."; } } catch (Exception ex) { Console.WriteLine(ex.Message); result = ex.Message; } }); return(result); }
public string BrowseStaff(ISession ss, TransferGiftDTO obj, Stage stage, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { SessionManager.DoWork(ss => { var workflow = ss.Query <Workflow>().Single(p => p.ProductId == obj.ProductId && p.UserId == userinfo.Id && p.Stage == "First Stage"); var assignUserId = workflow.AssignUserId; result = _storeService.ValidateData(ss, userinfo.Organization.Id, obj.Data); if (string.IsNullOrEmpty(result)) { var transfer = ss.Get <TransferGift>(obj.Id); var transferlog = ss.Query <TransferGiftLog>().Single(p => p.TransferGift.Id == obj.Id && p.Status == (int)ContextProvider.statusTransfer.Draft); transfer.Status = obj.Status; transfer.DepartmentId = obj.DepartmentId; //transfer.PromotionId = obj.PromotionId; transfer.CreatedDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); transferlog.Status = obj.Status; if (!string.IsNullOrEmpty(obj.Data.ToString())) { transferlog.Data = JsonConvert.SerializeObject(obj.Data); } transferlog.UpdateDate = transfer.CreatedDate; //ss.CreateSQLQuery($"delete ReceivingPromotion where TransferId = '{ obj.Id}'").UniqueResult(); //ss.CreateSQLQuery($"delete TransferDetail where TransferId = '{ obj.Id}'").UniqueResult(); result = _transferDetailService.Post(ss, transfer, obj); if (string.IsNullOrEmpty(result)) { var newtransferlog = new TransferGiftLog { Id = Guid.NewGuid(), TransferGift = transferlog.TransferGift, AssignUserId = assignUserId, AssignDeaprtmentId = userinfo.Organization.Id, Comment = obj.Comment, Data = transferlog.Data, Status = obj.Status, UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), StageId = obj.StageId, Dealine = null }; ss.Save(newtransferlog); result = "Browse Success"; } } }); } catch (Exception ex) { result = ex.Message; } return(result); }
public string BrowseStaff(ISession ss, TransferGiftDTO obj, Stage stage, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { result = _storeService.ValidateData(ss, userinfo.Organization.Id, obj.Data); if (string.IsNullOrEmpty(result)) { var nextStage = ss.Get <Stage>(stage.NextStage); var transfer = ss.Get <TransferGift>(obj.Id); var transferlog = ss.Query <TransferGiftLog>().Single(p => p.TransferGift.Id == obj.Id && p.Status == (int)ContextProvider.statusTransfer.Draft); transfer.Status = obj.Status; transfer.PromotionId = obj.PromotionId; transfer.CreatedDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); transferlog.Status = obj.Status; if (!string.IsNullOrEmpty(obj.Data.ToString())) { transferlog.Data = JsonConvert.SerializeObject(obj.Data); } transferlog.UpdateDate = transfer.CreatedDate; result = _transferDetailService.Post(ss, transfer, obj); if (string.IsNullOrEmpty(result)) { var newtransferlog = new TransferGiftLog { Id = Guid.NewGuid(), TransferGift = transferlog.TransferGift, AssignUserId = null, AssignDeaprtmentId = userinfo.Organization.Id, Comment = obj.Comment, Data = transferlog.Data, Status = obj.Status, UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), Stage = nextStage, Dealine = null }; ss.Save(newtransferlog); result = "Browse Success"; } } } catch (Exception ex) { result = ex.Message; } return(result); }
public string BrowseStaff(ISession ss, TransferGiftDTO obj, Stage stage, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { var nextStage = ss.Get <Stage>(stage.NextStage); var transfer = ss.Get <TransferGift>(obj.Id); var transferlog = ss.Query <TransferGiftLog>().Single(p => p.TransferGift.Id == obj.Id && p.Status == (int)ContextProvider.statusTransfer.Draft); //transfer.Status = obj.Status; transfer.Status = (int)ContextProvider.statusTransfer.Initialize; transfer.CreatedDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); transferlog.Status = (int)ContextProvider.statusTransfer.Initialize; if (!string.IsNullOrEmpty(obj.Data.ToString())) { transferlog.Data = JsonConvert.SerializeObject(obj.Data); } transferlog.UpdateDate = transfer.CreatedDate; //ss.CreateSQLQuery($"delete TransferDetail where TransferId = '{ obj.Id}'").UniqueResult(); // xử lý cục Data (phi cấu trúc => có cấu trúc) result = _transferDetailService.Post(ss, transfer, obj); if (string.IsNullOrEmpty(result)) { var newtransferlog = new TransferGiftLog { Id = Guid.NewGuid(), TransferGift = transferlog.TransferGift, AssignUserId = null, AssignDeaprtmentId = userinfo.Organization.Id, Comment = obj.Comment, Data = transferlog.Data, Status = (int)ContextProvider.statusTransfer.Initialize, UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), Stage = nextStage, Dealine = null }; ss.Save(newtransferlog); result = "Gửi duyệt thành công!"; } } catch (Exception ex) { result = ex.Message; } return(result); }
public List <dynamic> GetIsUser(ClaimsPrincipal principal, Guid id) { var lstResults = new List <dynamic>(); var user = ContextProvider.GetUserInfo(principal); var isTypeUser = ContextProvider.CheckPermission(user.PermisionId); SessionManager.DoWork(ss => { try { lstResults = ss.Query <Gift>() .Select(p => (dynamic) new { p.Id, p.Code, p.Name, GiftGroupId = p.GiftGroup.Id, GiftGroupCode = p.GiftGroup.Code, GiftGroupName = p.GiftGroup.Name, OptionGiftId = p.GiftGroup.OptionGift.Id, OptionGiftCode = p.GiftGroup.OptionGift.Code, OptionGiftName = p.GiftGroup.OptionGift.Name, UnitId = p.Unit.Id, UnitCode = p.Unit.Code, UnitName = p.Unit.Name, p.Price, value = p.Name, label = p.Code }).ToList(); if (ContextProvider.CheckPermission(user.PermisionId) == 3) { var ids = ss.Query <TransferDetail>().Where(s => s.ReceivingDepartment == user.OrganizationId && s.ReceivingPromotion == id).Select(s => s.GiftId).ToList(); lstResults = lstResults.Where(w => ids.Contains(w.Id)).ToList(); } if (ContextProvider.CheckPermission(user.PermisionId) == 2 || ContextProvider.CheckPermission(user.PermisionId) == 1) { var ids = ss.Query <TransferDetail>().Where(s => s.ReceivingPromotion == id).Select(s => s.GiftId).ToList(); lstResults = lstResults.Where(w => ids.Contains(w.Id)).ToList(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }); return(lstResults); }
public List <dynamic> GetDepartmentReport(ClaimsPrincipal principal, string id) { var lstResults = new List <dynamic>(); var userinfo = ContextProvider.GetUserInfo(principal); var isTypeUser = ContextProvider.CheckPermission(userinfo.PermisionId); try { SessionManager.DoWork(ss => { var list = ss.Query <Organization>().Where(p => p.ManageCode == "PGD" && p.ParentId == new Guid(id)).ToList(); if (isTypeUser == 3) { if (userinfo.Position.IsLeader) { list = list.Where(w => w.ParentId == userinfo.Organization.Id || w.Id == userinfo.Organization.Id).ToList(); } else { list = list.Where(w => w.Id == userinfo.Organization.Id).ToList(); } } lstResults = list .Select(p => (dynamic) new { p.Id, p.Name, p.Code, p.ManageCode, p.ParentId, p.Address, p.Region, value = p.Id, label = p.Name }).ToList(); }); } catch (Exception ex) { } return(lstResults); }
public string BrowseLeaderQLBH(Guid transferId, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { SessionManager.DoWork(ss => { var transfer = ss.Get <TransferGift>(transferId); var workflow = ss.Query <Workflow>().Single(p => p.ProductId == transfer.Product.Id && p.UserId == userinfo.Id); var assignUserId = workflow.AssignUserId; var assignDepartmentId = ss.Get <User>(assignUserId).Organization.Id; transfer.Status = (int)ContextProvider.statusTransfer.Approve; var transferlog = ss.Query <TransferGiftLog>() .Where(p => p.TransferGift.Id == transferId && p.AssignUserId == userinfo.Id) .OrderByDescending(p => p.UpdateDate).First(); transferlog.Status = transfer.Status; transferlog.UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); var newtransferlog = new TransferGiftLog { Id = Guid.NewGuid(), TransferGift = transferlog.TransferGift, AssignUserId = assignUserId, AssignDeaprtmentId = assignDepartmentId, Comment = transferlog.Comment, Data = transferlog.Data, Status = transfer.Status, UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), StageId = transferlog.StageId, Dealine = null }; ss.Save(newtransferlog); result = "Browse Success"; }); } catch (Exception ex) { result = ex.Message; } return(result); }
public string BrowseLeader(ISession ss, Guid transferId, Stage stage, ClaimsPrincipal principal) { var result = string.Empty; var userinfo = ContextProvider.GetUserInfo(principal); try { var nextStage = ss.Get <Stage>(stage.NextStage); var transfer = ss.Get <TransferGift>(transferId); transfer.Status = (int)ContextProvider.statusTransfer.Approve; //if (stage.Name == "End Stage") // transfer.IsComplete = true; var transferlog = ss.Query <TransferGiftLog>() .Single(p => p.TransferGift.Id == transferId && p.Stage.Id == stage.Id && p.AssignDeaprtmentId == userinfo.Organization.Id); transferlog.AssignUserId = userinfo.Id; transferlog.Status = transfer.Status; transferlog.UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); var newtransferlog = new TransferGiftLog { Id = Guid.NewGuid(), TransferGift = transferlog.TransferGift, AssignUserId = null, AssignDeaprtmentId = userinfo.Organization.Id, Comment = transferlog.Comment, Data = transferlog.Data, Status = transferlog.Status, UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), Stage = nextStage, Dealine = null }; result = "Browse Success"; } catch (Exception ex) { result = ex.Message; } return(result); }
public dynamic GetAllNavs(ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { SessionManager.DoWork(ss => { var userinfo = ContextProvider.GetUserInfo(principal); var navs = new List <NavDTO>(); var menus = ss.Query <SysNav>().Where(w => w.Active == true).ToList(); var permisions = ss.Query <PermisionDetail>().Where(w => w.PermisionId == userinfo.PermisionId && w.ActionCode == "VIEW_PAGE").ToList(); var root = ss.Query <PermisionDetail>().Where(w => w.ParentId == Guid.Parse("10000000-0000-0000-0000-000000000000")).ToList(); root.ForEach(itm => { var menu = menus.FirstOrDefault(f => f.Id == itm.NavId); var children = new List <NavDTO>(); var listChild = permisions.Where(w => w.ParentId == itm.Id).ToList(); ChildNav(children, listChild, permisions, menus, itm); var nav = new NavDTO() { id = itm.Id, name = menu.Name, icon = menu.Icon, title = menu.Title, url = "/" + menu.Url, children = children, }; navs.Add(nav); }); result = navs.ToList(); }); } catch (Exception) { } return(result); }
public dynamic GetAlls(ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { SessionManager.DoWork(ss => { var userinfo = ContextProvider.GetUserInfo(principal); var permision = ss.Query <SysPermision>().Select(s => new { s.PermisionId, s.PermisionName, value = s.PermisionId, label = s.PermisionName }).ToList(); result = permision.ToList(); }); } catch (Exception) { } return(result); }
public List <dynamic> GetGiftUse(ClaimsPrincipal principal, Guid id) { var lstResults = new List <dynamic>(); var user = ContextProvider.GetUserInfo(principal); var isTypeUser = ContextProvider.CheckPermission(user.PermisionId); SessionManager.DoWork(ss => { try { var promotion = ss.Get <Promotion>(id); var organizations = ss.Query <Organization>().ToList(); var gifts = ss.Query <Gift>().ToList(); var idGift = ss.Query <GiftPromotion>().Where(w => w.GiftPromotionId == promotion.GiftPromotionId).Select(s => s.GiftId).ToList(); var list = ss.Query <CustomerGift>().GroupBy(g => new { g.BRANCHID, g.SUBBRID, GiftId = g.Gift.Id }) .Select(s => new { BranchCode = s.Key.BRANCHID, DepCode = s.Key.SUBBRID, GiftId = s.Key.GiftId }).ToList(); if (ContextProvider.CheckPermission(user.PermisionId) == 3) { var codeDeps = organizations.Where(s => s.Id == user.Organization.Id || s.ParentId == user.Organization.Id).Select(s => s.Code).ToList(); var ids = list.Where(s => codeDeps.Contains(s.DepCode)).Select(s => s.GiftId).ToList(); lstResults = gifts.Where(w => ids.Contains(w.Id) && idGift.Contains(w.Id)).ToList().Select(p => (dynamic) new { p.Id, p.Code, p.Name, GiftGroupId = p.GiftGroup.Id, GiftGroupCode = p.GiftGroup.Code, GiftGroupName = p.GiftGroup.Name, OptionGiftId = p.GiftGroup.OptionGift.Id, OptionGiftCode = p.GiftGroup.OptionGift.Code, OptionGiftName = p.GiftGroup.OptionGift.Name, UnitId = p.Unit.Id, UnitCode = p.Unit.Code, UnitName = p.Unit.Name, p.Price, value = p.Name, label = p.Code }).ToList(); } if (ContextProvider.CheckPermission(user.PermisionId) == 2 || ContextProvider.CheckPermission(user.PermisionId) == 1) { var codeDeps = organizations.Select(s => s.Code).ToList(); var ids = list.Where(s => codeDeps.Contains(s.DepCode)).Select(s => s.GiftId).ToList(); lstResults = gifts.Where(w => idGift.Contains(w.Id) && ids.Contains(w.Id)).ToList().Select(p => (dynamic) new { p.Id, p.Code, p.Name, GiftGroupId = p.GiftGroup.Id, GiftGroupCode = p.GiftGroup.Code, GiftGroupName = p.GiftGroup.Name, OptionGiftId = p.GiftGroup.OptionGift.Id, OptionGiftCode = p.GiftGroup.OptionGift.Code, OptionGiftName = p.GiftGroup.OptionGift.Name, UnitId = p.Unit.Id, UnitCode = p.Unit.Code, UnitName = p.Unit.Name, p.Price, value = p.Name, label = p.Code }).ToList(); } } catch (Exception ex) { Console.WriteLine(ex.Message); } }); return(lstResults); }
public string Approve(string id, string param, string idGift, string idPromotion, int numGift, ClaimsPrincipal principal) { var result = string.Empty; try { var userinfo = ContextProvider.GetUserInfo(principal); var isTypeUser = ContextProvider.CheckPermission(userinfo.PermisionId); var idCustomerGift = new Guid(id); var _productId = new Guid(Constants.ID_PRODUCT_TANG_QUA_KHACH_HANG); SessionManager.DoWork(s => { var customerGift = s.Query <CustomerGift>().SingleOrDefault(p => p.Id == idCustomerGift); if (customerGift != null) { var product = s.Get <Product>(_productId); var stage = s.Query <Stage>().SingleOrDefault(p => p.ProductId == product.Id && p.PositionId == userinfo.Position.Id && p.Name == Constants.DUYET); if (stage != null) { if (param == Constants.APPROVE) { // check số lượng quà tặng trong kho. var store = s.Query <Store>().SingleOrDefault(p => p.DepartmentId == userinfo.Organization.Id && p.PromotionId == new Guid(idPromotion) && p.GiftId == new Guid(idGift)); if (store.Amount >= numGift) { int status = (int)ContextProvider.statusTransfer.Approve; UpdateCustomerGift(customerGift, userinfo, status); SaveCustomerGiftLog(s, stage, customerGift, userinfo); // update Store store.Amount -= numGift; result = Constants.DUYET_THANH_CONG; } else { result = "Quà tặng trong kho không đủ"; } } if (param == Constants.REFUSE) { int status = (int)ContextProvider.statusTransfer.Refuse; UpdateCustomerGift(customerGift, userinfo, status); SaveCustomerGiftLog(s, stage, customerGift, userinfo); result = Constants.TU_CHOI_DUYET_THANH_CONG; } } else { result = "Chức năng này dành cho KSV"; } } }); } catch (Exception ex) { result = ex.Message; } return(result); }
public List <BaoCaoQuaTangDTO> GetDataReport(ClaimsPrincipal principal, string productId, string idPromotion, string fromDate, string toDate) { var result = new List <BaoCaoQuaTangDTO>(); SessionManager.DoWork(ss => { try { var _fromDate = DateTime.ParseExact(fromDate + " 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); var _toDate = DateTime.ParseExact(toDate + " 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); var userinfo = ContextProvider.GetUserInfo(principal); var promotion = ss.Query <Promotion>().ToList(); var organization = ss.Query <Organization>().ToList(); var tranfer = ss.Query <TransferGift>().Where(s => s.Status == 2 && s.CreatedDate <= _toDate.AddDays(1) && s.CreatedDate >= _fromDate).ToList(); if (productId != null) { tranfer = tranfer.Where(s => s.Product.Id == new Guid(productId)).ToList(); } if (userinfo.OrganizationCode != "QLBH" && userinfo.UserName != "admin" && userinfo.UserName != "nva") { //Nếu là LD CN/PGD if (userinfo.Position.IsLeader) { tranfer = tranfer.Where(s => s.DepartmentId == userinfo.Organization.Id).ToList(); } else//CV CN/PGD { tranfer = tranfer.Where(s => s.CreatedBy == userinfo.Id).ToList(); } } if (idPromotion != null && productId.ToUpper() != "7A452975-E667-41CB-9B32-5875D357FF37") { tranfer = tranfer.Where(s => s.PromotionId == new Guid(idPromotion)).ToList(); } var lstTranferId = tranfer.Select(s => s.Id); var tranferDetail = ss.Query <TransferDetail>().Where(s => lstTranferId.Contains(s.TransferGift.Id)).ToList(); var gifts = ss.Query <Gift>().ToList(); var lstGift = (from _tranfer in tranfer join _tranferDetail in tranferDetail on _tranfer.Id equals _tranferDetail.TransferGift.Id join _gifts in gifts on _tranferDetail.GiftId equals _gifts.Id select new BaoCaoQuaTangDTO { Amount = _tranferDetail.Amount, ReceivingDepartment = ContextProvider.GetOrganizationName(organization, _tranferDetail.ReceivingDepartment), ReceivingPromotion = ContextProvider.GetPromotionName(promotion, _tranferDetail.ReceivingPromotion), CreatedDate = ContextProvider.GetConvertDatetime(_tranfer.CreatedDate), TranferDepartment = ContextProvider.GetOrganizationName(organization, _tranfer.DepartmentId), Code = _gifts.Code, Name = _gifts.GiftGroup.OptionGift.Name + " - " + _gifts.GiftGroup.Name + " - " + _gifts.Name, UnitName = _gifts.Unit.Name, Price = _gifts.Price.ToString("f0"), GiftGroupId = _gifts.GiftGroup.Id.ToString(), GroupName = _gifts.GiftGroup.Name, OptionGiftId = _gifts.GiftGroup.OptionGift.Id.ToString(), OptionGiftName = _gifts.GiftGroup.OptionGift.Name, OrderByDate = ContextProvider.GetOrderDatetime(_tranfer.CreatedDate) }).OrderBy(pp => pp.Name).OrderBy(p => p.GroupName).OrderBy(pp => pp.OptionGiftName).OrderByDescending(pp => pp.OrderByDate); result = lstGift.ToList(); } catch (Exception ex) { Console.WriteLine(ex.Message); } }); return(result); }
public List <BC06_DTO> GetDataReport07(ClaimsPrincipal principal, string productId, string idPromotion, string idGift, string idBranch, string idDepartment, string fromDate, string toDate) { var result = new List <BC06_DTO>(); SessionManager.DoWork(ss => { try { var _fromDate = DateTime.ParseExact(fromDate + " 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); var _toDate = DateTime.ParseExact(toDate + " 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); //var _toDate = Convert.ToDateTime(DateTime.ParseExact(toDate, "dd-MM-yyyy", CultureInfo.InvariantCulture)); var userinfo = ContextProvider.GetUserInfo(principal); var promotions = ss.Query <Promotion>().ToList(); var organization = ss.Query <Organization>().ToList(); var branchs = organization.Where(w => w.ManageCode == "CN").ToList(); var dept = organization.Where(w => w.ManageCode == "PGD").ToList(); var gifts = ss.Query <Gift>().ToList(); var data = ss.Query <CustomerGift>().Where(s => s.Status == 2 && s.CREATEDDATE <= _toDate.AddDays(1) && s.CREATEDDATE >= _fromDate).ToList(); if (!string.IsNullOrEmpty(idPromotion)) { data = data.Where(s => s.Promotion.Id == new Guid(idPromotion)).ToList(); } if (!string.IsNullOrEmpty(idDepartment)) { var dep = dept.FirstOrDefault(w => w.Id == new Guid(idDepartment)); data = data.Where(s => s.SUBBRID == dep.Code).ToList(); } if (!string.IsNullOrEmpty(idBranch)) { var branch = branchs.FirstOrDefault(w => w.Id == new Guid(idBranch)); data = data.Where(s => s.BRANCHID == branch.Code).ToList(); } if (!string.IsNullOrEmpty(idGift)) { data = data.Where(s => s.Gift.Id == new Guid(idGift)).ToList(); } if (userinfo.OrganizationCode != "QLBH" && userinfo.UserName != "admin" && userinfo.UserName != "nva") { //Nếu là LD CN/PGD if (userinfo.Position.IsLeader) { data = data.Where(s => s.SUBBRID == userinfo.Organization.Code).ToList(); } else//CV CN/PGD { data = data.Where(s => s.CREATEDBy == userinfo.Id).ToList(); } } switch (productId.ToUpper()) { case "BC_07": var lstGift = (from _data in data join _gift in gifts on _data.Gift.Id equals _gift.Id join _promotion in promotions on _data.Promotion.Id equals _promotion.Id select new BC06_DTO { DepartmentName = _data.SUBBRNAME, BranchName = _data.BRNAME, SoTK = _data.Acctno, CIF = _data.CusId, CustomerName = _data.CusName, GhiChu = "", GiaTriQuaTang = _gift.Price, KyHan = _data.TERM, LoaiQua = _data.BRNAME, NgayGui = _data.TODATE.ToString("dd-MM-yyyy"), SoDu = _data.BALANCE, GiftName = _gift.Name, PromotionName = _promotion.Name, PhanHe = _data.PhanHe, LoaiTien = _data.CCYCD, TenLoaiHinh = _data.TENLOAIHINH, OrderByDate = ContextProvider.GetOrderDatetime(_data.CREATEDDATE) }).OrderBy(pp => pp.BranchName).OrderBy(p => p.DepartmentName).OrderByDescending(pp => pp.OrderByDate); result = lstGift.ToList(); break; case "BC_08": var lstBC_08 = new List <BC06_DTO>(); var groupPGD = data.GroupBy(g => new { g.SUBBRID, GifiId = g.Gift.Id }).Select(s => new { SUBBRID = s.Key.SUBBRID, GifiId = s.Key.GifiId, Amount = s.Count(), Balance = s.Sum(f => f.BALANCE) }).ToList(); groupPGD.ForEach(code => { var depBC08 = organization.FirstOrDefault(f => f.Code == code.SUBBRID); var branchBC08 = depBC08.ManageCode == "CN" ? depBC08 : organization.FirstOrDefault(f => f.Id == depBC08?.ParentId); var giftBC08 = gifts.FirstOrDefault(f => f.Id == code.GifiId); var save = new BC06_DTO { BranchName = branchBC08.Name, DepartmentName = depBC08.Name, SoDu = code.Balance, SoLuong = code.Amount.ToString(), GiaTriQuaTang = (giftBC08.Price * code.Amount), GiftCode = giftBC08.Code, GiftName = giftBC08.Name, GhiChu = "" }; lstBC_08.Add(save); }); lstBC_08 = lstBC_08.OrderBy(pp => pp.BranchName).OrderBy(p => p.DepartmentName).ToList(); result = lstBC_08.ToList(); break; default: break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } }); return(result); }
public List <BC06_DTO> GetDataReport09(ClaimsPrincipal principal, string productId, string idPromotion, string idGiftStore, string idGiftUse, string idBranch, string idDepartment, string fromDate, string toDate) { var result = new List <BC06_DTO>(); SessionManager.DoWork(ss => { try { var _fromDate = DateTime.ParseExact(fromDate + " 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); var _toDate = DateTime.ParseExact(toDate + " 00:00:00,000", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); //var _toDate = Convert.ToDateTime(DateTime.ParseExact(toDate, "dd-MM-yyyy", CultureInfo.InvariantCulture)); var userinfo = ContextProvider.GetUserInfo(principal); var promotions = ss.Query <Promotion>().ToList(); var organization = ss.Query <Organization>().ToList(); var branchs = organization.Where(w => w.ManageCode == "CN").ToList(); var dept = organization.Where(w => w.ManageCode == "PGD").ToList(); var gifts = ss.Query <Gift>().ToList(); var data = ss.Query <CustomerGift>().Where(s => s.Status == 2 && s.CREATEDDATE <= _toDate.AddDays(1) && s.CREATEDDATE >= _fromDate).ToList(); if (!string.IsNullOrEmpty(idPromotion)) { data = data.Where(s => s.Promotion.Id == new Guid(idPromotion)).ToList(); } if (!string.IsNullOrEmpty(idDepartment)) { var dep = dept.FirstOrDefault(w => w.Id == new Guid(idDepartment)); data = data.Where(s => s.SUBBRID == dep.Code).ToList(); } if (!string.IsNullOrEmpty(idBranch)) { var branch = branchs.FirstOrDefault(w => w.Id == new Guid(idBranch)); data = data.Where(s => s.BRANCHID == branch.Code).ToList(); } if (!string.IsNullOrEmpty(idGiftStore)) { data = data.Where(s => s.Gift.Id == new Guid(idGiftStore)).ToList(); } if (!string.IsNullOrEmpty(idGiftUse)) { data = data.Where(s => s.Gift.Id == new Guid(idGiftUse)).ToList(); } if (userinfo.OrganizationCode != "QLBH" && userinfo.UserName != "admin" && userinfo.UserName != "nva") { //Nếu là LD CN/PGD if (userinfo.Position.IsLeader) { data = data.Where(s => s.SUBBRID == userinfo.Organization.Code).ToList(); } else//CV CN/PGD { data = data.Where(s => s.CREATEDBy == userinfo.Id).ToList(); } } switch (productId.ToUpper()) { case "BC_09": var lstBC_09 = new List <BC06_DTO>(); var groupPGD = data.GroupBy(g => new { g.SUBBRID, PromotionId = g.Promotion.Id, GiftId = g.Gift.Id }).Select(s => new { SUBBRID = s.Key.SUBBRID, GiftId = s.Key.GiftId, PromotionId = s.Key.PromotionId, NumGift = s.Sum(f => f.NumGift) }).ToList(); var idGifts = groupPGD.Select(s => s.GiftId).ToList(); var idPromotions = groupPGD.Select(s => s.PromotionId).ToList(); var tranfsDetail = ss.Query <TransferDetail>().Where(w => idPromotions.Contains(w.ReceivingPromotion ?? Guid.NewGuid()) && idGifts.Contains(w.GiftId)).ToList(); groupPGD.ForEach(code => { var depBC09 = organization.FirstOrDefault(f => f.Code == code.SUBBRID); var giftBC09 = gifts.FirstOrDefault(f => f.Id == code.GiftId); var slPB = tranfsDetail.Where(f => f.ReceivingDepartment == depBC09.Id && f.GiftId == code.GiftId && f.ReceivingPromotion == code.PromotionId && f.TransferGift.Status == 2).ToList().Sum(s => s.Amount); var save = new BC06_DTO { DepartmentName = depBC09.Name, GiftCode = giftBC09.Code, GiftName = giftBC09.Name, GiaTri = giftBC09.Price, SoLuongNhapKho = slPB.ToString(), SoLuongSuDung = code.NumGift.ToString(), SoLuongCuoiKy = (slPB - code.NumGift).ToString(), //ChenhLech = (slPB - code.NumGift).ToString(), ThanhTien = (giftBC09.Price * (slPB - code.NumGift)), GhiChu = "" }; lstBC_09.Add(save); }); lstBC_09 = lstBC_09.OrderBy(pp => pp.BranchName).OrderBy(p => p.DepartmentName).ToList(); result = lstBC_09.ToList(); break; default: break; } } catch (Exception ex) { Console.WriteLine(ex.Message); } }); return(result); }
public List <StoreDTO> GetDataReportInventory(ClaimsPrincipal principal, string productId, string idPromotion, string toDate) { var result = new List <StoreDTO>(); var userinfo = ContextProvider.GetUserInfo(principal); SessionManager.DoWork(ss => { try { var _toDate = DateTime.ParseExact(toDate.Replace("-", "/") + " 23:59:59,000", "dd/MM/yyyy HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture); var lstPromotions = ss.Query <Promotion>().Where(w => w.CreatedDate <= _toDate && w.Status == 2).ToList(); if (!string.IsNullOrEmpty(idPromotion)) { lstPromotions = lstPromotions.Where(n => n.Id == Guid.Parse(idPromotion)).ToList(); } if (userinfo.OrganizationCode != "QLBH" && userinfo.UserName != "admin" && userinfo.UserName != "nva") { //Nếu là LD CN/PGD if (userinfo.Position.IsLeader) { lstPromotions = lstPromotions.Where(s => s.NguoiDuyet == userinfo.Organization.Id).ToList(); } else//CV CN/PGD { lstPromotions = lstPromotions.Where(s => s.CreatedBy == userinfo.Id).ToList(); } } var idPromotions = lstPromotions.Select(s => s.Id).ToList(); var idGiftPromotions = lstPromotions.Select(s => s.GiftPromotionId).ToList(); var giftPromotions = ss.Query <GiftPromotion>().Where(s => idGiftPromotions.Contains(s.GiftPromotionId)).ToList(); var lstGiftsId = giftPromotions.Select(s => s.GiftId).ToList(); var gifts = ss.Query <Gift>().Where(s => lstGiftsId.Contains(s.Id)).ToList(); var transferGift = ss.Query <TransferGift>().Where(s => s.Status == 2).ToList(); var transferDetails = ss.Query <TransferDetail>().Where(s => lstGiftsId.Contains(s.GiftId)).ToList(); var stores = ss.Query <Store>().Where(s => lstGiftsId.Contains(s.GiftId)).ToList(); #region SL Nhap kho var idTranNK = transferGift.Where(w => w.Product.Id.ToString().ToUpper() == Constants.PARAM_NHAP_KHO && w.Status == 2).Select(s => s.Id); var gbNKDetails = transferDetails.Where(s => idTranNK.Contains(s.TransferGift.Id)).GroupBy(g => new { g.GiftId, g.ReceivingDepartment, productId }).Select(s => new { s.Key.GiftId, DepartmentId = s.Key.ReceivingDepartment, Total = s.Sum(t => t.Amount) }).ToList(); #endregion #region SL Xuất kho var idTranXK = transferGift.Where(w => w.Product.Id.ToString().ToUpper() == Constants.PARAM_XUAT_KHO && w.Status == 2).Select(s => s.Id); var gbXKDetails = transferDetails.Where(s => idTranXK.Contains(s.TransferGift.Id)).GroupBy(g => new { g.GiftId, g.ReceivingDepartment, productId }).Select(s => new { s.Key.GiftId, DepartmentId = s.Key.ReceivingDepartment, Total = s.Sum(t => t.Amount) }).ToList(); #endregion #region SL Dieu chuyen ngang var idTranDCN = transferGift.Where(w => w.Product.Id.ToString().ToUpper() == Constants.PARAM_DIEU_CHUYEN_NGANG && w.Status == 2).Select(s => s.Id); var gbDCNDetails = transferDetails.Where(s => idTranDCN.Contains(s.TransferGift.Id)).GroupBy(g => new { g.GiftId, g.ReceivingDepartment, productId }).Select(s => new { s.Key.GiftId, DepartmentId = s.Key.ReceivingDepartment, Total = s.Sum(t => t.Amount) }).ToList(); #endregion #region SL Dieu chuyen noi bo var idTranDCNB = transferGift.Where(w => w.Product.Id.ToString().ToUpper() == Constants.PARAM_DIEU_CHUYEN_NOI_BO && w.Status == 2).Select(s => s.Id); var gbDCNBDetails = transferDetails.Where(s => idTranDCNB.Contains(s.TransferGift.Id)).GroupBy(g => new { g.GiftId, g.ReceivingDepartment, productId }).Select(s => new { s.Key.GiftId, DepartmentId = s.Key.ReceivingDepartment, Total = s.Sum(t => t.Amount) }).ToList(); #endregion #region SL Phan Bo var idTranPBo = transferGift.Where(w => w.Product.Id.ToString().ToUpper() == Constants.PARAM_PHAN_BO && w.Status == 2).Select(s => s.Id); var gbPBoDetails = transferDetails.Where(s => idTranPBo.Contains(s.TransferGift.Id)).GroupBy(g => new { g.GiftId, g.ReceivingDepartment, productId }).Select(s => new { s.Key.GiftId, DepartmentId = s.Key.ReceivingDepartment, Total = s.Sum(t => t.Amount) }).ToList(); #endregion //So luong ton kho var groupByStores = stores.GroupBy(g => new { g.GiftId, g.DepartmentId }).Select(s => new { s.Key.GiftId, s.Key.DepartmentId, Total = s.Sum(t => t.Amount), }).ToList(); var lstOrgan = ss.Query <Organization>().ToList(); groupByStores.ForEach(store => { var amountTotal = gbNKDetails.Where(w => w.GiftId == store.GiftId && w.DepartmentId == store.DepartmentId).Sum(s => s.Total); var amountAttribution = gbPBoDetails.Where(w => w.GiftId == store.GiftId && w.DepartmentId == store.DepartmentId).Sum(s => s.Total); //gbDCNDetails.Where(w => w.GiftId == store.GiftId && w.DepartmentId == store.DepartmentId).Sum(s => s.Total) //+ gbDCNBDetails.Where(w => w.GiftId == store.GiftId && w.DepartmentId == store.DepartmentId).Sum(s => s.Total); var depCode = ContextProvider.GetOrganizationCode(lstOrgan, store.DepartmentId); var saveItem = new StoreDTO { GiftId = store.GiftId, GiftName = ContextProvider.GiftName(gifts, store.GiftId), GiftCode = ContextProvider.GiftCode(gifts, store.GiftId), Price = (ContextProvider.GiftPrice(gifts, store.GiftId) * store.Total).ToString("N", CultureInfo.CurrentCulture), DepartmentId = store.DepartmentId, DepartmentName = ContextProvider.GetOrganizationName(lstOrgan, store.DepartmentId), AmountInventory = store.Total,//amountTotal - amountAttribution, AmountUse = depCode == "QLBH" ? 0 : amountAttribution - amountTotal, AmountAttribution = depCode == "QLBH" ? 0 : amountAttribution }; if (!string.IsNullOrEmpty(saveItem.GiftCode)) { result.Add(saveItem); } }); } catch (Exception ex) { Console.WriteLine(ex.Message); } }); return(result); }
public string TangQuaKhachHangQuyDoi(CustomerDTO obj, string promotionId, ClaimsPrincipal principal) { var result = string.Empty; var _promotionId = new Guid(promotionId); try { var userinfo = ContextProvider.GetUserInfo(principal); SessionManager.DoWork(ss => { var lst = obj.QuaTangKH.ToList(); var idGifts = lst.Select(s => Guid.Parse(s.GiftId)).ToList(); var gifts = ss.Query <Gift>().Where(s => idGifts.Contains(s.Id)).ToList(); var promotion = ss.Query <Promotion>().SingleOrDefault(s => s.Id == _promotionId); if (CheckMaxGiftInDay(_promotionId, promotion.MaxGiftInDay)) { var parentId = Guid.NewGuid(); lst.ForEach(itm => { if (CheckMaxGiftWithCustomer(promotion.MaxGiftWithCustomer, _promotionId, obj.Acctno, itm.NumEdit)) { var store = ss.Query <Store>().FirstOrDefault(s => s.DepartmentId == userinfo.OrganizationId && s.PromotionId == _promotionId && s.GiftId == Guid.Parse(itm.GiftId)); if (store != null && store.Amount >= itm.NumEdit) { var _productId = new Guid(Constants.ID_PRODUCT_TANG_QUA_KHACH_HANG); var product = ss.Get <Product>(_productId); var stage = ss.Query <Stage>().SingleOrDefault(p => p.ProductId == product.Id && p.PositionId == userinfo.Position.Id && p.Name == Constants.GUI_DUYET); if (stage != null) { itm.Error = Constants.GUI_DUYET_THANH_CONG; } else { itm.Error = "Chức năng này chỉ dành cho GDV"; } } else { itm.Error = "Số lượng quà trong kho không đủ, xin hãy kiểm tra lại"; } } else { itm.Error = "Mỗi khách hàng không được nhận quá số lượng: " + promotion.MaxGiftWithCustomer; } }); if (lst.Any(a => a.Error != Constants.GUI_DUYET_THANH_CONG)) { result = lst.FirstOrDefault(f => f.Error != Constants.GUI_DUYET_THANH_CONG).Error; } else { lst.ForEach(itm => { var newCus = new CustomerGift(); newCus.Id = new Guid(); newCus.USERID = userinfo.Id; newCus.Gift = gifts.FirstOrDefault(f => f.Id == Guid.Parse(itm.GiftId)); newCus.Status = (int)ContextProvider.statusTransfer.Initialize; newCus.Promotion = promotion; newCus.CREATEDBy = userinfo.Id; newCus.CREATEDDATE = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture); newCus.NumGift = itm.NumEdit; newCus.PhanHe = obj.PhanHe; newCus.Acctno = obj.Acctno; newCus.TENLOAIHINH = obj.TENLOAIHINH; newCus.CusName = obj.CusName; newCus.CusId = obj.CusId; newCus.TERM = obj.TERM; newCus.TERMCD = obj.TERMCD; newCus.BALANCE = obj.BALANCE; newCus.FRDATE = obj.FRDATE; newCus.TODATE = obj.TODATE; newCus.CHEQUENO = obj.CHEQUENO; newCus.INTRATE = obj.INTRATE; newCus.RATECD = obj.RATECD; newCus.LICENSE = obj.LICENSE; newCus.SUBBRID = obj.SUBBRID; newCus.SUBBRNAME = obj.SUBBRNAME; newCus.BRANCHID = obj.BRANCHID; newCus.BRNAME = obj.BRNAME; newCus.ACTYPE = obj.ACTYPE; newCus.CCYCD = obj.CCYCD; newCus.ParentId = parentId; ss.Save(newCus); }); var _productId = new Guid(Constants.ID_PRODUCT_TANG_QUA_KHACH_HANG); var product = ss.Get <Product>(_productId); var stage = ss.Query <Stage>().SingleOrDefault(p => p.ProductId == product.Id && p.PositionId == userinfo.Position.Id && p.Name == Constants.GUI_DUYET); if (stage != null) { ss.Save(new CustomerGiftLog { Id = new Guid(), //CustomerGift = newCus, CustomerGiftId = parentId, AssignUserId = userinfo.Id, AssignDeaprtmentId = userinfo.Organization.Id, Comment = "", Status = (int)ContextProvider.statusTransfer.Initialize, UpdateDate = DateTime.ParseExact(DateTime.Now.ToString("u"), "u", CultureInfo.InvariantCulture), StageId = stage.Id }); } result = Constants.GUI_DUYET_THANH_CONG; } } else { result = "Mỗi ngày không được tặng quá " + promotion.MaxGiftInDay + " quà tặng"; } }); return(result); } catch (Exception ex) { return(ex.Message); } }
public dynamic LstKhachHangNhanQua(string phanhe, string acctno, string promotionId, int pageNo, int pageSize, ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { SessionManager.DoWork(s => { var userinfo = ContextProvider.GetUserInfo(principal); var typeUser = ContextProvider.CheckPermission(userinfo.PermisionId); var lstPromotion = s.Query <Promotion>().ToList(); var lstUser = s.Query <User>().ToList(); var idUsers = lstUser.Where(w => w.Organization.Id == userinfo.Organization.Id).Select(u => u.Id).ToList(); var list = s.Query <CustomerGift>().Where(w => (idUsers.Contains(w.USERID) && typeUser != 1 && typeUser != 2) || typeUser == 1 || typeUser == 2).ToList(); if (!string.IsNullOrEmpty(phanhe)) { list = list.Where(p => p.PhanHe == phanhe).ToList(); } if (!string.IsNullOrEmpty(acctno)) { list = list.Where(p => p.Acctno == acctno).ToList(); } if (!string.IsNullOrEmpty(promotionId)) { list = list.Where(p => p.Promotion.Id == new Guid(promotionId)).ToList(); } var cus = list.GroupBy(p => new { PromotionId = p.Promotion.Id, p.ParentId, p.CusId, p.PhanHe, p.Acctno, p.CusName, p.TERM, p.TERMCD, p.BALANCE, p.CCYCD, p.FRDATE, p.NgayDuyet, p.NguoiDuyet, p.Status, p.CREATEDBy, p.CREATEDDATE }).Select(p => new { Id = p.Key.ParentId, p.Key.CusId, p.Key.PhanHe, p.Key.Acctno, p.Key.PromotionId, PromotionName = ContextProvider.GetPromotionName(lstPromotion, p.Key.PromotionId), NumGift = p.Sum(t => t.NumGift), p.Key.CusName, p.Key.TERM, p.Key.TERMCD, p.Key.BALANCE, p.Key.CCYCD, FRDATE = ContextProvider.GetConvertDatetime(p.Key.FRDATE), NgayDuyet = ContextProvider.GetConvertDatetime(p.Key.NgayDuyet), NguoiDuyet = ContextProvider.GetFullName(lstUser, p.Key.NguoiDuyet), p.Key.Status, CREATEDBy = ContextProvider.GetFullName(lstUser, p.Key.CREATEDBy), CREATEDDATE = ContextProvider.GetConvertDatetime(p.Key.CREATEDDATE), }).ToList(); result.Cus = cus.Skip((pageNo - 1) * pageSize).Take(pageSize).ToList(); var total = cus.Count(); result.TotalPage = total % pageSize == 0 ? total / pageSize : total / pageSize + 1; }); } catch (Exception) { throw; } return(result); }
public dynamic Check(string accNo, string json, string phanhe, ClaimsPrincipal principal) { dynamic result = new ExpandoObject(); try { var lstPromotion = new List <PromotionOut>(); var lstCusGift = new List <CustomerGift>(); var cusGift = new CustomerGift(); var userinfo = ContextProvider.GetUserInfo(principal); var infoCusFromCoreBanking = ConvertJson(json); //var infoCusFromCoreBanking = JsonConvert.DeserializeObject<CustomerDTO>(json); SessionManager.DoWork(ss => { var lstUser = ss.Query <User>().ToList(); var now = DateTime.Now; var timeNow = DateTime.ParseExact(new DateTime(now.Year, now.Month, now.Day, 0, 0, 0).ToString("yyyy-MM-dd hh:mm:ss tt"), "yyyy-MM-dd hh:mm:ss tt", CultureInfo.InvariantCulture); var idPromotions = ss.Query <Store>().Where(s => s.DepartmentId == userinfo.Organization.Id && s.Amount > 0).Select(s => s.PromotionId).ToList(); if (idPromotions.Count == 0) { result.MesError = "Hiện không triển khai chương trình khuyến mãi nào."; } var promotions = ss.Query <Promotion>().Where(s => s.StartDate <= timeNow && s.FinishDate >= timeNow && s.Status == 2).ToList(); if (promotions.Count == 0) { result.MesError = "Hiện không triển khai chương trình khuyến mãi nào."; } else { var status = false; foreach (var itm in promotions) { var quaTangKH = new QuaTangKH(); var promotionIdUsed = new Guid(); cusGift = ss.Query <CustomerGift>().SingleOrDefault(s => s.Acctno == accNo && s.Promotion.Id == itm.Id && s.PhanHe == phanhe); if (cusGift != null) { status = true; lstCusGift.Add(cusGift); var gifts = ss.Query <Gift>().Where(s => s.Id == cusGift.Gift.Id).ToList(); promotionIdUsed = cusGift.Promotion.Id; quaTangKH.GiftId = cusGift.Gift.Id.ToString(); quaTangKH.GiftName = ContextProvider.GiftName(gifts, cusGift.Gift.Id); quaTangKH.Num = cusGift.NumGift; var lstQuaTangKH = new List <QuaTangKH>(); lstQuaTangKH.Add(quaTangKH); var promotionOut = new PromotionOut { Id = promotionIdUsed.ToString(), Code = ContextProvider.GetPromotionCode(promotions, promotionIdUsed), Name = ContextProvider.GetPromotionName(promotions, promotionIdUsed), label = ContextProvider.GetPromotionCode(promotions, promotionIdUsed), value = promotionIdUsed.ToString(), FlagTangQua = cusGift.Status, QuaTangKH = lstQuaTangKH }; lstPromotion.Add(promotionOut); } if (idPromotions.Any(a => a == itm.Id)) { var idGP = promotions.Select(s => s.GiftPromotionId).ToList(); var giftIds = ss.Query <GiftPromotion>().Where(s => idGP.Contains(s.GiftPromotionId)).Select(s => s.GiftId).ToList(); var gift = ss.Query <Gift>().Where(s => giftIds.Contains(s.Id)).ToList(); if (promotionIdUsed.ToString() != Constants.GUIDE_TYPE_NULL) { if (itm.Id != promotionIdUsed) { var lstQuaTangKH = new List <QuaTangKH>(); if (infoCusFromCoreBanking.FRDATE >= itm.StartDate && infoCusFromCoreBanking.FRDATE <= itm.FinishDate) { var configPromotion = JsonConvert.DeserializeObject <List <ConfigPromotion> >(itm.ConfigPromotion.ToString()); foreach (var itmConfigPromotion in configPromotion) { if (string.IsNullOrEmpty(phanhe)) { phanhe = "DEFAULT"; } if (infoCusFromCoreBanking.TERM >= decimal.Parse(itmConfigPromotion.kyhantoithieu) && infoCusFromCoreBanking.BALANCE >= decimal.Parse(itmConfigPromotion.sodutoithieu) && itmConfigPromotion.phanhe.ToUpper() == phanhe.ToUpper()) { infoCusFromCoreBanking.PhanHe = phanhe.ToUpper(); var dataGift = itmConfigPromotion.dataKhaiBaoQuaTang; if (dataGift == null) { result.MesError = "Chưa thiết lập nguyên tắc tặng quà."; } else { lstQuaTangKH = CreateLstGift(dataGift, gift, infoCusFromCoreBanking); } } } } if (lstQuaTangKH.Count > 0) { lstPromotion.Add(CreateCardPromotion(itm, lstQuaTangKH)); } } } else { var lstQuaTangKH = new List <QuaTangKH>(); if (infoCusFromCoreBanking.FRDATE >= itm.StartDate && infoCusFromCoreBanking.FRDATE <= itm.FinishDate) { var configPromotion = JsonConvert.DeserializeObject <List <ConfigPromotion> >(itm.ConfigPromotion.ToString()); foreach (var itmConfigPromotion in configPromotion) { if (string.IsNullOrEmpty(phanhe)) { phanhe = "DEFAULT"; } if (infoCusFromCoreBanking.TERM >= decimal.Parse(itmConfigPromotion.kyhantoithieu) && infoCusFromCoreBanking.BALANCE >= decimal.Parse(itmConfigPromotion.sodutoithieu) && itmConfigPromotion.phanhe.ToUpper() == phanhe.ToUpper()) { infoCusFromCoreBanking.PhanHe = phanhe.ToUpper(); var dataGift = itmConfigPromotion.dataKhaiBaoQuaTang; if (dataGift == null) { result.MesError = "Chưa thiết lập nguyên tắc tặng quà."; } else { lstQuaTangKH = CreateLstGift(dataGift, gift, infoCusFromCoreBanking); } } } } if (lstQuaTangKH.Count > 0) { lstPromotion.Add(CreateCardPromotion(itm, lstQuaTangKH)); } } } } if (lstCusGift.Count == 0) { lstCusGift.Add(infoCusFromCoreBanking); } result.InfoCus = LstCustomer(lstCusGift, phanhe, lstUser); result.LstPromotion = lstPromotion.ToList().OrderByDescending(o => o.CountPrice).ToList(); result.Status = status; } }); } catch (Exception ex) { throw; } return(result); }