コード例 #1
0
        //public static int SaveOrder(OrderList orders)
        //{
        //    //Now taking it from session. instead of perameter.
        //    if (HttpContext.Current.Session["OrderList"] != null)
        //    {
        //        orders = (OrderList)HttpContext.Current.Session["OrderList"];
        //    }

        //    using (DBKOMPDataContext db = new DBKOMPDataContext())
        //    {
        //        int customerId = 0;
        //        if (HttpContext.Current.Session["USER"] != null)
        //        {
        //            customerId = ((User)HttpContext.Current.Session["USER"]).UserId;
        //        }



        //        Request objRequest = new Request();
        //        objRequest.CreatedDate = DateTime.Now;
        //        objRequest.UserId = customerId;
        //        objRequest.CreatedBy = customerId;

        //        //create a request id
        //        db.Requests.InsertOnSubmit(objRequest);
        //        db.SubmitChanges();

        //        foreach(var order in orders.orders)
        //        {
        //            order.Order.RequestId = objRequest.Id;
        //            order.Order.CustomerId = customerId;
        //            order.Order.OrderDate = DateTime.Now;
        //            db.Orders.InsertOnSubmit(order.Order);
        //            db.SubmitChanges();

        //            order.payment.OrderId = order.Order.Id;
        //            db.Payments.InsertOnSubmit(order.payment);

        //            foreach (var apt in order.OrderDetailList)
        //            {
        //                apt.OrderId = order.Order.Id;
        //            }

        //            db.OrderDetails.InsertAllOnSubmit(order.OrderDetailList);
        //        }

        //        db.SubmitChanges();

        //        //#region Send Mail
        //        //if (HttpContext.Current.Session["USER"] != null)
        //        //{
        //        //    var objtblUser = (User)HttpContext.Current.Session["USER"];

        //        //    string content = string.Empty;

        //        //    string filepath = "~/Email/Post.htm";
        //        //    //New user
        //        //    StringBuilder sbContent = new StringBuilder();
        //        //    StreamReader rdr = new StreamReader(HttpContext.Current.Server.MapPath(filepath));
        //        //    string strLine = "";
        //        //    while (strLine != null)
        //        //    {
        //        //        strLine = rdr.ReadLine();
        //        //        if ((strLine != null) && (strLine != ""))
        //        //        {
        //        //            sbContent.Append("\n" + strLine);
        //        //        }
        //        //    }
        //        //    rdr.Close();

        //        //    string site = ConfigurationManager.AppSettings["SiteName"].ToString();
        //        //    content = sbContent.ToString();
        //        //    //content = content.Replace("$REQ$", PostType);
        //        //    //content = content.Replace("$ID$", ID);
        //        //    content = content.Replace("$NAME$", objtblUser.FirstName + " " + objtblUser.LastName);
        //        //    content = content.Replace("$SITE$", site);

        //        //    if (!string.IsNullOrEmpty(objtblUser.email))
        //        //    {
        //        //        MailHelper.SendMailMessage("", objtblUser.email, string.Empty, string.Empty, "Thanks for Posting", content);
        //        //       // AutoServices.SendeMailToUs("Copy:Thanks for Posting", content);

        //        //    }
        //        //}
        //        //#endregion

        //       // HttpContext.Current.Session["OrderList"] = orders;

        //        return objRequest.Id;// orderDTO.Order.Id;
        //    }
        //}

        public static int SavePayemt(int requestId, int paymentStatus, int paymentMode, string cardNum, string trnNo, string NameOnCard)
        {
            using (DBKOMPDataContext db = new DBKOMPDataContext())
            {
                var objtblUser = CommanAction.GetSession();//for yourguyonly
                var orders     = (from w in db.Orders where w.RequestId == requestId select w).ToList();

                var SipBilObj = new ShippingBilling();

                string locationOfPinCode = string.Empty;
                if (orders.Count > 0)
                {
                    locationOfPinCode = (from w in db.tblLocations where w.pincode.Value == orders[0].pincode select w).First().Location;
                }

                //Variable is using to add 25 rs only one time
                bool IsCashPickup25Added = false;
                foreach (var ord in orders)
                {
                    if (string.IsNullOrEmpty(SipBilObj.Pincode))
                    {
                        SipBilObj = DBAccess.GetShippingBillingByUserId(objtblUser.UserId, ord.pincode ?? 0);//for yourguyonly
                    }

                    if (requestId > 0)
                    {
                        var payment = (from w in db.Payments where w.OrderId == ord.Id select w).First();
                        //paymentObj.Amount = 200;
                        payment.CardNumber    = cardNum;
                        payment.Mode          = paymentMode; //NET BANKING-1, credit card-2, debit card - 3, cash card - 4, mobile payment-5
                        payment.NameOnCard    = NameOnCard;
                        payment.TransactionNo = trnNo;
                        payment.IsActive      = (paymentStatus == 1) ? 1 : 0;
                        payment.PaymentDate   = DateTime.Now;


                        //Settign for offline casehpickup
                        if (paymentMode == 14 && !IsCashPickup25Added)
                        {
                            var config = DBAccess.GetConfig();
                            //order.payment.TrnChrg = Convert.ToDecimal(Caspikup + CaspikupPer * (order.payment.Amount + order.payment.DeliveryChrg) / 100);
                            payment.TrnChrg = Convert.ToDecimal(config.CashPickUpPercent * (payment.Amount + payment.DeliveryChrg) / 100) + config.CashPickUp ?? 0;

                            payment.TrnChrg = Convert.ToDecimal(String.Format("{0:.00}", payment.TrnChrg));

                            //payment.TrnChrg = Convert.ToInt32(payment.TrnChrg + config.CashPickUp ?? 0);
                            IsCashPickup25Added = true;
                        }


                        ord.PaymentDone = paymentStatus;    //SUCCESS -1 , failure - 0 , invalid =3, abort = 4 ---  paymentMode != 5 ? 1 : 0; //5 means offline
                        ord.IsActive    = (paymentStatus == 1)?1:0;



                        if (paymentStatus == 1 && (paymentMode != 11 && paymentMode != 12 && paymentMode != 13 && paymentMode != 14))     //Not offline and not cash pickup
                        {
                            var orderDetails = (from w in db.OrderDetails where w.OrderId == ord.Id select w);

                            //Yourguy  productid
                            var prodcId = "0";
                            //Your guy DateColletion
                            List <string> lstDeliveryDate = new List <string>();
                            //Your guy time
                            string Deliverytime = ord.IsLunch == 1 ? "2015-01-01T12:15:02Z" : "2015-01-01T20:15:02Z";
                            string time         = ord.IsLunch == 1 ? "12:16:06Z" : "20:16:06Z";
                            string PickUptime   = ord.IsLunch == 1 ? "2015-01-01T10:16:06Z" : "2015-01-01T18:16:06Z";


                            foreach (var od in orderDetails)
                            {
                                prodcId = "0";    // od.SubProductId.ToString();
                                lstDeliveryDate.Add(od.DeliverDate.Value.ToString("yyyy-MM-ddT") + time);

                                od.IsActive = 1;
                                //od.YourguyOrderId = YourGuy(od.Id.ToString(), ord.Id.ToString(), SipBilObj, od.DeliverDate.Value.ToString("yyyy-MM-ddT") + time);
                                //"2015-07-22T12:16:06Z"
                            }

                            //Yourguy service TODO: UNDO ONCE READY BY YOUR GUY
                            //ord.YourguyOrderId = CallYourGuy(prodcId, ord.Id.ToString(), SipBilObj, Deliverytime, PickUptime, lstDeliveryDate, locationOfPinCode);
                        }



                        db.SubmitChanges();
                    }
                    //else
                    //{
                    //    //ord.PaymentDone = 3; //Payment Failed
                    //    //ord.IsActive = 1;
                    //    //db.SubmitChanges();
                    //}
                }



                return(1);
            }
        }
コード例 #2
0
        public static int SaveOrder(string method)
        {
            OrderList orders = new OrderList();

            //Now taking it from session. instead of perameter.
            if (HttpContext.Current.Session["OrderList"] != null)
            {
                orders = (OrderList)HttpContext.Current.Session["OrderList"];
            }
            else
            {
                //It create the orders from the cookies
                if (OrderManagement.GetOrderListSession().orders.Count == 0)
                {
                    return(-1);
                }
            }

            //Below condition : already ordered


            using (DBKOMPDataContext db = new DBKOMPDataContext())
            {
                int customerId = 0;
                //if (CommanAction.GetSession() != null)
                //{
                customerId = CommanAction.GetSession().UserId;
                //}

                //Delete if already in cart
                if (orders.orders.Count > 0 && orders.orders[0].Order.RequestId > 0)
                {
                    foreach (var order in orders.orders)
                    {
                        if (orders.orders.Count > 0 && orders.orders[0].Order.RequestId > 0)
                        {
                            db.OrderDetails.DeleteAllOnSubmit((from w in db.OrderDetails where w.OrderId == order.Order.Id select w));
                            db.Payments.DeleteAllOnSubmit((from w in db.Payments where w.OrderId == order.Order.Id select w));
                        }
                    }
                    db.Requests.DeleteAllOnSubmit((from w in db.Requests where w.Id == orders.orders[0].Order.RequestId select w));
                    db.Orders.DeleteAllOnSubmit((from w in db.Orders where w.RequestId == orders.orders[0].Order.RequestId select w));
                    db.SubmitChanges();
                }


                decimal tranCharge       = 0;
                decimal tranChargeConfig = (from w in db.Configs select w).First().TrnChrg ?? 0;

                var     config      = (from w in db.Configs select w).First();
                decimal Caspikup    = config.CashPickUp ?? 0;
                decimal CaspikupPer = config.CashPickUpPercent ?? 0;



                //////////////////REQUEST START
                Request objRequest = new Request();
                objRequest.CreatedDate = DateTime.Now;
                objRequest.UserId      = customerId;
                objRequest.CreatedBy   = customerId;

                if (method == "14") //Cash pikup delivery charges by yourguy
                {
                    objRequest.YourGuyChkPickUP = Convert.ToInt32(Caspikup);
                }
                //create a request id
                db.Requests.InsertOnSubmit(objRequest);
                db.SubmitChanges();
                //////////////////REQUEST END


                TimeZoneInfo INDIAN_ZONE = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
                DateTime     indianTime  = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, INDIAN_ZONE);

                foreach (var order in orders.orders)
                {
                    Caspikup = 0;// resetting 0 becuasue unable to divide charges in n order so making o, actial charges are in Request table
                    order.Order.RequestId      = objRequest.Id;
                    order.Order.CustomerId     = customerId;
                    order.Order.OrderDate      = indianTime;// DateTime.Now;
                    order.Order.OrderStartDate = order.OrderDetailList[0].DeliverDate;

                    tranCharge = ((order.payment.Amount + order.payment.DeliveryChrg) * tranChargeConfig / 100) ?? 0;


                    order.Order.TotalPayment = (method == "11" || method == "12" || method == "13")?0:(order.payment.Amount + tranCharge + order.payment.DeliveryChrg);

                    if (method == "14")//Cas pikup
                    {
                        order.Order.TotalPayment = (method == "11" || method == "12" || method == "13") ? 0 : (order.payment.Amount + Caspikup + order.payment.DeliveryChrg);
                    }


                    db.Orders.InsertOnSubmit(order.Order);
                    db.SubmitChanges();



                    if (method == "14") //Cash pikup delivery
                    {
                        order.payment.TrnChrg = Convert.ToDecimal(Caspikup + CaspikupPer * (order.payment.Amount + order.payment.DeliveryChrg) / 100);
                        //Round off for cash pickup
                    }
                    else if (method == "11" || method == "12" || method == "13")
                    {
                        order.payment.TrnChrg = 0; //Add 0 if offline else calculate trans charge
                    }
                    else
                    {
                        order.payment.TrnChrg = tranCharge; //for online calculate trans charge
                    }


                    order.payment.OrderId = order.Order.Id;
                    db.Payments.InsertOnSubmit(order.payment);

                    foreach (var apt in order.OrderDetailList)
                    {
                        apt.OrderId = order.Order.Id;
                    }

                    db.OrderDetails.InsertAllOnSubmit(order.OrderDetailList);
                }

                db.SubmitChanges();

                //#region Send Mail
                //if (HttpContext.Current.Session["USER"] != null)
                //{
                //    var objtblUser = (User)HttpContext.Current.Session["USER"];

                //    string content = string.Empty;

                //    string filepath = "~/Email/Post.htm";
                //    //New user
                //    StringBuilder sbContent = new StringBuilder();
                //    StreamReader rdr = new StreamReader(HttpContext.Current.Server.MapPath(filepath));
                //    string strLine = "";
                //    while (strLine != null)
                //    {
                //        strLine = rdr.ReadLine();
                //        if ((strLine != null) && (strLine != ""))
                //        {
                //            sbContent.Append("\n" + strLine);
                //        }
                //    }
                //    rdr.Close();

                //    string site = ConfigurationManager.AppSettings["SiteName"].ToString();
                //    content = sbContent.ToString();
                //    //content = content.Replace("$REQ$", PostType);
                //    //content = content.Replace("$ID$", ID);
                //    content = content.Replace("$NAME$", objtblUser.FirstName + " " + objtblUser.LastName);
                //    content = content.Replace("$SITE$", site);

                //    if (!string.IsNullOrEmpty(objtblUser.email))
                //    {
                //        MailHelper.SendMailMessage("", objtblUser.email, string.Empty, string.Empty, "Thanks for Posting", content);
                //       // AutoServices.SendeMailToUs("Copy:Thanks for Posting", content);

                //    }
                //}
                //#endregion

                // HttpContext.Current.Session["OrderList"] = orders;

                HttpContext.Current.Session["OrderList"] = orders;

                CreateCookieOrderList();
                return(objRequest.Id);// orderDTO.Order.Id;
            }
        }