/// <summary> /// this method is used for adding ICR.- JJ /// </summary> /// <param name="itemChangedDetail">object of ItemChangedDetailsAC</param> /// <param name="user">object of UserDetail</param> /// <param name="company"></param> /// <param name="WorkFlowId"></param> /// <returns>status</returns> public string SaveICR(ItemChangedDetailsAC itemChangedDetail, UserDetail user, CompanyDetail company, int?WorkFlowId) { try { var ParentRecordId = 0; if (itemChangedDetail.IsInDirect) { ParentRecordId = (int)itemChangedDetail.ParentRecordId; itemChangedDetail.IsPOItemIcr = true; } else { var workFlowLog = _IWorkFlowDetailsRepository.GetInitiationActionWorkFlow(StringConstants.ItemChangeRequest, StringConstants.InitiateICR, user, company, itemChangedDetail, itemChangedDetail.Comment, itemChangedDetail); if (workFlowLog != null) { WorkFlowLog log = (WorkFlowLog)workFlowLog.Item1; ParentRecordId = log.RecordId; WorkFlowDetail WorkFlow = (WorkFlowDetail)workFlowLog.Item2; WorkFlowId = WorkFlow.Id; } else { return(StringConstants.WorkFlowNotCreated); } } return(AddICR(itemChangedDetail, ParentRecordId, WorkFlowId, company, user)); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public int SaveWorkFlowDetails(WorkFlowDetail workFlowDetails) { try { if (workFlowDetails.Id != 0) { var workFlowDetail = _workFlowDataRepository.GetById(workFlowDetails.Id); workFlowDetail.WorkFlowId = workFlowDetails.WorkFlowId; workFlowDetail.InitiatorId = workFlowDetails.InitiatorId; workFlowDetail.AssignedId = workFlowDetails.AssignedId; workFlowDetails.WorkFlowName = workFlowDetails.WorkFlowName; workFlowDetail.IsApproval = workFlowDetails.IsApproval; workFlowDetail.IsReview = workFlowDetails.IsReview; workFlowDetail.ActivityId = workFlowDetails.ActivityId; workFlowDetail.NextActivityId = workFlowDetails.NextActivityId; workFlowDetail.IsClosed = workFlowDetails.IsClosed; workFlowDetail.IsAllowOtherWorkFlow = workFlowDetails.IsAllowOtherWorkFlow; workFlowDetail.IsAllowOtherBranchUser = workFlowDetails.IsAllowOtherBranchUser; workFlowDetail.OtherWorkFlowId = workFlowDetails.OtherWorkFlowId; workFlowDetail.ModifiedDateTime = DateTime.UtcNow; _workFlowDataRepository.Update(workFlowDetail); _workFlowDataRepository.SaveChanges(); return(workFlowDetail.Id); } else { workFlowDetails.CreatedDateTime = DateTime.UtcNow; _workFlowDataRepository.Add(workFlowDetails); _workFlowDataRepository.SaveChanges(); return(workFlowDetails.Id); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
private WorkFlowLog SaveWorkFlowDetails(WorkFlowDetail workFlowCurrentDetails, DomainModel.Models.IncidentReport.PosIncidentReport incidentReportInfo, UserDetail userDetails, string comment, string action) { try { WorkFlowLog workFlowLog = new WorkFlowLog(); workFlowLog.Comments = comment; workFlowLog.CreatedDateTime = DateTime.UtcNow; workFlowLog.RecordId = (int)incidentReportInfo.RecordId; workFlowLog.RoleId = userDetails.RoleId; workFlowLog.UserId = userDetails.UserId; workFlowLog.WorkFlowId = workFlowCurrentDetails.Id; workFlowLog.Action = action; workFlowLog.Stage = (userDetails.RoleName) + " " + (workFlowCurrentDetails.Activity != null ? workFlowCurrentDetails.Activity.Name : ""); _workFLowLogContext.Add(workFlowLog); _workFLowLogContext.SaveChanges(); return(workFlowLog); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
private DomainModel.Models.IncidentReport.PosIncidentReport SaveIncidentReportDetails(DomainModel.Models.IncidentReport.PosIncidentReport incidentReportInfo, WorkFlowDetail activityWorkFlow, string comment, UserDetail userDetail) { try { if (incidentReportInfo != null) { ParentRecord parentRecord = new ParentRecord(); parentRecord.BranchId = incidentReportInfo.BranchId; parentRecord.CreatedDateTime = DateTime.UtcNow; parentRecord.InitiationComment = comment; parentRecord.InitiationDate = DateTime.UtcNow; parentRecord.ModificationDate = DateTime.UtcNow; parentRecord.InitiatorId = userDetail.UserId; parentRecord.ModifiedUserId = userDetail.UserId; parentRecord.WorkFlowId = activityWorkFlow.Id; _parentRecordContext.Add(parentRecord); _parentRecordContext.SaveChanges(); if (parentRecord.Id != 0) { WorkFlowLog workFlowLog = new WorkFlowLog(); workFlowLog.Comments = comment; workFlowLog.CreatedDateTime = DateTime.UtcNow; workFlowLog.RecordId = parentRecord.Id; workFlowLog.RoleId = userDetail.RoleId; workFlowLog.UserId = userDetail.UserId; workFlowLog.WorkFlowId = activityWorkFlow.Id; workFlowLog.Action = StringConstants.InitiateAction; workFlowLog.Stage = (userDetail.RoleName) + " " + (activityWorkFlow.Activity != null ? activityWorkFlow.Activity.Name : ""); _workFLowLogContext.Add(workFlowLog); _workFLowLogContext.SaveChanges(); if (workFlowLog.Id != 0) { incidentReportInfo.IsProcess = false; incidentReportInfo.RecordId = parentRecord.Id; incidentReportInfo.ModifiedDateTime = DateTime.UtcNow; _posIncidentReportDataRepository.Update(incidentReportInfo); _posIncidentReportDataRepository.SaveChanges(); } } return(incidentReportInfo); } else { return(null); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
/// <summary> /// this method is used to get incident report details by id. /// </summary> /// <param name="incidentId"></param> /// <param name="userDetail"></param> /// <returns></returns> public PosIncidentReportAc GetIncidentReportDetailsById(int incidentId, UserDetail userDetail, bool isAllowToAccessAllBranch) { try { var incidentReportDetail = _posIncidentReportDataRepository.FirstOrDefault(x => x.Id == incidentId); var incidentAc = new PosIncidentReportAc(); incidentAc = ApplicationClassHelper.ConvertType <DomainModel.Models.IncidentReport.PosIncidentReport, PosIncidentReportAc>(incidentReportDetail); incidentAc.PosIncidentReportId = incidentReportDetail.Id; incidentAc.IncidentTypeName = incidentReportDetail.IncidentTypes.ValueEn; incidentAc.LossValue = incidentReportDetail.CommittedLossValue; incidentAc.GainValue = incidentReportDetail.CommittedGainValue; incidentAc.ResolveQuantity = incidentReportDetail.CommitedQuantity; incidentAc.ItemName = incidentReportDetail.ItemProfile.ItemNameEn; incidentAc.BranchName = incidentReportDetail.BranchDetail.Name; incidentAc.IsDisabledInfo = true; incidentAc.CostPrice = incidentReportDetail.ItemProfile.CostPrice; incidentAc.IncidentDate = incidentReportDetail.CreatedDateTime.ToString("dd/MM/yyyy hh:mm"); incidentAc.SellPrice = incidentReportDetail.ItemProfile.SellPrice; var itemQuantityDetails = _itemQuantityContext.FirstOrDefault(x => x.ItemId == incidentReportDetail.ItemId && x.BranchId == incidentReportDetail.BranchId); if (itemQuantityDetails != null) { incidentAc.CurrentSystemQuantity = itemQuantityDetails.ActualQuantity; } var itemOfferDetail = new ItemOfferDetailAC { ItemId = incidentReportDetail.ItemId, Barcode = incidentReportDetail.ItemProfile.Barcode, ItemNameEn = incidentReportDetail.ItemProfile.ItemNameEn, FlavourEn = incidentReportDetail.ItemProfile.FlavourEn, ItemCode = incidentReportDetail.ItemProfile.Code, SellPriceA = incidentReportDetail.ItemProfile.SellPriceA, SellPrice = incidentReportDetail.ItemProfile.SellPrice, SellPriceB = incidentReportDetail.ItemProfile.SellPriceB, SellPriceC = incidentReportDetail.ItemProfile.SellPriceC, SellPriceD = incidentReportDetail.ItemProfile.SellPriceD, UnitType = incidentReportDetail.ItemProfile.SystemParameter.ValueEn, BaseUnitCount = incidentReportDetail.ItemProfile.BaseUnit, CostPrice = incidentReportDetail.ItemProfile.CostPrice, ItemNameAr = incidentReportDetail.ItemProfile.ItemNameSl, FlavourAr = incidentReportDetail.ItemProfile.FlavourSl, ItemType = incidentReportDetail.ItemProfile.Category.BrandParamType.ValueEn + "-" + incidentReportDetail.ItemProfile.Category.GroupParamType.ValueEn, IsOfferItem = incidentReportDetail.ItemProfile.IsOfferItem == true ? "Yes" : "No", PreviousCostPrice = incidentReportDetail.ItemProfile.PreviousCostPrice, AverageCostPrice = incidentReportDetail.ItemProfile.AverageCostPrice, IsActiveItem = incidentReportDetail.ItemProfile.IsActive == true ? "Yes" : "No" }; incidentAc.ItemDetails = itemOfferDetail; if (isAllowToAccessAllBranch) { incidentAc.IsCurrentUser = true; } else { if (incidentReportDetail.BranchId == userDetail.BranchId) { incidentAc.IsCurrentUser = true; } } var workflowCollection = new List <WorkFlowActionAc>(); if (incidentReportDetail.RecordId != null) { foreach (var workflowInfo in _workFLowLogContext.Fetch(x => x.RecordId == incidentReportDetail.RecordId).ToList()) { var workFlowActionAc = new WorkFlowActionAc(); workFlowActionAc.Stage = workflowInfo.Stage; workFlowActionAc.Action = workflowInfo.Action; workFlowActionAc.WorkFlowActionId = workflowInfo.Id; workFlowActionAc.RoleName = workflowInfo.RoleDetails.RoleName; workFlowActionAc.Comment = workflowInfo.Comments; workFlowActionAc.ActionDate = workflowInfo.CreatedDateTime.ToString("dd/MM/yyyy hh:mm");; var userNames = _userDetailContext.FirstOrDefault(x => x.UserId == workflowInfo.UserId); if (userNames != null) { workFlowActionAc.UserName = userNames.UserName; } workflowCollection.Add(workFlowActionAc); } incidentAc.WorkFlowAction = workflowCollection.OrderBy(x => x.WorkFlowActionId); var workFLowLastDetails = _workFLowLogContext.Fetch(x => x.RecordId == incidentReportDetail.RecordId).ToList().Last(); if (incidentReportDetail.IsReject) { var workFlowCurrentDetails = _workFlowDetailContext.FirstOrDefault(x => x.Id == workFLowLastDetails.WorkFlowDetail.ParentActivityId); if (workFlowCurrentDetails != null) { WorkFlowDetail workDetailsById = _workFlowDetailContext.FirstOrDefault(x => x.Id == workFlowCurrentDetails.ParentActivityId && x.AssignedId == userDetail.RoleId); if (workDetailsById != null) { incidentAc.IsReview = workDetailsById.IsReview; incidentAc.IsApproval = workDetailsById.IsApproval; } } } else { var workFlowCurrentDetails = _workFlowDetailContext.FirstOrDefault(x => x.Id == workFLowLastDetails.WorkFlowId && x.AssignedId == userDetail.RoleId); if (workFlowCurrentDetails != null) { incidentAc.IsReview = workFlowCurrentDetails.IsReview; incidentAc.IsApproval = workFlowCurrentDetails.IsApproval; } } } return(incidentAc); } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
/// <summary> /// This method is used for save new supplier return request in database. - JJ /// </summary> /// <param name="SupplierReturnRequest">object of SupplierReturnRequest</param> /// <param name="company">object of CompanyDetail</param> /// <param name="user">object of UserDetail</param> /// <returns>object of SupplierReturnRequest</returns> public SupplierReturnRequest SaveSupplierReturnRequest(SupplierReturnRequest SupplierReturnRequest, UserDetail user, CompanyDetail company) { try { var status = CheckSupplierConditions(SupplierReturnRequest.SupplierId, SupplierReturnRequest.SupplierReturnItemAC); if (status == "ok") { var ParentRecordId = 0; var workFlowLog = _IWorkFlowDetailsRepository.GetInitiationActionWorkFlow(StringConstants.SupplierReturnRequest, StringConstants.InitiateSupplierReturnRequest, user, company, null, SupplierReturnRequest.InitiationComment, null); if (workFlowLog != null) { WorkFlowLog log = (WorkFlowLog)workFlowLog.Item1; WorkFlowDetail workFlowDetail = (WorkFlowDetail)workFlowLog.Item2; ParentRecordId = log.RecordId; var requestNo = RequestNumberGenerator(company.Id); var supplierReturnDetail = new SupplierReturnDetail { CreatedDateTime = DateTime.UtcNow, IsRejected = false, IsDeleted = false, RecordId = ParentRecordId, LastActivityDate = DateTime.UtcNow, SupplierId = SupplierReturnRequest.SupplierId, RequestNo = requestNo, BranchId = SupplierReturnRequest.BranchId, InitiatorId = user.Id, InitiationComment = SupplierReturnRequest.InitiationComment }; _supplierReturnDetailContext.Add(supplierReturnDetail); _supplierReturnDetailContext.SaveChanges(); foreach (var item in SupplierReturnRequest.SupplierReturnItemAC) { var supplierReturnItem = new SupplierReturnItem { CostPrice = item.CostPrice, CreatedDateTime = DateTime.UtcNow, ItemId = item.ItemId, ReturnQuantity = item.ReturnQuantity, SupplierReturnId = supplierReturnDetail.Id, ReturnCauseId = item.ReturnCauseId }; _supplierReturnItemContext.Add(supplierReturnItem); _supplierReturnItemContext.SaveChanges(); var itemProfile = _itemProfileContext.Find(item.ItemId); itemProfile.IsSupplierReturnRequestGenerated = true; _itemProfileContext.Update(itemProfile); _itemProfileContext.SaveChanges(); } SupplierReturnRequest.SupplierReturnId = supplierReturnDetail.Id; var companyid = _branchDetailContext.Find(supplierReturnDetail.BranchId).CompanyId; if (workFlowDetail.NextActivity.IsClosed) { var outcome = _ISupReturnWorkListRepository.IssueCreditNote(supplierReturnDetail.Id, supplierReturnDetail.BranchId, companyid, supplierReturnDetail.InitiationComment); if (outcome) { SupplierReturnRequest.Status = "print"; } else { SupplierReturnRequest.Status = "Error in Issueing Credit Note"; } return(SupplierReturnRequest); } else { SupplierReturnRequest.Status = "ok"; return(SupplierReturnRequest); } } else { SupplierReturnRequest.Status = StringConstants.WorkFlowNotCreated; return(SupplierReturnRequest); } } else { SupplierReturnRequest.Status = status; return(SupplierReturnRequest); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public int SaveWorkFlowActionDetails(WorkFlowDetail workFlowDetails) { try { if (workFlowDetails.Id != 0) { var workFlowDetail = _workFlowDataRepository.GetById(workFlowDetails.Id); //if (workFlowDetail.IsParentAction) //{ int workFlowCount = _workFlowDataRepository.Fetch(x => x.ActivityId == workFlowDetails.ActivityId && x.Id != workFlowDetail.Id && x.InitiatorId == workFlowDetails.InitiatorId && x.ParentActivityId == 0).Count(); if (workFlowCount != 0) { throw new ArgumentException("WorkFlow already exists."); } workFlowDetail.WorkFlowId = workFlowDetails.WorkFlowId; workFlowDetail.InitiatorId = workFlowDetails.InitiatorId; workFlowDetail.AssignedId = workFlowDetails.AssignedId; workFlowDetail.WorkFlowName = workFlowDetails.WorkFlowName; //workFlowDetail.OldStatusId = workFlowDetails.OldStatusId; //workFlowDetail.NewStatusId = workFlowDetails.NewStatusId; workFlowDetail.IsApproval = workFlowDetails.IsApproval; workFlowDetail.IsReview = workFlowDetails.IsReview; // workFlowDetail.WorkFlowActionId = workFlowDetails.WorkFlowActionId; // workFlowDetail.CompanyId = Convert.ToInt32(HttpContext.Current.Session["CompanyId"]), workFlowDetail.ActivityId = workFlowDetails.ActivityId; workFlowDetail.NextActivityId = workFlowDetails.NextActivityId; // workFlowDetail.ParentActivityId = workFlowDetails.P, //workFlowDetail.Variable1 = workFlowDetails.Variable1; //workFlowDetail.Variable2 = workFlowDetails.Variable2; //workFlowDetail.Operator = workFlowDetails.Operator; workFlowDetail.IsAllowOtherWorkFlow = workFlowDetails.IsAllowOtherWorkFlow; workFlowDetail.OtherWorkFlowId = workFlowDetails.OtherWorkFlowId; workFlowDetail.IsCondition = workFlowDetails.IsCondition; workFlowDetail.IsClosed = workFlowDetails.IsClosed; workFlowDetail.IsParentAction = true; workFlowDetail.IsAllowOtherBranchUser = workFlowDetails.IsAllowOtherBranchUser; workFlowDetail.ModifiedDateTime = DateTime.UtcNow; _workFlowDataRepository.Update(workFlowDetail); _workFlowDataRepository.SaveChanges(); return(workFlowDetail.Id); } else { int workFlowCount = _workFlowDataRepository.Fetch(x => x.ActivityId == workFlowDetails.ActivityId && x.InitiatorId == workFlowDetails.InitiatorId).Count(); if (workFlowCount != 0) { throw new ArgumentException("WorkFlow already exists."); } workFlowDetails.CreatedDateTime = DateTime.UtcNow; _workFlowDataRepository.Add(workFlowDetails); _workFlowDataRepository.SaveChanges(); return(workFlowDetails.Id); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }
public IHttpActionResult SaveWorkFlowDetails(WorkFlowAc workFlowDetails) { try { if (HttpContext.Current.User.Identity.IsAuthenticated) { var userId = HttpContext.Current.User.Identity.GetUserId(); var companyDetails = _companyDataRepository.FirstOrDefault(x => x.UserId == userId); if (companyDetails != null) { foreach (var workFlow in workFlowDetails.Permission) { if (workFlow != null) { if (workFlow.IsApproval || workFlow.IsReview || workFlow.IsClosed || workFlow.IsCondition) { var workFlowDetail = new WorkFlowDetail { WorkFlowName = workFlowDetails.WorkFlowName, WorkFlowId = workFlowDetails.PermissionId, InitiatorId = workFlow.InitiatorId, AssignedId = workFlow.AssignedId, //OldStatusId = workFlow.OldStatus, //NewStatusId = workFlow.NewStatus, //CreatedDateTime = DateTime.UtcNow, CreatedBy = HttpContext.Current.User.Identity.GetUserId(), IsApproval = workFlow.IsApproval, IsReview = workFlow.IsReview, // WorkFlowActionId = workFlow.ActionId, CompanyId = companyDetails.Id, ActivityId = workFlow.ActivityId, NextActivityId = workFlow.NextActivityId, IsClosed = workFlow.IsClosed, IsParentAction = true, Id = workFlowDetails.workFlowActionId, //Variable1 = workFlow.Variable1, //Variable2 = workFlow.Variable2, //Operator = workFlow.Operator, IsCondition = workFlow.IsCondition, IsAllowOtherBranchUser = workFlow.IsAllowOtherBranchUser, ParentActivityId = 0, }; IsChildCondtion = workFlowDetail.IsCondition; _parentActivityId = _workFlowRepository.SaveWorkFlowActionDetails(workFlowDetail); if (workFlow.IsCondition) { foreach (var workFlowConditionalOperator in workFlow.ConditionalOperator) { //if (workFlowConditionalOperator.ConditionInfo == null) //{ var conditionlOperator = new ConditionalOperator { Id = workFlowConditionalOperator.ConditionalOperatorId, Variable1 = workFlowConditionalOperator.Variable1, Variable2 = workFlowConditionalOperator.Variable2, Condition = workFlowConditionalOperator.ConditionInfo, //CreatedDateTime = DateTime.UtcNow, Operator = workFlowConditionalOperator.Operator, WorkFlowDetailId = _parentActivityId, IsBoolenCondtion = workFlowConditionalOperator.IsBoolenCondtion, ParentConditionalOperatorId = _conditionalOperatorParentId }; _conditionalOperatorParentId = _workFlowRepository.SaveWorkConditionalOperatorDetails(conditionlOperator); // } //else //{ // var conditionlOperator = new ConditionalOperator // { // Id = workFlowConditionalOperator.ConditionalOperatorId, // Variable1 = workFlowConditionalOperator.Variable1, // Variable2 = workFlowConditionalOperator.Variable2, // Condition = workFlowConditionalOperator.ConditionInfo, // CreatedDateTime = DateTime.UtcNow, // Operator = workFlowConditionalOperator.Operator, // WorkFlowDetailId = _parentActivityId, // ParentConditionalOperatorId = _conditionalOperatorParentId // }; // _conditionalOperatorChildId = // _workFlowRepository.SaveWorkConditionalOperatorDetails(conditionlOperator); //} } } } else { var workFlowDetail = new WorkFlowDetail { // WorkFlowName = workFlowDetails.WorkFlowName, WorkFlowId = workFlowDetails.PermissionId, InitiatorId = workFlow.InitiatorId, AssignedId = workFlow.AssignedId, //OldStatusId = workFlow.OldStatus, //NewStatusId = workFlow.NewStatus, //CreatedDateTime = DateTime.UtcNow, CreatedBy = HttpContext.Current.User.Identity.GetUserId(), IsApproval = workFlow.IsApproval, IsReview = workFlow.IsReview, // WorkFlowActionId = workFlow.ActionId, CompanyId = companyDetails.Id, ActivityId = workFlow.ActivityId, NextActivityId = workFlow.NextActivityId, IsClosed = workFlow.IsClosed, IsApprovePanel = workFlow.IsApprovePanel, IsRejectPanel = workFlow.IsRejectPanel, ParentActivityId = _parentActivityId, IsChildAction = true, IsAllowOtherWorkFlow = workFlow.IsAllowOtherWorkFlow, OtherWorkFlowId = workFlow.OtherWorkFlowId, Id = workFlow.workFlowActionId, IsAllowOtherBranchUser = workFlow.IsAllowOtherBranchUser, //Variable2 = workFlow.Variable2, // Variable1 = workFlow.Variable1, //Operator = workFlow.Operator, IsCondition = workFlow.IsCondition, IsChildCondition = IsChildCondtion, }; _childActivityId = _workFlowRepository.SaveWorkFlowDetails(workFlowDetail); } } } workFlowDetails.PermissionId = _parentActivityId; } //var workFlowCollection = _workFlowRepository.GetWorkFlowDetailsForTreeViewByActivityId(workFlowDetails.ActivityId); return(Ok(workFlowDetails)); } else { return(BadRequest()); } } catch (Exception ex) { _errorLog.LogException(ex); throw; } }