/// <summary> /// Get procurement data from an expenseId in procurement2 table /// </summary> /// <param name="procurementTransfer"></param> /// <returns></returns> private void GetProcData(ProcurementTransfer procurementTransfer) { Procurement2 proc = misContext.Procurement2.Where( p => p.ExpenseId == procurementTransfer.ExpenseId && !p.ProcParentId.HasValue).FirstOrDefault(); if (proc != null) { procurementTransfer.ProcContractedAmount = proc.ProcContractedAmount.GetValueOrDefault(); procurementTransfer.ImplementationIsProc = proc.ProcImplementationIsProc; procurementTransfer.ImplementationIsGrant = proc.ProcImplementationIsGrant; procurementTransfer.TypeIsOpen = proc.ProcTypeIsOpen; procurementTransfer.TypeIsNegociated = proc.ProcTypeIsNegociated; procurementTransfer.PlannedKickoffDate = proc.ProcPlannedKickoffDate; procurementTransfer.CurrentKickoffDate = proc.ProcCurrentKickoffDate; procurementTransfer.PlannedExpectedLaunch = proc.ProcPlannedExpectedLaunch; procurementTransfer.CurrentExpectedLaunch = proc.ProcCurrentExpectedLaunch; procurementTransfer.CurrentExpectedContractSignature = proc.ProcCurrentExpectedContractSignature; procurementTransfer.PlannedExpectedContractSignature = proc.ProcPlannedExpectedContractSignature; //procurementTransfer.AwardNoticeDispatch = proc.ProcAwardNoticeDispatch; procurementTransfer.ActualLaunchDate = proc.ProcActualLaunchDate; procurementTransfer.SignatureContract = proc.ProcSignatureContract; procurementTransfer.ExpectedSubmissionDocCpcg = proc.ProcExpectedSubmissionDocCpcg; procurementTransfer.NumberFwc = proc.ProcNumberFwc; procurementTransfer.CpcgIsYes = proc.ProcCpcgIsYes; procurementTransfer.CpcgIsNo = proc.ProcCpcgIsNo; procurementTransfer.DmsUrl = proc.DmsUrl; procurementTransfer.ProcFinancingDecisionId = proc.ProcFinancingDecisionId; procurementTransfer.ProcFinancingDecisionName = misContext.ProcurementFinancingDecision.Where(p => p.ProcFinancingDecisionId == proc.ProcFinancingDecisionId).Select(p => p.ProcFinancingDecisionName).FirstOrDefault(); //Add here TimingStatus, Owner, Authorising officer, procurement officer, financial assisstant //If we decide to have procurememnt children!! } }
public void Post([FromBody] ProcurementTransfer procTransfer) { try { Expense expense = misContext.Expense. Include(e => e.ProcurementStage). Where(p => p.ExpenseId == procTransfer.ExpenseId).FirstOrDefault(); bool isAdd = false; if (expense != null) { expense.DateMod = DateTime.Now; expense.UserMod = currentUser.UserId; } else { isAdd = true; expense = new Expense() { DateAdded = DateTime.Now, UserAdded = currentUser.UserId, }; } expense.ExpenseName = procTransfer.ProcurementName; expense.ProcComment = procTransfer.Comment; expense.ProcTypeId = procTransfer.ProcTypeId; expense.ProcConTypeId = procTransfer.ProcConTypeId; expense.ProcTimingStatusId = procTransfer.ProcTimingStatusId; expense.ProcStatusId = procTransfer.ProcStatusId; expense.UserIdOwner = procTransfer.OwnerId; expense.UserIdAuthOfficer = procTransfer.AuthOfficerId; expense.UserIdProcurementOfficer = procTransfer.ProcOfficerId; expense.UserIdFinancialAssistant = procTransfer.FinanceAssistantId; expense.ProcFrameworkTypeId = procTransfer.FrameworkTypeId; if (isAdd) { misContext.Entry(expense).State = EntityState.Added; } else { misContext.Entry(expense).State = EntityState.Modified; } misContext.SaveChanges(); //SaveProcurementStages(expense, procTransfer.ProcurementStages); SaveProcData(procTransfer); } catch (Exception ex) { var tt = ex; //logService.SaveLog(currentUser.UserId, LogType.Error, MISPage.ProcurementPage, ex, Method.SaveProcurement); } }
/// <summary> /// Save proc data in Procurement table /// </summary> /// <param name="procTransfer"></param> private void SaveProcData(ProcurementTransfer procTransfer) { try { Procurement2 proc = misContext.Procurement2.Where(p => p.ExpenseId == procTransfer.ExpenseId).FirstOrDefault(); bool isAdd = false; if (proc != null) { proc.DateMod = DateTime.Now; proc.UserMod = currentUser.UserId; } else { isAdd = true; proc = new Procurement2() { DateAdded = DateTime.Now, UserAdded = currentUser.UserId, }; } proc.ExpenseId = procTransfer.ExpenseId; proc.ProcTypeId = procTransfer.ProcTypeId; proc.ProcConTypeId = procTransfer.ProcConTypeId; proc.ProcFinancingDecisionId = procTransfer.ProcFinancingDecisionId; proc.ProcContractedAmount = procTransfer.ProcContractedAmount; proc.ProcComment = procTransfer.Comment; proc.ProcPlannedKickoffDate = procTransfer.PlannedKickoffDate; proc.ProcCurrentKickoffDate = procTransfer.CurrentKickoffDate; proc.ProcPlannedExpectedLaunch = procTransfer.PlannedExpectedLaunch; proc.ProcCurrentExpectedLaunch = procTransfer.CurrentExpectedLaunch; proc.ProcCurrentExpectedContractSignature = procTransfer.CurrentExpectedContractSignature; proc.ProcPlannedExpectedContractSignature = procTransfer.PlannedExpectedContractSignature; //proc.ProcAwardNoticeDispatch = procTransfer.AwardNoticeDispatch; proc.ProcActualLaunchDate = procTransfer.ActualLaunchDate; proc.ProcSignatureContract = procTransfer.SignatureContract; proc.ProcExpectedSubmissionDocCpcg = procTransfer.ExpectedSubmissionDocCpcg; //checkboxes proc.ProcNumberFwc = procTransfer.NumberFwc; proc.ProcCpcgIsYes = procTransfer.CpcgIsYes; proc.ProcCpcgIsNo = procTransfer.CpcgIsNo; proc.ProcImplementationIsGrant = procTransfer.ImplementationIsGrant; proc.ProcImplementationIsProc = procTransfer.ImplementationIsProc; proc.ProcTypeIsOpen = procTransfer.TypeIsOpen; proc.ProcTypeIsNegociated = procTransfer.TypeIsNegociated; proc.DmsUrl = procTransfer.DmsUrl; if (isAdd) { misContext.Entry(proc).State = EntityState.Added; } else { misContext.Entry(proc).State = EntityState.Modified; } misContext.SaveChanges(); } catch (Exception ex) { var tt = ex; //logService.SaveLog(currentUser.UserId, LogType.Error, MISPage.ProcurementPage, ex, Method.SaveChildProcurement); } }