public async Task <IActionResult> GetJustficationOfAward([FromQuery] int id) { var userId = GetUserId(); var justificationofAward = await _justificationOfAwardRepository.GetByIdAsync(id); if (justificationofAward == null) { return(NotFound("Justfication Of Award does not exist")); } var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "Justfication Of Award", Url = "/api/v1/justificationofaward/getjustification", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(justificationofAward)); }
public async Task <IActionResult> GetPurchaseOrder([FromQuery] int id) { var userId = GetUserId(); var purchaseOrder = await _purchaseOrderRepository.GetByIdAsync(id); if (purchaseOrder == null) { return(NotFound("Purchase order not found")); } var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/getpurchaseorder", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(purchaseOrder)); }
public async Task <IActionResult> DeleteSingleTenderJustification([FromQuery] int id) { var userId = GetUserId(); var singleTenderJustification = await _singleTenderJustificationRepository.GetByIdAsync(id); if (singleTenderJustification == null) { return(NotFound("Single Tender Justification does not exist")); } _singleTenderJustificationRepository.Delete(singleTenderJustification); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "Justification of Award", Url = "/api/v1/justificationofaward/deletesingletenderjustification", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); return(Ok( new { message = "Single Tender Justification Deleted successfully" })); }
public async Task <IActionResult> GetJCC([FromQuery] int id) { var userId = GetUserId(); var jobCompletionCertificate = await _jobCompletionCertificateRepository.GetByIdAsync(id); if (jobCompletionCertificate == null) { return(NotFound("Form does not exist")); } var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "MilestoneManagement", Url = "/api/v1/milestonemanagement/getjcc", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(jobCompletionCertificate)); }
public async Task <IActionResult> GetAllJustificationOfAward() { var userId = GetUserId(); var justificationofAwards = await _justificationOfAwardRepository.GetAllAsync(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "Justification Of Award", Url = "/api/v1/justificationofaward/getalljustificationofaward", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(justificationofAwards)); }
public async Task <IActionResult> GetAllPurchaseOrderDetails() { var userId = GetUserId(); //var purchaseOrderList = new List<PurchaseOrderResponseObject>(); var purchaseOrderList = await _purchaseOrderDetailsRepository.GetAllAsync(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/getallpurchaseorders", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(purchaseOrderList)); }
public async Task <IActionResult> SingleTenderJustificationForm() { var userId = GetUserId(); var projects = await _projectsRepository.GetAllAsync(); //var quotationMasters = _quotationMasterRepository.GetAll().ToList(); var suppliers = _supplierIdentificationRepository.GetAllAsync(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "Single Tender Justification", Url = "/api/v1/justificationofaward/singletenderjustificationform", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(new { Projects = projects, //QuotationMasters = quotationMasters, Suppliers = suppliers })); }
public async Task <IActionResult> CreateJustificationOfAward([FromBody] JustificationOfAwardFormModel model) { var userId = GetUserId(); var endPointId = await GetEndPointId(); if (ModelState.IsValid) { var justificationofAward = new TblJustificationofAward { ProjectId = model.ProjectId, Rqnnumber = model.Rqnnumber, Rfqid = model.Rfqid, SupplierId = model.SupplierId, ScoreTechnicalEval = model.ScoreTechnicalEval, VendorBidPrice = model.VendorBidPrice, ScoreCommercialEval = model.ScoreCommercialEval, EndUser = model.EndUser, EndUserDepartmentId = model.EndUserDepartmentId, Date = model.Date, JustificationofAward = model.JustificationofAward, CreatedDate = DateTime.Now, }; await _justificationOfAwardRepository.CreateAsync(justificationofAward); // write logic to create TblAuthList object var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "Justfication Of Award", Url = "/api/v1/justificationofaward/createjustificationofaward", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); // login for email notification var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Justification of Award created successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }
public async Task <IActionResult> DeletePurchaseOrderDetails([FromQuery] int id) { var userId = GetUserId(); var purchaseOrderDetails = await _purchaseOrderDetailsRepository.GetByIdAsync(id); if (purchaseOrderDetails == null) { return(NotFound("Purchase Order Details does not exist")); } _purchaseOrderDetailsRepository.Delete(purchaseOrderDetails); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/deletepurchaseorderdetails", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Purchase Order Details Deleted successfully" })); }
public async Task <IActionResult> GetAllJCC() { //var formlist = new List<MilestoneManagementResponseObject>(); var userId = GetUserId(); var mastersList = await _jobCompletionCertificateRepository.GetAllAsync(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "MilestoneManagement", Url = "/api/v1/milestonemanagement/getallforms", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(mastersList)); }
public async Task <IActionResult> DeleteJCC([FromQuery] int id) { var userId = GetUserId(); var jobCompletionCertificate = await _jobCompletionCertificateRepository.GetByIdAsync(id); if (jobCompletionCertificate == null) { return(NotFound("Job completion certificate does not exist")); } _jobCompletionCertificateRepository.Delete(jobCompletionCertificate); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "MilestoneManagement", Url = "/api/v1/invoice/deletejcc", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Job completion certificate Deleted successfully" })); }
public async Task <IActionResult> CreateSingleTenderJustification([FromForm] SingleTenderJustificationFormModel model) { var userId = GetUserId(); var endPointId = await GetEndPointId(); if (ModelState.IsValid) { var singleTenderJustification = new TblSingleTenderJustification { Address = model.Address, ContactName = model.ContactName, Email = model.Email, TelephoneNumber = model.TelephoneNumber, ProjectId = model.ProjectId, ProposedContract = model.ProposedContract, ProposedContractValue = model.ProposedContractValue, ProposedContractor = model.ProposedContractor, Justification = model.Justification, AdditionalInfo = UploadFile(model.AdditionalInfo), CreatedDate = DateTime.Now, }; await _singleTenderJustificationRepository.CreateAsync(singleTenderJustification); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "Single Tender Justification", Url = "/api/v1/justificationofaward/createsingletenderjustification", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); // login for email notification var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Single Tender Justification created successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }
public async Task <IActionResult> CreateJCC([FromBody] JobCompletionCertificateFormModel model) { var userId = GetUserId(); if (ModelState.IsValid) { var form = new TblJobCompletionCertificate { CertificateNumber = model.CertificateNumber, WorkOrder = model.WorkOrder, SupplierId = model.SupplierId, Address = model.Address, DeliveryAddress = model.DeliveryAddress, Telephone = model.Telephone, Email = model.Email, RecieptDate = model.RecieptDate, ServiceDescription = model.ServiceDescription, CreatedDate = DateTime.Now }; await _jobCompletionCertificateRepository.CreateAsync(form); var endPointId = await GetEndPointId(); var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "MilestoneManagement", Url = "/api/v1/milestonemanagement/createjcc", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Job completion certificate created successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }
public async Task <IActionResult> UpdateJCC([FromBody] JobCompletionCertificateFormModel model, [FromQuery] int Jccid) { var userId = GetUserId(); if (ModelState.IsValid) { var form = await _jobCompletionCertificateRepository.GetByIdAsync(Jccid); if (form == null) { return(NotFound(new { message = "Certificate does not exist" })); } form.CertificateNumber = model.CertificateNumber; form.WorkOrder = model.WorkOrder; form.SupplierId = model.SupplierId; form.Address = model.Address; form.DeliveryAddress = model.DeliveryAddress; form.Telephone = model.Telephone; form.Email = model.Email; form.RecieptDate = model.RecieptDate; form.ServiceDescription = model.ServiceDescription; _jobCompletionCertificateRepository.Update(form); var endPointId = await GetEndPointId(); var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "MilestoneManagement", Url = "/api/v1/milestonemanagement/updatejcc", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Job completion certificate Updated successfully", EmailAddress = emailAddress })); } return(BadRequest(model)); }
public async Task <IActionResult> PurchaseOrderFormUpdate([FromBody] PurchaseOrderFormModel model, [FromQuery] int PoId) { var userId = GetUserId(); if (ModelState.IsValid) { var purchaseOrder = await _purchaseOrderRepository.GetByIdAsync(PoId); if (purchaseOrder == null) { return(NotFound(new { message = "Purchase Order does not exist" })); } //purchaseOrder.PoId = model.PoId; purchaseOrder.SupplierId = model.SupplierID; purchaseOrder.IssuedDate = model.IssuedDate; purchaseOrder.QuoteRef = model.QuoteRef; purchaseOrder.Potype = model.POType; _purchaseOrderRepository.Update(purchaseOrder); var endPointId = await GetEndPointId(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/purchaseorderformupdate", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "purchase order updated successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }
public async Task <IActionResult> SubmitPurchaseOrderForm([FromBody] PurchaseOrderFormModel model) { var userId = GetUserId(); if (ModelState.IsValid) { var newPurchaseOrder = new TblPurchaseOrder { SupplierId = model.SupplierID, IssuedDate = model.IssuedDate, QuoteRef = model.QuoteRef, Potype = model.POType, Poamount = model.Poamount, QuoMasterId = model.QuoMasterId, CreatedDate = DateTime.Now }; await _purchaseOrderRepository.CreateAsync(newPurchaseOrder); var endPointId = await GetEndPointId(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/submitpurchaseorderform", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Purchase order created successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }
public async Task <IActionResult> GetPurchaseOrderDetailsForm() { var userId = GetUserId(); var PaymentTypes = new List <PaymentTypes> { new PaymentTypes { Text = "Fixed", Value = 0 }, new PaymentTypes { Text = "Dynamic", Value = 1 } }; var DeliveryTerms = new List <DeliveryTerms> { new DeliveryTerms { Text = "Partial Delivery", Value = 0 }, new DeliveryTerms { Text = "Complete Delivery", Value = 1 }, new DeliveryTerms { Text = "Milestone", Value = 2 } }; var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/getpurchaseorderform", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(new { Currencies = await _currencyRepository.GetAllAsync(), PurchaseOrderList = await _purchaseOrderRepository.GetAllAsync(), PaymentTypes, DeliveryTerms })); }
public async Task <IActionResult> GetPurchaseOrderForm() { var userId = GetUserId(); var PoTypes = new List <PoTypes> { new PoTypes { Text = "Purchase Order above 7 million", Value = 0 }, new PoTypes { Text = "Purchase Order below 7 million", Value = 1 }, new PoTypes { Text = "Service Contract above 7 million", Value = 2 }, }; var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/getpurchaseorderform", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(new { QuotationMasters = await _quotationMasterRepository.GetAllAsync(), PoTypes, // write logic to get appropriate suppliers Suppliers = await _supplierRepository.GetAllAsync() })); }
public async Task <IActionResult> JCCForm() { var userId = GetUserId(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "MilestoneManagement", Url = "/api/v1/milestonemanagement/jccform", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(new { Suppliers = await _supplierRepository.GetAllAsync() })); }
public async Task <IActionResult> UpdateSingleTenderJustfication([FromForm] SingleTenderJustificationFormModel model, [FromQuery] int singleTenderJustficationId) { var userId = GetUserId(); var endPointId = await GetEndPointId(); if (ModelState.IsValid) { var singleTenderJustification = await _singleTenderJustificationRepository.GetByIdAsync(singleTenderJustficationId); if (singleTenderJustification == null) { return(NotFound(new { message = "Single Tender Justification does not exist" })); } // assign updated fields singleTenderJustification.Address = model.Address; singleTenderJustification.ContactName = model.ContactName; singleTenderJustification.Email = model.Email; singleTenderJustification.TelephoneNumber = model.TelephoneNumber; singleTenderJustification.ProjectId = model.ProjectId; singleTenderJustification.ProposedContract = model.ProposedContract; singleTenderJustification.ProposedContractValue = model.ProposedContractValue; singleTenderJustification.ProposedContractor = model.ProposedContractor; singleTenderJustification.Justification = model.Justification; singleTenderJustification.AdditionalInfo = UploadFile(model.AdditionalInfo); _singleTenderJustificationRepository.Update(singleTenderJustification); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // write logic to create TblAuthList object var newAudit = new TblAuthList { Title = "Single Tender Justfication", Url = "/api/v1/justficationofaward/updatesingletenderjustification", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); // login for email notification var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Single Tender Justification updated successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }
public async Task <IActionResult> CreateAuthorizerStatus([FromBody] AuthStatusModel model, string authorizerCode) { var userId = GetUserId(); var endPointId = await GetEndPointId(); if (!ModelState.IsValid) { return(BadRequest("Invalid Parameters...")); } else { var emailAddress = await _emailAddressRepository.SendEmailAddress(model.BatchId); // if authorizerstatus was not selected if (model.Status == 0) { return(BadRequest(new { message = "Status was not selected" })); } var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // if authorizer Rejects if (model.Status == 3) { var audit = new TblAuthList { Title = model.Title, Url = model.Url, CreatedDate = DateTime.Now, Status = model.Status, StaffId = tblStaff.StaffId, BatchId = model.BatchId }; var newAuthApprover = new TblAuthApprover { AuthId = audit.AuthId, CreatedDate = DateTime.Now, Status = model.Status, Reason = model.Reason, StaffId = tblStaff.StaffId, }; await _authApproverRepository.CreateAsync(newAuthApprover); } // if authorizer approves if (model.Status == 2) { var codes = _codeGeneratorRepository.FindAsync(x => x.GeneratedCode == authorizerCode).Result.FirstOrDefault(); if (codes == null) { return(BadRequest(new { message = "Code is invalid" })); } if (codes != null) { codes.Status = 1; _codeGeneratorRepository.Update(codes); var audit = new TblAuthList { Title = model.Title, Url = model.Url, CreatedDate = DateTime.Now, Status = model.Status, StaffId = tblStaff.StaffId, BatchId = model.BatchId }; var newAuthApprover = new TblAuthApprover { AuthId = audit.AuthId, CreatedDate = DateTime.Now, Status = model.Status, Reason = model.Reason, StaffId = tblStaff.StaffId, }; await _authApproverRepository.CreateAsync(newAuthApprover); } } // if authorizer reviews if (model.Status == 1) { var audit = new TblAuthList { Title = model.Title, Url = model.Url, CreatedDate = DateTime.Now, Status = model.Status, StaffId = tblStaff.StaffId, BatchId = model.BatchId }; var newAuthApprover = new TblAuthApprover { AuthId = audit.AuthId, CreatedDate = DateTime.Now, Status = model.Status, Reason = model.Reason, StaffId = tblStaff.StaffId, }; await _authApproverRepository.CreateAsync(newAuthApprover); } await _authApproverRepository.SaveChangesAsync(); return(Ok(new { message = "Authorizer status registered...", EmailAddress = emailAddress, StatusReason = model.Reason })); } }
public async Task <IActionResult> CreateCheckerStatus([FromBody] AuthStatusModel model) { var userId = GetUserId(); var endPointId = await GetEndPointId(); if (!ModelState.IsValid) { return(BadRequest("Invalid Parameters...")); } else { // email address to initiator var emailAddress = await _emailAddressRepository.SendEmailAddress(model.BatchId); // if checker status was not selected if (model.Status == 0) { return(BadRequest(new { message = "Status was not selected" })); } var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); // if checker rejects if (model.Status == 3) { var audit = new TblAuthList { Title = model.Title, Url = model.Url, CreatedDate = DateTime.Now, Status = model.Status, StaffId = tblStaff.StaffId, BatchId = model.BatchId }; await _auditRepository.CreateAsync(audit); var newAuthChecker = new TblAuthChecker { AuthId = audit.AuthId, CreatedDate = DateTime.Now, Status = model.Status, Reason = model.Reason, StaffId = tblStaff.StaffId, }; await _authCheckerRepository.CreateAsync(newAuthChecker); } // if checker approves if (model.Status == 2) { var audit = new TblAuthList { Title = model.Title, Url = model.Url, CreatedDate = DateTime.Now, Status = model.Status, StaffId = tblStaff.StaffId, BatchId = model.BatchId }; await _auditRepository.CreateAsync(audit); var newAuthChecker = new TblAuthChecker { AuthId = audit.AuthId, CreatedDate = DateTime.Now, Status = model.Status, Reason = model.Reason, StaffId = tblStaff.StaffId, }; await _authCheckerRepository.CreateAsync(newAuthChecker); emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 2); } // if checker reviews if (model.Status == 1) { var audit = new TblAuthList { Title = model.Title, Url = model.Url, CreatedDate = DateTime.Now, Status = model.Status, StaffId = tblStaff.StaffId, BatchId = model.BatchId }; await _auditRepository.CreateAsync(audit); var newAuthChecker = new TblAuthChecker { AuthId = audit.AuthId, CreatedDate = DateTime.Now, Status = model.Status, Reason = model.Reason, StaffId = tblStaff.StaffId, }; await _authCheckerRepository.CreateAsync(newAuthChecker); _auditRepository.Update(audit); } await _auditRepository.SaveChangesAsync(); return(Ok(new { message = "Checker status registered...", EmailAddress = emailAddress, StatusReason = model.Reason })); } }
public async Task <IActionResult> CreateDailySiteReport([FromForm] DailyReportFormDTO dailyReportForm) { try { var userId = GetUserId(); if (!ModelState.IsValid) { return(BadRequest(new ErrorResponse <Dictionary <string, string[]> > { success = false, message = "Your site reporting creation request failed", errors = ModelState.Error().FilterError() })); } var workflowDef = await _tblWorkflowProcessDef.ExistsAsync(x => x.WfdefId == 12); if (!workflowDef) { return(NotFound(new ErrorResponse <object> { success = false, message = "Workflow defination ID is not found", errors = new { } })); } var dailyReportEntity = new TblSrdailyReportingTemp { ProjectId = dailyReportForm.ProjectId, GeneralSummary = dailyReportForm.GeneralSummary, ConstructionActivities = dailyReportForm.ConstructionActivities, DailyProgress = dailyReportForm.DailyProgress, FollowingDayPlan = dailyReportForm.FollowingDayPlan, ProgressAt = dailyReportForm.ProgressAt, ConstructionActual = dailyReportForm.ConstructionActual, Planned = dailyReportForm.Planned, CreatedDate = DateTime.Now, CreatedBy = userId, }; var dailyReport = await _tblSrdailyReportingTemp.CreateAsync(dailyReportEntity); await _tblSrdailyReportingTemp.SaveChangesAsync(); if (!dailyReport) { return(BadRequest(new ErrorResponse <Dictionary <string, string[]> > { success = false, message = "Your site reporting creation request failed", errors = ModelState.Error() })); } if (dailyReportForm.HSEReport != null && dailyReportForm.HSEReport.Count > 0) { var hseReportList = new List <TblSrdailyReportHsetemp>(); foreach (var hseReport in dailyReportForm.HSEReport) { hseReportList.Add(new TblSrdailyReportHsetemp { DailyRepId = dailyReportEntity.DailyRepId, Title = hseReport.Title, DetailsStatistics = hseReport.DetailStatistics, Remarks = hseReport.Remarks, CreatedDate = DateTime.Now, CreatedBy = userId, }); } await _tblSrdailyReportHsetemp.AddRangeAsync(hseReportList); } if (dailyReportForm.DailyReportingProgressMeasurement != null && dailyReportForm.DailyReportingProgressMeasurement.Count > 0) { var progressMeasurementList = new List <TblSrdailyReportProgressMeasurementTemp>(); foreach (var progressMeasurement in dailyReportForm.DailyReportingProgressMeasurement) { progressMeasurementList.Add(new TblSrdailyReportProgressMeasurementTemp { DailyRepId = dailyReportEntity.DailyRepId, Activity = progressMeasurement.Activity, CumProgressActual = progressMeasurement.CumProgressActual, CumPlannedProgress = progressMeasurement.CumPlannedProgress, Remarks = progressMeasurement.Remarks, CreatedDate = DateTime.Now, CreatedBy = userId }); } await _tblSrdailyReportProgressMeasurementTemp.AddRangeAsync(progressMeasurementList); } if (dailyReportForm.DailyReportingIssues != null && dailyReportForm.DailyReportingIssues.Count > 0) { var issuesList = new List <TblSrdailyReportingIssuesTemp>(); foreach (var issue in dailyReportForm.DailyReportingIssues) { issuesList.Add(new TblSrdailyReportingIssuesTemp { DailyRepId = dailyReportEntity.DailyRepId, Challenges = issue.Challenges, Recommendations = issue.Recommendations, CreatedDate = DateTime.Now, CreatedBy = userId }); } await _tblSrdailyReportingIssuesTemp.AddRangeAsync(issuesList); } if (dailyReportForm.DailyReportingDelays != null && dailyReportForm.DailyReportingDelays.Count > 0) { var delayList = new List <TblSrdailyReportingDelaysTemp>(); foreach (var delay in dailyReportForm.DailyReportingDelays) { delayList.Add(new TblSrdailyReportingDelaysTemp { DailyRepId = dailyReportEntity.DailyRepId, DescriptionofDelay = delay.DescriptionOfDelay, TimeTaken = delay.TimeTaken, Cause = delay.Cause, Responsible = delay.Responsible, CreatedDate = DateTime.Now, CreatedBy = userId }); } await _tblSrdailyReportingDelaysTemp.AddRangeAsync(delayList); } if (dailyReportForm.DailyReportingFileAttachments != null) { var errors = HandleFileValidationDecision(dailyReportForm.DailyReportingFileAttachments); if (errors.Count > 0) { return(BadRequest(new ErrorResponse <object> { success = false, message = "Something went wrong with the uploaded files", errors = errors })); } } var fileContentList = new List <byte[]>(); var fileObjectList = new List <FileObject>(); var files = string.Empty; var fileObjects = string.Empty; if (dailyReportForm.DailyReportingFileAttachments != null) { var attachments = dailyReportForm.DailyReportingFileAttachments; PropertyInfo[] properties = typeof(DailyReportingFileAttachmentsDTO).GetProperties(); foreach (var property in properties) { var propValue = property.GetValue(attachments); if (property.GetValue(attachments) != null) { var fileObj = await ProcessFileContents((IFormFileCollection)property.GetValue(attachments), dailyReportEntity.DailyRepId); var serializedFileObj = JsonConvert.SerializeObject(fileObj); var jobId = BackgroundJob.Enqueue(() => ProcessFileUpload(property.Name, serializedFileObj)); } } } var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var(checker, approver) = await _siteReportRepository.GetWorkflowApprovers(12); await _emailSender.SendEmailAsync(checker, "Daily Site Report tendered", "Log in to check the reports"); await _emailSender.SendEmailAsync(approver, "Daily Site Report tendered", "Log in to check the reports"); var newAudit = new TblAuthList { Title = "SiteReporting", Url = "api/v1/sitereporting/getallforms", Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); await _auditRepository.SaveChangesAsync(); return(Ok(new SucessResponse <object> { success = true, message = "Site Report created successfully", data = new { } })); } catch (Exception ex) { return(StatusCode(500, Response <string> .InternalError(ex.Message))); } }
public async Task <IActionResult> SubmitPurchaseOrderDetailsForm([FromBody] List <PurchaseOrderDetailsFormModel> models, [FromQuery] int PoId) { var userId = GetUserId(); if (ModelState.IsValid) { var purchaseOrder = await _purchaseOrderRepository.GetByIdAsync(PoId); if (purchaseOrder == null) { return(BadRequest(new { message = "Purchase order not found" })); } var previousPurchaseOrderDetails = await _purchaseOrderDetailsRepository.FindAsync(x => x.PoId == PoId); if (previousPurchaseOrderDetails.ToList().Count != 0) { return(BadRequest(new { message = "Purchase Order details already set for this purchase order" })); } decimal totalAmount = 0; var podList = new List <TblPurchaseOrderDetails>(); // Po low complexity if (purchaseOrder.Potype == 0) { foreach (var model in models) { var newPurchaseOrderDetails = new TblPurchaseOrderDetails { PoId = PoId, Description = model.Description, Quantity = model.Quantity, Rate = model.Rate, Amount = model.Quantity * model.NoOfDays * model.UniCost, Total = model.Total, DeliveryTerms = model.DeliveryTerms, DeliveryAddress = model.DeliveryAddress, Title = model.Title, Vat = model.VAT, CurrencyId = model.CurrencyID, SubTotal = model.SubTotal, UnitCost = model.UniCost, TotalCost = model.TotalCost, NoOfDays = model.NoOfDays }; totalAmount += newPurchaseOrderDetails.Amount.GetValueOrDefault(); podList.Add(newPurchaseOrderDetails); } if (totalAmount != purchaseOrder.Poamount) { return(BadRequest(new { message = "Total Purchase Order details amount must be equal to Total Purchase order amount" })); } foreach (var pod in podList) { await _purchaseOrderDetailsRepository.CreateAsync(pod); } } // PO High Complexity if (purchaseOrder.Potype == 1) { foreach (var model in models) { var newPurchaseOrderDetails = new TblPurchaseOrderDetails { PoId = PoId, Description = model.Description, Quantity = model.Quantity, Rate = model.Rate, Amount = model.Quantity * model.NoOfDays * model.UniCost, Total = model.Total, DeliveryTerms = model.DeliveryTerms, DeliveryAddress = model.DeliveryAddress, Title = model.Title, Vat = model.VAT, CurrencyId = model.CurrencyID, SubTotal = model.SubTotal, UnitCost = model.UniCost, TotalCost = model.TotalCost, NoOfDays = model.NoOfDays }; totalAmount += newPurchaseOrderDetails.Amount.GetValueOrDefault(); podList.Add(newPurchaseOrderDetails); } foreach (var pod in podList) { await _purchaseOrderDetailsRepository.CreateAsync(pod); } } // Service Contract if (purchaseOrder.Potype == 2) { foreach (var model in models) { var newPurchaseOrderDetails = new TblPurchaseOrderDetails { PoId = PoId, Description = model.Description, Quantity = model.Quantity, Rate = model.Rate, Amount = model.UniCost, Total = model.Total, DeliveryTerms = model.DeliveryTerms, DeliveryAddress = model.DeliveryAddress, Title = model.Title, Vat = model.VAT, CurrencyId = model.CurrencyID, SubTotal = model.SubTotal, UnitCost = model.UniCost, TotalCost = model.TotalCost, NoOfDays = model.NoOfDays }; totalAmount += newPurchaseOrderDetails.Amount.GetValueOrDefault(); podList.Add(newPurchaseOrderDetails); } foreach (var pod in podList) { await _purchaseOrderDetailsRepository.CreateAsync(pod); } } var endPointId = await GetEndPointId(); var tblStaff = await _staffRepository.FirstOrDefaultAsync(x => x.AspnetUserId == userId); var newAudit = new TblAuthList { Title = "ContractAward", Url = "/api/v1/contractaward/submitpurchaseorderdetailsform", CreatedDate = DateTime.Now, Status = 0, StaffId = tblStaff.StaffId, BatchId = Guid.NewGuid().ToString() }; await _auditRepository.CreateAsync(newAudit); var emailAddress = await _emailAddressRepository.SendEmailAddress(endPointId, 1); await _auditRepository.SaveChangesAsync(); return(Ok( new { message = "Purchase order details added successfully", EmailAddress = emailAddress })); } return(BadRequest(new { Errors = new[] { "Please input correct values" } })); }