public bool SendEmailToSupplier(SPOReceipt spoReceipt) { string subject = "Purchase Order Receipt"; string path = HttpContext.Current.Server.MapPath(@"\Templates\Supplier\SupplierEmailTemplate.html"); string items; StringBuilder stringBuilder = new StringBuilder(); foreach (var item in spoReceipt.SupplierItem) { stringBuilder.Append("<tr><td style=\"text-align:center;padding:10px\">" + item.ItemNameEn + "</td><td style=\"text-align:center;padding:10px\">" + item.FlavourEn + "</td><td style=\"text-align:center\">" + item.Type + "</td><td style=\"text-align:center\">" + item.OrderCostPrice + "</td><td style=\"text-align:center\">" + item.OrderQuantity + "</td></tr>"); } items = stringBuilder.ToString(); string finalTemplate = System.IO.File.ReadAllText(path); finalTemplate = finalTemplate.Replace("${BranchName}$", spoReceipt.BranchName) .Replace("${BranchAddress}$", spoReceipt.BranchAddress) .Replace("${SupplierName}$", spoReceipt.SupplierName) .Replace("${MobileNo}$", spoReceipt.MobileNo) .Replace("${IssueDate}$", "" + spoReceipt.IssueDate) .Replace("${DueDate}$", "" + spoReceipt.DueDate) .Replace("${SPONumber}$", spoReceipt.SPONumber) .Replace("${POType}$", spoReceipt.POType) .Replace("${items}$", items); if (EmailConfig.SendEmail(spoReceipt.SupplierEmail, subject, finalTemplate)) { return(true); } else { return(false); } }
/// <summary> /// This method is used for fetching purchase order details for printing receipt. - JJ /// </summary> /// <param name="RecordId">parent record id</param> /// <param name="Comment"></param> /// <param name="userName">currently logged in user's username</param> /// <param name="RoleName">logged in user's rolename</param> /// <param name="RoleId">logged in user's role id</param> /// <returns>object of SPOReceipt</returns> public SPOReceipt PrintSPOReceipt(string Comment, int RecordId, int RoleId, string RoleName, string userName) { var purchaseOrder = _supplierPOContext.Fetch(x => x.RecordId == RecordId).FirstOrDefault(); if (purchaseOrder.IsApproved && !purchaseOrder.IsReceived && !purchaseOrder.IsVerified && !purchaseOrder.IsPaid) { var itemList = new List <SupplierItemAC>(); var poItemList = _purchaseOrderItemContext.Fetch(x => x.PurchaseOrderId == purchaseOrder.Id).ToList(); foreach (var item in poItemList) { var spoItem = new SupplierItemAC { FlavourEn = item.ItemProfile.FlavourEn, ItemNameEn = item.ItemProfile.ItemNameEn, Type = item.ItemProfile.SystemParameter.ValueEn + "-" + item.ItemProfile.BaseUnit, OrderCostPrice = item.OrderCostPrice, OrderQuantity = item.OrderQuantity, TotalOrderPrice = item.OrderQuantity * item.OrderCostPrice }; itemList.Add(spoItem); } var spoReceipt = new SPOReceipt(); spoReceipt.BranchAddress = purchaseOrder.InitiatorBranch.Address; spoReceipt.BranchName = purchaseOrder.InitiatorBranch.NameSl; spoReceipt.Comment = Comment; spoReceipt.DueDate = purchaseOrder.DueDate; spoReceipt.IssueDate = purchaseOrder.CreatedDateTime; spoReceipt.MobileNo = purchaseOrder.SupplierProfile.Phone; spoReceipt.POType = purchaseOrder.SupplierProfile.SupplierType.ValueSl; spoReceipt.SPONumber = purchaseOrder.PurchaseOrderNumber; spoReceipt.SupplierItem = itemList; spoReceipt.SupplierName = purchaseOrder.SupplierProfile.NameEn; spoReceipt.SupplierEmail = purchaseOrder.SupplierProfile.Email; spoReceipt.Invoice = InvoiceToHtml.get39(purchaseOrder.PurchaseOrderNumber, 1, 20); purchaseOrder.IsSend = true; purchaseOrder.ModifiedDateTime = DateTime.UtcNow; _supplierPOContext.Update(purchaseOrder); _supplierPOContext.SaveChanges(); SaveSupplierPurchaseOrderLog(StringConstants.Send, Comment, purchaseOrder.Id, RecordId, RoleName, "" + RoleName + " " + StringConstants.SendSPO, userName); return(spoReceipt); } else { return(null); } }