Example #1
0
        public ActionResult Delete(string code, string type)
        {
            string str;

            try
            {
                if (!string.IsNullOrEmpty(code))
                {
                    Temp_Cart tempCart = new Temp_Cart();
                    app.bsms.api.Service.Parameters.Clear();
                    app.bsms.api.Service.Parameters.Add("siteCode", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode);
                    app.bsms.api.Service.Parameters.Add("userId", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).userID);
                    if (type != null && type != string.Empty)
                    {
                        app.bsms.api.Service.Parameters.Add("cartToken", type);
                    }
                    tempCart            = app.bsms.api.Service.Get <Temp_Cart>("itemCart");
                    tempCart.userID     = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).userID;
                    tempCart.siteCode   = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode;
                    tempCart.staffCode  = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).staffCode;
                    tempCart.macAddress = base.Request.ServerVariables["REMOTE_ADDR"];
                    tempCart.payDetails = (
                        from f in tempCart.payDetails
                        where f.paymentGroup != code
                        select f).ToList <app.bsms.Models.Sales.Post.Payment_Details>();
                    app.bsms.api.Service.Parameters.Clear();
                    JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings()
                    {
                        ContractResolver = new NullToEmptyStringResolver()
                    };
                    if (type == null || !(type != string.Empty))
                    {
                        app.bsms.api.Service.Post <app.bsms.Models.Sales.Post.Cart>("itemCart", JsonConvert.SerializeObject(tempCart, jsonSerializerSetting));
                    }
                    else
                    {
                        app.bsms.api.Service.Parameters.Add("cartToken", type);
                        app.bsms.api.Service.Put <Suspend_Cart>("itemCart", JsonConvert.SerializeObject(tempCart, jsonSerializerSetting));
                    }
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
            UrlHelper url = base.Url;

            if (type == null || !(type != string.Empty))
            {
                str = null;
            }
            else
            {
                str = type;
            }
            //return base.Json(url.Action("Index", "Payment", new { id = str }));
            //Yoonus Changed to next line
            return(base.Json(url.Action("Index", "Payment", new { id = str }), JsonRequestBehavior.AllowGet));
        }
Example #2
0
        public ActionResult Cancel(app.bsms.Models.Sales.Cart model)
        {
            string str;

            try
            {
                Temp_Cart tempCart = new Temp_Cart();
                app.bsms.api.Service.Parameters.Clear();
                app.bsms.api.Service.Parameters.Add("siteCode", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode);
                app.bsms.api.Service.Parameters.Add("userId", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).userID);
                if (model.cart.cartToken != null && model.cart.cartToken != string.Empty)
                {
                    app.bsms.api.Service.Parameters.Add("cartToken", model.cart.cartToken);
                }
                tempCart            = app.bsms.api.Service.Get <Temp_Cart>("itemCart");
                tempCart.userID     = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).userID;
                tempCart.siteCode   = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode;
                tempCart.staffCode  = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).staffCode;
                tempCart.macAddress = base.Request.ServerVariables["REMOTE_ADDR"];
                tempCart.payDetails = new List <app.bsms.Models.Sales.Post.Payment_Details>();
                app.bsms.api.Service.Parameters.Clear();
                JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings()
                {
                    ContractResolver = new NullToEmptyStringResolver()
                };
                if (model.cart.cartToken == null || !(model.cart.cartToken != string.Empty))
                {
                    app.bsms.api.Service.Post <Temp_Cart>("itemCart", JsonConvert.SerializeObject(tempCart, jsonSerializerSetting));
                }
                else
                {
                    app.bsms.api.Service.Parameters.Add("cartToken", model.cart.cartToken);
                    app.bsms.api.Service.Put <Suspend_Cart>("itemCart", JsonConvert.SerializeObject(tempCart, jsonSerializerSetting));
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
            if (model.cart.cartToken == null || !(model.cart.cartToken != string.Empty))
            {
                str = null;
            }
            else
            {
                str = model.cart.cartToken;
            }
            return(base.RedirectToAction("Index", "Cart", new { id = str }));
        }
Example #3
0
        public ActionResult AddToCart(FormCollection collection)
        {
            ActionResult action;
            decimal      num;
            DateTime?    nullable;
            string       str;
            string       str1;
            string       str2;
            string       str3;

            try
            {
                if (base.ModelState.IsValid && collection["cart_details"] != null)
                {
                    List <Cart_Details> cartDetails = JsonConvert.DeserializeObject <List <Cart_Details> >(Convert.ToString(collection["cart_details"]));
                    if (cartDetails != null)
                    {
                        List <Cart_Details> list = (
                            from f in cartDetails
                            where f.lineType != "TD"
                            //Yoonus
                            group f by new { lineStatus = f.lineStatus, lineType = f.lineType, itemCode = f.itemCode, itemName = f.itemName, referenceTreatmentCode = f.referenceTreatmentCode, isFOC = f.isFOC, referenceTransactionNumber = f.referenceTransactionNumber, topupBalance = f.topupBalance, topupOutstanding = f.topupOutstanding } into f
                            //group f by new { lineStatus = f.lineStatus, lineType = f.lineType, itemCode = f.itemCode, itemName = f.itemName, referenceTreatmentCode = f.referenceTreatmentCode, isFOC = f.isFOC } into f
                            select new Cart_Details()
                        {
                            lineStatus = f.Key.lineStatus,
                            lineType = f.Key.lineType,
                            itemCode = f.Key.itemCode,
                            itemName = f.Key.itemName,
                            itemQty = f.Sum <Cart_Details>((Cart_Details s) => s.itemQty),
                            unitDiscount = f.Sum <Cart_Details>((Cart_Details s) => s.unitDiscount),
                            unitPrice = f.Sum <Cart_Details>((Cart_Details u) => u.unitPrice),
                            promoPrice = (f.Key.isFOC ? decimal.Zero : f.Sum <Cart_Details>((Cart_Details s) => s.itemQty * s.unitPrice) - f.Sum <Cart_Details>((Cart_Details s) => s.unitDiscount)),
                            itemAmount = (f.Key.isFOC ? decimal.Zero : f.Sum <Cart_Details>((Cart_Details s) => s.itemQty * s.unitPrice) - f.Sum <Cart_Details>((Cart_Details s) => s.unitDiscount)),
                            salesAmount = (f.Key.isFOC ? decimal.Zero : f.Sum <Cart_Details>((Cart_Details s) => s.itemQty * s.unitPrice) - f.Sum <Cart_Details>((Cart_Details s) => s.unitDiscount)),
                            referenceTreatmentCode = f.Key.referenceTreatmentCode,
                            //Yoonus
                            referenceTransactionNumber = f.Key.referenceTransactionNumber,
                            topupBalance = f.Key.topupBalance,
                            topupOutstanding = f.Key.topupOutstanding,
                            //Yoonus
                            isFOC = f.Key.isFOC,
                            courseDetails = new List <Course_Details>(),
                            discountDetails = new List <Discounts>(),
                            salesStaffDetails = new List <SalesStaff>(),
                            prepaidAccountDetails = new List <Prepaid>()
                        }).ToList <Cart_Details>();
                        List <Settings> item = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).settings;
                        bool            flag = ((
                                                    from s in item
                                                    where s.settingName == "GST SETTING"
                                                    select s).FirstOrDefault <Settings>().settingValue == "INCLUSIVE" ? true : false);
                        decimal one = Convert.ToDecimal((
                                                            from s in item
                                                            where s.settingName == "GST PERCENTAGE"
                                                            select s).FirstOrDefault <Settings>().settingValue);
                        one = decimal.One + (one / new decimal(100));
                        string str4 = (
                            from s in item
                            where s.settingName == "GST APPLY BY"
                            select s).FirstOrDefault <Settings>().settingValue;
                        foreach (Cart_Details zero in list)
                        {
                            app.bsms.api.Service.Parameters.Clear();
                            app.bsms.api.Service.Parameters.Add("siteCode", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode);
                            app.bsms.api.Service.Parameters.Add("itemCode", zero.itemCode);
                            //Item item1 = app.bsms.api.Service.Get<Item>("getItemDetails");
                            //Yoonus Changing to getItemDetail
                            Item         item1         = app.bsms.api.Service.Get <Item>("getItemDetail");
                            Cart_Details courseDetails = (
                                from f in cartDetails
                                where f.itemCode == zero.itemCode
                                select f).FirstOrDefault <Cart_Details>();
                            zero.salesStaffDetails = courseDetails.salesStaffDetails;
                            if (courseDetails.salesStaffDetails == null)
                            {
                                zero.strStaffs = null;
                            }
                            else
                            {
                                zero.strStaffs = JsonConvert.SerializeObject(courseDetails.salesStaffDetails);
                                Cart_Details cartDetail = zero;
                                if (courseDetails.strStaffs == "[]")
                                {
                                    str3 = null;
                                }
                                else
                                {
                                    str3 = courseDetails.strStaffs;
                                }
                                cartDetail.strStaffs = str3;
                            }
                            if (zero.lineType == "TD")
                            {
                                zero.discountDetails = null;
                                zero.strDiscounts    = null;
                            }
                            else
                            {
                                zero.discountDetails = courseDetails.discountDetails;
                                if (courseDetails.discountDetails == null)
                                {
                                    zero.strDiscounts = null;
                                }
                                else
                                {
                                    zero.strDiscounts = JsonConvert.SerializeObject(courseDetails.discountDetails);
                                    Cart_Details cartDetail1 = zero;
                                    if (courseDetails.strDiscounts == "[]")
                                    {
                                        str2 = null;
                                    }
                                    else
                                    {
                                        str2 = courseDetails.strDiscounts;
                                    }
                                    cartDetail1.strDiscounts = str2;
                                    zero.unitDiscount        = zero.discountDetails.Sum <Discounts>((Discounts d) => d.discountAmount);
                                    zero.discountPercent     = zero.discountDetails.Sum <Discounts>((Discounts p) => p.discountPercentage);
                                    zero.discountUser        = courseDetails.discountUser;
                                }
                            }
                            if (zero.lineType == "COURSE")
                            {
                                if (courseDetails.courseDetails == null)
                                {
                                    zero.promoPrice = (zero.unitPrice * zero.itemQty) - zero.unitDiscount;
                                }
                                else if (courseDetails.courseDetails.FirstOrDefault <Course_Details>().courseType != "N")
                                {
                                    zero.promoPrice = (zero.unitPrice * zero.itemQty) - zero.unitDiscount;
                                }
                                else
                                {
                                    zero.totalTreatments = courseDetails.totalTreatments;
                                    Cart_Details value     = zero;
                                    int?         nullable1 = zero.totalTreatments;
                                    value.promoPrice = (nullable1.Value * zero.unitPrice) - zero.unitDiscount;
                                }
                                zero.itemAmount    = zero.promoPrice;
                                zero.salesAmount   = zero.promoPrice;
                                zero.depositAmount = (zero.depositAmount.IsNullOrZero() ? new decimal?(zero.promoPrice) : zero.depositAmount);
                            }
                            else if (!(zero.lineType == "VOUCHER") || !(item1.brandName == "NON SALES VOUCHER"))
                            {
                                zero.promoPrice = (zero.isFOC ? decimal.Zero : (zero.unitPrice * zero.itemQty) - zero.unitDiscount);
                                zero.itemAmount = (zero.isFOC ? decimal.Zero : zero.promoPrice);
                                if (zero.lineType != "TD")
                                {
                                    zero.balanceAmount = decimal.Zero;
                                    zero.salesAmount   = (zero.isFOC ? decimal.Zero : zero.promoPrice);
                                    zero.depositAmount = (zero.depositAmount.IsNullOrZero() ? new decimal?(zero.promoPrice) : zero.depositAmount);
                                }
                                else
                                {
                                    zero.balanceAmount        = courseDetails.balanceAmount;
                                    zero.treatmentCode        = courseDetails.treatmentCode;
                                    zero.isFirstTreatmentDone = courseDetails.isFirstTreatmentDone;
                                    zero.salesAmount          = decimal.Zero;
                                    Cart_Details nullable2 = zero;
                                    num = new decimal();
                                    nullable2.depositAmount = new decimal?(num);
                                }
                            }
                            else
                            {
                                zero.promoPrice  = decimal.Zero;
                                zero.itemAmount  = decimal.Zero;
                                zero.salesAmount = decimal.Zero;
                                Cart_Details cartDetail2 = zero;
                                num = new decimal();
                                cartDetail2.depositAmount = new decimal?(num);
                            }
                            if (zero.lineType != "COURSE")
                            {
                                if (courseDetails.courseDetails == null)
                                {
                                    courseDetails.courseDetails = new List <Course_Details>();
                                }
                                if (zero.lineType != "PACKAGE")
                                {
                                    Course_Details courseDetail = new Course_Details()
                                    {
                                        treatmentNumber    = 1,
                                        itemCode           = zero.itemCode,
                                        itemDescription    = zero.itemName,
                                        treatmentUnitPrice = zero.itemAmount,
                                        courseType         = "N",
                                        treatmentStatus    = (courseDetails.isFirstTreatmentDone ? "Done" : "Open"),
                                        treatmentDate      = DateTime.Now
                                    };
                                    nullable = null;
                                    courseDetail.nextAppt = nullable;
                                    courseDetail.isFOC    = new bool?(zero.isFOC);
                                    courseDetails.courseDetails.Add(courseDetail);
                                }
                                else
                                {
                                    courseDetails.courseDetails = new List <Course_Details>();
                                    app.bsms.api.Service.Parameters.Clear();
                                    app.bsms.api.Service.Parameters.Add("siteCode", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode);
                                    app.bsms.api.Service.Parameters.Add("itemCode", zero.itemCode);
                                    List <PackageDetails> packageDetails = new List <PackageDetails>();
                                    packageDetails.AddRange(app.bsms.api.Service.GetList <PackageDetails>("packageContent"));
                                    foreach (PackageDetails packageDetail in packageDetails)
                                    {
                                        for (int i = 0; i < packageDetail.quantity; i++)
                                        {
                                            Course_Details courseDetail1 = new Course_Details()
                                            {
                                                treatmentNumber    = packageDetail.lineNumber,
                                                itemCode           = packageDetail.contentItemCode,
                                                itemDescription    = packageDetail.contentItemName,
                                                treatmentUnitPrice = packageDetail.price,
                                                courseType         = "N",
                                                treatmentStatus    = (courseDetails.isFirstTreatmentDone ? "Done" : "Open"),
                                                treatmentDate      = DateTime.Now
                                            };
                                            nullable = null;
                                            courseDetail1.nextAppt = nullable;
                                            courseDetail1.isFOC    = new bool?(zero.isFOC);
                                            courseDetails.courseDetails.Add(courseDetail1);
                                        }
                                    }
                                }
                            }
                            zero.courseDetails = courseDetails.courseDetails;
                            if (zero.lineType == "PREPAID")
                            {
                                if (courseDetails.prepaidAccountDetails != null)
                                {
                                    zero.strPrepaid = JsonConvert.SerializeObject(courseDetails.prepaidAccountDetails);
                                    Cart_Details cartDetail3 = zero;
                                    if (zero.strStaffs == "[]")
                                    {
                                        str1 = null;
                                    }
                                    else
                                    {
                                        str1 = zero.strStaffs;
                                    }
                                    cartDetail3.strPrepaid = str1;
                                }
                                else if (!item1.openPrepaid)
                                {
                                    courseDetails.prepaidAccountDetails = new List <Prepaid>();
                                    app.bsms.api.Service.Parameters.Clear();
                                    app.bsms.api.Service.Parameters.Add("siteCode", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode);
                                    app.bsms.api.Service.Parameters.Add("rangeCode", item1.rangeCode);
                                    ItemType itemType = app.bsms.api.Service.GetList <ItemType>("prepaid").FirstOrDefault <ItemType>((ItemType f) => f.stockCode == zero.itemCode);
                                    if (itemType != null)
                                    {
                                        foreach (Prepaid prepaid in itemType.prepaidCondition)
                                        {
                                            List <Prepaid> prepaids = courseDetails.prepaidAccountDetails;
                                            Prepaid        prepaid1 = new Prepaid()
                                            {
                                                prepaidLineNumber = 1,
                                                prepaidType       = zero.itemCode
                                            };
                                            decimal?nullable3 = prepaid.prepaidValue;
                                            prepaid1.prepaidBonus = nullable3.Value - zero.unitPrice;
                                            decimal num1 = zero.unitPrice;
                                            nullable3                  = prepaid.prepaidValue;
                                            prepaid1.prepaidTotal      = num1 + (nullable3.Value - zero.unitPrice);
                                            prepaid1.prepaidAmount     = new decimal?(zero.unitPrice);
                                            prepaid1.prepaidValue      = prepaid.prepaidValue;
                                            prepaid1.prepaidItemType   = prepaid.prepaidItemType;
                                            prepaid1.prepaidCondition1 = (prepaid.prepaidCondition1 == null ? "All" : prepaid.prepaidCondition1);
                                            prepaid1.prepaidCondition2 = (prepaid.prepaidCondition2 == null ? "All" : prepaid.prepaidCondition2);
                                            nullable = null;
                                            prepaid1.prepaidExpiryDate = nullable;
                                            prepaids.Add(prepaid1);
                                        }
                                    }
                                    zero.strPrepaid = JsonConvert.SerializeObject(courseDetails.prepaidAccountDetails);
                                    Cart_Details cartDetail4 = zero;
                                    if (zero.strStaffs == "[]")
                                    {
                                        str = null;
                                    }
                                    else
                                    {
                                        str = zero.strStaffs;
                                    }
                                    cartDetail4.strPrepaid = str;
                                }
                            }
                            zero.prepaidAccountDetails = courseDetails.prepaidAccountDetails;
                            zero.holdItemQty           = (courseDetails.holdItemQty.IsNullOrZero() ? new int?(0) : courseDetails.holdItemQty);
                            if (str4 != "ALL")
                            {
                                if (!item1.taxable)
                                {
                                    continue;
                                }
                                zero.gstAmountCollected = Utility.GetGST(flag, zero.itemAmount, one);
                            }
                            else
                            {
                                zero.gstAmountCollected = Utility.GetGST(flag, zero.itemAmount, one);
                            }
                        }
                        list.AddRange(
                            from f in cartDetails
                            where f.lineType == "TD"
                            select f);
                        app.bsms.api.Service.Parameters.Clear();
                        app.bsms.api.Service.Parameters.Add("siteCode", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode);
                        app.bsms.api.Service.Parameters.Add("userId", ((app.bsms.Models.Account.User)base.Session["Login_Details"]).userID);
                        Temp_Cart tempCart = app.bsms.api.Service.Get <Temp_Cart>("itemCart");
                        if (tempCart.userID == null)
                        {
                            tempCart = new Temp_Cart()
                            {
                                userID     = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).userID,
                                siteCode   = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).siteCode,
                                staffCode  = ((app.bsms.Models.Account.User)base.Session["Login_Details"]).staffCode,
                                macAddress = base.Request.ServerVariables["REMOTE_ADDR"]
                            };
                        }
                        tempCart.transactionDetails = list;
                        tempCart.totalQuantity      = tempCart.transactionDetails.Sum <Cart_Details>((Cart_Details f) => f.itemQty);
                        tempCart.totalAmount        = tempCart.transactionDetails.Sum <Cart_Details>((Cart_Details f) => f.itemAmount);
                        tempCart.depositAmount      = tempCart.transactionDetails.Sum <Cart_Details>((Cart_Details f) => ((!f.depositAmount.HasValue ? new decimal?(new decimal()) : f.depositAmount)).Value);
                        tempCart.payDetails         = new List <app.bsms.Models.Sales.Post.Payment_Details>();
                        app.bsms.api.Service.Parameters.Clear();
                        JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings()
                        {
                            ContractResolver = new NullToEmptyStringResolver()
                        };
                        app.bsms.api.Service.Post <Temp_Cart>("itemCart", JsonConvert.SerializeObject(tempCart, jsonSerializerSetting));
                    }
                    else
                    {
                        action = base.RedirectToAction("Empty", "Cart");
                        return(action);
                    }
                }
                if (Convert.ToString(collection["callBy"]) == "COURSE" || Convert.ToString(collection["callBy"]) == "PREPAID")
                {
                    action = base.Json("Success", JsonRequestBehavior.AllowGet);
                }
                else
                {
                    action = base.RedirectToAction("Index", "Cart");
                }
            }
            catch (Exception exception)
            {
                throw exception;
            }
            return(action);
        }