/// <summary> /// Binds the order invoice product category to model. /// </summary> /// <param name="orderInvoiceDetail">The order invoice detail.</param> /// <param name="scheme">The scheme.</param> /// <param name="productImageModel">The product image model.</param> /// <returns></returns> public static OrderInvoiceDetailModel BindOrderInvoiceProductSizeToModel(OrderInvoiceDetailModel orderInvoiceDetail, List <ProductSizeDetail> productSizeDetails, List <SizeDetail> sizeDetails) { if (orderInvoiceDetail != null) { foreach (var item in orderInvoiceDetail.ProductDetails) { var size = sizeDetails.Where(x => x.SizeFK == DBHelper.ParseInt64(item.SizeId)).ToList(); if (size != null) { string sizeRatio = ""; foreach (var cat in size) { sizeRatio += cat.Name + "/"; } sizeRatio = sizeRatio.TrimEnd('/'); sizeRatio += " - "; var sizeDetail = productSizeDetails.Where(x => x.ProductFK == DBHelper.ParseInt64(item.ProductId)).ToList(); if (sizeDetail != null) { foreach (var cat in sizeDetail) { sizeRatio += cat.Name + "/"; } sizeRatio = sizeRatio.TrimEnd('/'); } item.SizeRatio = sizeRatio; } } } return(orderInvoiceDetail); }
public IActionResult EmailOrderInvoice(GetOrderInvoiceDetailModel model) { try { if (ModelState.IsValid) { var header = this.Request.Headers; var authToken = header["Authorization"]; var jwt = authToken[0].Replace("Bearer ", ""); var handler = new JwtSecurityTokenHandler(); var token = handler.ReadJwtToken(jwt); var loginUserId = DBHelper.ParseInt32(token.Payload["UserId"]); string scheme = this.Request.Scheme; scheme += "://" + this.Request.Host + this.Request.PathBase; var orderInvoiceDetail = iOrderInvoice.GetOrderInvoiceDetail(DBHelper.ParseInt64(model.orderInvoiceId)); if (orderInvoiceDetail != null) { PromoCode promoCode = null; if (orderInvoiceDetail[0].OrderInvoice.DiscountAmount > 0) { promoCode = iPromoCode.GetPromocodeDetail(DBHelper.ParseInt64(orderInvoiceDetail[0].OrderInvoice.Order.PromocodeFK)); } OrderInvoiceDetailModel orderInvoiceDetailList = OrderInvoiceHelper.BindOrderInvoiceDetailModel(orderInvoiceDetail, promoCode); List <long> productIds = OrderInvoiceHelper.GetProductIds(orderInvoiceDetailList); List <ProductImage> productImages = iProduct.GetProductImagesByProductIds(productIds); orderInvoiceDetailList = OrderInvoiceHelper.BindOrderInvoiceDetailImageToModel(orderInvoiceDetailList, scheme, productImages); var adminUserAddressDetails = iOrderInvoice.GetAdminUserAddressDetails(loginUserId); orderInvoiceDetailList.AdminUserDetails = adminUserAddressDetails; if (orderInvoiceDetailList != null) { var HostingPath = env.ContentRootPath; string clientEmail = config.GetValue <string>("app_settings:ClientEmail"); string clientEmailPassword = config.GetValue <string>("app_settings:ClientEmailPassword"); string port = config.GetValue <string>("app_settings:Port"); string mailHost = config.GetValue <string>("app_settings:SMTPURL"); string host = this.Request.Host.Value; OrderHelper.SendInvoice(orderInvoiceDetailList.Email, orderInvoiceDetailList, DBHelper.ParseString(HostingPath), clientEmail, clientEmailPassword, port, mailHost, host, scheme); } return(Ok(ResponseHelper.Success(orderInvoiceDetailList))); } else { return(Ok(ResponseHelper.Error(MessageConstants.DataNotFound))); } } else { return(Ok(ResponseHelper.Error(MessageConstants.CompulsoryData))); } } catch (Exception ex) { LogHelper.ExceptionLog(ex.Message + " ::::: " + ex.StackTrace); return(Ok(ResponseHelper.Error(ex.Message))); } }
private static string GetOrderInvoiceMailString(OrderInvoiceDetailModel orderInvoiceDetailModel, string hostPath) { var hostingPath = hostPath; string path = string.Concat(hostingPath, "/" + Constants.InvoiceDetailPath); string logoPath = string.Concat(hostingPath, "/" + Constants.LogoPath); string html = string.Empty; string tablepath = string.Concat(hostingPath, "/" + Constants.InvoiceProductsPath); if (System.IO.File.Exists(path)) { html = System.IO.File.ReadAllText(path); html = html.Replace("##COMPANYLOGO##", logoPath); html = html.Replace("##ADMIN_USERNAME##", orderInvoiceDetailModel.AdminUserDetails.FirstName); html = html.Replace("##ADMIN_Address1##", orderInvoiceDetailModel.AdminUserDetails.Address1); html = html.Replace("##ADMIN_Address2##", orderInvoiceDetailModel.AdminUserDetails.Address2); html = html.Replace("##ADMIN_User_COUNTRY##", orderInvoiceDetailModel.AdminUserDetails.CountryName); html = html.Replace("##ADMIN_User_CITY##", orderInvoiceDetailModel.AdminUserDetails.City); html = html.Replace("##ADMIN_USER_STATE##", orderInvoiceDetailModel.AdminUserDetails.StateName); html = html.Replace("##ADMIN_USER_ZIPCODE##", orderInvoiceDetailModel.AdminUserDetails.Zipcode); html = html.Replace("##SHIPPING_CHARGE##", orderInvoiceDetailModel.ShippingCharges); html = html.Replace("##PRODUCT_VAT##", orderInvoiceDetailModel.TotalGSTAmount); html = html.Replace("##USERNAME##", orderInvoiceDetailModel.FirstName + " !"); html = html.Replace("##ADDRESS1##", orderInvoiceDetailModel.Address1); if (!string.IsNullOrEmpty(orderInvoiceDetailModel.Address2)) { html = html.Replace("##ADDRESS2##", orderInvoiceDetailModel.Address2); } html = html.Replace("##CITY##", orderInvoiceDetailModel.City); html = html.Replace("##COUNTRY##", orderInvoiceDetailModel.Country); html = html.Replace("##STATE##", orderInvoiceDetailModel.State); html = html.Replace("##ZIPCODE##", orderInvoiceDetailModel.Zipcode); //string convertDate = DateTime.ParseExact(orderInvoiceDetailModel.OrderDate, "dd-MM-yyyy", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); orderInvoiceDetailModel.OrderDate = DBHelper.ParseString(Convert.ToDateTime(orderInvoiceDetailModel.OrderDate).ToString(Constants.DateFormat)); html = html.Replace("##ORDER_DATE##", orderInvoiceDetailModel.OrderDate); html = html.Replace("##ORDER_NUMBER##", orderInvoiceDetailModel.PONumber); html = html.Replace("##PAYBALE_AMOUNT##", orderInvoiceDetailModel.PayableAmount); html = html.Replace("##ORDER_STATUS##", orderInvoiceDetailModel.OrderStatus); string FinalTable = string.Empty; foreach (var item in orderInvoiceDetailModel.ProductDetails) { string ProductTable = System.IO.File.ReadAllText(tablepath); ProductTable = ProductTable.Replace("##PRODUCT_IMAGE##", item.Image); ProductTable = ProductTable.Replace("##PRODUCT_NAME##", item.Name); ProductTable = ProductTable.Replace("##PRODUCT_GROUP##", item.SizeRatio); ProductTable = ProductTable.Replace("##PRODUCT_QTY##", item.Quantity); ProductTable = ProductTable.Replace("##PRODUCT_UNITPRICE##", item.Price); ProductTable = ProductTable.Replace("##PRODUCT_TOTAL##", item.Total); FinalTable += ProductTable; } html = html.Replace("###ProductTable###", FinalTable); } return(html); }
/// <summary> /// Gets the size ids. /// </summary> /// <param name="orderInvoiceDetail">The order invoice detail.</param> /// <returns></returns> public static List <long> GetSizeIds(OrderInvoiceDetailModel orderInvoiceDetail) { List <long> sizeIds = new List <long>(); if (orderInvoiceDetail != null) { foreach (var item in orderInvoiceDetail.ProductDetails) { sizeIds.Add(DBHelper.ParseInt64(item.SizeId)); } } return(sizeIds); }
/// <summary> /// Binds the order invoice detail image to model. /// </summary> /// <param name="orderInvoiceDetail">The order invoice detail.</param> /// <param name="scheme">The scheme.</param> /// <param name="productImageModel">The product image model.</param> /// <returns></returns> public static OrderInvoiceDetailModel BindOrderInvoiceDetailImageToModel(OrderInvoiceDetailModel orderInvoiceDetail, string scheme, List <ProductImage> productImageModel) { if (orderInvoiceDetail != null) { foreach (var item in orderInvoiceDetail.ProductDetails) { var image = productImageModel.Where(x => x.ProductColor.ProductFK == DBHelper.ParseInt64(item.ProductId) && x.ProductColorFK == DBHelper.ParseInt64(item.ColorId)).FirstOrDefault(); if (image != null) { item.Image = scheme + Constants.ProductImagesPath.Replace(@"\", "/") + "/" + image.Image; } } } return(orderInvoiceDetail); }
public IActionResult OrderInvoiceDetail(GetOrderInvoiceDetailModel model) { try { if (ModelState.IsValid) { string scheme = this.Request.Scheme; scheme += "://" + this.Request.Host + this.Request.PathBase; var orderInvoiceDetail = iOrderInvoice.GetOrderInvoiceDetail(DBHelper.ParseInt64(model.orderInvoiceId)); if (orderInvoiceDetail != null) { PromoCode promoCode = null; if (orderInvoiceDetail[0].OrderInvoice.DiscountAmount > 0) { promoCode = iPromoCode.GetPromocodeDetail(DBHelper.ParseInt64(orderInvoiceDetail[0].OrderInvoice.Order.PromocodeFK)); } OrderInvoiceDetailModel orderInvoiceDetailList = OrderInvoiceHelper.BindOrderInvoiceDetailModel(orderInvoiceDetail, promoCode); List <long> productIds = OrderInvoiceHelper.GetProductIds(orderInvoiceDetailList); List <long> sizeIds = OrderInvoiceHelper.GetSizeIds(orderInvoiceDetailList); var productCategoryDetails = iProduct.GetProductCategoryDetail(productIds); var productSizeDetail = iProduct.GetProductSizeDetails(productIds); var sizeDetail = iSize.GetSizeDetailsBySizeIds(sizeIds); List <ProductImage> productImages = iProduct.GetProductImagesByProductIds(productIds); orderInvoiceDetailList = OrderInvoiceHelper.BindOrderInvoiceDetailImageToModel(orderInvoiceDetailList, scheme, productImages); orderInvoiceDetailList = OrderInvoiceHelper.BindOrderInvoiceProductCategoryToModel(orderInvoiceDetailList, productCategoryDetails); orderInvoiceDetailList = OrderInvoiceHelper.BindOrderInvoiceProductSizeToModel(orderInvoiceDetailList, productSizeDetail, sizeDetail); return(Ok(ResponseHelper.Success(orderInvoiceDetailList))); } else { return(Ok(ResponseHelper.Error(MessageConstants.DataNotFound))); } } else { return(Ok(ResponseHelper.Error(MessageConstants.CompulsoryData))); } } catch (Exception ex) { LogHelper.ExceptionLog(ex.Message + " ::::: " + ex.StackTrace); return(Ok(ResponseHelper.Error(ex.Message))); } }
public static async Task SendInvoice(string toMail, OrderInvoiceDetailModel orderDetailModel, string hostPath, string clientEmail, string clientPassword, string port, string sMTPUrl, string host, string scheme) { await Task.Run(() => { var hostingPath = hostPath; string path = string.Concat(hostingPath, "/" + Constants.OrderConfirmationMail); if (System.IO.File.Exists(path)) { string _clientEmail = clientEmail; string clientEmailPassword = clientPassword; string _port = port; string mailHost = sMTPUrl; string _host = host; string _scheme = scheme; string html = GetOrderInvoiceMailString(orderDetailModel, hostingPath); MailHelper.SendMail(toMail, Constants.InvoiceDetail, html, _clientEmail, mailHost, _port, clientEmailPassword); } }); }
/// <summary> /// Binds the order invoice product category to model. /// </summary> /// <param name="orderInvoiceDetail">The order invoice detail.</param> /// <param name="scheme">The scheme.</param> /// <param name="productImageModel">The product image model.</param> /// <returns></returns> public static OrderInvoiceDetailModel BindOrderInvoiceProductCategoryToModel(OrderInvoiceDetailModel orderInvoiceDetail, List <ProductCategoryDetail> categoryDetails) { if (orderInvoiceDetail != null) { foreach (var item in orderInvoiceDetail.ProductDetails) { var category = categoryDetails.Where(x => x.ProductFK == DBHelper.ParseInt64(item.ProductId)).ToList(); if (category != null) { string categories = ""; foreach (var cat in category) { categories += cat.ProductCategoryType.CategoryType + ","; } categories = categories.TrimEnd(','); item.Category = categories; } } } return(orderInvoiceDetail); }
/// <summary> /// Converts to order invoice detail model. /// </summary> /// <param name="orderInvoiceDetail">The model.</param> /// <returns></returns> public static OrderInvoiceDetailModel BindOrderInvoiceDetailModel(List <OrderInvoiceDetail> orderInvoiceDetail, PromoCode promoCode = null) { OrderInvoiceDetailModel orderInvoiceDetailModel = new OrderInvoiceDetailModel(); if (orderInvoiceDetail != null) { orderInvoiceDetailModel.OrderDate = DBHelper.ParseString(Convert.ToDateTime(orderInvoiceDetail[0].OrderInvoice.Order.OrderDate)); orderInvoiceDetailModel.Address1 = orderInvoiceDetail[0].OrderInvoice.Order.UserAddress.Address1; orderInvoiceDetailModel.Address2 = orderInvoiceDetail[0].OrderInvoice.Order.UserAddress.Address2; orderInvoiceDetailModel.City = orderInvoiceDetail[0].OrderInvoice.Order.UserAddress.City; orderInvoiceDetailModel.State = orderInvoiceDetail[0].OrderInvoice.Order.UserAddress.State.Name; orderInvoiceDetailModel.Country = orderInvoiceDetail[0].OrderInvoice.Order.UserAddress.Country.Name; orderInvoiceDetailModel.CompanyName = orderInvoiceDetail[0].OrderInvoice.User.Companyname; orderInvoiceDetailModel.FirstName = orderInvoiceDetail[0].OrderInvoice.User.FirstName; orderInvoiceDetailModel.LastName = orderInvoiceDetail[0].OrderInvoice.User.LastName; orderInvoiceDetailModel.Email = orderInvoiceDetail[0].OrderInvoice.User.EmailAddress; orderInvoiceDetailModel.InvoiceDate = DBHelper.ParseString(Convert.ToDateTime(orderInvoiceDetail[0].OrderInvoice.InvoiceDate)).Split(' ')[0]; orderInvoiceDetailModel.InvoiceId = orderInvoiceDetail[0].OrderInvoice.UniqueInvoiceId; orderInvoiceDetailModel.OrderStatus = orderInvoiceDetail[0].OrderInvoice.OrderStatus.Status; orderInvoiceDetailModel.PayableAmount = DBHelper.ParseString(orderInvoiceDetail[0].OrderInvoice.PayableAmount); orderInvoiceDetailModel.PONumber = orderInvoiceDetail[0].OrderInvoice.Order.PONumber; orderInvoiceDetailModel.ShippingCharges = DBHelper.ParseString(orderInvoiceDetail[0].OrderInvoice.ShippingCharges); orderInvoiceDetailModel.SubTotalAmount = DBHelper.ParseString(orderInvoiceDetail[0].OrderInvoice.SubTotalAmount); orderInvoiceDetailModel.DiscountAmount = DBHelper.ParseString(orderInvoiceDetail[0].OrderInvoice.DiscountAmount); if (orderInvoiceDetail[0].OrderInvoice.TotalGSTAmount != null) { orderInvoiceDetailModel.TotalGSTAmount = DBHelper.ParseString(orderInvoiceDetail[0].OrderInvoice.TotalGSTAmount); } if (orderInvoiceDetail[0].OrderInvoice.TrackingNumber != null) { orderInvoiceDetailModel.TrackingNumber = orderInvoiceDetail[0].OrderInvoice.TrackingNumber; } orderInvoiceDetailModel.UserId = DBHelper.ParseString(orderInvoiceDetail[0].OrderInvoice.User.UserId); orderInvoiceDetailModel.Zipcode = orderInvoiceDetail[0].OrderInvoice.Order.UserAddress.Zipcode; if (promoCode != null) { if (promoCode.Amount > 0) { orderInvoiceDetailModel.Discount = "Flat " + promoCode.Amount + " Off"; } else { orderInvoiceDetailModel.Discount = promoCode.Percentage + "% Off"; } orderInvoiceDetailModel.PromoCode = promoCode.Code; } List <OrderInvoiceDetailProduct> orderInvoiceDetailProductList = new List <OrderInvoiceDetailProduct>(); foreach (var item in orderInvoiceDetail) { orderInvoiceDetailProductList.Add(new OrderInvoiceDetailProduct { Color = item.ProductColor.Color.Name, Name = item.Product.Name, Price = DBHelper.ParseString(item.Price), ProductId = DBHelper.ParseString(item.ProductFK), Quantity = DBHelper.ParseString(item.Quantity), Total = DBHelper.ParseString(item.SubTotalAmount), ColorId = DBHelper.ParseString(item.ProductColorFK), SizeId = DBHelper.ParseString(item.Product.SizeFK), }); } orderInvoiceDetailModel.ProductDetails = orderInvoiceDetailProductList; } return(orderInvoiceDetailModel); }