public JsonResult ReturnDate(InstagramPostDateViewModel model) { Response response; try { PersianCalendar Calendar = new PersianCalendar(); //var date = DateUtility.GetDateTime(model.publishDate); var date = DateUtility.GetDateTime(model.publishDate); var finalPublishDate = date.Value.AddDays(model.dayCounter); var finalPersianPublishDate = DateUtility.GetPersianDate(finalPublishDate); response = new Response() { status = 200, data = new { finalPersianPublishDate, }, }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
/// <summary> /// حذف فاکتور /// </summary> /// <param name="Id"></param> /// <returns></returns> public JsonResult Delete(int branchId, string date) { Response response; var gDate = DateUtility.GetDateTime(date); try { using (var db = new KiaGalleryContext()) { var list = db.BranchFactor.Where(x => x.BranchId == branchId && x.Date == gDate).ToList(); db.BranchFactor.RemoveRange(list); db.SaveChanges(); response = new Response() { status = 200, message = "مورد انتخاب شده با موفقیت حذف شد." }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult GetWorkShop(string date) { var dateTime = DateUtility.GetDateTime(date); Response response; using (var db = new KiaGalleryContext()) { var query = db.WorkShopGold.OrderByDescending(x => x.Id).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime); var workShopList = query.GroupBy(x => x.WorkshopId).Select(x => new { id = x.Select(y => y.WorkshopId).FirstOrDefault(), name = x.FirstOrDefault().Workshop.Name, sum = x.Sum(y => y.Weight) }).ToList(); response = new Response() { status = 200, data = new { list = workShopList, goldSum = workShopList.Sum(x => x.sum) } }; } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Save(BranchFactorViewModel model) { Response response; var currentUser = GetAuthenticatedUser(); try { if (model.number == 0) { response = new Response() { status = 500, message = "لطفا در بخش تعداد فاکتور عدد مورد نظر را وارد کنید." }; return(Json(response, JsonRequestBehavior.AllowGet)); } using (var db = new KiaGalleryContext()) { if (model.id != null && model.id > 0) { var entity = db.BranchFactor.Where(x => x.Id == model.id).SingleOrDefault(); entity.BranchId = model.branchId; entity.Number = model.number; entity.Date = DateUtility.GetDateTime(model.date); entity.ModifyUserId = currentUser.Id; entity.CreateDate = DateTime.Now; entity.ModifyDate = DateTime.Now; entity.Ip = Request.UserHostAddress; } else { var item = new BranchFactor() { BranchId = model.branchId, Number = model.number, Date = DateUtility.GetDateTime(model.date), CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; db.BranchFactor.Add(item); } db.SaveChanges(); } response = new Response() { status = 200, message = "اطلاعات با موفقیت به روز رسانی شد." }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Save(FoodCensusViewModel model) { Response response; try { if (model.holiday == null) { response = new Response() { status = 500, message = "لطفا روز تعطیل را انتخاب کنید", }; return(Json(response, JsonRequestBehavior.AllowGet)); } var user = GetAuthenticatedUser(); using (var db = new KiaGalleryContext()) { var date = DateUtility.GetDateTime(model.date); if (model.id > 0 && model.id != null) { var entity = db.FoodCensus.Where(x => x.Id == model.id).SingleOrDefault(); entity.Date = DateUtility.GetDateTime(model.date); entity.FoodName = model.foodName; entity.TypeFood = model.typeFood; entity.Holiday = model.holiday.Value; entity.ModifyUserId = user.Id; entity.ModifyDate = DateTime.Now; entity.Ip = Request.UserHostAddress; } else { var item = new FoodCensus() { Date = DateUtility.GetDateTime(model.date), FoodName = model.foodName, Holiday = model.holiday.Value, TypeFood = model.typeFood, CreateUserId = user.Id, ModifyUserId = user.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; db.FoodCensus.Add(item); } db.SaveChanges(); response = new Response() { status = 200, message = "عملیات با موفقیت انجام شد." }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Load(string date) { Response response; try { var dt = DateUtility.GetDateTime(date); using (var db = new KiaGalleryContext()) { var item = db.FoodCensus.Where(x => x.Date == dt).SingleOrDefault(); var data = new FoodCensusViewModel() { id = item.Id, foodName = item.FoodName, typeFood = item.TypeFood, holiday = item.Holiday, date = DateUtility.GetPersianDate(item.Date) }; response = new Response() { status = 200, data = data, }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult FoodSelect(FoodRegistrationViewModel model) { Response response; try { using (var db = new KiaGalleryContext()) { if (model.id > 0 && model.id != null) { var entity = db.FoodRegistration.Where(x => x.Id == model.id).SingleOrDefault(); entity.FoodCensusId = model.foodCensusId; entity.FoodStatus = model.foodStatus; entity.Appertizer = model.appertizer; entity.Food = model.food; entity.FoodWithoutRice = model.foodWithoutRice; entity.ModifyUserId = GetAuthenticatedUserId(); entity.ModifyDate = DateTime.Now; entity.Ip = Request.UserHostAddress; } else { var item = new FoodRegistration() { FoodCensusId = model.foodCensusId, UserId = GetAuthenticatedUserId(), FoodStatus = model.foodStatus, Appertizer = model.appertizer, Food = model.food, FoodWithoutRice = model.foodWithoutRice, Date = DateUtility.GetDateTime(model.date), CreateUserId = GetAuthenticatedUserId(), ModifyUserId = GetAuthenticatedUserId(), CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; db.FoodRegistration.Add(item); } db.SaveChanges(); } response = new Response() { status = 200, message = "ثبت اطلاعات با موفقیت انجام شد.", }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult GetBranchFiles(MarquisFileSearchViewModel model) { Response response; try { var user = GetAuthenticatedUser(); List <MarquisFileViewModel> list; int dataCount; using (var db = new KiaGalleryContext()) { var query = db.MarquisFile.Where(x => x.BranchId == user.BranchId); if (!string.IsNullOrEmpty(model.date)) { var date = DateUtility.GetDateTime(model.date); query = query.Where(x => DbFunctions.TruncateTime(x.CreateDate) == DbFunctions.TruncateTime(date)); } dataCount = query.Count(); query = query.OrderByDescending(x => x.Id).Skip(model.page * model.count).Take(model.count); list = query.Select(item => new MarquisFileViewModel() { id = item.Id, branchId = item.BranchId, branchName = item.Branch.Name, description = item.Description, fileCount = item.MarquisFileDetailList.Count, date = item.CreateDate }).ToList(); } list.ForEach(x => x.persianDate = DateUtility.GetPersianDateTime(x.date)); response = new Response() { status = 200, data = new { list = list, pageCount = Math.Ceiling((double)dataCount / model.count), count = dataCount, page = model.page + 1 } }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult SaveDetail(InfoInventoryViewModel model) { Response response; try { using (var db = new KiaGalleryContext()) { var date = DateUtility.GetDateTime(model.date); var userId = GetAuthenticatedUserId(); model.dailyInventoryDetailViewModelList.ForEach(x => { if (db.InventoryDetail.Where(y => y.CategoryInventoryReportMemberId == x.categoryInventoryReportMemberId && y.Date == date).Count() > 0) { var entity = db.InventoryDetail.Where(y => y.CategoryInventoryReportMemberId == x.categoryInventoryReportMemberId && y.Date == date).Single(); entity.Count = x.count; entity.Weight = x.weight; entity.Title = x.title; entity.ModifyUserId = userId; entity.ModifyDate = DateTime.Now; } else { var item = new InventoryDetail() { Count = x.count, CategoryInventoryReportMemberId = x.categoryInventoryReportMemberId, Weight = x.weight, Title = x.title, Date = date, CreateUserId = userId, ModifyUserId = userId, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; db.InventoryDetail.Add(item); } }); db.SaveChanges(); } response = new Response() { status = 200, message = "عنوان جدید ثبت شد", }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult ReturnDataValue(FoodCensusValueViewModel model) { Response response; try { var fromDate = DateUtility.GetDateTime(model.persianFirstDayOfMonth); var toDate = DateUtility.GetDateTime(model.persianLastDayOfMonth); var nextTommorow = DateTime.Now.AddDays(2); var nextDay = DateTime.Now.AddDays(1); using (var db = new KiaGalleryContext()) { var userId = GetAuthenticatedUserId(); List <FoodCensusValueViewModel> item; var entity = db.FoodCensus.Where(x => x.Date >= fromDate && x.Date <= toDate).Select(x => new FoodCensusViewModel { id = x.Id, boolDate = x.Date >= nextTommorow ? true : false, boolCheckingDate = x.Date >= nextDay ? true : false, dateTime = x.Date, holiday = x.Holiday, typeFood = x.TypeFood, foodName = !string.IsNullOrEmpty(x.FoodName) ? x.FoodName : string.Empty, food = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Food, appertizer = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Appertizer, foodCount = x.FoodRegistrationList.Where(y => y.Food == true).Count(), foodRegisterList = x.FoodRegistrationList.Where(y => y.UserId > 0).Count(), foodRegistrationId = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Id > 0 ? x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().Id : 0, foodWithoutRice = x.FoodRegistrationList.Where(y => y.UserId == userId).FirstOrDefault().FoodWithoutRice, }).ToList(); entity.ForEach(x => { x.persianDate = DateUtility.GetPersianDate(x.dateTime); }); response = new Response() { status = 200, data = new { list = entity, } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Send(SmsOption model) { Response response; List <string> personelNumber; try { var date = DateUtility.GetDateTime(model.persianDate); if (!string.IsNullOrEmpty(model.branchId)) { using (var db = new KiaGalleryContext()) { var branchIdList = model.branchId.Split(); List <int> myInts = branchIdList.Select(int.Parse).ToList(); personelNumber = db.User.Where(y => myInts.Contains(y.BranchId.Value) && y.PhoneNumber != null && y.PhoneNumber != "").Select(y => y.PhoneNumber).ToList(); } Task.Factory.StartNew(() => { NikSmsWebServiceClient.SendSmsNik(model.text, personelNumber); }); } if (model.phoneNumber != null && model.phoneNumber != "" && !model.phoneNumber.Contains('-')) { Task.Factory.StartNew(() => { NikSmsWebServiceClient.SendSmsNik(model.text, model.phoneNumber); }); } if (model.phoneNumber != null && model.phoneNumber != "" && model.phoneNumber.Contains('-')) { var numberList = model.phoneNumber.Split('-'); var numbers = new List <string>(); numbers.AddRange(numberList); Task.Factory.StartNew(() => { NikSmsWebServiceClient.SendSmsNik(model.text, numbers); }); } response = new Response() { status = 200, message = "Done", }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult SetFood(FoodDateViewModel model) { Response response; try { var userId = GetAuthenticatedUserId(); var selectedDate = DateUtility.GetDateTime(model.date); using (var db = new KiaGalleryContext()) { var food = db.FoodRegistration.Where(x => x.FoodCensus.Date == selectedDate && x.UserId == model.userId && x.FoodCensusId == model.id).SingleOrDefault(); if (food != null) { food.Food = model.food; food.Date = selectedDate; food.FoodStatus = 0; food.ModifyUserId = userId; food.ModifyDate = DateTime.Now; food.Ip = Request.UserHostAddress; } else { var item = new FoodRegistration() { Food = model.food, UserId = model.userId.Value, FoodCensusId = model.id.Value, Date = DateUtility.GetDateTime(model.date), FoodStatus = 0, CreateUserId = userId, ModifyUserId = userId, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; db.FoodRegistration.Add(item); } db.SaveChanges(); } response = new Response() { status = 200, }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult GetBranchGold(string date) { Response response; try { var dateTime = DateUtility.GetDateTime(date); using (var db = new KiaGalleryContext()) { var query = db.BranchGold.OrderByDescending(x => x.Branch.Order).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime); var list = query.GroupBy(x => x.BranchId).Select(x => new GetBranchGoldViewModel() { branchName = x.FirstOrDefault().Branch.Name, weight = x.Sum(y => y.Weight), price = x.Sum(y => y.Price), date = x.OrderByDescending(y => y.Date).FirstOrDefault().Date, detail = x.Select(y => new DetailSearchViewModel { weight = y.Weight, date = y.Date, }).ToList(), }).ToList(); list.ForEach(x => { x.detail.ForEach(y => { y.stringDate = DateUtility.GetPersianDateTime(y.date); }); x.stringDate = DateUtility.GetPersianDateTime(x.date); }); response = new Response() { status = 200, data = new { list = list, weightSum = list.Sum(x => x.weight), priceSum = list.Sum(x => x.price) } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult GetAllRegistration(string date) { Response response; try { var selectedDate = DateUtility.GetDateTime(date); using (var db = new KiaGalleryContext()) { var queryFood = db.FoodRegistration.Where(x => x.Date == selectedDate && x.User.Active == true).ToList(); var foodSettingCount = int.Parse(db.FoodSetting.SingleOrDefault(x => x.Key == FoodSetting.KeyFoodCount)?.Value); var appertizerSettingCount = int.Parse(db.FoodSetting.SingleOrDefault(x => x.Key == FoodSetting.KeyAppetizerCount)?.Value); var listRegistration = queryFood.Select(x => new { userId = x.UserId, foodRegistrationId = x.Id, food = x.Food, appertizer = x.Appertizer, foodCensusId = x.FoodCensusId, }).ToList(); var query = db.User.Where(x => x.RoleList.Count(z => z.Title == "foodRegistration") > 0 && x.Active == true).ToList(); var list = query.Select(x => new { id = x.Id, fullName = x.FirstName + " " + x.LastName, }).ToList(); response = new Response() { status = 200, data = new { list = list, listRegistration = listRegistration, foodCount = listRegistration.Count(x => x.food == true), appertizerCount = listRegistration.Count(x => x.appertizer == true), sumFoodCount = foodSettingCount + listRegistration.Count(x => x.food == true), sumAppertizerCount = appertizerSettingCount + listRegistration.Count(x => x.appertizer == true), foodCensusId = listRegistration.Select(x => x.foodCensusId).FirstOrDefault(), } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Search(SalaryParamsViewModel model) { Response response; try { List <SalarySearchViewModel> salaryList; int dataCount; using (var db = new KiaGalleryContext()) { var query = db.Salary.Select(x => x); if (!string.IsNullOrEmpty(model.date)) { DateTime dateTime = DateUtility.GetDateTime(model.date).GetValueOrDefault(); query = query.Where(x => x.MonthCalculated == dateTime); } dataCount = query.Count(); query = query.OrderByDescending(x => x.Id).Skip(model.page * model.count).Take(model.count); salaryList = query.Select(x => new SalarySearchViewModel() { id = x.Id, fullName = x.Person.FirstName + " " + x.Person.LastName, workHours = x.WorkHours, branch = x.Person.Branch.Name, monthCalculatedDate = x.MonthCalculated }).ToList(); salaryList.ForEach(x => x.monthCalculated = DateUtility.GetPersianDate(x.monthCalculatedDate)); } response = new Response() { status = 200, data = new { list = salaryList, pageCount = Math.Ceiling((double)dataCount / model.count), count = dataCount, page = model.page + 1 } }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Search(string date) { Response response; try { var currentUser = GetAuthenticatedUser(); var dateTime = DateUtility.GetDateTime(date); using (var db = new KiaGalleryContext()) { var query = db.GoldBalance.OrderByDescending(x => x.Id).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime); var workShopGold = db.WorkShopGold.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum(); var list = query.Select(x => new GoldBalanceSearchViewModel() { id = x.Id, date = x.Date, weight = x.Weight, description = x.Description, dealerName = x.DealerName, tradeType = x.TradeType, tradeTime = x.TradeTime, }).ToList(); list.ForEach(x => { x.tradeTypeTitle = Enums.GetTitle(x.tradeType); x.stringDate = DateUtility.GetPersianDateTime(x.date); }); response = new Response() { status = 200, data = new { list = list, weightSum = list.Where(x => x.tradeType == TradeType.Buy).Sum(x => x.weight) - list.Where(x => x.tradeType == TradeType.Sell).Sum(x => x.weight) } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Save(WorkShopGoldViewModel model) { var currentUser = GetAuthenticatedUser(); var dateTime = DateUtility.GetDateTime(model.date); Response response; using (var db = new KiaGalleryContext()) { var boughtGold = db.GoldBalance.Where(x => x.TradeType == TradeType.Buy && DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum(); var soldGold = db.GoldBalance.Where(x => x.TradeType == TradeType.Sell && DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum(); var workshopGold = db.WorkShopGold.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime).Select(x => x.Weight).ToList().Sum(); var sum = boughtGold - soldGold - workshopGold; if (model.weight <= sum) { var entity = new WorkShopGold() { RemittanceType = model.remittanceType, WorkshopId = model.workshopId, BoughtGoldPrice = model.workShopBoughtGoldPrice, GoldRate = model.workShopGoldRate, Weight = model.weight, CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Date = dateTime }; db.WorkShopGold.Add(entity); db.SaveChanges(); response = new Response() { status = 200, message = "حواله طلا با موفقیت انجام شد." }; return(Json(response, JsonRequestBehavior.AllowGet)); } else { response = new Response() { status = 500, message = "مقدار طلای وارد شده بیشتر از موجودی طلا میباشد." }; } } return(Json(response, JsonRequestBehavior.AllowGet)); }
public ActionResult ReportDaily(string date) { if (string.IsNullOrEmpty(date)) { date = date.Replace("-", "/"); } DateTime?dateTime = DateUtility.GetDateTime(date); ViewBag.Date = date; using (var db = new KiaGalleryContext()) { ViewBag.InventoryReportMembers = db.CategoryInventoryReportMember.Where(x => x.CreateDate == dateTime).Select(x => x).OrderBy(x => x.Order).SingleOrDefault(); ViewBag.message = "اطلاعاتی ثبت نگردید است"; } return(View()); }
public JsonResult ReturnDataValue(InfoInventoryViewModel model) { Response response; try { var fromDate = DateUtility.GetDateTime(model.date); var firstDayOfMonth = new DateTime(fromDate.Value.Year, fromDate.Value.Month, 1); fromDate = firstDayOfMonth; string[] datePart = model.date.Split('/'); string Month = datePart[1]; int numberMonth = Convert.ToInt32(Month); var toDate = fromDate.Value.AddDays(30); if (numberMonth <= 6) { toDate = fromDate.Value.AddDays(31); } using (var db = new KiaGalleryContext()) { List <DailyInventoryDetailViewModel> item; item = db.InventoryDetail.Where(x => x.CreateDate >= fromDate && x.CreateDate <= toDate).Select(x => new DailyInventoryDetailViewModel { date = x.Date, }).ToList(); item.ForEach(x => { x.persianDate = DateUtility.GetPersianDate(x.date); }); response = new Response() { status = 200, data = new { list = item, } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Search(string date) { Response response; try { var currentUser = GetAuthenticatedUser(); var dateTime = DateUtility.GetDateTime(date); using (var db = new KiaGalleryContext()) { var query = db.BranchGold.OrderByDescending(x => x.Id).Where(x => DbFunctions.TruncateTime(x.Date) == dateTime && x.BranchId == currentUser.BranchId); var list = query.Select(x => new BranchGoldSearchViewModel() { id = x.Id, date = x.Date, weight = x.Weight, price = x.Price }).ToList(); list.ForEach(x => { x.stringDate = DateUtility.GetPersianDateTime(x.date); x.stringPrice = Core.ToSeparator(x.price); }); response = new Response() { status = 200, data = new { list = list, weightSum = list.Sum(x => x.weight), priceSum = list.Sum(x => x.price) } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
/// <summary> /// بارگذاری اطلاعات از قبیل :تعداد فاکتور صادر شده برای هر شعبه /// </summary> /// <param name="date"></param> /// <returns></returns> public JsonResult Search(string date, int?branchId) { var dateTime = DateUtility.GetDateTime(date); Response response; try { var currentuser = GetAuthenticatedUserId(); using (var db = new KiaGalleryContext()) { var query = db.BranchFactor.Select(x => x); if (date != null) { query = query.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime); } var list = query.GroupBy(x => x.Branch).Select(x => new BranchFactorSearchViewModel() { branchId = x.Key.Id, branchName = x.Key.Name, number = x.Sum(y => (y.Number)), factorCount = db.CustomerFactor.Count(y => y.BranchId == x.Key.Id && y.Date == dateTime), }).ToList(); list.ForEach(x => { x.persianDate = DateUtility.GetPersianDate(x.date); }); response = new Response() { status = 200, data = new { list = list } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult LoadDetail(string date) { Response response; try { var dateTime = DateUtility.GetDateTime(date); List <InventoryDetail> item; using (var db = new KiaGalleryContext()) { item = db.InventoryDetail.Where(x => DbFunctions.TruncateTime(x.Date) == dateTime).ToList(); } if (item != null) { response = new Response() { status = 200, data = new InventoryReportMembersViewModel { dailyInventoryDetailViewModelList = item.Select(x => new DailyInventoryDetailViewModel() { count = x.Count, categoryInventoryReportMemberId = x.CategoryInventoryReportMemberId, weight = x.Weight, }).ToList(), } }; } else { response = new Response() { status = 404, message = "گزارش مورد نظر یافت نشد." }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult Save(GoldBalanceViewModel model) { Response response; var currentUser = GetAuthenticatedUser(); try { using (var db = new KiaGalleryContext()) { var entity = new GoldBalance() { TradeTime = model.tradeTime, TradeType = model.tradeType, DealerName = model.dealerName, Weight = model.weight, Description = model.description, Date = DateUtility.GetDateTime(model.date, model.hour, model.minute, model.second), CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, }; db.GoldBalance.Add(entity); db.SaveChanges(); response = new Response() { status = 200, message = "اطلاعات با موفقیت به روز رسانی شد." }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public ActionResult Shipping(ShippingViewModel model) { try { var currentUser = GetAuthenticatedUser(); var cartList = _context.Cart.Where(x => x.UserId == currentUser.id).ToList(); if (cartList.Count == 0) { return(Error("سبد خرید شما خالی است.")); } var addressList = _context.UserAddress.Where(x => x.StatusId == UserAddressStatus.Active.Id && x.UserId == currentUser.id).ToList(); var address = addressList.Single(x => x.Id == model.addressId); if (model.addressId > 0) { if (addressList.SingleOrDefault(x => x.Id == model.addressId) == null) { return(Error("آدرس انتخاب شده صحیح نیست.")); } else { addressList.ForEach(x => x.MainAddress = false); address.MainAddress = true; } } else { return(Error("لطفا آدرس تحویل سفارش خود را مشخص کنید.")); } if (model.deliveryType > 0) { if (model.deliveryType == 1 && string.IsNullOrEmpty(model.time) && model.time.Split(' ').Length != 2) { return(Error("لطفا زمان تحویل سفارش خود را مشخص کنید.")); } } else { return(Error("لطفا نحوه تحویل سفارش خود را مشخص کنید.")); } Response couponResponse = null; Coupon coupon = null; if (!string.IsNullOrEmpty(model.coupon)) { couponResponse = CouponController.CheckCoupon(_context, currentUser, model.coupon, out coupon); if (couponResponse.status != ResponseStatus.Ok) { return(Error(couponResponse.message)); } } var invoiceDetailList = new List <InvoiceDetail>(); foreach (var item in cartList) { var totalPrice = item.Product.Price - item.Product.Discount; var invoiceDetail = new InvoiceDetail() { ProductId = item.ProductId, ProductFeatureId = item.ProductFeatureId, Count = item.Count, Price = totalPrice, StatusId = InvoiceDetailStatus.Accepted.Id, CreateUserId = currentUser.id, ModifyUserId = currentUser.id, CreateDate = GetDatetime(), ModifyDate = GetDatetime(), CreateIp = GetCurrentIp(), ModifyIp = GetCurrentIp() }; invoiceDetailList.Add(invoiceDetail); } var price = invoiceDetailList.Sum(x => x.Count * x.Price); if (coupon != null) { if (coupon.TypeId == CouponType.Amount.Id) { price = price - coupon.Value; } else if (coupon.TypeId == CouponType.Percentage.Id) { price = price - ((price / 100) * coupon.Value); } if (price < 0) { price = 0; } } var keys = new string[] { BaseInformationKey.OrderGapDay, BaseInformationKey.MinDeliveryFreePrice, BaseInformationKey.DeliveryPrice, BaseInformationKey.DeliveryManCity }; var baseInformations = _context.BaseInformation.Where(x => keys.Any(y => y == x.Key)); var GapDay = int.Parse(baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.OrderGapDay)?.Value ?? AsefianMetadata.DefaultGapDay); var MinDeliveryFreePrice = long.Parse(baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.MinDeliveryFreePrice)?.Value ?? AsefianMetadata.DefaultMinDeliveryFreePrice); var DeliveryPrice = long.Parse(baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.DeliveryPrice)?.Value ?? AsefianMetadata.DefaultDeliveryPrice); if (model.deliveryType == DeliveryType.DeliveryMan.Id) { var deliveryManCity = baseInformations.SingleOrDefault(x => x.Key == BaseInformationKey.DeliveryManCity)?.Value.Split('-').Select(x => int.Parse(x)).ToArray() ?? new int[] { }; if (deliveryManCity.Count(x => x == address.CityId) == 0) { return(Error("برای آدرس مورد نظر شما امکان ارسال با پیک فراهم نیست.")); } } var deliveryPrice = DeliveryPrice; if (price >= MinDeliveryFreePrice) { deliveryPrice = 0; } DateTime?deliveryDate = null; if (!string.IsNullOrEmpty(model.time)) { deliveryDate = DateUtility.GetDateTime(model.time.Split(' ')[0]); } if (deliveryDate != null && DateTime.Today.AddDays(GapDay) > deliveryDate) { return(Error("تاریخ وارد شده برای تحویل سفارش صحیح نیست.")); } var invoice = new Invoice() { UserId = currentUser.id, InvoiceStatusId = InvoiceStatus.Registered.Id, PaymentTypeId = PaymentType.Unknown.Id, InvoiceNo = GetNewInvoiceNo(), Price = price, UnpaidPrice = price, DeliveryPrice = deliveryPrice, DeliveryTypeId = model.deliveryType, AddressId = model.addressId, DeliveryDate = deliveryDate, DeliveryTime = model.time?.Split(' ')[1], CouponId = coupon?.Id, CreateUserId = currentUser.id, ModifyUserId = currentUser.id, CreateDate = GetDatetime(), ModifyDate = GetDatetime(), CreateIp = GetCurrentIp(), ModifyIp = GetCurrentIp(), DetailList = invoiceDetailList }; _context.Cart.RemoveRange(cartList); _context.Invoice.Add(invoice); var invoiceLog = new InvoiceLog() { Invoice = invoice, StatusId = InvoiceStatus.Registered.Id, CreateUserId = currentUser.id, CreateDate = GetDatetime(), CreateIp = GetCurrentIp() }; _context.InvoiceLog.Add(invoiceLog); _context.SaveChanges(); return(Success("سفارش شما با موفقیت ثبت شد.", new { id = invoice.Id })); } catch (Exception ex) { return(ServerError(ex)); } }
public JsonResult SaveCustomer(CrmCustomerViewModel model) { var currentUser = GetAuthenticatedUser(); Response response; try { using (var db = new KiaGalleryContext()) { if (model.id != null && model.id > 0) { var customer = db.CrmCustomer.Single(x => x.Id == model.id); customer.Id = model.id; customer.FullName = model.fullName; customer.FactorNumber = model.factorNumber; customer.PhoneNumber = model.phoneNumber; if (User.IsInRole("branchCrm")) { customer.BuyType = BuyType.BuyAttendance; } if (User.IsInRole("officeCrm")) { customer.BuyType = BuyType.BuyOnline; } customer.BuyTypeOnline = model.buyTypeOnline; customer.BuyTypeSubset = model.buyTypeSubset; customer.Date = DateUtility.GetDateTime(model.date); customer.Score = model.score; customer.BranchId = currentUser.BranchId; customer.ModifyUserId = GetAuthenticatedUserId(); customer.ModifyDate = DateTime.Now; customer.Ip = Request.UserHostAddress; var idList = model.answerList.Where(x => model.id != null).Select(x => model.id).ToList(); var deletedItems = customer.CrmCustomerAnswerList.Where(x => !idList.Any(y => y == x.Id)).ToList(); if (deletedItems.Count > 0) { db.CrmCustomerAnswer.RemoveRange(deletedItems); } model.answerList.ForEach(x => { var value = customer.CrmCustomerAnswerList.SingleOrDefault(y => y.CrmQuestionId == x.crmQuestionId); if (value != null) { value.CrmQuestionId = x.crmQuestionId; value.CrmQuestionValueId = x.crmQuestionValueId; value.DescriptiveAnswer = x.descriptiveAnswer; value.YesNoAnswer = x.yesNoAnswer; value.ModifyDate = DateTime.Now; value.ModifyUserId = GetAuthenticatedUserId(); value.Ip = Request.UserHostAddress; } else { customer.CrmCustomerAnswerList.Add(new CrmCustomerAnswer() { CrmQuestionId = x.crmQuestionId, CrmQuestionValueId = x.crmQuestionValueId, DescriptiveAnswer = x.descriptiveAnswer, YesNoAnswer = x.yesNoAnswer, CreateUserId = GetAuthenticatedUserId(), ModifyUserId = GetAuthenticatedUserId(), CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }); } }); } else { var item = new CrmCustomer() { FullName = model.fullName, FactorNumber = model.factorNumber, PhoneNumber = model.phoneNumber, BuyType = model.buyType, BuyTypeOnline = model.buyTypeOnline, BuyTypeSubset = model.buyTypeSubset, BranchId = currentUser.BranchId, Date = DateUtility.GetDateTime(model.date), Score = model.score, CreateUserId = GetAuthenticatedUserId(), ModifyUserId = GetAuthenticatedUserId(), CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; if (User.IsInRole("branchCrm")) { item.BuyType = BuyType.BuyAttendance; } if (User.IsInRole("officeCrm")) { item.BuyType = BuyType.BuyOnline; } model.answerList.ForEach(x => { item.CrmCustomerAnswerList.Add(new CrmCustomerAnswer() { CrmQuestionId = x.crmQuestionId, CrmQuestionValueId = x.crmQuestionValueId, DescriptiveAnswer = x.descriptiveAnswer, YesNoAnswer = x.yesNoAnswer, CreateUserId = GetAuthenticatedUserId(), ModifyUserId = GetAuthenticatedUserId(), CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }); }); db.CrmCustomer.Add(item); } db.SaveChanges(); } response = new Response() { status = 200, message = "ثبت اطلاعات با موفقیت انجام شد." }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public static Response OrderSearchQuery(QueryUserType type, OrderSearchViewModel model) { var param = new List <SqlParameter>(); var paramCount = new List <SqlParameter>(); var countQuery = "SELECT COUNT(*) FROM ( SELECT DISTINCT [O].[Id] "; var query = @" SELECT DISTINCT [O].[Id], [O].[OrderNumber], [O].[OrderSerial], ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] AS [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] "; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) AS [sumCount], ( SELECT COUNT(DISTINCT [SOD].[SetNumber]) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] AS [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[SetNumber] IS NOT NULL "; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) AS [sumCountSet], ( SELECT ROUND(SUM([SP].[Weight] * [SOD].[Count]), 2) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id]" ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) AS [sumWeight], [O].[BranchId] AS [BranchId], [B].[Name] AS [createBranch], [U].[FirstName] + ' ' + [U].[LastName] AS [createUser], [O].[createDate], ( CASE WHEN ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id]" ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) = ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[OrderDetailStatus] IN (0) " ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) THEN 'bg-new-order' WHEN ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] " ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) = ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[OrderDetailStatus] IN (6, 9, 8) " ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) THEN 'bg-done-order' WHEN ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] " ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) = ( SELECT COUNT(*) FROM [order].[OrderDetail] AS [SOD] INNER JOIN [Products] [SP] ON [SP].[Id] = [SOD].[ProductId] WHERE [SOD].[OrderId] = [O].[Id] AND [SOD].[OrderDetailStatus] IN (6, 7, 8, 9) " ; if (type == QueryUserType.LeatherProduct) { query += @" AND ([SP].[WorkshopId2] = 5 OR [SP].[ProductType] IN (10, 15, 14)) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([SP].[WorkshopId2] IS NULL OR [SP].[WorkshopId2] != 5) AND [SP].[ProductType] NOT IN (10, 15, 14))"; } query += @" ) THEN 'bg-open-shortage-order' ELSE 'bg-open-order' END ) AS [bgColor]" ; query += @" FROM [order].[Order] AS [O] INNER JOIN [Branches] AS [B] ON [B].[Id] = [O].[BranchId] INNER JOIN [UserProfile] AS [U] ON [U].[Id] = [O].[CreateUserId] INNER JOIN [order].[OrderDetail] AS [OD] ON [OD].[OrderId] = [O].[Id] INNER JOIN [Products] AS [P] ON [P].[Id] = [OD].[ProductId] WHERE [O].[Deleted] = 0 "; countQuery += @" FROM [order].[Order] AS [O] INNER JOIN [Branches] AS [B] ON [B].[Id] = [O].[BranchId] INNER JOIN [UserProfile] AS [U] ON [U].[Id] = [O].[CreateUserId] INNER JOIN [order].[OrderDetail] AS [OD] ON [OD].[OrderId] = [O].[Id] INNER JOIN [Products] AS [P] ON [P].[Id] = [OD].[ProductId] WHERE [O].[Deleted] = 0 "; if (type == QueryUserType.LeatherProduct) { query += @" AND ([P].[WorkshopId2] = 5 OR [P].[ProductType] = 10 OR [P].[ProductType] = 15 OR [P].[ProductType] = 14) "; countQuery += @" AND ([P].[WorkshopId2] = 5 OR [P].[ProductType] = 10 OR [P].[ProductType] = 15 OR [P].[ProductType] = 14) "; } else if (type == QueryUserType.NotLeatherProduct) { query += @" AND (([P].[WorkshopId2] IS NULL OR [P].[WorkshopId2] != 5) AND [P].[ProductType] NOT IN (10, 15, 14)) "; countQuery += @" AND (([P].[WorkshopId2] IS NULL OR [P].[WorkshopId2] != 5) AND [P].[ProductType] NOT IN (10, 15, 14)) "; } if (model.branchType != null) { query += @" AND [B].[BranchType] = @BranchType "; countQuery += @" AND [B].[BranchType] = @BranchType "; param.Add(new SqlParameter("@BranchType", model.branchType)); paramCount.Add(new SqlParameter("@BranchType", model.branchType)); } if (!string.IsNullOrEmpty(model.date)) { var date = DateUtility.GetDateTime(model.date); query += @" AND ([O].[CreateDate] >= @Date AND [O].[CreateDate] < DATEADD(DAY, 1, @Date)) "; countQuery += @" AND ([O].[CreateDate] >= @Date AND [O].[CreateDate] < DATEADD(DAY, 1, @Date)) "; param.Add(new SqlParameter("@Date", date)); paramCount.Add(new SqlParameter("@Date", date)); } if (model.branchId != null && model.branchId.Count > 0) { query += @" AND [O].[BranchId] IN (SELECT VALUE FROM STRING_SPLIT(@BranchId, '-')) "; countQuery += @" AND [O].[BranchId] IN (SELECT VALUE FROM STRING_SPLIT(@BranchId, '-')) "; param.Add(new SqlParameter("@BranchId", string.Join("-", model.branchId))); paramCount.Add(new SqlParameter("@BranchId", string.Join("-", model.branchId))); } if (!string.IsNullOrEmpty(model.term?.Trim())) { model.term = model.term.ToStandardPersian(); query += @" AND ( [O].[OrderSerial] LIKE @Term OR [O].[OrderNumber] LIKE @Term OR [B].[Name] LIKE @Term OR [B].[Alias] LIKE @Term OR [OD].[Customer] LIKE @Term OR [OD].[PhoneNumber] LIKE @Term OR [OD].[Description] LIKE @Term) " ; param.Add(new SqlParameter("@Term", "%" + model.term + "%")); countQuery += @" AND ( [O].[OrderSerial] LIKE @Term OR [O].[OrderNumber] LIKE @Term OR [B].[Name] LIKE @Term OR [B].[Alias] LIKE @Term OR [OD].[Customer] LIKE @Term OR [OD].[PhoneNumber] LIKE @Term OR [OD].[Description] LIKE @Term) " ; paramCount.Add(new SqlParameter("@Term", "%" + model.term + "%")); } query += @" ORDER BY [O].[OrderNumber] DESC OFFSET @Skip ROWS FETCH NEXT @Take ROWS ONLY; "; param.Add(new SqlParameter("@Skip", model.page * model.count)); param.Add(new SqlParameter("@Take", model.count)); countQuery += " ) AS A "; using (var db = new KiaGalleryContext()) { var total = db.Database.SqlQuery <int>(countQuery, paramCount.ToArray()).First(); var result = db.Database.SqlQuery <OrderQueryViewModel>(query, param.ToArray()).ToList(); result.ForEach(x => { x.persianDate = DateUtility.GetPersianDate(x.createDate); }); var response = new Response() { status = 200, data = new { list = result, pageCount = Math.Ceiling((double)total / model.count), count = total, page = model.page + 1, } }; return(response); } }
public JsonResult Save(CouponViewModel model) { try { if (model.usableCount <= 0) { return(Error("تعداد قابل استفاده باید بیشتر از 1 باشد.")); } if (model.typeId == CouponType.Percentage.Id && model.value > 100) { return(Error("برای مقدار کد تخفیف از نوع درصد، نمی توان مقدار را بیشتر از 100 وارد کرد.")); } var currentUser = GetAuthenticatedUser(); if (model.id != null && model.id > 0) { var entity = _context.Coupon.Single(x => x.StatusId != CouponStatus.Deleted.Id && x.Id == model.id); DateTime?fromDate = null; if (!string.IsNullOrEmpty(model.fromDatePersian)) { fromDate = DateUtility.GetDateTime(model.fromDatePersian); } DateTime?toDate = null; if (!string.IsNullOrEmpty(model.toDatePersian)) { toDate = DateUtility.GetDateTime(model.toDatePersian); } entity.Value = model.value; entity.UsableCount = model.usableCount; entity.UserId = model.userId; entity.FromDate = fromDate; entity.ToDate = toDate; entity.StatusId = model.statusId; entity.ModifyUserId = currentUser.id; entity.ModifyDate = GetDatetime(); entity.ModifyIp = GetCurrentIp(); _context.SaveChanges(); return(Success("اطلاعات کد تخفیف با موفقیت ویرایش شد.")); } else { if (model.codeCount < 5) { return(Error("حداقل تعداد برای ساخت کد تخفیف 5 کاراکتر است.")); } if (model.count <= 0) { return(Error("تعداد بایست حداقل 1 و یا بیشتر باشد.")); } DateTime?fromDate = null; if (!string.IsNullOrEmpty(model.fromDatePersian)) { fromDate = DateUtility.GetDateTime(model.fromDatePersian); } DateTime?toDate = null; if (!string.IsNullOrEmpty(model.toDatePersian)) { toDate = DateUtility.GetDateTime(model.toDatePersian); } if (fromDate != null && toDate != null && fromDate >= toDate) { return(Error("تاریخ شروع و انقضای کارت تخفیف نمی تواند برابر باشد.")); } if (toDate != null && toDate <= DateTime.Now) { return(Error("پایان تاریخ انقضای کارت تخفیف می بایست از امروز بیشتر باشد.")); } int group = 0; var lastItem = _context.Coupon.OrderByDescending(x => x.Id).FirstOrDefault(); if (lastItem != null) { group = lastItem.Group + 1; } else { group = 1; } List <string> codeList = new List <string>(); for (int i = 1; i <= model.count; i++) { string code = string.Empty; while (true) { code = StringUtility.RandomString(model.codeCount); Coupon coupon = _context.Coupon.SingleOrDefault(x => x.Code == code); if (coupon == null && codeList.Count(x => x == code) == 0) { break; } } var entity = new Coupon() { TypeId = model.typeId, Group = group, Code = model.prefix + code, Value = model.value, UsableCount = model.usableCount, UserId = model.userId, FromDate = fromDate, ToDate = toDate, StatusId = model.statusId, CreateUserId = currentUser.id, ModifyUserId = currentUser.id, CreateDate = GetDatetime(), ModifyDate = GetDatetime(), CreateIp = GetCurrentIp(), ModifyIp = GetCurrentIp() }; _context.Coupon.Add(entity); } _context.SaveChanges(); return(Success("کد تخفیف با موفقیت ایجاد شد.")); } } catch (Exception ex) { return(ServerError(ex)); } }
public JsonResult ReserveCard(LoyalityCardReserveViewModel model) { Response response; var currentUser = GetAuthenticatedUser(); var birthDate = DateUtility.GetDateTime(model.persianBirthDate); var mariageDate = DateUtility.GetDateTime(model.persianMariageDate); try { string message = string.Empty; using (var db = new KiaGalleryContext()) { var card = db.LoyalityCard.Where(x => x.Code == model.code).SingleOrDefault(); var customer = db.CustomerLoyality.Where(x => x.PhoneNumber == model.phoneNumber).SingleOrDefault(); if (customer == null) { var entity = new CustomerLoyality { LoyalityCardId = card.Id, FirstName = model.firstName, LastName = model.lastName, PhoneNumber = model.phoneNumber, BirthDate = DateUtility.GetDateTime(model.birthDate), MariageDate = DateUtility.GetDateTime(model.mariageDate), Date = DateTime.Now, ModifyUserId = currentUser.Id, CreateUserId = currentUser.Id, ModifyDate = DateTime.Now, CreateDate = DateTime.Now, Ip = Request.UserHostAddress, }; card.CustomerList.Add(entity); } else { customer.LoyalityCardId = card.Id; customer.MariageDate = DateUtility.GetDateTime(model.mariageDate); customer.BirthDate = DateUtility.GetDateTime(model.birthDate); customer.ModifyUserId = currentUser.Id; customer.ModifyDate = DateTime.Now; customer.Date = DateTime.Now; } card.CardStatus = LoyalityCardStatus.Reserved; var log = new LoyalityCardLog() { LoyalityCardId = card.Id, CardStatus = LoyalityCardStatus.Reserved, CreateUserId = currentUser.Id, CreateDate = DateTime.Now, Ip = Request.UserHostAddress }; db.LoyalityCardLog.Add(log); db.SaveChanges(); response = new Response() { status = 200, message = "اطلاعات با موفقیت ثبت شد." }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult GetChats(string fromDate, string toDate, bool unknown) { Response response; try { DateTime?From = DateUtility.GetDateTime(fromDate); DateTime?To = DateUtility.GetDateTime(toDate); if (To != null) { To = To.GetValueOrDefault().AddDays(1); } using (var db = new KiaGalleryContext()) { var query = db.BotMessage.Select(x => x); if (unknown) { query = query.Where(x => x.Unknown == true); } if (From != null) { query = query.Where(x => x.CreatedDate >= From); } if (To != null) { query = query.Where(x => x.CreatedDate <= To); } query = query.OrderByDescending(x => x.Id); List <ResultUserList> result = query.Select(x => new ResultUserList() { chatId = x.ChatId, firstName = db.UserData.FirstOrDefault(y => y.ChatId == x.ChatId).FirstName, lastName = db.UserData.FirstOrDefault(y => y.ChatId == x.ChatId).LastName, username = db.UserData.FirstOrDefault(y => y.ChatId == x.ChatId).Username, lastMessage = x.Text }).ToList(); List <ResultUserList> finalResult = new List <ResultUserList>(); for (int i = 0; i < result.Count; i++) { try { var item = result[i]; var res = finalResult.FirstOrDefault(x => x.chatId == item.chatId); if (res == null) { finalResult.Add(item); } } catch (Exception) { } } //group user by new { ChatId = user.ChatId, FirstName = user.FirstName, LastName = user.LastName, Username = user.Username } into resultUser //select new //{ // chatId = resultUser.Key.ChatId, // firstName = resultUser.Key.FirstName, // lastName = resultUser.Key.LastName, // userName = resultUser.Key.Username, // lastMessage = db.Message.OrderByDescending(x => x.Id).FirstOrDefault(x => x.ChatId == resultUser.Key.ChatId && x.Unknown == true).Text //}).ToList(); response = new Response() { status = 200, data = new { list = finalResult } }; } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult SaveDailyInventory(DailyInventoryDetailViewModel model) { Response response; try { int id = 0; using (var db = new KiaGalleryContext()) { string message = string.Empty; var userId = GetAuthenticatedUserId(); if (model.id != null && model.id > 0) { id = model.id.Value; var inventory = db.InventoryDetail.Single(x => x.Id == model.id); inventory.Id = model.id.Value; inventory.CategoryInventoryReportMemberId = model.categoryInventoryReportMemberId; inventory.Order = model.order; inventory.Title = model.title; inventory.Weight = model.weight; inventory.Count = model.count; inventory.Date = DateUtility.GetDateTime(model.persianDate); inventory.ModifyUserId = userId; inventory.ModifyDate = DateTime.Now; inventory.Ip = Request.UserHostAddress; message = "دسته بندی با موفقیت ویرایش شد."; db.SaveChanges(); } else { var entity = new InventoryDetail() { CategoryInventoryReportMemberId = model.categoryInventoryReportMemberId, Order = model.order, Title = model.title, Weight = model.weight, Count = model.count, Date = DateUtility.GetDateTime(model.persianDate), CreateUserId = userId, ModifyUserId = userId, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, }; db.InventoryDetail.Add(entity); message = "دسته بندی با موفقیت ایجاد شد."; db.SaveChanges(); id = entity.Id; } } response = new Response() { data = new InventoryDetail { Id = id }, status = 200, message = "عنوان جدید ثبت شد", }; } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }