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 Save(CustomerLoyalityViewModel model) { Response response; var currentUser = GetAuthenticatedUser(); var date = DateUtility.GetDateTime(model.persianDate); var returnDate = DateUtility.GetDateTime(model.persianReturnDate); if (date > DateTime.Now) { response = new Response() { status = 500, message = "تاریخ انتخاب شده بزرگتر از تاریخ امروز می باشد.", }; return(Json(response, JsonRequestBehavior.AllowGet)); } try { using (var db = new KiaGalleryContext()) { var personel = db.Person.Where(x => x.MobileNumber == model.phoneNumber).Count(); if (personel > 0) { response = new Response() { status = 500, message = "این شماره متعلق به پرسنل کیا گالری میباشد که شامل مشتریان وفادار نمیشوند.", }; return(Json(response, JsonRequestBehavior.AllowGet)); } } if (!ValidateMobileNumber(model.phoneNumber)) { response = new Response() { status = 500, message = "تلفن همراه وارد شده صحیح نیست. لطفا تلفن همراه را در قالب 09123456789 وارد نمایید. \n مثال:0912123456789", }; return(Json(response, JsonRequestBehavior.AllowGet)); } else { using (var db = new KiaGalleryContext()) { var SilverCardValue = db.Settings.SingleOrDefault(x => x.Key == Settings.KeySilverCardValue)?.Value; var GoldenCardValue = db.Settings.SingleOrDefault(x => x.Key == Settings.KeyGoldenCardValue)?.Value; var PlatinumCardValue = db.Settings.SingleOrDefault(x => x.Key == Settings.KeyPlatinumCardValue)?.Value; var SilverCardLevel = db.Settings.SingleOrDefault(x => x.Key == Settings.KeySilverCardLevel)?.Value; var GoldenCardLevel = db.Settings.SingleOrDefault(x => x.Key == Settings.KeyGoldenCardLevel)?.Value; var PlatinumCardLevel = db.Settings.SingleOrDefault(x => x.Key == Settings.KeyPlatinumCardLevel)?.Value; if (model.customerId > 0) { var entity = db.CustomerLoyality.Single(x => x.Id == model.customerId); entity.FirstName = model.firstName; entity.LastName = model.lastName; entity.PhoneNumber = model.phoneNumber; db.SaveChanges(); response = new Response() { status = 200, message = "ویرایش اطلاعات با موفقیت انجام شد." }; return(Json(response, JsonRequestBehavior.AllowGet)); } else { if (model.id > 0) { if (model.purchaseType == PurchaseType.Return) { var entity = db.CustomerFactor.Single(x => x.Id == model.id); entity.ReturnDate = returnDate; entity.ProductCode = model.productCode; entity.FactorNumber = model.factorNumber; entity.FactorPrice = model.factorPrice; entity.PurchaseType = model.purchaseType; entity.Ip = Request.UserHostAddress; entity.ModifyUserId = currentUser.Id; entity.ModifyDate = DateTime.Now; entity.CustomerLoyality.FirstName = model.firstName; entity.CustomerLoyality.LastName = model.lastName; entity.CustomerLoyality.PhoneNumber = model.phoneNumber; db.SaveChanges(); response = new Response() { status = 200, message = "ویرایش اطلاعات با موفقیت انجام شد." }; } else { var entity = db.CustomerFactor.Single(x => x.Id == model.id); entity.Date = date.Value; entity.ProductCode = model.productCode; entity.FactorNumber = model.factorNumber; entity.FactorPrice = model.factorPrice; entity.FactorWeight = model.factorWeight; entity.PurchaseType = model.purchaseType; entity.Ip = Request.UserHostAddress; entity.ModifyUserId = currentUser.Id; entity.ModifyDate = DateTime.Now; entity.CustomerLoyality.FirstName = model.firstName; entity.CustomerLoyality.LastName = model.lastName; entity.CustomerLoyality.PhoneNumber = model.phoneNumber; db.SaveChanges(); response = new Response() { status = 200, message = "ویرایش اطلاعات با موفقیت انجام شد." }; } } else { var entity = db.CustomerLoyality.SingleOrDefault(x => x.PhoneNumber == model.phoneNumber); //double setting = 1; if (entity != null) { if (model.purchaseType == PurchaseType.Return) { var factorInfo = db.CustomerFactor.Single(x => x.Id == model.hiddenId && x.CustomerLoyality.PhoneNumber == model.phoneNumber); var productCode = db.CustomerFactor.Single(x => x.Id == model.hiddenId).ProductCode.Split('-'); var codes = model.productCode.Split('-'); foreach (var code in codes) { if (productCode.Count(v => v == code) > 0) { productCode = productCode.Where(x => x != code).ToArray(); } else { response = new Response() { status = 404, message = "کد کالا یافت نشد یامحصولی با این کد قبلا مرجوع شده." }; return(Json(response, JsonRequestBehavior.AllowGet)); } if (productCode.Count(v => v == code) == 0) { productCode = productCode.Where(x => x != code).ToArray(); } else { response = new Response() { status = 404, message = "کدکالا وارد نشده است." }; return(Json(response, JsonRequestBehavior.AllowGet)); } } string dash = "-"; string stringProductCode; stringProductCode = string.Join(dash, productCode); var returnFactor = new CustomerFactor() { Date = factorInfo.Date, ReturnDate = returnDate, ProductCode = model.productCode, BranchId = currentUser.BranchId.Value, CustomerLoyalityId = entity.Id, FactorNumber = model.factorNumber, FactorPrice = model.factorPrice, PurchaseType = model.purchaseType, CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress }; db.CustomerFactor.Add(returnFactor); factorInfo.CustomerLoyality.FirstName = model.firstName; factorInfo.CustomerLoyality.LastName = model.lastName; factorInfo.ProductCode = stringProductCode; factorInfo.FactorNumber = model.factorNumber; factorInfo.FactorPrice = factorInfo.FactorPrice; factorInfo.PurchaseType = PurchaseType.Buy; factorInfo.Ip = Request.UserHostAddress; factorInfo.ModifyUserId = currentUser.Id; factorInfo.ModifyDate = DateTime.Now; factorInfo.CustomerLoyality.PhoneNumber = model.phoneNumber; response = new Response() { status = 200, message = "ثبت اطلاعات با موفقیت انجام شد." }; db.SaveChanges(); } else { var factor = new CustomerFactor() { Date = date.Value, ProductCode = model.productCode, BranchId = currentUser.BranchId.Value, CustomerLoyalityId = entity.Id, FactorNumber = model.factorNumber, FactorPrice = model.factorPrice, FactorWeight = model.factorWeight, PurchaseType = model.purchaseType, CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; //entity.Credit = long.Parse(Math.Round((model.factorPrice * setting / 100) / 1000).ToString()); Random random = new Random(Guid.NewGuid().GetHashCode()); int number = random.Next(10000, 99999); var survey = new CustomerSurvey() { Code = number.ToString(), CustomerFactor = factor, CreateDate = DateTime.Now, CreateUserId = currentUser.Id, Ip = Request.UserHostAddress }; //Task.Factory.StartNew(() => //{ //NikSmsWebServiceClient.SendSmsNik("srvey.kia-gallery.com/" + number.ToString(), "09354047788"); // NikSmsWebServiceClient.SendSmsNik("survey.kia-gallery.com/"+ number.ToString(), "09193121247"); // NikSmsWebServiceClient.SendSmsNik("www.kia-gallery.com/" + number.ToString(), model.phoneNumber); //}); db.CustomerSurvey.Add(survey); response = new Response() { status = 200, message = "ثبت اطلاعات با موفقیت انجام شد." }; db.CustomerFactor.Add(factor); db.SaveChanges(); } } else { //if (entity.CustomerCardLevel == CustomerCardLevel.Silver) //{ // setting = double.Parse(SilverCardValue); //} //if (entity.CustomerCardLevel == CustomerCardLevel.Gold) //{ // setting = double.Parse(GoldenCardValue); //} //if (entity.CustomerCardLevel == CustomerCardLevel.Platinum) //{ // setting = double.Parse(PlatinumCardValue); //} var loyality = new CustomerLoyality() { FirstName = model.firstName, LastName = model.lastName, //Credit = long.Parse(Math.Round((model.factorPrice * setting / 100) / 1000).ToString()), PhoneNumber = model.phoneNumber, Date = DateTime.Now, CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress, }; var factor = new CustomerFactor() { Date = date.Value, ProductCode = model.productCode, ReturnDate = returnDate, BranchId = currentUser.BranchId.Value, CustomerLoyality = loyality, FactorNumber = model.factorNumber, FactorPrice = model.factorPrice, FactorWeight = model.factorWeight, PurchaseType = model.purchaseType, CreateUserId = currentUser.Id, ModifyUserId = currentUser.Id, CreateDate = DateTime.Now, ModifyDate = DateTime.Now, Ip = Request.UserHostAddress }; Random random = new Random(Guid.NewGuid().GetHashCode()); int number = random.Next(10000, 99999); var survey = new CustomerSurvey() { Code = number.ToString(), CustomerFactor = factor, CreateDate = DateTime.Now, CreateUserId = currentUser.Id, Ip = Request.UserHostAddress }; //Task.Factory.StartNew(() => //{ // NikSmsWebServiceClient.SendSmsNik("srvey.kia-gallery.com/" + number.ToString(), "09354047788"); // NikSmsWebServiceClient.SendSmsNik("survey.kia-gallery.com/" + number.ToString(), "09193121247"); //}); db.CustomerSurvey.Add(survey); response = new Response() { status = 200, message = "ثبت اطلاعات با موفقیت انجام شد." }; db.CustomerLoyality.Add(loyality); db.CustomerFactor.Add(factor); db.SaveChanges(); //if (loyality.Credit >= long.Parse(SilverCardLevel)) //{ // var customerCardlevelLog = new CustomerCreditLog() // { // CustomerId = loyality.Id, // Credit = long.Parse(Math.Round((model.factorPrice * setting / 100) / 1000).ToString()), // CustomerCardLevel = CustomerCardLevel.Silver // }; //} //else if (loyality.Credit >= long.Parse(GoldenCardLevel)) //{ // var customerCardlevelLog = new CustomerCreditLog() // { // CustomerId = loyality.Id, // Credit = long.Parse(Math.Round((model.factorPrice * setting / 100) / 1000).ToString()), // CustomerCardLevel = CustomerCardLevel.Gold // }; //} //else if (loyality.Credit >= long.Parse(PlatinumCardLevel)) //{ // var customerCardlevelLog = new CustomerCreditLog() // { // CustomerId = loyality.Id, // Credit = long.Parse(Math.Round((model.factorPrice * setting / 100) / 1000).ToString()), // CustomerCardLevel = CustomerCardLevel.Platinum // }; //} //else //{ // var customerCardlevelLog = new CustomerCreditLog() // { // CustomerId = loyality.Id, // Credit = long.Parse(Math.Round((model.factorPrice * setting / 100) / 1000).ToString()), // CustomerCardLevel = CustomerCardLevel.None // }; //} } } } } } } catch (Exception ex) { response = Core.GetExceptionResponse(ex); } return(Json(response, JsonRequestBehavior.AllowGet)); }