Пример #1
0
        public void SaveCostDetailLocally(CostDetail cv, Guid guid)
        {
            if (cv != null)
            {
                var pPart = cv.ProductPart;

                switch (cv.TypeOfCostDetail)
                {
                    //if it is a printing... we have to 

                    case CostDetail.CostDetailType.PrintingFlatRollCostDetail:
                    case CostDetail.CostDetailType.PrintingZRollCostDetail:
                    case CostDetail.CostDetailType.PrintingSheetCostDetail:
                    case CostDetail.CostDetailType.PrintingRollCostDetail:
                    case CostDetail.CostDetailType.RepassRollCostDetail:
                    case CostDetail.CostDetailType.PrePostPressCostDetail:

                        if (cv.Computes.Count == 0)
                        {
                            //

                            var tempCost = DocumentCostsDic.ToList().Select(y => y.Value);

                            List<CostDetail> x = cv.CreateRelatedPrintedCostDetail(ArticleRepository.GetAll(), tempCost.AsQueryable()).Union(
                                cv.GetRelatedImplantCostDetail(cv.TaskCost.CodProductPartTask, tempCost.AsQueryable())).ToList();

                            foreach (var item in x)
                            {
                                item.ComputedBy = cv;
                                item.InitCostDetail(TaskExecutorRepository.GetAll(), ArticleRepository.GetAll());
                                if (!CostDetailIsJustSaved(item.CodCostDetail, guid))
                                {
                                    SaveCostDetailInDictionary(item);
                                }
                            }
                        }

                        //cv.TaskCost = null;
                        SaveCostDetailInDictionary(cv);
                        //aggiorna il costo rigenerando prima i coefficienti

                        var inizio = DateTime.Now;

                        //                        UpdateCost(cv.CodCostDetail);

                        var tempo = DateTime.Now.Subtract(inizio);

                        Console.Write(tempo);

                        break;

                    case CostDetail.CostDetailType.ControlTableCostDetail:


                        SaveCostDetailInDictionary(cv);
                        //CostDetailRepository.Add(cv);
                        //CostDetailRepository.Save();
                        //aggiorna il costo rigenerando prima i coefficienti

                        //                      UpdateCost(cv.CodCostDetail);

                        break;

                    case CostDetail.CostDetailType.PrintedSheetArticleCostDetail:
                        break;
                    case CostDetail.CostDetailType.PrintedRollArticleCostDetail:
                        break;
                    default:
                        break;
                }
            }
        }