public HttpResponseMessage SubmitReimburse(SubmitReimburseData submitReimburseData) { HttpResponseMessage response = null; try { var result = approvalService.SubmitReimburse(submitReimburseData); response = Request.CreateResponse(HttpStatusCode.OK, result); } catch (Exception ex) { LogMessage.Log("SubmitReimburse :" + ex.Message); response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Travel request was not successfully submited. Please try again."); } return(response); }
public bool SubmitReimburse(SubmitReimburseData submitReimburseData) { try { var isSubmitterRequesting = false; using (dbConn = ConnectionFactory.GetOpenDefaultConnection()) { OracleCommand cmd3 = new OracleCommand(); cmd3.Connection = (OracleConnection)dbConn; cmd3.CommandText = string.Format(@"Select * from REIMBURSE_APPROVAL where TravelRequestId = {0}", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId); DbDataReader dataReader = cmd3.ExecuteReader(); if (dataReader.HasRows) { foreach (var item in submitReimburseData.HeirarchichalApprovalRequest.ApproverList) { if (item.ApproverBadgeNumber != 0) { // Check if the approval already exists OracleCommand cmd = new OracleCommand(); cmd.Connection = (OracleConnection)dbConn; cmd.CommandText = string.Format(@"Update REIMBURSE_APPROVAL SET BADGENUMBER = :p1, APPROVERNAME = :p2, APPROVEROTHERBADGENUMBER = :p3, APPROVALSTATUS = :p4, APPROVALDATETIME = :p5 WHERE TRAVELREQUESTID = {0} AND APPROVALORDER = {1} ", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId, item.ApprovalOrder); cmd.Parameters.Add(new OracleParameter("p1", item.ApproverBadgeNumber)); cmd.Parameters.Add(new OracleParameter("p2", item.ApproverName)); cmd.Parameters.Add(new OracleParameter("p3", item.ApproverOtherBadgeNumber)); cmd.Parameters.Add(new OracleParameter("p4", ApprovalStatus.Pending.ToString())); cmd.Parameters.Add(new OracleParameter("p5", null)); var rowsUpdated = cmd.ExecuteNonQuery(); cmd.Dispose(); } else { OracleCommand cmd = new OracleCommand(); cmd.Connection = (OracleConnection)dbConn; cmd.CommandText = string.Format(@"Delete from REIMBURSE_APPROVAL where TravelRequestId = {0} AND APPROVALORDER = {1}", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId, item.ApprovalOrder); cmd.ExecuteNonQuery(); } } } else { cmd3.Connection = (OracleConnection)dbConn; cmd3.CommandText = string.Format(@"Delete from REIMBURSE_APPROVAL where TravelRequestId = {0}", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId); cmd3.ExecuteNonQuery(); foreach (var item in submitReimburseData.HeirarchichalApprovalRequest.ApproverList) { if (item.ApproverBadgeNumber != 0) { // submit to approval OracleCommand cmd = new OracleCommand(); cmd.Connection = (OracleConnection)dbConn; cmd.CommandText = @"INSERT INTO REIMBURSE_APPROVAL ( TRAVELREQUESTID, BADGENUMBER, APPROVERNAME, APPROVALSTATUS, APPROVALORDER, APPROVEROTHERBADGENUMBER ) VALUES (:p1,:p2,:p3,:p4,:p5,:p6)"; cmd.Parameters.Add(new OracleParameter("p1", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId)); cmd.Parameters.Add(new OracleParameter("p2", item.ApproverBadgeNumber)); cmd.Parameters.Add(new OracleParameter("p3", item.ApproverName)); cmd.Parameters.Add(new OracleParameter("p4", ApprovalStatus.Pending.ToString())); cmd.Parameters.Add(new OracleParameter("p5", item.ApprovalOrder)); cmd.Parameters.Add(new OracleParameter("p6", item.ApproverOtherBadgeNumber)); var rowsUpdated = cmd.ExecuteNonQuery(); cmd.Dispose(); } } } OracleCommand cmd1 = new OracleCommand(); cmd1.Connection = (OracleConnection)dbConn; cmd1.CommandText = string.Format(@"UPDATE REIMBURSE_TRAVELREQUEST SET SUBMITTEDBYUSERNAME = :p1 , SUBMITTEDDATETIME = :p2, STATUS = :p3, AGREE = :p4 WHERE TRAVELREQUESTID = {0}", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId); cmd1.Parameters.Add(new OracleParameter("p1", submitReimburseData.HeirarchichalApprovalRequest.SubmittedByUserName)); cmd1.Parameters.Add(new OracleParameter("p2", DateTime.Now)); cmd1.Parameters.Add(new OracleParameter("p3", Common.ApprovalStatus.Pending.ToString())); cmd1.Parameters.Add(new OracleParameter("p4", (submitReimburseData.HeirarchichalApprovalRequest.AgreedToTermsAndConditions) ? "Y" : "N")); var rowsUpdated1 = cmd1.ExecuteNonQuery(); cmd1.Dispose(); var result = getNextApproverBadgeNumber(dbConn, submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId, "REIMBURSE_APPROVAL"); string subject = string.Format(@"Reimbursement Request Approval for Travel Request Id - {0} ", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId); sendNewReimbursementRequestEmail(submitReimburseData.HeirarchichalApprovalRequest.TravelRequestBadgeNumber, "Travel Request Reimbursement Form Submitted Successfully", submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId); var dateTime = System.DateTime.Now.Ticks; //Generate Crystal report travelRequestReportService.RunReport("Travel_Business_Expense.rpt", "ReimbursementRequest_" + submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId + "_" + dateTime, submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId.ToString()); sendEmail(result, subject, submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId, "Form2", "ReimbursementRequest_" + submitReimburseData.HeirarchichalApprovalRequest.TravelRequestId + "_" + dateTime); dbConn.Close(); dbConn.Dispose(); } return(true); } catch (Exception ex) { throw new Exception(ex.Message); } }
public bool SubmitReimburse(SubmitReimburseData submitReimburseData) { var result = approvalRepository.SubmitReimburse(submitReimburseData); return(result); }