public ApiResponse <GenerateInvoiceEntity> GenerateInvoiceMultiple(List <GenerateInvoiceMultiple> OrderPartList, int CompanyNo) { var response = new ApiResponse <GenerateInvoiceEntity>(); foreach (GenerateInvoiceMultiple item in OrderPartList) { BillingApiController bc = new BillingApiController(); int OrderID = Convert.ToInt32(item.OrderId); int PartNo = Convert.ToInt32(item.PartNo); ApiResponse <SoldToAttorneyDetailsEntity> objSoldToDetails = bc.GetSoldToAttorneyDetailsByOrderId(OrderID.ToString(), PartNo.ToString()); ApiResponse <BillToAttorneyDetailsEntity> objBillToDetails = bc.GetBillToAttorneyDetailsByOrderId(OrderID.ToString(), PartNo.ToString()); ApiResponse <BillToAttorneyEntity> objSoldtoAttorney = new ApiResponse <BillToAttorneyEntity>(); ApiResponse <BillToAttorneyEntity> objBillToAttorney = new ApiResponse <BillToAttorneyEntity>(); if (objSoldToDetails.Data.Count > 0) { objSoldtoAttorney = bc.GetSoldToAttorneyByOrderNo(OrderID.ToString(), PartNo.ToString()); } if (objBillToDetails.Data.Count > 0) { objBillToAttorney = bc.GetBillToAttorneyByFirmId(objBillToDetails.Data[0].BillingFirmID); } string strBilltoAttorney = objBillToAttorney.Data.Count > 0 ? objBillToAttorney.Data[0].AttyId : ""; List <SoldAttorneyEntity> soldAttorneyList = new List <SoldAttorneyEntity>(); foreach (var itemAttorney in objSoldtoAttorney.Data) { soldAttorneyList.Add(new SoldAttorneyEntity { AttyId = itemAttorney.AttyId, AttyType = "Ordering" }); } bc.GenerateInvoice(OrderID, PartNo, strBilltoAttorney, CompanyNo, soldAttorneyList); } return(response); }
public BaseApiResponse UploadDocument(int CompanyNo) { var response = new BaseApiResponse(); int FileversionID = 0; try { var modal = HttpContext.Current.Request.Form[0]; var data = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(modal); if (data == null) { response.Success = false; } bool isFileUploaded = HttpContext.Current.Request.Files.AllKeys.Any(); int rcvdid = 0; if (Convert.ToInt32(data["PartNo"]) > 0 && Convert.ToInt32(data["FileTypeId"]) == 11) { if (Convert.ToInt32(data["RecordTypeId"]) != 41 && Convert.ToInt32(data["RecordTypeId"]) != 137) { int compdateResult = 0; try { SqlParameter[] paramCompDate = { new SqlParameter("OrderId", (object)Convert.ToInt32(data["OrderId"]) ?? (object)DBNull.Value) , new SqlParameter("PartNo", (object)Convert.ToInt32(data["PartNo"]) ?? (object)DBNull.Value) }; compdateResult = _repository.ExecuteSQL <int>("UpdateCompDate", paramCompDate).FirstOrDefault(); } catch (Exception ex) { } } try { SqlParameter[] param = { new SqlParameter("OrderId", (object)Convert.ToInt32(data["OrderId"]) ?? (object)DBNull.Value) , new SqlParameter("PartNo", (object)Convert.ToInt32(data["PartNo"]) ?? (object)DBNull.Value) , new SqlParameter("RecordTypeId", (object)Convert.ToInt32(data["RecordTypeId"]) ?? (object)DBNull.Value) , new SqlParameter("PageNo", (object)Convert.ToInt32(data["PageNo"]) ?? (object)DBNull.Value) , new SqlParameter("EmpId", (object)data["EmpId"].ToString() ?? (object)DBNull.Value) , new SqlParameter("isFileUploaded", (object)isFileUploaded ?? (object)DBNull.Value) }; rcvdid = _repository.ExecuteSQL <int>("InsertFileRCVD", param).FirstOrDefault(); } catch (Exception ex) { } } string tempPath = ConfigurationManager.AppSettings["TempStorageDirectory"].ToString(); string serverPath = ConfigurationManager.AppSettings["UploadRoot"].ToString(); string subFolder = Convert.ToInt32(data["PartNo"]) <= 0 ? "/" + data["OrderId"].ToString() : "/" + data["OrderId"].ToString() + "/" + data["PartNo"].ToString(); serverPath += subFolder; if (!Directory.Exists(serverPath)) { Directory.CreateDirectory(serverPath); } string tempFullPath = tempPath + subFolder; if (!Directory.Exists(tempFullPath)) { Directory.CreateDirectory(tempFullPath); } Guid CreatedByGUID = new Guid(data["CreatedBy"].ToString()); int RecordTypeID = 0; try { RecordTypeID = Convert.ToInt32(data["RecordTypeId"]); } catch (Exception Ex) { } if (HttpContext.Current.Request.Files.AllKeys.Any()) { for (int i = 0; i < HttpContext.Current.Request.Files.Count; i++) { var httpPostedFile = HttpContext.Current.Request.Files[i]; string FileExtension = System.IO.Path.GetExtension(httpPostedFile.FileName); string fileType = FileExtension; string FileName = httpPostedFile.FileName; string fileGuid = Guid.NewGuid().ToString(); string fDiskName = fileGuid + FileExtension; httpPostedFile.SaveAs(tempPath + "/" + subFolder + "/" + fileGuid + FileExtension); if (!string.IsNullOrEmpty(FileExtension) && (FileExtension.ToUpper() == ".DOC" || FileExtension.ToUpper() == ".DOCX")) { FileExtension = ".Pdf"; } string FileDiskName = fileGuid + FileExtension; //DateTime.Now.ToString("yyyyMMddHHmmssfff") SqlParameter[] param = { new SqlParameter("OrderId", (object)Convert.ToInt32(data["OrderId"]) ?? (object)DBNull.Value) , new SqlParameter("PartNo", (object)Convert.ToInt32(data["PartNo"]) ?? (object)DBNull.Value) , new SqlParameter("FileName", (object)FileName ?? (object)DBNull.Value) , new SqlParameter("FileTypeId", (object)Convert.ToInt32(data["FileTypeId"]) ?? (object)DBNull.Value) , new SqlParameter("IsPublic", (object)Convert.ToBoolean(data["IsPublic"]) ?? (object)DBNull.Value) , new SqlParameter("RecordTypeId", (object)Convert.ToInt32(data["RecordTypeId"]) ?? (object)DBNull.Value) , new SqlParameter("FileDiskName", (object)FileDiskName ?? (object)DBNull.Value) , new SqlParameter("PageNo", (object)Convert.ToInt32(data["PageNo"]) ?? (object)DBNull.Value) , new SqlParameter("CreatedBy", (object)CreatedByGUID ?? (object)DBNull.Value) }; var result = _repository.ExecuteSQL <int>("InsertFile", param).FirstOrDefault(); FileversionID = result; if (result > 0) { FileDiskName = fDiskName; FileExtension = fileType; response.lng_InsertedId = result; response.Success = true; #region SaveFileTypeRecordBillFirm SqlParameter[] paramBillFirm = { new SqlParameter("OrderId", (object)Convert.ToInt32(data["OrderId"]) ?? (object)DBNull.Value) }; var resultbillFirm = _repository.ExecuteSQL <FileTypeRecordBillFirm>("GetDetailforFileTypeRecordBillFirm", paramBillFirm).FirstOrDefault(); if (resultbillFirm != null)//(Convert.ToInt32(data["RecordTypeId"]) != 0) { string AttyName = resultbillFirm.AttorneyName; string BillFirm = resultbillFirm.OrderingFirmID; string ClaimNo = resultbillFirm.BillingClaimNo; if (BillFirm == null || BillFirm == "") { // continue; } System.IO.MemoryStream ms = new System.IO.MemoryStream(); Aspose.Pdf.License license = new Aspose.Pdf.License(); license.SetLicense("Aspose.Pdf.lic"); Aspose.Words.License license1 = new Aspose.Words.License(); license1.SetLicense("Aspose.Words.lic"); string tmpFullPath = tempPath + "/" + subFolder + "/" + FileDiskName; if (!string.IsNullOrEmpty(FileExtension) && FileExtension.ToUpper() == ".DOC" || FileExtension.ToUpper() == ".DOCX") { Aspose.Words.Document doc = new Aspose.Words.Document((tmpFullPath)); doc.Save(Path.Combine(serverPath, fileGuid + ".pdf")); File.Delete((tmpFullPath)); } else if (!string.IsNullOrEmpty(FileExtension) && FileExtension.ToUpper() == ".PDF") { Aspose.Pdf.Document doc = new Aspose.Pdf.Document((tmpFullPath)); doc.Save(Path.Combine(serverPath, fileGuid + ".pdf")); File.Delete((tmpFullPath)); } else { File.Copy((tmpFullPath), Path.Combine(serverPath, FileDiskName)); File.Delete((tmpFullPath)); } string TStamp = DateTime.Now.ToString("yyyyMMddHHmmssfff"); string _storageRoot = string.Empty; string FilePath = string.Empty; if (ClaimNo == "") { ClaimNo = "0"; } if (FileExtension == "doc" || FileExtension == "DOC" || FileExtension == "docx" || FileExtension == "DOCX") { FileExtension = "pdf"; } if (BillFirm == "GRANCO01") { _storageRoot = ConfigurationManager.AppSettings["GrangeRoot"].ToString(); FilePath = _storageRoot + string.Format("{0}-{1}-{2}-{3}", ClaimNo, TStamp, data["OrderId"].ToString(), data["PartNo"].ToString() + "." + FileExtension); } if (BillFirm == "HANOAA01") { _storageRoot = ConfigurationManager.AppSettings["HanoverRoot"].ToString(); FilePath = _storageRoot + string.Format("{0}_{1}_{2}_{3}-{4}", ClaimNo, AttyName, TStamp, data["OrderId"].ToString(), data["PartNo"].ToString() + "." + FileExtension); } if (BillFirm == "GRANCO01" || BillFirm == "HANOAA01") { System.IO.DirectoryInfo dis = new System.IO.DirectoryInfo(_storageRoot); if (!dis.Exists) { dis.Create(); } int count = 1; string fileNameOnly = Path.GetFileNameWithoutExtension(FilePath); string extension = Path.GetExtension(FilePath); string path = Path.GetDirectoryName(FilePath); string newFullPath = FilePath; while (System.IO.File.Exists(newFullPath)) { string tempFileName = string.Format("{0}({1})", fileNameOnly, count++); newFullPath = Path.Combine(path, tempFileName + extension); } FileStream fs = new FileStream(newFullPath, FileMode.Create, FileAccess.Write); ms.WriteTo(fs); fs.Close(); } } #endregion } } Directory.Delete((tempPath + "/" + data["OrderId"].ToString()), true); //TODO:Send Email //http://localhost:51617/Secured/Data/GetMRBillingData.aspx/SendMailOnUploadDocument try { BillingApiController bc = new BillingApiController(); int OrderID = Convert.ToInt32(data["OrderId"]); int PartNo = Convert.ToInt32(data["PartNo"]); ApiResponse <BillToAttorneyDetailsEntity> objBillToDetails = bc.GetBillToAttorneyDetailsByOrderId(OrderID.ToString(), PartNo.ToString()); ApiResponse <SoldToAttorneyDetailsEntity> objSoldToDetails = bc.GetSoldToAttorneyDetailsByOrderId(OrderID.ToString(), PartNo.ToString()); ApiResponse <BillToAttorneyEntity> objBillToAttorney = new ApiResponse <BillToAttorneyEntity>(); ApiResponse <BillToAttorneyEntity> objSoldtoAttorney = new ApiResponse <BillToAttorneyEntity>(); if (objSoldToDetails.Data.Count > 0) { objSoldtoAttorney = bc.GetSoldToAttorneyByOrderNo(OrderID.ToString(), PartNo.ToString()); } if (objBillToDetails.Data.Count > 0) { objBillToAttorney = bc.GetBillToAttorneyByFirmId(objBillToDetails.Data[0].BillingFirmID); } string strBilltoAttorney = objBillToAttorney.Data.Count > 0 ? objBillToAttorney.Data[0].AttyId : ""; List <SoldAttorneyEntity> soldAttorneyList = new List <SoldAttorneyEntity>(); foreach (var item in objSoldtoAttorney.Data) { soldAttorneyList.Add(new SoldAttorneyEntity { AttyId = item.AttyId, AttyType = "Ordering" }); } bc.GenerateInvoice(OrderID, PartNo, strBilltoAttorney, CompanyNo, soldAttorneyList, RecordTypeID, FileversionID); } catch (Exception ex) { Log.ServicLog("========== GENERATE BILL AFTER UPLOADING DOCUMENT =================="); Log.ServicLog(ex.ToString()); } } // GENERATE BILL FOR THESE RECORD TYPE EVEN IF NO FILE IS UPLOADED // RecordTypeID = 50(Cd Of Films) // RecordTypeID = 41(Cancelled) // RecordTypeID = 168(Custodian Fee) else if (isFileUploaded || RecordTypeID == 50 || RecordTypeID == 41 || RecordTypeID == 168) { #region --- GENERATE BILL --- try { BillingApiController bc = new BillingApiController(); int OrderID = Convert.ToInt32(data["OrderId"]); int PartNo = Convert.ToInt32(data["PartNo"]); ApiResponse <BillToAttorneyDetailsEntity> objBillToDetails = bc.GetBillToAttorneyDetailsByOrderId(OrderID.ToString(), PartNo.ToString()); ApiResponse <SoldToAttorneyDetailsEntity> objSoldToDetails = bc.GetSoldToAttorneyDetailsByOrderId(OrderID.ToString(), PartNo.ToString()); ApiResponse <BillToAttorneyEntity> objBillToAttorney = new ApiResponse <BillToAttorneyEntity>(); ApiResponse <BillToAttorneyEntity> objSoldtoAttorney = new ApiResponse <BillToAttorneyEntity>(); if (objSoldToDetails.Data.Count > 0) { objSoldtoAttorney = bc.GetSoldToAttorneyByOrderNo(OrderID.ToString(), PartNo.ToString()); } if (objBillToDetails.Data.Count > 0) { objBillToAttorney = bc.GetBillToAttorneyByFirmId(objBillToDetails.Data[0].BillingFirmID); } string strBilltoAttorney = objBillToAttorney.Data.Count > 0 ? objBillToAttorney.Data[0].AttyId : ""; List <SoldAttorneyEntity> soldAttorneyList = new List <SoldAttorneyEntity>(); foreach (var item in objSoldtoAttorney.Data) { soldAttorneyList.Add(new SoldAttorneyEntity { AttyId = item.AttyId, AttyType = "Ordering" }); } bc.GenerateInvoice(OrderID, PartNo, strBilltoAttorney, CompanyNo, soldAttorneyList, RecordTypeID, FileversionID); } catch (Exception ex) { Log.ServicLog("========== GENERATE BILL AFTER UPLOADING DOCUMENT =================="); Log.ServicLog(ex.ToString()); } #endregion response.Success = true; } #region Send Mail if (Convert.ToInt32(data["FileTypeId"]) == 11 && isFileUploaded) { try { SqlParameter[] param = { new SqlParameter("OrderId", (object)Convert.ToInt64(data["OrderId"]) ?? (object)DBNull.Value) , new SqlParameter("PartNo", (object)Convert.ToInt32(data["PartNo"]) ?? (object)DBNull.Value) , new SqlParameter("FileTypeId", (object)Convert.ToInt32(data["FileTypeId"]) ?? (object)DBNull.Value) , new SqlParameter("RecordTypeId", (object)Convert.ToInt32(data["RecordTypeId"]) ?? (object)DBNull.Value) }; var result = _repository.ExecuteSQL <AssistContactEmail>("GetAssistContactEmailList", param).ToList(); if (result != null && result.Any(x => x.NewRecordAvailable)) { CompanyDetailForEmailEntity objCompany = CommonFunction.CompanyDetailForEmail(CompanyNo); string subject = "Your Records Are Available " + Convert.ToString(data["OrderId"]) + "-" + Convert.ToString(data["PartNo"]); string LiveSiteURL = ConfigurationManager.AppSettings["LiveSiteURL"].ToString(); foreach (AssistContactEmail item in result.Where(x => x.NewRecordAvailable && !string.IsNullOrEmpty(x.AssistantEmail))) { System.Text.StringBuilder body = new System.Text.StringBuilder(); using (System.IO.StreamReader reader = new System.IO.StreamReader(HttpContext.Current.Server.MapPath("~/MailTemplate/BillingRecords.html"))) { body.Append(reader.ReadToEnd()); } body = body.Replace("{UserName}", "Hello " + item.AssistantName + ","); body = body.Replace("{LOCATION}", item.LocationName + " (" + item.LocID + ")"); body = body.Replace("{PATIENT}", item.PatientName); body = body.Replace("{CLAIMNO}", item.BillingClaimNo); body = body.Replace("{ORDERNO}", data["OrderId"] + "-" + data["PartNo"]); body = body.Replace("{InvHdr}", item.InvHdr); body = body.Replace("{Pages}", Convert.ToString(data["PageNo"])); body = body.Replace("{LINK}", Convert.ToString(objCompany.SiteURL) + "/PartDetail?OrderId=" + data["OrderId"] + "&PartNo=" + data["PartNo"]); body = body.Replace("{LogoURL}", objCompany.Logopath); body = body.Replace("{ThankYou}", objCompany.ThankYouMessage); body = body.Replace("{CompanyName}", objCompany.CompName); body = body.Replace("{Link}", objCompany.SiteURL); EmailHelper.Email.Send(CompanyNo: objCompany.CompNo , mailTo: item.AssistantEmail , body: body.ToString() , subject: subject , ccMail: "" , bccMail: "[email protected],[email protected]"); } } } catch (Exception ex) { Log.ServicLog("========== Email for UPLOADING DOCUMENT =================="); Log.ServicLog(ex.ToString()); } } #endregion #region Send Mail To Client Of Employee bool IsAttorneyLogin; try { if (bool.TryParse(Convert.ToString(data["IsAttorneyLogin"]), out IsAttorneyLogin) && IsAttorneyLogin) { SqlParameter[] param = { new SqlParameter("OrderId", (object)Convert.ToInt64(data["OrderId"]) ?? (object)DBNull.Value) }; var clientOfUser = _repository.ExecuteSQL <AccntRepDetails>("GetClientOfEmailByOrderId", param).FirstOrDefault(); if (clientOfUser != null && !string.IsNullOrEmpty(clientOfUser.Email)) { CompanyDetailForEmailEntity objCompany = CommonFunction.CompanyDetailForEmail(CompanyNo); string subject = "Document uploaded by client " + Convert.ToString(data["OrderId"]) + "-" + Convert.ToString(data["PartNo"]); string LiveSiteURL = ConfigurationManager.AppSettings["LiveSiteURL"].ToString(); System.Text.StringBuilder body = new System.Text.StringBuilder(); using (System.IO.StreamReader reader = new System.IO.StreamReader(HttpContext.Current.Server.MapPath("~/MailTemplate/DocumentUploadedByClient.html"))) { body.Append(reader.ReadToEnd()); } body = body.Replace("{UserName}", clientOfUser.Name); body = body.Replace("{ORDERNO}", data["OrderId"] + "-" + data["PartNo"]); body = body.Replace("{LINK}", Convert.ToString(objCompany.SiteURL) + "/PartDetail?OrderId=" + data["OrderId"] + "&PartNo=" + data["PartNo"]); body = body.Replace("{LogoURL}", objCompany.Logopath); body = body.Replace("{ThankYou}", objCompany.ThankYouMessage); body = body.Replace("{CompanyName}", objCompany.CompName); body = body.Replace("{Link}", objCompany.SiteURL); EmailHelper.Email.Send(CompanyNo: objCompany.CompNo , mailTo: clientOfUser.Email , body: body.ToString() , subject: subject , ccMail: "" , bccMail: "[email protected],[email protected]"); } } } catch (Exception ex) { Log.ServicLog("========== Email for UPLOADING DOCUMENT =================="); Log.ServicLog(ex.ToString()); } #endregion if (!isFileUploaded) { response.Success = true; } } catch (Exception ex) { response.Message.Add(ex.Message); } return(response); }