mesa-fab-approval/Fab2ApprovalSystem/DMO/CorrectiveActionDMO.cs
2023-10-03 10:14:54 -07:00

897 lines
37 KiB
C#

using Dapper;
using Fab2ApprovalSystem.Misc;
using Fab2ApprovalSystem.Models;
using Fab2ApprovalSystem.ViewModels;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Transactions;
using System.Web;
using System.Web.Mvc;
namespace Fab2ApprovalSystem.DMO
{
public class CorrectiveActionDMO
{
private IDbConnection db = new SqlConnection(GlobalVars.DB_CONNECTION_STRING);
WorkflowDMO wfDMO = new WorkflowDMO();
public CorrectiveAction InsertCA(CorrectiveAction ca)
{
var parameters = new DynamicParameters();
parameters = new DynamicParameters();
parameters.Add("@CANo", value: ca.CANo, dbType: DbType.Int32, direction: ParameterDirection.InputOutput);
parameters.Add("@RequestorID", ca.RequestorID);
this.db.Execute("_8DInsertCAItem", parameters, commandType: CommandType.StoredProcedure);
ca.CANo = parameters.Get<int>("@CANo");
return ca;
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void UpdateCorrectiveAction(CorrectiveAction model)
{
var parameters = new DynamicParameters();
using (var transaction = new TransactionScope())
{
try
{
parameters.Add("@CANo", model.CANo);
parameters.Add("@CATitle", model.CATitle);
parameters.Add("@RequestorID", model.RequestorID);
parameters.Add("@IssueDate", model.IssueDate);
parameters.Add("@D1AssigneeID", model.D1AssigneeID);
parameters.Add("@CAType", model.CAType);
parameters.Add("@CASourceID", model.CASourceID);
parameters.Add("@ModuleID", model.ModuleID);
parameters.Add("@QAID", model.QAID);
parameters.Add("@D8DueDate", model.D8DueDate);
parameters.Add("@Tool", model.Tools);
parameters.Add("@ApprovedDate", model.ApprovedDate);
parameters.Add("@RelatedMRB", model.RelatedMRB);
parameters.Add("@RelatedAudit", model.RelatedAudit);
parameters.Add("@D0Comments", model.D0Comments);
parameters.Add("@D2ProblemDescription", model.D2ProblemDescription);
parameters.Add("@D3RiskAssessmentNotes", model.D3RiskAssessmentNotes);
parameters.Add("@D0Completed", model.D0Completed);
parameters.Add("@D0Approved", model.D0Approved);
parameters.Add("@D3Completed", model.D3Completed);
parameters.Add("@D3Approved", model.D3Approved);
parameters.Add("@D4RootCause1", model.D4RootCause1);
parameters.Add("@D4RootCause2", model.D4RootCause2);
parameters.Add("@D4RootCause3", model.D4RootCause3);
parameters.Add("@D4RootCause4", model.D4RootCause4);
parameters.Add("@D4Completed", model.D4Completed);
parameters.Add("@D4Approved", model.D4Approved);
parameters.Add("@D5Completed", model.D5Completed);
parameters.Add("@D5Approved", model.D5Approved);
parameters.Add("@D6Validated", model.D6Validated);
parameters.Add("@D7Completed", model.D7Completed);
parameters.Add("@D8Completed", model.D8Completed);
parameters.Add("@D8Approved", model.D8Approved);
parameters.Add("@D8TeamRecognition", model.D8TeamRecognition);
parameters.Add("@D8LessonsLearned", model.D8LessonsLearned);
parameters.Add("@TeamCaptainID", model.TeamCaptainID);
parameters.Add("@CASponsorID", model.CASponsorID);
parameters.Add("@CustomerName", model.CustomerName);
parameters.Add("@CustomerPartNo", model.CustomerPartNo);
parameters.Add("@IFXPartNo", model.IFXPartNo);
parameters.Add("@PartQty", model.PartQty);
parameters.Add("@InvoiceNo", model.InvoiceNo);
parameters.Add("@PurchaseOrderNo", model.PurchaseOrderNo);
parameters.Add("@SalesOrderNo", model.SalesOrderNo);
parameters.Add("@DollarImpact", model.DollarImpact);
parameters.Add("@BackgroundInfo", model.BackgroundInfo);
parameters.Add("@Analysis", model.Analysis);
parameters.Add("@VisualVerification", model.VisualVerification);
parameters.Add("@InterimContainmentAction", model.InterimContainmentAction);
parameters.Add("@ICAVerificationResults", model.ICAVerificationResults);
parameters.Add("@ICAValidationActivities", model.ICAValidationActivities);
parameters.Add("@RootCauseVerification", model.RootCauseVerification);
parameters.Add("@EscapePoint", model.EscapePoint);
parameters.Add("@FollowUpDate", model.FollowUpDate);
parameters.Add("@CASubmitted", model.CASubmitted);
this.db.Execute("_8DUpdateCorrectiveAction", parameters, commandType: CommandType.StoredProcedure);
EventLogDMO.Add(new WinEventLog { UserID = "System", Comments = "Saved Corrective Action", DocumentType = "9", IssueID = model.CANo, OperationType = "Status", SysDocumentID = 1 });
parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
this.db.Execute("_8DDeleteCAModuleID", parameters, commandType: CommandType.StoredProcedure);
List<int> moduleIDs = model.ModuleIDs;
if (moduleIDs != null)
{
foreach (int moduleID in moduleIDs)
{
parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
parameters.Add("@ModuleID", moduleID);
this.db.Execute("_8DInsertCAModuleID", parameters, commandType: CommandType.StoredProcedure);
}
}
parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
this.db.Execute("_8DDeleteRiskAssessmentAres", parameters, commandType: CommandType.StoredProcedure);
List<int> riskAssessmentAreaIDs = model.RiskAssessmentAreaIDs;
if (riskAssessmentAreaIDs != null)
{
foreach (int riskAssessmentAreaID in riskAssessmentAreaIDs)
{
parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
parameters.Add("@RiskAssessmentAreaID", riskAssessmentAreaID);
this.db.Execute("_8DInsertRiskAssessmentArea", parameters, commandType: CommandType.StoredProcedure);
}
}
parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
this.db.Execute("_8DDeleteTeamMembers", parameters, commandType: CommandType.StoredProcedure);
List<int> teamMemberIDs = model.TeamMemberIDs;
if (teamMemberIDs != null)
{
foreach (int teamMemberID in teamMemberIDs)
{
parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
parameters.Add("@TeamMemberID", teamMemberID);
this.db.Execute("_8DInsertTeamMemberID", parameters, commandType: CommandType.StoredProcedure);
}
}
transaction.Complete();
}
catch(Exception ex)
{
transaction.Dispose();
throw new Exception(ex.Message + " " + ex.InnerException);
}
}
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
/// <param name="userID"></param>
/// <returns></returns>
public CorrectiveAction GetCAItem(int caNo, int userID)
{
CorrectiveAction ca = new CorrectiveAction();
//isITAR = 2;
var parameters = new DynamicParameters();
parameters.Add("@CANo", value: caNo);
parameters.Add("@UserID", userID);
using (var multipleResultItems = this.db.QueryMultiple("_8DGetCAItem", parameters, commandType: CommandType.StoredProcedure))
{
ca = multipleResultItems.Read<CorrectiveAction>().SingleOrDefault();
var moduleIDs = multipleResultItems.Read<int>().ToList();
if (ca != null && moduleIDs != null)
{
if (moduleIDs.Count > 0)
ca.ModuleIDs.AddRange(moduleIDs);
}
var teamMembers = multipleResultItems.Read<int>().ToList();
if (ca != null && teamMembers != null)
{
if (teamMembers.Count > 0)
ca.TeamMemberIDs.AddRange(teamMembers);
}
var riskAssessments = multipleResultItems.Read<int>().ToList();
if (ca != null && riskAssessments != null)
{
if (riskAssessments.Count > 0)
ca.RiskAssessmentAreaIDs.AddRange(riskAssessments);
}
}
return ca;
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
/// <param name="userID"></param>
/// <returns></returns>
public CorrectiveAction GetCAItemReadOnly(int caNo, int userID)
{
CorrectiveAction ca = new CorrectiveAction();
//isITAR = 2;
var parameters = new DynamicParameters();
parameters.Add("@CANo", value: caNo);
parameters.Add("@UserID", userID);
using (var multipleResultItems = this.db.QueryMultiple("_8DGetCAItemReadOnly", parameters, commandType: CommandType.StoredProcedure))
{
ca = multipleResultItems.Read<CorrectiveAction>().SingleOrDefault();
var moduleIDs = multipleResultItems.Read<int>().ToList();
if (ca != null && moduleIDs != null)
{
if (moduleIDs.Count > 0)
ca.ModuleIDs.AddRange(moduleIDs);
}
var teamMembers = multipleResultItems.Read<int>().ToList();
if (ca != null && teamMembers != null)
{
if (teamMembers.Count > 0)
ca.TeamMemberIDs.AddRange(teamMembers);
}
var riskAssessments = multipleResultItems.Read<int>().ToList();
if (ca != null && riskAssessments != null)
{
if (riskAssessments.Count > 0)
ca.RiskAssessmentAreaIDs.AddRange(riskAssessments);
}
}
return ca;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<CAUserList> GetUserList()
{
var parameters = new DynamicParameters();
var userList = this.db.Query<CAUserList>("_8DGetUserList", parameters, commandType: CommandType.StoredProcedure).ToList();
return userList;
}
public IEnumerable<CAUserList> GetAllUserList()
{
var parameters = new DynamicParameters();
var userList = this.db.Query<CAUserList>("_8DGetAllUserList", parameters, commandType: CommandType.StoredProcedure).ToList();
return userList;
}
public IEnumerable<CASource> GetCASourceList()
{
var parameters = new DynamicParameters();
var caSourceList = this.db.Query<CASource>("_8DGetCASourceList", parameters, commandType: CommandType.StoredProcedure).ToList();
return caSourceList;
}
public IEnumerable<Module> GetModuleList()
{
var parameters = new DynamicParameters();
var moduleList = this.db.Query<Module>("_8DGetCAModuleList", parameters, commandType: CommandType.StoredProcedure).ToList();
return moduleList;
}
/// <summary>
///
/// </summary>
/// <param name="attach"></param>
public void InsertCAAttachment(CA_Attachment attach)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", attach.CANo);
parameters.Add("@D5D6CAID", attach.D5D6CAID);
parameters.Add("@D7PAID", attach.D7PAID);
parameters.Add("@CAFindingsID", attach.CAFindingsID);
parameters.Add("@UploadedByID", attach.UploadedByID);
parameters.Add("@FileName", attach.FileName);
parameters.Add("@FileGUID", attach.FileGUID);
parameters.Add("@Section", attach.Section);
this.db.Execute("_8DInsertCAAttachment", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
/// <returns></returns>
public IEnumerable<CA_Attachment> GetCAAttachmentsList(int caNo, string section)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", caNo);
parameters.Add("@Section", section);
var caAttachmentList = this.db.Query<CA_Attachment>("[_8DGetCAAttachmentList]", parameters, commandType: CommandType.StoredProcedure).ToList();
return caAttachmentList;
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
public void DeleteCAAttachment(int attachmentID)
{
var parameters = new DynamicParameters();
parameters.Add("@AttachmentID", attachmentID);
this.db.Execute("_8DDeleteCAAttachment", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="fileGUID"></param>
/// <returns></returns>
public string GetCAAttachmentFileName(string fileGUID)
{
var parameters = new DynamicParameters();
parameters.Add("@FileGUID", fileGUID);
var fileName = this.db.Query<string>("_8DGetCAAttachmentFileName", parameters, commandType: CommandType.StoredProcedure).Single();
return fileName;
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
/// <returns></returns>
public IEnumerable<D3ContainmentAction> GetD3ContainmentActions(int caNo)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", caNo);
var d3ContainmentActionList = this.db.Query<D3ContainmentAction>("_8DGetD3ContainmentActions", parameters, commandType: CommandType.StoredProcedure).ToList();
return d3ContainmentActionList;
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void UpdateD3ContainmentAction(D3ContainmentAction model)
{
var parameters = new DynamicParameters();
parameters.Add("@ID", model.ID);
parameters.Add("@ContainmentAction", model.ContainmentAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ECNLinks", model.ECNLinks);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImplementedDate", model.ImplementedDate);
this.db.Execute("_8DUpdateD3ContainmentAction", parameters, commandType: CommandType.StoredProcedure);
}
public void InsertD3ContainmentAction(D3ContainmentAction model)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
parameters.Add("@ContainmentAction", model.ContainmentAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ECNLinks", model.ECNLinks);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImplementedDate", model.ImplementedDate);
this.db.Execute("_8DInsertD3ContainmentAction", parameters, commandType: CommandType.StoredProcedure);
}
public void DeleteD3ContainmentActionItem(int d3ContainmentActionID)
{
var parameters = new DynamicParameters();
parameters.Add("@D3ContainmentActionID", d3ContainmentActionID);
this.db.Execute("_8DDeleteD3ContainmentActionItem", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<RiskAssessmentArea> GetD3RiskAssessmentAreas()
{
var parameters = new DynamicParameters();
var dataList = this.db.Query<RiskAssessmentArea>("_8DGetD3RiskAssessmentAreas", parameters, commandType: CommandType.StoredProcedure).ToList();
return dataList;
}
/// <summary>
///
/// </summary>
/// <param name="caNo"></param>
/// <returns></returns>
public IEnumerable<D5D6CorrectivetAction> GetD5D6CorrectivetActions(int caNo)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", caNo);
var dataList = this.db.Query<D5D6CorrectivetAction>("_8DGetD5D6_CAList", parameters, commandType: CommandType.StoredProcedure).ToList();
return dataList;
}
public bool IsAIAssignee(int userId, int caId)
{
bool isAssignee = false;
int aiIndex = 0;
List<D5D6CorrectivetAction> actionItems = GetD5D6CorrectivetActions(caId).ToList();
while (isAssignee == false && aiIndex < actionItems.Count())
{
D5D6CorrectivetAction actionItem = actionItems[aiIndex];
if(actionItem.ResponsibilityOwnerID == userId && actionItem.ImplementedDate == null && actionItem.Approved)
{
isAssignee = true;
}
aiIndex++;
}
return isAssignee;
}
public IEnumerable<D5D6Improvement> GetD5D6Improvement()
{
var parameters = new DynamicParameters();
var dataList = this.db.Query<D5D6Improvement>("_8DGetD5D6Improvement", parameters, commandType: CommandType.StoredProcedure).ToList();
return dataList;
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void InsertD5D6CorrectivetAction(D5D6CorrectivetAction model)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
parameters.Add("@CorrectiveAction", model.CorrectiveAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ECNLinks", model.ECNLinks);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImprovementIDs", model.ImprovementID);
parameters.Add("@ImplementedDate", model.ImplementedDate);
parameters.Add("@CARequired", (model.CARequired));
parameters.Add("@ActionType", (model.ActionType));
this.db.Execute("_8DInsertD5D6CorrectiveAction", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void UpdateD5D6CorrectivetAction(D5D6CorrectivetAction model)
{
var parameters = new DynamicParameters();
parameters.Add("@D5D6CAID", model.ID);
parameters.Add("@CorrectiveAction", model.CorrectiveAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ECNLinks", model.ECNLinks);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImprovementIDs", model.ImprovementID);
parameters.Add("@ImplementedDate", model.ImplementedDate);
parameters.Add("@CARequired", (model.@CARequired));
parameters.Add("@ActionType", (model.ActionType));
this.db.Execute("_8DUpdateD5D6CorrectiveAction", parameters, commandType: CommandType.StoredProcedure);
}
public void DeleteD5D6CorrectivetAction(int d5d6CAID)
{
var parameters = new DynamicParameters();
parameters.Add("@D5D6CAID", d5d6CAID);
this.db.Execute("_8DDeleteD5D6CorrectiveActionItem", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public D5D6CorrectivetAction GetD5D5CAItem(int d5d6CAID)
{
var model = new D5D6CorrectivetAction();
var parameters = new DynamicParameters();
parameters.Add("@D5D6CAID", d5d6CAID);
var data = this.db.Query<D5D6CorrectivetAction>("_8DGetD5D6CA", parameters, commandType: CommandType.StoredProcedure).Single();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="d5d6CAID"></param>
/// <returns></returns>
public IEnumerable<CA_Attachment> GetD5D6ItemAttachments(int d5d6CAID)
{
var model = new D5D6CorrectivetAction();
var parameters = new DynamicParameters();
parameters.Add("@D5D6CAID", d5d6CAID);
var data = this.db.Query<CA_Attachment>("_8DGetD5D6ItemAttachmentList", parameters, commandType: CommandType.StoredProcedure).ToList();
return data;
}
// D7=================================================================================================
public IEnumerable<D7PreventiveAction> GetD7PreventiveActions(int caNo)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", caNo);
var dataList = this.db.Query<D7PreventiveAction>("_8DGetD7_PAList", parameters, commandType: CommandType.StoredProcedure).ToList();
return dataList;
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void InsertD7PreventiveAction(D7PreventiveAction model)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", model.CANo);
parameters.Add("@PreventiveAction", model.PreventiveAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ECNLinks", model.ECNLinks);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImplementedDate", model.ImplementedDate);
this.db.Execute("_8DInsertD7PreventiveAction", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
public void UpdateD7PreventiveAction(D7PreventiveAction model)
{
var parameters = new DynamicParameters();
parameters.Add("@D7PAID", model.ID);
parameters.Add("@PreventiveAction", model.PreventiveAction);
parameters.Add("@Result", model.Result);
parameters.Add("@ECNLinks", model.ECNLinks);
parameters.Add("@ResponsibilityOwnerID", model.ResponsibilityOwnerID);
parameters.Add("@ECD", model.ECD);
parameters.Add("@ImplementedDate", model.ImplementedDate);
this.db.Execute("_8DUpdateD7PreventiveAction", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public D7PreventiveAction GetD7PAItem(int d7PAID)
{
var model = new D7PreventiveAction();
var parameters = new DynamicParameters();
parameters.Add("@D7PAID", d7PAID);
var data = this.db.Query<D7PreventiveAction>("_8DGetD7PA", parameters, commandType: CommandType.StoredProcedure).Single();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="D7PAID"></param>
public void DeleteD7PreventiveActionItem(int D7PAID)
{
var parameters = new DynamicParameters();
parameters.Add("@D7PAID", D7PAID);
this.db.Execute("_8DDeleteD7PreventiveActionItem", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="d7PAID"></param>
/// <returns></returns>
public IEnumerable<CA_Attachment> GetD7ItemAttachments(int d7PAID)
{
var model = new D7PreventiveAction();
var parameters = new DynamicParameters();
parameters.Add("@D7PAID", d7PAID);
var data = this.db.Query<CA_Attachment>("_8DGetD7ItemAttachmentList", parameters, commandType: CommandType.StoredProcedure).ToList();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="caFindingsID"></param>
/// <returns></returns>
public IEnumerable<CA_Attachment> GetCAFindingsItemAttachments(int caFindingsID)
{
var model = new D7PreventiveAction();
var parameters = new DynamicParameters();
parameters.Add("@CAFindingsID", caFindingsID);
var data = this.db.Query<CA_Attachment>("_8DGetCAFindingsItemAttachmentList", parameters, commandType: CommandType.StoredProcedure).ToList();
return data;
}
/// <summary>
///
/// </summary>
/// <param name="userID"></param>
/// <param name="issueID"></param>
public void ReleaseLockOnDocument(int userID, int issueID)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", issueID);
parameters.Add("@UserID", userID);
this.db.Execute("_8DReleaseLockOnCADocuments", parameters, commandType: CommandType.StoredProcedure);
}
/// <summary>
///
/// </summary>
/// <param name="issueID"></param>
/// <returns></returns>
public List<string> GetRejectionAssigneeEmailList(int caNo)
{
var parameters = new DynamicParameters();
parameters.Add("@CANo", caNo);
var emailList = this.db.Query<string>("_8DGetRejectionAssigneeEmailList", parameters, commandType: CommandType.StoredProcedure).ToList();
return emailList;
}
/// <summary>
///
/// </summary>
/// <param name="issueID"></param>
/// <param name="userID"></param>
/// <returns></returns>
public int StartApproval(int issueID, int userID, int worlflowNumber)
{
string subRoles = wfDMO.GetSubRoleItems(issueID, (int)GlobalVars.DocumentType.CorrectiveActionSection);
// bubble the error
int appoverCount = 0;
var parameters = new DynamicParameters();
parameters.Add("@CANo", issueID);
parameters.Add("@UserID", userID);
parameters.Add("@DocumentTypeID", (int)GlobalVars.DocumentType.CorrectiveAction);
parameters.Add("@SubRoleCategoriesClause", subRoles);
parameters.Add("@WorkFlowNumber", worlflowNumber);
parameters.Add("@AppoverCount", appoverCount, dbType: DbType.Int32, direction: ParameterDirection.Output);
this.db.Execute("_8DSubmitForApproval", parameters, commandType: CommandType.StoredProcedure);
appoverCount = parameters.Get<int>("@AppoverCount");
return appoverCount;
}
//public int StartSectionApproval(int issueID, int userID, int worlflowNumber)
//{
// string subRoles = wfDMO.GetSubRoleItems(issueID, (int)GlobalVars.DocumentType.CorrectiveActionSection);
// // bubble the error
// int appoverCount = 0;
// var parameters = new DynamicParameters();
// parameters.Add("@CANo", issueID);
// parameters.Add("@UserID", userID);
// parameters.Add("@DocumentTypeID", (int)GlobalVars.DocumentType.CorrectiveActionSection);
// parameters.Add("@SubRoleCategoriesClause", subRoles);
// parameters.Add("@WorkFlowNumber", worlflowNumber);
// parameters.Add("@AppoverCount", appoverCount, dbType: DbType.Int32, direction: ParameterDirection.Output);
// this.db.Execute("_8DSubmitForSectionApproval", parameters, commandType: CommandType.StoredProcedure);
// appoverCount = parameters.Get<int>("@AppoverCount");
// return appoverCount;
//}
/// <summary>
///
/// </summary>
/// <returns></returns>
public List<int> Get8DQA()
{
List<int> users = new List<int>();
var parameters = new DynamicParameters();
users = this.db.Query<int>("_8DGet8DQA", parameters, commandType: CommandType.StoredProcedure).ToList();
return users;
}
public void StartSectionApproval(int issueID, int userID, string DSection)
{
//string subRoles = wfDMO.GetSubRoleItems(issueID, (int)GlobalVars.DocumentType.CorrectiveActionSection);
// bubble the error
var parameters = new DynamicParameters();
parameters.Add("@CANo", issueID);
parameters.Add("@8DQAUserID", userID);
parameters.Add("@DSection", DSection);
this.db.Execute("_8DSubmitForSectionApproval", parameters, commandType: CommandType.StoredProcedure);
}
public void ApproveSection(int issueID, int userID, string DSection)
{
//string subRoles = wfDMO.GetSubRoleItems(issueID, (int)GlobalVars.DocumentType.CorrectiveActionSection);
// bubble the error
var parameters = new DynamicParameters();
parameters.Add("@UserID", userID);
parameters.Add("@CANo", issueID);
parameters.Add("@DSection", DSection);
this.db.Execute("UpdateCASectionApproval", parameters, commandType: CommandType.StoredProcedure);
}
public bool IsLastSectionApprover(int caNo, string dSection)
{
bool islastApprover = false;
var parameters = new DynamicParameters();
parameters.Add("@CaNo", caNo);
parameters.Add("@DSection", dSection);
parameters.Add("@IsLastApprover", islastApprover, dbType: DbType.Boolean, direction: ParameterDirection.Output);
this.db.Execute("_8DIsLastSectionApprover", parameters, commandType: CommandType.StoredProcedure);
islastApprover = parameters.Get<bool>("@IsLastApprover");
return islastApprover;
}
public void RejectSection(int issueID, int userID, string DSection, string comments)
{
//string subRoles = wfDMO.GetSubRoleItems(issueID, (int)GlobalVars.DocumentType.CorrectiveActionSection);
// bubble the error
var parameters = new DynamicParameters();
parameters.Add("@UserID", userID);
parameters.Add("@CANo", issueID);
parameters.Add("@DSection", DSection);
parameters.Add("@Comments", comments);
this.db.Execute("RejectCASectionApproval", parameters, commandType: CommandType.StoredProcedure);
}
public bool IsUserSectionApprover(int issueId, int userId)
{
bool isApprover = false;
var parameters = new DynamicParameters();
parameters.Add("@issueId", issueId);
parameters.Add("@userID", userId);
parameters.Add("@isApprover", isApprover, dbType: DbType.Boolean, direction: ParameterDirection.Output);
this.db.Execute("_8DIsUserApprover", parameters, commandType: CommandType.StoredProcedure);
isApprover = parameters.Get<bool>("@isApprover");
return isApprover;
}
public IEnumerable<CASectionApproval> GetCASectionApprovalLog(int caNo)
{
var parameters = new DynamicParameters();
parameters.Add("@CaNo", caNo);
var ApprovalLogList = this.db.Query<CASectionApproval>("_8DGetSectionApprovalLog", parameters, commandType: CommandType.StoredProcedure).ToList();
return ApprovalLogList;
}
public DateTime SetCAComplete(int issueID)
{
DateTime followUpDate = new DateTime();
var parameters = new DynamicParameters();
parameters.Add("@CaNo", issueID);
parameters.Add("@followUpDate", followUpDate, dbType: DbType.DateTime, direction: ParameterDirection.Output);
this.db.Execute("_8DSetAsComplete", parameters, commandType: CommandType.StoredProcedure);
followUpDate = parameters.Get<DateTime>("@followUpDate");
return followUpDate;
}
public DateTime SetCAD3DueDate(int issueID)
{
DateTime d3DueDate = new DateTime();
var parameters = new DynamicParameters();
parameters.Add("@CaNo", issueID);
parameters.Add("@D3DueDate", d3DueDate, dbType: DbType.DateTime, direction: ParameterDirection.Output);
this.db.Execute("_8DSetD3DueDate", parameters, commandType: CommandType.StoredProcedure);
d3DueDate = parameters.Get<DateTime>("@D3DueDate");
return d3DueDate;
}
public DateTime SetCAD5D7DueDate(int issueID)
{
DateTime d5d7DueDate = new DateTime();
var parameters = new DynamicParameters();
parameters.Add("@CaNo", issueID);
parameters.Add("@D5D7DueDate", d5d7DueDate, dbType: DbType.DateTime, direction: ParameterDirection.Output);
this.db.Execute("_8DSetD5D7DueDate", parameters, commandType: CommandType.StoredProcedure);
d5d7DueDate = parameters.Get<DateTime>("@D5D7DueDate");
return d5d7DueDate;
}
public IEnumerable<CAD3D5D7Due> GetCAD3D5D7Due()
{
var parameters = new DynamicParameters();
var dueList = this.db.Query<CAD3D5D7Due>("_8DGetDueD3D5D7", parameters, commandType: CommandType.StoredProcedure).ToList();
return dueList;
}
public void SetD3D5D7NotificationDate(int caNo, string section)
{
var parameters = new DynamicParameters();
parameters.Add("@issueId", caNo);
switch (section)
{
case "D3":
this.db.Execute("_8DSetD3LastNotificationDate", parameters, commandType: CommandType.StoredProcedure);
break;
case "D5D7":
this.db.Execute("_8DSetD5D7LastNotificationDate", parameters, commandType: CommandType.StoredProcedure);
break;
default:
break;
}
}
public IEnumerable<IssuesViewModel> GetECNList()
{
var parameters = new DynamicParameters();
var ecnList = this.db.Query<IssuesViewModel>("ECNGetECNList", parameters, commandType: CommandType.StoredProcedure).ToList();
return ecnList;
}
}
}