Пример #1
0
        private void DeleteProduct()
        {
            if (SelectedProduct == null)
            {
                return;
            }

            if (SelectedProduct.ProductId == 0)
            {
                _Products.Remove(SelectedProduct);
                SelectedProduct = null;
                return;
            }

            var priceCalculationItem = ItemPriceCalculationItems.GetByRefProductId(SelectedProduct.ProductId);

            if (priceCalculationItem != null)
            {
                ItemPriceCalculationItemCostCenters.DeleteByRefItemPriceCalculationItemId(priceCalculationItem.ItemPriceCalculationItemId);
                ItemPriceCalculationItems.Delete(priceCalculationItem.ItemPriceCalculationItemId);
            }

            Products.Delete(SelectedProduct.ProductId);
            _Products.Remove(SelectedProduct);
            SelectedProduct = null;
        }
        private decimal CalculateAmount()
        {
            decimal amount = 0;

            foreach (var item in CostCenterFlatStructures)
            {
                if (item.IsActive)
                {
                    if (item.CostCenter != null)
                    {
                        var tmpCosts     = costsPerYear.Where(x => x.RefCostCenterId == item.CostCenter.CostCenterId).Sum(x => x.Amount);
                        var fullQuantity = ItemPriceCalculationItemCostCenters.GetItemQuantityForCostCenterId(item.CostCenter.CostCenterId);

                        //amount += CostCenterBudgets.GetAnnuallyCosts(item.CostCenter.CostCenterId, DateTime.Now.Year).Sum(x => x.Amount);
                        amount += tmpCosts / fullQuantity * ItemAmountPerAnno;
                    }
                }
            }
            return(amount);
        }
        private void SaveCostCenters(int itemPriceCalculationItemId)
        {
            var ItemPriceCalculationItemCostCenterList = new List <ItemPriceCalculationItemCostCenter>();

            foreach (var item in MaterialOverHeadCostsCostCenters.CostCenterFlatStructures)
            {
                if (item.IsActive && item.CostCenter != null)
                {
                    ItemPriceCalculationItemCostCenter ItemPriceCalculationItemCostCenter = new ItemPriceCalculationItemCostCenter()
                    {
                        RefItemPriceCalculationItemId = itemPriceCalculationItemId,
                        RefCostCenterId = item.CostCenter.CostCenterId,
                        ItemPriceCalculationItemCostCenterType = ItemPriceCalculationItemCostCenterType.MaterialOverheadCosts
                    };
                    ItemPriceCalculationItemCostCenterList.Add(ItemPriceCalculationItemCostCenter);
                }
            }

            foreach (var item in ProductOverheadsCostCenters.CostCenterFlatStructures)
            {
                if (item.IsActive && item.CostCenter != null)
                {
                    ItemPriceCalculationItemCostCenter ItemPriceCalculationItemCostCenter = new ItemPriceCalculationItemCostCenter()
                    {
                        RefItemPriceCalculationItemId = itemPriceCalculationItemId,
                        RefCostCenterId = item.CostCenter.CostCenterId,
                        ItemPriceCalculationItemCostCenterType = ItemPriceCalculationItemCostCenterType.ProductOverheadCosts
                    };
                    ItemPriceCalculationItemCostCenterList.Add(ItemPriceCalculationItemCostCenter);
                }
            }

            foreach (var item in AdministrativeOverheadsCostCenters.CostCenterFlatStructures)
            {
                if (item.IsActive && item.CostCenter != null)
                {
                    ItemPriceCalculationItemCostCenter ItemPriceCalculationItemCostCenter = new ItemPriceCalculationItemCostCenter()
                    {
                        RefItemPriceCalculationItemId = itemPriceCalculationItemId,
                        RefCostCenterId = item.CostCenter.CostCenterId,
                        ItemPriceCalculationItemCostCenterType = ItemPriceCalculationItemCostCenterType.AdministrativeOverheadCosts
                    };
                    ItemPriceCalculationItemCostCenterList.Add(ItemPriceCalculationItemCostCenter);
                }
            }

            foreach (var item in SalesOverHeadsCostCenters.CostCenterFlatStructures)
            {
                if (item.IsActive && item.CostCenter != null)
                {
                    ItemPriceCalculationItemCostCenter ItemPriceCalculationItemCostCenter = new ItemPriceCalculationItemCostCenter()
                    {
                        RefItemPriceCalculationItemId = itemPriceCalculationItemId,
                        RefCostCenterId = item.CostCenter.CostCenterId,
                        ItemPriceCalculationItemCostCenterType = ItemPriceCalculationItemCostCenterType.SalesOverheadCosts
                    };
                    ItemPriceCalculationItemCostCenterList.Add(ItemPriceCalculationItemCostCenter);
                }
            }

            ItemPriceCalculationItemCostCenters.DeleteByRefItemPriceCalculationItemId(itemPriceCalculationItemId);
            ItemPriceCalculationItemCostCenters.Insert(ItemPriceCalculationItemCostCenterList);
            CalculateOthers();
        }