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";
            }

        }
示例#4
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;
        }