public static string ApproveRequest(RecommendRequestObj data) { try { using (var context = new SalesReturndbEntities()) { string RequestType = "approve"; var RequestDetail = context.tblRequestDtls.Where(x => x.RequestHeaderId == data.Request_Id && x.IsActive == true).ToList(); var approvalHeader = context.TblApproverHeaders.Where(x => x.Request_Id == data.Request_Id && x.IsActive == true).FirstOrDefault(); var ReqHdr = context.TblRequestHeaders.Where(x => x.RequestHeaderId == data.Request_Id && x.IsActive == true).FirstOrDefault(); RequestDetailObj_Render data1 = CommonDAL.GetRequestDetails(data.Request_Id, data.CurrentStatus_Id, data.FutureStatus_Id); var UserDetail = context.SP_LFGDetails(approvalHeader.CreatedBy).FirstOrDefault(); var DepotDTl = context.sp_GetDealerDtlBy_DealerRepositoryId(ReqHdr.DealerId).FirstOrDefault(); string assignTo = string.Empty; var DepotPersonDtl = context.TblEmployeeMasters.Where(x => x.DepotName == DepotDTl.Depot).FirstOrDefault(); if (data.FutureStatus_Id == 10019) { assignTo = DepotPersonDtl.Depotcode; } ApproverDAL.UpdateRequestStatus(false, Convert.ToInt32(data.Request_Id), data.EmployeeCode, assignTo, data.Active_Role, data.Requested_Role, data.CurrentStatus_Id, data.FutureStatus_Id, data.Remarks); SendMail(approvalHeader, data, RequestType, assignTo); return("Success : " + ReqHdr.RequestTypeOption + "-" + data.Request_Id + " Requested has been approved successfully."); } } catch (Exception ex) { throw ex; } }
public static string GetSubject(String html, RecommendRequestObj obj) { RequestDetailObj_Render data1 = CommonDAL.GetRequestDetails(obj.Request_Id, obj.CurrentStatus_Id, obj.FutureStatus_Id); html = html.Replace("<RequestNo.>", data1.RequestTypeOption + "- " + data1.RequestHeader_Id); return(html); }
public static MailAddressCollection GetCC(RecommendRequestObj obj) { try { using (var context = new SalesReturndbEntities()) { MailAddressCollection ccEmail = new MailAddressCollection(); RequestDetailObj_Render data1 = CommonDAL.GetRequestDetails(obj.Request_Id, obj.CurrentStatus_Id, obj.FutureStatus_Id); var RegionalHead = context.SP_LFGDetails(data1.EmployeeCode).FirstOrDefault(); if (RegionalHead != null) { if (!(RegionalHead.Regional_Head.ToUpper().Trim().Equals("NA") || RegionalHead.Regional_Head.Trim().Equals(string.Empty))) { var RegionalHeadData = context.SP_LFGDetails(RegionalHead.Regional_Head).FirstOrDefault(); ccEmail.Add(RegionalHeadData.email_id); } if (!(RegionalHead.segmentHead.ToUpper().Trim().Equals("NA") || RegionalHead.segmentHead.Trim().Equals(string.Empty))) { var SegmentHeadData = context.SP_LFGDetails(RegionalHead.segmentHead).FirstOrDefault(); ccEmail.Add(SegmentHeadData.email_id); } ccEmail.Add(RegionalHead.email_id);//Email Id of Requestor } var DepotMaster = context.SP_GetDepotList().Where(x => x.DepotId == data1.DepotId).FirstOrDefault(); var AssintoEmp = context.TblEmployeeMasters.Where(x => x.IsActive == true && x.DepotName == DepotMaster.DepotName).FirstOrDefault(); var ComplaintHandler = context.SP_LFGDetails(AssintoEmp.ComplaintHandler).FirstOrDefault(); var CompalintManager = context.SP_LFGDetails(AssintoEmp.ComplaintManager).FirstOrDefault(); ccEmail.Add(ComplaintHandler.email_id); ccEmail.Add(CompalintManager.email_id); var LogistickHead = context.SP_LFGDetails(AssintoEmp.LogisticsHead).FirstOrDefault(); ccEmail.Add(LogistickHead.email_id); if (RegionalHead != null) { if (!(RegionalHead.VPHead.ToUpper().Trim().Equals("NA") || RegionalHead.VPHead.Trim().Equals(string.Empty))) { var vphead = context.sp_GetuserDetailsFromLFG(RegionalHead.VPHead).FirstOrDefault(); ccEmail.Add(vphead.email_id); } if (!(RegionalHead.President_Code.ToUpper().Trim().Equals("NA") || RegionalHead.President_Code.Trim().Equals(string.Empty))) { var President_Code = context.sp_GetuserDetailsFromLFG(RegionalHead.President_Code).FirstOrDefault(); ccEmail.Add(President_Code.email_id); } } var depot = context.SP_LFGDetails(AssintoEmp.Depotcode).FirstOrDefault(); ccEmail.Add(depot.email_id); var cso = context.SP_LFGDetails(AssintoEmp.CSO).FirstOrDefault(); ccEmail.Add(cso.email_id); return(ccEmail); } } catch (Exception ex) { throw ex; } }
public static string GetHtml(string html, RecommendRequestObj obj) { using (var context = new SalesReturndbEntities()) { RequestDetailObj_Render data1 = CommonDAL.GetRequestDetails(obj.Request_Id, obj.CurrentStatus_Id, obj.FutureStatus_Id); string RequestNumber = data1.RequestTypeOption + "-" + data1.RequestHeader_Id; int SKUCount = data1.RequestDetail.Count; html = html.Replace("<CustomerCode>", data1.DealerCodeForMail); html = html.Replace("<CustomerName>", data1.DealerNameForMail); html = html.Replace("<RequestNumber>", RequestNumber); html = html.Replace("<DepotName>", data1.DepotNameForMail); var reason = context.TblReasonMasters.Where(x => x.ReasonMaster_Id == data1.ReasonForReturn_Id).FirstOrDefault(); html = html.Replace("<Reason>", reason.Reason); html = html.Replace("<CountofSKUs>", SKUCount.ToString()); //html = html.Replace("Requestor Name;", SKUCount.ToString()); decimal?SalesReturnVolume = 0; decimal?SRVValue = 0; decimal?ExpiredVoulme = 0; //ToString("0.00"); for (int i = 0; i < data1.RequestDetail.Count; i++) { if (data1.RequestDetail[i].Volume != null) { SalesReturnVolume += data1.RequestDetail[i].Volume; } if (data1.RequestDetail[i].SRVValue != null) { SRVValue = SRVValue + data1.RequestDetail[i].SRVValue; } if (Convert.ToInt32(data1.RequestDetail[i].selectedSKU.Shelf_Life) < 0) { ExpiredVoulme = ExpiredVoulme + data1.RequestDetail[i].Volume; } } html = html.Replace("<SalesReturnVolume>", Convert.ToDecimal(string.Format("{0:F2}", SalesReturnVolume)).ToString()); html = html.Replace("<VolumeExpired>", Convert.ToDecimal(string.Format("{0:F2}", ExpiredVoulme)).ToString()); html = html.Replace("<SalesReturnAmount>", Convert.ToDecimal(string.Format("{0:F2}", SRVValue)).ToString()); return(html); } }
public static RequestDetailObj_Render GetRequestDetailsforNextStage(int RequestId, int CurrentStatus_Id, int FutureStatus_Id) { using (var context = new SalesReturndbEntities()) { RequestDetailObj_Render obj = new RequestDetailObj_Render(); var ReqHeaderdetail = context.SP_GetRequestDetail(RequestId).FirstOrDefault(); var UserDetail = context.SP_LFGDetails(ReqHeaderdetail.CreatedBy).FirstOrDefault(); var AppMatrixValue = context.TblFlowMatrices.Where(x => x.RequestType == (ReqHeaderdetail.RequestType_Id) && x.IsActive == true && x.Options == "Value").FirstOrDefault(); var AppMatrixPeriod = context.TblFlowMatrices.Where(x => x.RequestType == (ReqHeaderdetail.RequestType_Id) && x.IsActive == true && x.Options == "Period").FirstOrDefault(); if (ReqHeaderdetail != null) { var ReqHDR = context.TblRequestHeaders.Where(x => x.RequestHeaderId == RequestId && x.IsActive == true).FirstOrDefault(); obj.RequestHeader_Id = ReqHeaderdetail.RequestHeaderId; obj.DealerName = ReqHeaderdetail.DealerName + ":" + ReqHeaderdetail.DealerCode; obj.DealerId = ReqHeaderdetail.DealerId; obj.DepotName = ReqHeaderdetail.DepotName + " : " + ReqHeaderdetail.DealerCode; obj.DepotId = ReqHeaderdetail.DepotId; obj.ReasonForReturn = ReqHeaderdetail.RequestType; obj.ReasonForReturn_Id = ReqHeaderdetail.RequestType_Id; obj.RequestTypeOption = ReqHDR.RequestTypeOption; obj.RequestDetail = new List <RequestDetailArray_Render>(); var ReqDetailList = context.tblRequestDtls.Where(x => x.RequestHeaderId == RequestId && x.IsActive == true).ToList(); int InvoiceAge = 0; decimal? TotalSRV_Value = 0; DateTime date = DateTime.Now; foreach (var pt in ReqDetailList) { if (pt.ReleaseByCM == false) { continue; } RequestDetailArray_Render detailArray = new RequestDetailArray_Render() { Detail_Id = pt.Id, InvoiceDate = pt.InvoiceDate, InvoiceNo = pt.InvoiceNumber, InvoiceQuantity = pt.InvoiceQuantity, PackSize = pt.PackSize, ProvideGST_Yes = pt.ReadyToProvideGST, ProvideGST_No = (pt.ReadyToProvideGST != null && pt.ReadyToProvideGST.Value == true) ? false : true, Remarks = pt.Remarks, SRVQuantity = pt.SRVQuantity, SRVValue = pt.SRVValue, Unit = pt.Unit, Volume = (pt.SRVQuantity * pt.PackSize), SKUCode = pt.SKUCode, SKUName = pt.SKUName, Acknowledge = pt.Acknowledge, Damaged = pt.DamagedQTY, Excess = pt.ExccessQTY, ReceivedQuantity = pt.ReceivedQTY, SAPsubReasonID = pt.ReasonforSAP, Short = pt.ShortQTY, Manufacturing_Date = context.TblBarCodeDetails.Where(x => x.SKU_Code == pt.SKUCode).Select(y => y.Manufacturing_Date).FirstOrDefault(), Shelf_Life = context.spGetShelfLifeData(pt.SKUCode).FirstOrDefault().Shelf_Life.ToString(), BatchNo = pt.BatchNo, ComplaintNumber = obj.ReasonForReturn_Id == 1 ? context.SP_GetCCNumber(pt.CCNo).FirstOrDefault().ComplaintNumber : 0, SubReasonName = context.TblSalesReasonMasters.Where(x => x.SalesReason_Id == pt.SubReason).Select(y => y.SubReason).FirstOrDefault(), SubReason = pt.SubReason, UploadedInvoice = (pt.ReadyToProvideGST != null && pt.ReadyToProvideGST.Value == true) ? context.TblUploadedInvoices.Where(x => x.RequestDetail_Id == pt.Id && x.IsActive == true).FirstOrDefault().ImageUploaded : "", UploadedInvoice_Id = (pt.ReadyToProvideGST != null && pt.ReadyToProvideGST.Value == true) ? context.TblUploadedInvoices.Where(x => x.RequestDetail_Id == pt.Id && x.IsActive == true).FirstOrDefault().Id : 0, DONo = pt.DONo, SRVInvoiceNo = pt.SRVInvoiceNo, ReleaseByCM = pt.ReleaseByCM, ReleaseByCM_Date = pt.ReleaseByCM_Date }; obj.RequestDetail.Add(detailArray); TotalSRV_Value = TotalSRV_Value + detailArray.SRVValue; // getting invoice age from the oldest invoice date. if (pt.InvoiceDate != null) { int InvoiceDateAge = ((date.Year - pt.InvoiceDate.Value.Year) * 12) + date.Month - pt.InvoiceDate.Value.Month; if (InvoiceAge <= InvoiceDateAge) { InvoiceAge = InvoiceDateAge; } } } // if request is pending to user. if (FutureStatus_Id == 17) { foreach (var item in obj.RequestDetail) { if (ReqHeaderdetail.RequestType_Id == 1) { var ccDetail = context.SP_GetCCNumber(item.ComplaintNumber).FirstOrDefault(); item.selectedComplaint = new ComplaintDetail_Render(); item.selectedComplaint.Complaint_ID = ccDetail.Complaint_ID; item.selectedComplaint.ComplaintDesc = ccDetail.ComplaintDesc; item.selectedComplaint.ComplaintNumber = ccDetail.ComplaintNumber; } var SKUDetail = context.SP_GetSKUCode(item.SKUCode).FirstOrDefault(); if (SKUDetail != null) { //item.selectedSKU = new SKUClass(); item.selectedSKU = new SKUClass(); item.selectedSKU.SKUCode = SKUDetail.SKUCode; item.selectedSKU.SKUName = SKUDetail.SKUName; item.selectedSKU.SKUDescription = SKUDetail.SKUDescription; } } } if (CurrentStatus_Id == 10 || CurrentStatus_Id == 11) { //if (TotalSRV_Value < AppMatrixValue.ComplaintHandler && InvoiceAge < AppMatrix.InvoiceAge) if (TotalSRV_Value < AppMatrixValue.ComplaintHandler) { obj.ShowApproveButton = false; } else { obj.ShowApproveButton = true; } } else if (CurrentStatus_Id == 12 || CurrentStatus_Id == 13 || CurrentStatus_Id == 14 || FutureStatus_Id == 6 || FutureStatus_Id == 7 || FutureStatus_Id == 8) { obj.ShowApproveButton = true; } return(obj); } return(obj); } }
public static RequestDetailObj_Render GetRequestDetails(int?RequestId, int CurrentStatus_Id, int FutureStatus_Id) { using (var context = new SalesReturndbEntities()) { RequestDetailObj_Render obj = new RequestDetailObj_Render(); var ReqHeaderdetail = context.SP_GetRequestDetail(RequestId).FirstOrDefault(); var UserDetail = context.SP_LFGDetails(ReqHeaderdetail.CreatedBy).FirstOrDefault(); var AppMatrixValue = context.TblFlowMatrices.Where(x => x.RequestType == (ReqHeaderdetail.RequestType_Id) && x.IsActive == true && x.Options == "Value").FirstOrDefault(); var AppMatrixPeriod = context.TblFlowMatrices.Where(x => x.RequestType == (ReqHeaderdetail.RequestType_Id) && x.IsActive == true && x.Options == "Period").FirstOrDefault(); if (ReqHeaderdetail != null) { var ReqHDR = context.TblRequestHeaders.Where(x => x.RequestHeaderId == RequestId && x.IsActive == true).FirstOrDefault(); obj.RequestHeader_Id = ReqHeaderdetail.RequestHeaderId; obj.DealerName = ReqHeaderdetail.DealerName + " : " + ReqHeaderdetail.DealerCode; obj.DealerId = ReqHeaderdetail.DealerId; obj.DepotName = ReqHeaderdetail.DepotName + " : " + ReqHeaderdetail.DepotCode; obj.DepotId = ReqHeaderdetail.DepotId; obj.ReasonForReturn = ReqHeaderdetail.RequestType; obj.ReasonForReturn_Id = ReqHeaderdetail.RequestType_Id; obj.RequestTypeOption = ReqHDR.RequestTypeOption; obj.DocketNumber = ReqHDR.DocketNumber; obj.IsCommercialSettlement = ReqHDR.IsCommercialSettlement; obj.MaterialWillGoToDealer = ReqHDR.MaterialWillGoToDealer; obj.ParentRequest = ReqHDR.ParentRequest; obj.ReasonForCommercialSettlement = ReqHDR.ReasonForCommercialSettlement; obj.DetailsForMaterialGoToDealer = ReqHDR.DetailsForMaterialGoToDealer; obj.EPNo = ReqHDR.EPNo; obj.DealerNameForMail = ReqHeaderdetail.DealerName; obj.DealerCodeForMail = ReqHeaderdetail.DealerCode; obj.RequestDetail = new List <RequestDetailArray_Render>(); obj.DepotNameForMail = ReqHeaderdetail.DepotName; var ReqDetailList = context.tblRequestDtls.Where(x => x.RequestHeaderId == RequestId && x.IsActive == true).ToList(); double InvoiceAge = 0; decimal? TotalSRV_Value = 0; DateTime date = DateTime.Now; foreach (var pt in ReqDetailList) { var BarCodeDetails = context.TblBarCodeDetails.Where(x => x.SKU_Code == pt.SKUCode).FirstOrDefault(); var GetCCNumber = context.SP_GetCCNumber(pt.CCNo).FirstOrDefault(); var SalesReasonMasters = context.TblSalesReasonMasters.Where(x => x.SalesReason_Id == pt.SubReason).FirstOrDefault(); RequestDetailArray_Render detailArray = new RequestDetailArray_Render() { Detail_Id = pt.Id, InvoiceDate = pt.InvoiceDate, InvoiceNo = pt.InvoiceNumber, InvoiceQuantity = pt.InvoiceQuantity, PackSize = pt.PackSize, ProvideGST_Yes = pt.ReadyToProvideGST, ProvideGST_No = (pt.ReadyToProvideGST != null && pt.ReadyToProvideGST.Value == true) ? false : true, Remarks = pt.Remarks, SRVQuantity = pt.SRVQuantity, SRVValue = pt.SRVValue, Unit = pt.Unit, Volume = (pt.SRVQuantity * pt.PackSize), SKUCode = pt.SKUCode, SKUName = pt.SKUName, Damaged = pt.DamagedQTY, DONo = pt.DONo, Acknowledge = pt.Acknowledge, Excess = pt.ExccessQTY, ReceivedQuantity = pt.ReceivedQTY, Short = pt.ShortQTY, SRVInvoiceNo = pt.SRVInvoiceNo, // Manufacturing_Date = BarCodeDetails != null ? BarCodeDetails.Manufacturing_Date : null, //Shelf_Life = context.spGetShelfLifeData(pt.SKUCode).FirstOrDefault().Shelf_Life.ToString(), Manufacturing_Date = pt.MFG_Date, Shelf_Life = pt.Shelf_Life, BatchNo = pt.BatchNo, ComplaintNumber = obj.ReasonForReturn_Id == 1 ? GetCCNumber != null ? GetCCNumber.ComplaintNumber : 0 : 0, SubReasonName = SalesReasonMasters != null ? SalesReasonMasters.SubReason : "", SubReason = pt.SubReason, UploadedInvoice = (pt.ReadyToProvideGST != null && pt.ReadyToProvideGST.Value == true) ? context.TblUploadedInvoices.Where(x => x.RequestDetail_Id == pt.Id && x.IsActive == true).FirstOrDefault().ImageUploaded : "", UploadedInvoice_Id = (pt.ReadyToProvideGST != null && pt.ReadyToProvideGST.Value == true) ? context.TblUploadedInvoices.Where(x => x.RequestDetail_Id == pt.Id && x.IsActive == true).FirstOrDefault().Id : 0, selectedSKU = new SKUClass { SKUCode = pt.SKUCode, SKUName = pt.SKUName } }; obj.RequestDetail.Add(detailArray); TotalSRV_Value = TotalSRV_Value + detailArray.SRVValue; // getting invoice age from the oldest invoice date. if (pt.InvoiceDate != null) { double InvoiceDateAge = DateTime.Now.Subtract(pt.InvoiceDate.Value).Days / (365.25 / 12); //int InvoiceDateAge = ((date.Year - pt.InvoiceDate.Value.Year) * 12) + date.Month - pt.InvoiceDate.Value.Month; if (InvoiceAge <= InvoiceDateAge) { InvoiceAge = InvoiceDateAge; } } } // if request is pending to user. if (ReqHeaderdetail.RequestType_Id != 3) { if (FutureStatus_Id == 17) { foreach (var item in obj.RequestDetail) { if (ReqHeaderdetail.RequestType_Id == 1) { var ccDetail = context.SP_GetCCNumber(item.ComplaintNumber).FirstOrDefault(); item.selectedComplaint = new ComplaintDetail_Render(); item.selectedComplaint.Complaint_ID = ccDetail.Complaint_ID; item.selectedComplaint.ComplaintDesc = ccDetail.ComplaintDesc; item.selectedComplaint.ComplaintNumber = ccDetail.ComplaintNumber; } var SKUDetail = context.SP_GetSKUCode(item.SKUCode).FirstOrDefault(); if (SKUDetail != null) { //item.selectedSKU = new SKUClass(); item.selectedSKU = new SKUClass(); item.selectedSKU.SKUCode = SKUDetail.SKUCode; item.selectedSKU.SKUName = SKUDetail.SKUName; item.selectedSKU.SKUDescription = SKUDetail.SKUDescription; } } } if (CurrentStatus_Id == 10) { if (ReqHeaderdetail.RequestType_Id == 1) { if (TotalSRV_Value <= AppMatrixValue.ComplaintHandler && InvoiceAge <= AppMatrixPeriod.ComplaintHandler && FutureStatus_Id != 9) { obj.ShowApproveButton = true; } else if (FutureStatus_Id == 9) { obj.ShowApproveButton = true; } else { obj.ShowApproveButton = false; } } } else if (CurrentStatus_Id == 11) { if (ReqHeaderdetail.RequestType_Id == 2) { if (TotalSRV_Value < AppMatrixValue.LogisticsHead && InvoiceAge < AppMatrixPeriod.LogisticsHead) { obj.ShowApproveButton = true; } else if (FutureStatus_Id == 9) { obj.ShowApproveButton = true; } else { obj.ShowApproveButton = false; } } } else if (CurrentStatus_Id == 12 || CurrentStatus_Id == 13 || CurrentStatus_Id == 14 || FutureStatus_Id == 6 || FutureStatus_Id == 7 || FutureStatus_Id == 8) { obj.ShowApproveButton = true; } } else { if (FutureStatus_Id == 6) { if (TotalSRV_Value <= AppMatrixValue.RH && InvoiceAge <= AppMatrixPeriod.RH) { obj.ShowApproveButton = true; } else { obj.ShowApproveButton = false; } } else if (FutureStatus_Id == 7) { if (TotalSRV_Value <= AppMatrixValue.SegmentHead && InvoiceAge <= AppMatrixPeriod.SegmentHead) { obj.ShowApproveButton = true; } else { obj.ShowApproveButton = false; } } else if (FutureStatus_Id == 8) { if (TotalSRV_Value <= AppMatrixValue.VP && InvoiceAge <= AppMatrixPeriod.VP) { obj.ShowApproveButton = true; } else { obj.ShowApproveButton = false; } } else if (FutureStatus_Id == 9) { obj.ShowApproveButton = true; } //if (TotalSRV_Value <= AppMatrixValue.RH && InvoiceAge <= AppMatrixPeriod.RH) //{ // ApproverDAL.UpdateRequestStatus(isNew, Convert.ToInt32(RequestHeaderId), obj.EmployeeCode, UserDetail.Regional_Head, 1, 7, 1, 6, ""); //} //else if (TotalSRV_Value <= AppMatrixValue.SegmentHead && InvoiceAge <= AppMatrixPeriod.SegmentHead) //{ // ApproverDAL.UpdateRequestStatus(isNew, Convert.ToInt32(RequestHeaderId), obj.EmployeeCode, UserDetail.segmentHead, 1, 8, 1, 7, ""); //} //else if (TotalSRV_Value <= AppMatrixValue.VP && InvoiceAge <= AppMatrixPeriod.VP) //{ // ApproverDAL.UpdateRequestStatus(isNew, Convert.ToInt32(RequestHeaderId), obj.EmployeeCode, UserDetail.VPHead, 1, 9, 1, 8, ""); //} //else //{ // ApproverDAL.UpdateRequestStatus(isNew, Convert.ToInt32(RequestHeaderId), obj.EmployeeCode, UserDetail.President_Code, 1, 6, 1, 9, ""); //} } return(obj); } return(obj); } }