public void CreateConsignmentsFromPendingItems_ValidPendingConsignmentItems_ConsignmentsCreated() { var dispatcher = MockRepository.GenerateMock <IQueueDispatcher <IMessage> >(); var userRepository = new UserAccountRepository(); var user = userRepository.GetByEmail("*****@*****.**", false); var userContext = new TestUserContext(user); var consignmentRepository = new ConsignmentRepository(); var consignmentItemRepository = new ConsignmentItemRepository(); var supplierRepository = new SupplierRepository(); var jobRepository = new JobRepository(); var jobItemRepository = new JobItemRepository(); var listItemRepository = new ListItemRepository(); var entityIdProvider = new DirectEntityIdProvider(); var instrumentRepository = new InstrumentRepository(); var supplier1Id = Guid.NewGuid(); var supplier2Id = Guid.NewGuid(); var supplier3Id = Guid.NewGuid(); var job1Id = Guid.NewGuid(); var job2Id = Guid.NewGuid(); var job3Id = Guid.NewGuid(); var jobItem1Id = Guid.NewGuid(); var jobItem2Id = Guid.NewGuid(); var jobItem3Id = Guid.NewGuid(); var jobItem4Id = Guid.NewGuid(); var jobItem5Id = Guid.NewGuid(); var jobItem6Id = Guid.NewGuid(); var jobItem7Id = Guid.NewGuid(); CreateConsignmentsFromPendingItemsHelper.CreateContextForPendingItemTests( job1Id, job2Id, job3Id, supplier1Id, supplier2Id, supplier3Id, jobItem1Id, jobItem2Id, jobItem3Id, jobItem4Id, jobItem5Id, jobItem6Id, jobItem7Id); var instrumentService = new InstrumentService(userContext, instrumentRepository, dispatcher); var listItemService = new ListItemService(userContext, listItemRepository, dispatcher); var jobItemService = new JobItemService(userContext, jobRepository, jobItemRepository, listItemService, instrumentService, dispatcher); var consignmentItemService = new ConsignmentItemService( userContext, consignmentRepository, consignmentItemRepository, jobItemRepository, new ListItemRepository(), supplierRepository, dispatcher); _consignmentService = new ConsignmentService(userContext, consignmentRepository, supplierRepository, new DirectEntityIdProvider(), consignmentItemService, dispatcher); var jobItems = jobItemService.GetJobItems(job1Id).OrderBy(ji => ji.ItemNo).ToList(); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[0].Id, supplier1Id, "for cal"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[1].Id, supplier2Id, "for repair"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[2].Id, supplier1Id, "for cal"); jobItems = jobItemService.GetJobItems(job2Id).OrderBy(ji => ji.ItemNo).ToList(); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[0].Id, supplier1Id, "for cal"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[1].Id, supplier2Id, "for repair"); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[2].Id, supplier3Id, "for cal"); jobItems = jobItemService.GetJobItems(job3Id).OrderBy(ji => ji.ItemNo).ToList(); consignmentItemService.CreatePending(Guid.NewGuid(), jobItems[0].Id, supplier3Id, "for cal"); var consignmentService = new ConsignmentService(userContext, consignmentRepository, supplierRepository, entityIdProvider, consignmentItemService, dispatcher); consignmentService.CreateConsignmentsFromPendingItems(); var consignments = consignmentService.GetConsignments().OrderBy(c => c.ConsignmentNo).ToList(); Assert.AreEqual(3, consignments.Count); Assert.AreEqual("1", consignments[0].ConsignmentNo); Assert.AreEqual(supplier1Id, consignments[0].Supplier.Id); Assert.AreEqual("2", consignments[1].ConsignmentNo); Assert.AreEqual(supplier2Id, consignments[1].Supplier.Id); Assert.AreEqual("3", consignments[2].ConsignmentNo); Assert.AreEqual(supplier3Id, consignments[2].Supplier.Id); var consignmentItems = consignmentItemService.GetConsignmentItems(consignments[0].Id).OrderBy(ci => ci.ItemNo).ToList(); Assert.AreEqual(3, consignmentItems.Count); Assert.AreEqual(jobItem1Id, consignmentItems[0].JobItem.Id); // JR2000/1 Assert.AreEqual(jobItem3Id, consignmentItems[1].JobItem.Id); // JR2000/3 Assert.AreEqual(jobItem4Id, consignmentItems[2].JobItem.Id); // JR2001/1 consignmentItems = consignmentItemService.GetConsignmentItems(consignments[1].Id).OrderBy(ci => ci.ItemNo).ToList(); Assert.AreEqual(2, consignmentItems.Count); Assert.AreEqual(jobItem2Id, consignmentItems[0].JobItem.Id); // JR2000/2 Assert.AreEqual(jobItem5Id, consignmentItems[1].JobItem.Id); // JR2001/2 consignmentItems = consignmentItemService.GetConsignmentItems(consignments[2].Id).OrderBy(ci => ci.ItemNo).ToList(); Assert.AreEqual(2, consignmentItems.Count); Assert.AreEqual(jobItem6Id, consignmentItems[0].JobItem.Id); // JR2001/3 Assert.AreEqual(jobItem7Id, consignmentItems[1].JobItem.Id); // JR2002/1 Assert.AreEqual(0, consignmentItemService.GetPendingItems().Count()); }
public ActionResult Details(Guid id, string TabNo) { var job = _jobService.GetJob(id); var jobItems = _jobItemService.GetJobItems(id); var viewModel = new JobDetailsViewModel { Id = job.Id.ToString(), CreatedBy = job.CreatedBy.ToString(), DateCreated = job.DateCreated.ToLongDateString() + ' ' + job.DateCreated.ToShortTimeString(), JobNumber = job.JobNo, OrderNumber = job.OrderNo, AdviceNumber = job.AdviceNo, Instruction = job.Instructions, Note = job.Notes, Contact = job.Contact, CustomerName = job.Customer.Name, CustomerAssetLine = job.Customer.AssetLine, CustomerAddress1 = job.Customer.Address1, CustomerAddress2 = job.Customer.Address2, CustomerAddress3 = job.Customer.Address3, CustomerAddress4 = job.Customer.Address4, CustomerAddress5 = job.Customer.Address5, CustomerEmail = job.Customer.Email, CustomerTelephone = job.Customer.Telephone, IsPending = job.IsPending, JobItems = jobItems.Select(ji => new JobItemDetailsViewModel { Id = ji.Id, JobId = id, JobItemRef = ji.GetJobItemRef(), UserRole = GetLoggedInUserRoles(), AssetNo = ji.AssetNo, SerialNo = ji.SerialNo, Status = ji.Status.Name.ToString(), CalPeriod = ji.CalPeriod, Field = ji.Field.Name.ToString(), Accessories = ji.Accessories, Comments = ji.Comments, Instructions = ji.Instructions, IsReturned = ji.IsReturned, ReturnReason = ji.ReturnReason, IsInvoiced = ji.IsInvoiced, IsMarkedForInvoicing = ji.IsMarkedForInvoicing, InstrumentDetails = ji.Instrument.ToString(), QuoteItem = PopulateQuoteItemViewModel(ji.Id), Delivery = PopulateDeliveryItemViewModel(ji.Id), Certificates = PopulateCertificateViewModel(ji.Id), WorkItems = ji.HistoryItems.Select(wi => new WorkItemDetailsViewModel { Id = wi.Id, JobItemId = wi.JobItem.Id, OverTime = wi.OverTime, Report = wi.Report, Status = wi.Status.Name.ToString(), WorkTime = wi.WorkTime, WorkType = wi.WorkType.Name.ToString(), WorkBy = wi.User.Name.ToString(), DateCreated = wi.DateCreated.ToLongDateString() + ' ' + wi.DateCreated.ToShortTimeString() }).OrderByDescending(wi => wi.DateCreated).ToList() }).OrderBy(ji => ji.JobItemRef).ToList(), Attachments = job.Attachments.Select( a => new AttachmentViewModel { Id = a.Id, Name = a.Filename }).ToList() }; foreach (var ji in viewModel.JobItems) { PopulateOrderItemViewModel(ji); PopulateConsignmentItemViewModel(ji); } return(View(viewModel)); }