public ActionResult Orderdone(tblorder tb, string total) { tblorder obj = new tblorder(); obj.odate = DateTime.Now; obj.opname = tb.opname; obj.opphone = tb.opphone; obj.opaddress = tb.opaddress; obj.opsaddress = tb.opaddress; obj.ostatus = 0; obj.oamount = decimal.Parse(total); db.tblorders.Add(obj); db.SaveChanges(); return(RedirectToAction("index")); }
public ActionResult doneorder(tblorder tb, string total) { tblorder obj = new tblorder(); obj.odate = DateTime.Now; obj.opname = tb.opname; obj.opphone = tb.opphone; obj.opaddress = tb.opaddress; obj.opsaddress = tb.opsaddress; obj.oamount = decimal.Parse(total); obj.ostatus = 0; db.tblorders.Add(obj); /*Order Table*/ db.SaveChanges(); //max order id for order details int moid = db.tblorders.Select(a => a.oid).DefaultIfEmpty(0).Max(); var pro = from prod in ok.c join od in db.tblproes on prod.iid equals od.pid select new { PID = od.pid, PPRICE = od.pprice, PQTY = prod.iqty }; tblorderdetail orderdetails = new tblorderdetail(); foreach (var item in pro) { orderdetails.oid = moid; orderdetails.pid = item.PID; orderdetails.pprice = item.PPRICE; orderdetails.pqty = item.PQTY; orderdetails.pamount = item.PPRICE * item.PQTY; db.tblorderdetails.Add(orderdetails); db.SaveChanges(); } return(RedirectToAction("Index")); }
/// <summary> /// Used to execute and confirm orders (card- and goldorders) /// Cardorder: checks if user has enough currency then generates the amount of cards based on cardquantity /// Goldorder: creditcard payment, creditcardnumber get checkt via luhn algorithm and data will be send via HTTPS to the Credit Card company /// </summary> /// <param name="personID"></param> /// <param name="packID"></param> /// <param name="creditCardNumber"></param> public static void ExecuteOrder(int personID, int packID, string creditCardNumber) { using (var db = new ClonestoneFSEntities()) { tblorder order = new tblorder(); tblcollection col = new tblcollection(); Random r = new Random(); order.fkpack = packID; order.fkperson = personID; order.orderdate = DateTime.Now; db.tblorder.Add(order); db.SaveChanges(); int orderID = (from p in db.tblorder orderby p.idorder descending select p.idorder).FirstOrDefault(); int cardq = (from q in db.tblpack where q.idpack == packID select q.cardquantity).FirstOrDefault(); #region Kartenpacks if (cardq != 0) { // Update Person ! try { var updatePerson = (from p in db.tblperson where p.idperson == personID select p); var packValue = (from v in db.tblpack where v.idpack == packID select v.packprice).FirstOrDefault(); foreach (var value in updatePerson) { value.currencybalance -= (int)packValue; } db.SaveChanges(); } catch (Exception e) { Log.Writer.LogError(e); } // Insert Cards ! for (int i = 0; i < cardq; i++) { int rng = r.Next(1, 698); var card = (from c in db.tblcard where c.idcard == rng select c).FirstOrDefault(); if (card != null) { col.fkperson = personID; col.fkorder = orderID; col.fkcard = card.idcard; db.tblcollection.Add(col); db.SaveChanges(); } else { i = i - 1; } } } #endregion #region Goldpacks else { //TODO - ausbessern if (true) { tblperson person = new tblperson(); var updatePerson = (from p in db.tblperson where p.idperson == personID select p); var goldValue = (from g in db.tblpack where g.idpack == packID select g.goldquantity).FirstOrDefault(); foreach (var value in updatePerson) { value.currencybalance += (int)goldValue; } db.SaveChanges(); } else { //was auch immer } } #endregion } }