/// <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); }
/// <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); }
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); }
public async Task <IActionResult> UpgradePackageBrand(UpgrageBrandPackageDTO UpgrageBrandPackageDTO) { var data = await _repoWrapper.UpdateStore.UpgradePackageBrand(UpgrageBrandPackageDTO); return(Json(data)); }