public ActionResult Edit(order order, string[] totalProduct) { //var tem = db.orders.Find(order.ocid); db.Entry(order).State = EntityState.Modified; db.SaveChanges(); if (totalProduct != null) { var listItem = totalProduct.ToList().Distinct().ToList(); foreach (var item in listItem) { var itemId = int.Parse(item.Split('_')[0]); var tblItem = db.items.FirstOrDefault(x => x.ARTNO == itemId); var tblOrderDetail = db.orderdetails.FirstOrDefault(x => x.itemId == itemId && x.ocid == order.ocid); if (tblOrderDetail == null) { var tblOrder = new orderdetail { ocid = order.ocid, itemId = itemId, ocdetailqty = int.Parse(item.Split('_')[1]), ocdetailname = tblItem != null ? tblItem.ARTNAME : "" }; db.orderdetails.Add(tblOrder); } else { tblOrderDetail.ocdetailqty = int.Parse(item.Split('_')[1]); db.Entry(tblOrderDetail).State = EntityState.Modified; } } } db.SaveChanges(); return(RedirectToAction("Index")); }
public bool SendTemplateEmail(string recepientEmail, string username, string key, string Subject, int type, ShoppingCart shoppingCart = null, order order = null) { bool t = false; //Type =1 MailOrder //Type =2 ForgetPass var tblSetting = db.settings.FirstOrDefault(x => x.code == "MailToManager"); string body = string.Empty; var activelink = ""; if (type == 1) { if (!string.IsNullOrEmpty(username)) { var tble = ""; if (shoppingCart != null) { foreach (var item in shoppingCart.cartItem.ToList()) { tble += "<tr><td>" + item.Name + "</td><td>" + item.Qty + "</td><td>Germany</td></tr>"; } } body = ViewRenderer.RenderPartialView("~/Views/Shared/Partial/_OrderSuccessTemplateMail.cshtml"); body = body.Replace("##name##", username); body = body.Replace("##Table##", tble); if (order != null) { var invoiceAdd = "First Name: " + order.fname + "<br>" + "Last Name: " + order.lname + "<br>" + "Phone: " + order.phone + "<br>" + "Address: " + order.addr1 + "," + order.addr2 + "," + order.addr3; var deliveryAddress = "First Name: " + order.d_fname + "<br>" + "Last Name: " + order.d_lname + "<br>" + "Phone: " + order.d_phone + "<br>" + "Address: " + order.d_addr1 + "," + order.d_addr2 + "," + order.d_addr3; body = body.Replace("##COD##", order.payoption); body = body.Replace("##CASH##", order.payoption); body = body.Replace("##InvoiceAddress##", invoiceAdd); body = body.Replace("##DeliveryAddress##", deliveryAddress); body = body.Replace("##nameorder##", deliveryAddress); body = body.Replace("##Order##", "#" + order.ocid + "" + DateTime.Now.Day); } } } if (type == 3) { var tble = ""; if (shoppingCart != null) { foreach (var item in shoppingCart.cartItem.ToList()) { tble += "<tr><td>" + item.Name + "</td><td>" + item.Qty + "</td><td>Germany</td></tr>"; } } recepientEmail = (tblSetting != null ? tblSetting.name : "*****@*****.**"); body = ViewRenderer.RenderPartialView("~/Views/Shared/Partial/_OrderSuccessTemplateMailMa.cshtml"); body = body.Replace("##name##", (tblSetting != null ? tblSetting.name : "*****@*****.**")); body = body.Replace("##Table##", tble); if (order != null) { var invoiceAdd = "First Name: " + order.fname + "<br>" + "Last Name: " + order.lname + "<br>" + "Phone: " + order.phone + "<br>" + "Address: " + order.addr1 + "," + order.addr2 + "," + order.addr3; var deliveryAddress = "First Name: " + order.d_fname + "<br>" + "Last Name: " + order.d_lname + "<br>" + "Phone: " + order.d_phone + "<br>" + "Address: " + order.d_addr1 + "," + order.d_addr2 + "," + order.d_addr3; body = body.Replace("##COD##", order.payoption); body = body.Replace("##CASH##", order.payoption); body = body.Replace("##InvoiceAddress##", invoiceAdd); body = body.Replace("##DeliveryAddress##", deliveryAddress); body = body.Replace("##nameorder##", username); body = body.Replace("##Order##", "#" + order.ocid + "" + DateTime.Now.Day); } } if (type == 2) { var check = db.users.ToList().FirstOrDefault(x => x.email == recepientEmail.ToLower()); if (check != null) { body = ViewRenderer.RenderPartialView("~/Views/Shared/Partial/_ResetPassTemplateMail.cshtml"); body = body.Replace("##name##", username); } } t = Models.Helper.SendEmail("*****@*****.**", recepientEmail, Subject, body); return(t); }
// GET: /Checkout/Create public ActionResult Create() { var order = new order(); var user = new AllLoggedUserInfo(); if (Session["ShoppingCart"] == null) { return(RedirectToAction("UpdateCart", "Home")); } else { ShoppingCart cart = (ShoppingCart)Session["ShoppingCart"]; if (cart.cartItem.Count == 0) { return(RedirectToAction("UpdateCart", "Home")); } ViewBag.Cart = cart; if (Session["LoggedAccount"] == null) { return(View()); } else { if (string.IsNullOrWhiteSpace(cart.paid_key)) { user = (AllLoggedUserInfo)Session["LoggedAccount"]; var tblUser = db.users.Join(db.userdatas, us => us.Id, usdt => usdt.userid, (us, usdt) => new AllModel { tblUser = us, tblUserData = usdt }).FirstOrDefault(x => x.tblUser.Id == user.user.Id); if (tblUser != null) { if (tblUser.tblUser.Id == 7 || tblUser.tblUser.Id == 1) { order = new order(); } else { order.fname = tblUser.tblUserData.firstname; order.lname = tblUser.tblUserData.lasname; order.email = tblUser.tblUser.email; order.phone = tblUser.tblUserData.contact_phone; order.d_fname = tblUser.tblUserData.delivery_name; order.d_phone = tblUser.tblUserData.delivery_phone; order.d_email = tblUser.tblUserData.delivery_email; order.d_addr1 = tblUser.tblUserData.delivery_address1; order.d_postcode = tblUser.tblUserData.delivery_postcode; order.d_country = tblUser.tblUserData.delivery_contry; order.b_fname = tblUser.tblUserData.billing_name; order.b_phone = tblUser.tblUserData.billing_phone; order.b_email = tblUser.tblUserData.billing_email; order.b_addr1 = tblUser.tblUserData.billing_address1; order.b_postcode = tblUser.tblUserData.billing_poscode; order.b_country = tblUser.tblUserData.billing_country; } } } else { order = db.orders.FirstOrDefault(t => t.paid_key == cart.paid_key); if (order == null) { order = new order(); user = (AllLoggedUserInfo)Session["LoggedAccount"]; var tblUser = db.users.Join(db.userdatas, us => us.Id, usdt => usdt.userid, (us, usdt) => new AllModel { tblUser = us, tblUserData = usdt }).FirstOrDefault(x => x.tblUser.Id == user.user.Id); if (tblUser != null) { if (tblUser.tblUser.Id == 7 || tblUser.tblUser.Id == 1) { order = new order(); } else { order.fname = tblUser.tblUserData.firstname; order.lname = tblUser.tblUserData.lasname; order.email = tblUser.tblUser.email; order.phone = tblUser.tblUserData.contact_phone; order.d_fname = tblUser.tblUserData.delivery_name; order.d_phone = tblUser.tblUserData.delivery_phone; order.d_email = tblUser.tblUserData.delivery_email; order.d_addr1 = tblUser.tblUserData.delivery_address1; order.d_postcode = tblUser.tblUserData.delivery_postcode; order.d_country = tblUser.tblUserData.delivery_contry; order.b_fname = tblUser.tblUserData.billing_name; order.b_phone = tblUser.tblUserData.billing_phone; order.b_email = tblUser.tblUserData.billing_email; order.b_addr1 = tblUser.tblUserData.billing_address1; order.b_postcode = tblUser.tblUserData.billing_poscode; order.b_country = tblUser.tblUserData.billing_country; } } } } } } ViewBag.ListCountry = db.countries.ToList(); return(View(order)); }
public ActionResult Create(order order, int?checkBilldingShipping) { if (ModelState.IsValid) { if (Session["ShoppingCart"] == null) { return(RedirectToAction("UpdateCart", "Home")); } else { try { var oldPriceOrder = 0.0; if (order.ocid > 0) { var _order = db.orders.Where(t => t.ocid == order.ocid).FirstOrDefault(); oldPriceOrder = _order.paid_amount.HasValue ? _order.paid_amount.Value : 0; db.Entry(_order).State = EntityState.Detached; db.SaveChanges(); } order.d_companyname = string.IsNullOrEmpty(order.d_companyname) ? order.companyname : order.d_companyname; order.d_fname = string.IsNullOrEmpty(order.d_fname) ? order.fname : order.d_fname; order.d_lname = string.IsNullOrEmpty(order.d_lname) ? order.lname : order.d_lname; order.d_email = string.IsNullOrEmpty(order.d_email) ? order.email : order.d_email; order.d_phone = string.IsNullOrEmpty(order.d_phone) ? order.phone : order.d_phone; order.d_addr1 = string.IsNullOrEmpty(order.d_addr1) ? order.addr1 : order.d_addr1; if (checkBilldingShipping.HasValue && checkBilldingShipping.Value == 1) { order.b_companyname = string.IsNullOrEmpty(order.d_companyname) ? order.companyname : order.d_companyname; order.b_fname = string.IsNullOrEmpty(order.d_fname) ? order.fname : order.d_fname; order.b_lname = string.IsNullOrEmpty(order.d_lname) ? order.lname : order.d_lname; order.b_email = string.IsNullOrEmpty(order.d_email) ? order.email : order.d_email; order.b_phone = string.IsNullOrEmpty(order.d_phone) ? order.phone : order.d_phone; order.b_addr1 = string.IsNullOrEmpty(order.d_addr1) ? order.addr1 : order.d_addr1; } order.status = "2"; if (order.payoption == "PayPal") { order.paid_status = 2; } if (order.payoption == "COD") { order.paid_status = 1; } ShoppingCart Cart = new ShoppingCart(); Cart = (ShoppingCart)Session["ShoppingCart"]; order.paid_amount = Cart.CartTotal + Cart.taxTotal; String randomKey = Guid.NewGuid().ToString(); if (order.ocid == 0) { order.paid_key = randomKey; db.orders.Add(order); db.SaveChanges(); } else { db.Entry(order).State = EntityState.Modified; db.SaveChanges(); } Cart.paid_key = order.paid_key; WebApplication1.Models.AllLoggedUserInfo userFullInfo = (WebApplication1.Models.AllLoggedUserInfo)Session["LoggedAccount"]; if (userFullInfo != null) { var user = db.users.Find(userFullInfo.user.Id); user.paidorder = (user.paidorder ?? 0) + (decimal)Cart.CartTotal + (decimal)(order.feeshipping ?? 0) - (decimal)oldPriceOrder; db.Entry(user).State = EntityState.Modified; db.SaveChanges(); } double cartAmount = 0; string currencyName = "USD"; ordersetting ordersetting = db.ordersettings.Where(t => t.status == 1).FirstOrDefault(); if (ordersetting != null) { currencyName = ordersetting.name; } var itemList = new ItemList(); var items = new List <Item>(); String paypalURL = ""; var paypayconfig = new PayPalConfiguration(); var apiContext = paypayconfig.GetAPIContext(); var _orderdetails = db.orderdetails.Where(t => t.ocid == order.ocid).ToList(); var listItems = _orderdetails.Select(t => t.ocdetailcode); var _items = db.items.Where(t => listItems.Contains(t.ARTCODE)).ToList(); foreach (var item in _orderdetails) { if (item.stockId.HasValue && item.stockId.Value > 0) { var _item = _items.FirstOrDefault(t => t.ARTCODE == item.ocdetailcode); if (_item != null) { var _stock = db.stocks.Where(t => t.ARTNO == item.itemId && t.STOCKNO == item.stockId).FirstOrDefault(); _stock.VOLUME += item.ocdetailqty.Value; db.Entry(_stock).State = EntityState.Modified; } } } db.orderdetails.RemoveRange(_orderdetails); var _listItems = Cart.cartItem.Select(t => t.Code); var __items = db.items.Where(t => _listItems.Contains(t.ARTCODE)).ToList(); foreach (var item in Cart.cartItem) { orderdetail od = new orderdetail(); od.ocid = order.ocid; od.ocdetailcode = item.Code; od.ocdetailname = item.Name; od.ocdetailprice = item.Price; od.ocdetailqty = item.Qty; od.ocdetailgst = item.Tax / item.Qty; od.stockId = item.StockId; if (item.StockId > 0) { var _item = __items.FirstOrDefault(t => t.ARTCODE == od.ocdetailcode); if (_item != null) { var _stock = db.stocks.Where(t => t.ARTNO == _item.ARTNO && t.STOCKNO == item.StockId).FirstOrDefault(); _stock.VOLUME -= item.Qty; db.Entry(_stock).State = EntityState.Modified; od.itemId = _item.ARTNO; } } db.orderdetails.Add(od); var Item = new Item(); Item.name = item.Code + " - " + item.Name; Item.currency = currencyName; Item.price = (item.Price + (item.Tax / item.Qty)) + ""; Item.quantity = item.Qty + ""; items.Add(Item); } if (order.feeshipping.HasValue && order.feeshipping.Value > 0) { var Item = new Item(); Item.name = "Fee Shipping"; Item.currency = currencyName; Item.price = order.feeshipping + ""; Item.quantity = "1"; items.Add(Item); } if (Cart.promotion != null) { if (Cart.promotion.TYPENO == 0) { var Item = new Item(); Item.name = "Discount Promotion"; Item.currency = currencyName; Item.price = "-" + Cart.PromotionTotal + ""; Item.quantity = "1"; items.Add(Item); } } cartAmount = Cart.CartTotal + Cart.taxTotal + order.feeshipping ?? 0; cartAmount = Math.Round(cartAmount, 2); itemList.items = items; db.SaveChanges(); if (order.payoption == "PayPal") { var payer = new Payer() { payment_method = "paypal" }; var redirUrls = new RedirectUrls() { cancel_url = UrlHelper.Root + "Checkout/PayPalCancel?" + UrlHelper.ToQueryString(new { paid_key = order.paid_key }), return_url = UrlHelper.Root + "Checkout/PayPalSuccess?" + UrlHelper.ToQueryString(new { paid_key = order.paid_key }) }; var paypalAmount = new Amount() { currency = currencyName, total = cartAmount.ToString() }; var transactionList = new List <PayPal.Api.Transaction>(); PayPal.Api.Transaction transaction = new PayPal.Api.Transaction(); transaction.amount = paypalAmount; transaction.item_list = itemList; transactionList.Add(transaction); var payment = new Payment() { intent = "Sale", payer = payer, transactions = transactionList, redirect_urls = redirUrls }; try { var createdPayment = payment.Create(apiContext); var links = createdPayment.links.GetEnumerator(); while (links.MoveNext()) { var link = links.Current; if (link.rel.ToLower().Trim().Equals("approval_url")) { paypalURL = link.href; } } return(Redirect(paypalURL)); } catch (PaymentsException ex) { paypalURL = "ERROR: " + ex.Response; } } else { SendTemplateEmail(order.d_email, order.d_email, "", "Order Success #" + order.ocid + "" + DateTime.Now.Day, 1, Cart, order); SendTemplateEmail(order.d_email, order.d_email, "", "Order Success #" + order.ocid + "" + DateTime.Now.Day, 3, Cart, order); return(RedirectToAction("Thankyou")); } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } } } } return(RedirectToAction("Create")); }