public override void GetCostFromList(IQueryable<Article> articles) { //questo dovrebbe far ottenere il costo!!!!!! var extract = articles.GetArticlesByProductPartPrintableArticle(ProductPart.ProductPartPrintableArticles.FirstOrDefault(x => x.CodProductPartPrintableArticle == this.TaskCost.CodProductPartPrintableArticle)); if (extract.FirstOrDefault() == null) { //se non trovo il throw (new NullReferenceException()); } TypeOfQuantity = (int)extract.FirstOrDefault().TypeOfQuantity; var article = extract.FirstOrDefault(); var aCost = article.ArticleCosts.OfType<SheetPrintableArticlePakedCost>().FirstOrDefault(); CostPerKg = ((SheetPrintableArticleCost)aCost).CostPerKg; CostPerSheet = ((SheetPrintableArticleCost)aCost).CostPerSheet; }
public override void GetCostFromList(IQueryable<Article> articles) { //questo dovrebbe far ottenere il costo!!!!!! var extract = articles.GetArticlesByProductPartPrintableArticle(ProductPart.ProductPartPrintableArticles.FirstOrDefault(x => x.CodProductPartPrintableArticle == this.TaskCost.CodProductPartPrintableArticle)); if (extract.FirstOrDefault() == null) { //se non trovo il throw (new NullReferenceException()); } TypeOfQuantity = (int)extract.FirstOrDefault().TypeOfQuantity; var article = extract.FirstOrDefault(); var aCost = article.ArticleCosts.OfType<RigidPrintableArticleStandardCost>().FirstOrDefault(); CostPerMq = ((RigidPrintableArticleCost)aCost).CostPerMq; //devo gestire qui se c'è una quadratura minima e se l'articolo deve essere arrotondato al mq successivo }
public override void GetCostFromList(IQueryable<Article> articles) { List<Article> extract; try { var p = ProductPart.ProductPartPrintableArticles.FirstOrDefault(x => x.CodProductPartPrintableArticle == this.TaskCost.CodProductPartPrintableArticle); //questo dovrebbe far ottenere il costo!!!!!! extract = articles.GetArticlesByProductPartPrintableArticle(p).ToList(); if (extract.FirstOrDefault() == null) { throw new Exception(); } TypeOfQuantity = (int)extract.FirstOrDefault().TypeOfQuantity; var art = extract.OfType<RollPrintableArticle>().FirstOrDefault(); var aCost = art.ArticleCosts.OfType<RollPrintableArticleStandardCost>().FirstOrDefault(); CostPerMq = ((RollPrintableArticleCost)aCost).GetCostPerMq(); //.CostPerMq; CostPerMl = ((RollPrintableArticleCost)aCost).CostPerMl; } catch (Exception) { //se non trovo il // throw (new NullReferenceException()); TypeOfQuantity = 3; CostPerMq = "0"; CostPerMl = "0"; } }
public override List<CostDetail> CreateRelatedPrintedCostDetail(IQueryable<Article> articles, IQueryable<Cost> costs) { List<CostDetail> lst = new List<CostDetail>(); foreach (var item in this.ProductPart.ProductPartPrintableArticles) { var xx = articles.GetArticlesByProductPartPrintableArticle(item).FirstOrDefault(); PrintedArticleCostDetail x; switch (xx.TypeOfArticle) { case Article.ArticleType.SheetPrintableArticle: x = new PrintedSheetArticleCostDetail(); break; case Article.ArticleType.RollPrintableArticle: x = new PrintedRollArticleCostDetail(); break; case Article.ArticleType.RigidPrintableArticle: x = new PrintedRigidArticleCostDetail(); break; case Article.ArticleType.ObjectPrintableArticle: throw new NotImplementedException(); break; default: throw new NotImplementedException(); break; } x.ComputedBy = this; x.ProductPart = this.ProductPart; //devo pescare il costo e associarlo al dettaglio if (x.CodCost == null) { var xxxx = costs.ToList(); var cost = costs.Where(pp => pp.CodProductPartPrintableArticle == item.CodProductPartPrintableArticle).FirstOrDefault(); //da non usare MAIIII x.TaskCost = cost; x.CodCost = cost.CodCost; x.CodCostDetail = cost.CodCost; x.CostDetailCostCodeRigen(); } //GUID x.Guid = this.Guid; this.Computes.Add(x); lst.Add(x); } return lst; }