public IResult <ProductionTriggerFacts> GetProductionTriggerFacts(string jobref, string partNumber) { if (string.IsNullOrEmpty(jobref)) { return(new BadRequestResult <ProductionTriggerFacts>("Must supply a jobref")); } if (string.IsNullOrEmpty(partNumber)) { return(new BadRequestResult <ProductionTriggerFacts>("Must supply a part number")); } var trigger = this.repository.FindBy(f => f.Jobref == jobref && f.PartNumber == partNumber); if (trigger == null) { return(new NotFoundResult <ProductionTriggerFacts>("No facts found for that jobref and part number")); } var facts = new ProductionTriggerFacts(trigger) { OutstandingWorksOrders = trigger.QtyBeingBuilt > 0 ? this.worksOrderRepository.FilterBy( w => w.PartNumber == partNumber & w.DateCancelled == null & w.Quantity > w.QuantityBuilt).ToList() : new List <WorksOrder>() }; if (trigger.ReqtForSalesOrdersBE > 0) { var linn = this.accountingCompaniesRepository.FindById("LINN"); facts.OutstandingSalesOrders = linn != null ? this.productionBackOrderRepository.FilterBy(o => o.JobId == linn.LatestSosJobId && o.ArticleNumber == partNumber).ToList() : new List <ProductionBackOrder>(); } else { facts.OutstandingSalesOrders = new List <ProductionBackOrder>(); } if ((trigger.ReqtForInternalCustomersBI > 0) || (trigger.ReqtForInternalCustomersGBI > 0)) { var parentAssemblies = this.productionTriggerAssemblyRepository.FilterBy(a => a.Jobref == trigger.Jobref && a.PartNumber == trigger.PartNumber); facts.WhereUsedAssemblies = parentAssemblies.ToList().Where(a => a.HasReqt()); } else { facts.WhereUsedAssemblies = new List <ProductionTriggerAssembly>(); } return(new SuccessResult <ProductionTriggerFacts>(facts)); }
public void SetUp() { var facts = new ProductionTriggerFacts(new ProductionTrigger { PartNumber = "KYLEGUARD", Description = "A product", Priority = "1" }) { OutstandingWorksOrders = new List <WorksOrder>(), OutstandingSalesOrders = new List <ProductionBackOrder>(), WhereUsedAssemblies = new List <ProductionTriggerAssembly>() }; this.ProductionTriggersFacadeService.GetProductionTriggerFacts("CJCAIH", "KYLEGUARD") .Returns(new SuccessResult <ProductionTriggerFacts>(facts)); this.Response = this.Browser.Get( "/production/reports/triggers/facts", with => { with.Header("Accept", "application/json"); with.Query("jobref", "CJCAIH"); with.Query("partNumber", "KYLEGUARD"); }).Result; }