コード例 #1
0
        /// <summary>
        /// Cập nhật quy mô gian hàng
        /// </summary>
        /// <param name="UpgrageBrandPackageDTO"></param>
        /// <returns></returns>
        public async Task <OrderDetailDTO> UpgradePackageBrand(UpgrageBrandPackageDTO UpgrageBrandPackageDTO)
        {
            OrderDetailDTO output = new OrderDetailDTO();
            var            jwt    = _httpContextAccessor.HttpContext.User.FindFirst(p => p.Type == "access_token").Value;

            if (jwt != null)
            {
                _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", jwt);
                string apiUrl   = $"/api/v1/Payment/UpgradePackageBrand";
                var    userInfo = JsonConvert.DeserializeObject <SumProfileResponseDTO>(_httpContextAccessor.HttpContext.User.FindFirst(p => p.Type == "UserInfomation").Value);
                UpgrageBrandPackageDTO.ProductBrandId = userInfo.ProductBrandId;
                UpgrageBrandPackageDTO.UserId         = userInfo.UserId;
                var json          = JsonConvert.SerializeObject(UpgrageBrandPackageDTO, Formatting.Indented);
                var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
                var response      = await _client.PostAsync(apiUrl, stringContent);

                if (response.IsSuccessStatusCode)
                {
                    string responseStream = await response.Content.ReadAsStringAsync();

                    output = JsonConvert.DeserializeObject <OrderDetailDTO>(responseStream);
                }
            }

            return(output);
        }
コード例 #2
0
        /// <summary>
        /// Upgrade gian hàng từ vừa lên lớn
        /// </summary>
        /// <param name="model"></param>
        /// <param name="productBrandName"></param>
        /// <param name="Phone"></param>
        /// <returns></returns>
        public async Task <OrderDetail> UpgradeBrandVTL(UpgrageBrandPackageDTO model, string productBrandName, string Phone, int?MonthRemain, int?MonthPrice, decimal totalDeduct)
        {
            var orderMaster = new Order();
            var orderDetail = new OrderDetail();

            try
            {
                var packageServices = await PaymentContext.Services.SingleOrDefaultAsync(p => p.ServiceId == model.ServiceId);

                var packageMonth = await PaymentContext.DiscountConfig.SingleOrDefaultAsync(p => p.Discount_ID == model.Discount_ID);

                var countOrderMaster = (PaymentContext.Order.Count() + 1).ToString();
                var countOrderDetail = (PaymentContext.OrderDetail.Count() + 1).ToString();

                var currentOrderMaster = await PaymentContext.Order.OrderByDescending(x => x.LastEditDate).FirstOrDefaultAsync(p => p.ProductBrand_ID == model.ProductBrandId && p.PaymentStatus_ID == 1);

                var currentOrderDetail = new OrderDetail();
                if (currentOrderMaster != null)
                {
                    currentOrderDetail = await PaymentContext.OrderDetail.FirstOrDefaultAsync(p => p.OrderCode == currentOrderMaster.OrderCode);
                }



                //Save OrderMAster
                orderMaster.Order_ID    = Guid.NewGuid().ToString();
                orderMaster.OrderCode   = "NCGH" + (model.ServiceId == 2 ? "V" : "L") + Phone + countOrderMaster;
                orderMaster.Service_ID  = model.ServiceId;
                orderMaster.DisCount    = packageServices.PricePerMonth * packageMonth.Month * packageMonth.Percent_Discount / 100;
                orderMaster.Sum         = packageServices.PricePerMonth * packageMonth.Month - orderMaster.DisCount;
                orderMaster.VAT         = orderMaster.Sum * 10 / 100;
                orderMaster.Discount_ID = model.Discount_ID;
                orderMaster.Total       = ((packageServices.PricePerMonth * packageMonth.Month) - (packageServices.PricePerMonth * packageMonth.Month * packageMonth.Percent_Discount / 100) - totalDeduct)
                                          + ((packageServices.PricePerMonth * packageMonth.Month) - (packageServices.PricePerMonth * packageMonth.Month * packageMonth.Percent_Discount / 100) - totalDeduct) * 10 / 100;
                orderMaster.ProductBrand_ID  = model.ProductBrandId;
                orderMaster.ProductBrand_ID  = model.ProductBrandId;
                orderMaster.ProductBrandName = productBrandName;

                orderMaster.CreateBy         = model.UserId;
                orderMaster.CreateDate       = DateTime.Now;
                orderMaster.LastEditBy       = model.UserId;
                orderMaster.LastEditDate     = DateTime.Now;
                orderMaster.PaymentStatus_ID = 0; // Đang chờ thanh toán

                PaymentContext.Order.Add(orderMaster);
                PaymentContext.SaveChanges();


                //Save Order Detail
                orderDetail.OrderDetail_ID  = Guid.NewGuid().ToString();
                orderDetail.Order_ID        = orderMaster.Order_ID;
                orderDetail.OrderCode       = "NCGH" + (model.ServiceId == 2 ? "V" : "L") + Phone + countOrderMaster;
                orderDetail.ProductName     = packageServices.ServiceName;
                orderDetail.ProductBrand_ID = model.ProductBrandId;
                orderDetail.ProductName     = productBrandName;
                orderDetail.Quatity         = 1;
                orderDetail.Price           = packageServices.PricePerMonth * packageMonth.Month;
                orderDetail.DisCount        = orderDetail.Price * packageMonth.Percent_Discount / 100;
                orderDetail.Sum             = orderDetail.Price - orderDetail.DisCount;
                orderDetail.VAT             = orderDetail.Sum * 10 / 100;
                orderDetail.Total           = (orderDetail.Sum - totalDeduct) + (orderDetail.Sum - totalDeduct) * 10 / 100;
                orderDetail.Description     = model.ServiceId == 2 ? "Nâng cấp gian hàng lên quy mô \"Nhà cung cấp vừa\"" : "Nâng cấp gian hàng lên quy mô \"Nhà cung cấp lớn\"";
                orderDetail.StartDate       = DateTime.Now;
                orderDetail.EndDate         = DateTime.Now.AddMonths(packageMonth.Month ?? 0);
                orderDetail.MonthRemain     = MonthRemain;
                orderDetail.TotalDeduct     = totalDeduct;

                PaymentContext.OrderDetail.Add(orderDetail);
                PaymentContext.SaveChanges();
            }
            catch (Exception ex)
            {
            }

            return(orderDetail);
        }
コード例 #3
0
        public async Task <OrderDetail> ProcessOldBrand(UpgrageBrandPackageDTO model, string productBrandName, string Phone)
        {
            var orderMaster = new Order();
            var orderDetail = new OrderDetail();

            try
            {
                var packageServices = await PaymentContext.Services.SingleOrDefaultAsync(p => p.ServiceId == model.ServiceId);

                //var packageMonth = await PaymentContext.DiscountConfig.SingleOrDefaultAsync(p => p.Discount_ID == model.Discount_ID);
                var    countOrderMaster = (PaymentContext.Order.Count() + 1).ToString();
                string OrderCode        = "NCGH";
                if (model.ServiceId == 2)
                {
                    OrderCode = OrderCode + "V" + Phone + countOrderMaster;
                }
                else if (model.ServiceId == 3)
                {
                }
                //Save OrderMAster
                orderMaster.Order_ID         = Guid.NewGuid().ToString();
                orderMaster.OrderCode        = "NCGH" + (model.ServiceId == 2 ? "V" : "L") + Phone + countOrderMaster;
                orderMaster.Service_ID       = model.ServiceId;
                orderMaster.DisCount         = 0;
                orderMaster.Sum              = 0;
                orderMaster.VAT              = 0;
                orderMaster.Discount_ID      = 0;
                orderMaster.Total            = 0;
                orderMaster.ProductBrand_ID  = model.ProductBrandId;
                orderMaster.ProductBrandName = productBrandName;

                orderMaster.CreateBy         = model.UserId;
                orderMaster.CreateDate       = DateTime.Now;
                orderMaster.LastEditBy       = model.UserId;
                orderMaster.LastEditDate     = DateTime.Now;
                orderMaster.PaymentStatus_ID = 1; // Nâng cấp thành công

                PaymentContext.Order.Add(orderMaster);
                PaymentContext.SaveChanges();

                //Save Order Detail
                orderDetail.OrderDetail_ID  = Guid.NewGuid().ToString();
                orderDetail.Order_ID        = orderMaster.Order_ID;
                orderDetail.OrderCode       = "NCGH" + (model.ServiceId == 2 ? "V" : "L") + Phone + countOrderMaster;
                orderDetail.ProductName     = packageServices.ServiceName;
                orderDetail.ProductBrand_ID = model.ProductBrandId;
                orderDetail.ProductName     = productBrandName;
                orderDetail.Quatity         = 1;
                orderDetail.Price           = 0;
                orderDetail.DisCount        = 0;
                orderDetail.Sum             = 0;
                orderDetail.VAT             = 0;
                orderDetail.Total           = 0;
                orderDetail.Description     = model.ServiceId == 2 ? "Miễn phí : Nâng cấp gian hàng lên quy mô \"Nhà cung cấp vừa\"" : "Nâng cấp gian hàng lên quy mô \"Nhà cung cấp lớn\"";
                orderDetail.StartDate       = DateTime.Now;
                orderDetail.EndDate         = new DateTime(2020, 12, 31);

                PaymentContext.OrderDetail.Add(orderDetail);
                PaymentContext.SaveChanges();
            }
            catch (Exception ex)
            {
            }

            return(orderDetail);
        }
コード例 #4
0
        public async Task <IActionResult> UpgradePackageBrand(UpgrageBrandPackageDTO UpgrageBrandPackageDTO)
        {
            var data = await _repoWrapper.UpdateStore.UpgradePackageBrand(UpgrageBrandPackageDTO);

            return(Json(data));
        }