Ejemplo n.º 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 void UpdateSavedItem(ItemPriceCalculationItem item)
        {
            item.AgentCommission  = StandardItemPriceCalculation.AgentCommission;
            item.CustomerCashback = StandardItemPriceCalculation.CustomerCashback;
            item.CustomerDiscount = StandardItemPriceCalculation.CustomerDiscount;
            item.ProfitSurcharge  = StandardItemPriceCalculation.ProfitSurcharge;
            item.Tax               = StandardItemPriceCalculation.Tax;
            item.HourlyWage        = HourlyWage;
            item.ProductionTime    = ProductionTime;
            item.ItemAmountPerAnno = ItemAmountPerAnno;
            item.RefProductId      = Product.ProductId;

            ItemPriceCalculationItems.Update(item);
        }
        private void Save()
        {
            var item = ItemPriceCalculationItems.GetByRefProductId(Product.ProductId);

            if (item != null)
            {
                UpdateSavedItem(item);
                SaveCostCenters(item.ItemPriceCalculationItemId);
            }
            else
            {
                SaveNewItem();
            }

            UpdateProduct();
        }
        private void LoadData()
        {
            var itemPriceCalculationItem = ItemPriceCalculationItems.GetByRefProductId(Product.ProductId);

            if (itemPriceCalculationItem == null)
            {
                StandardItemPriceCalculation = new StandardItemPriceCalculation();
                return;
            }

            StandardItemPriceCalculation.AgentCommission  = itemPriceCalculationItem.AgentCommission;
            StandardItemPriceCalculation.CustomerCashback = itemPriceCalculationItem.CustomerCashback;
            StandardItemPriceCalculation.CustomerDiscount = itemPriceCalculationItem.CustomerDiscount;
            StandardItemPriceCalculation.ProfitSurcharge  = itemPriceCalculationItem.ProfitSurcharge;
            StandardItemPriceCalculation.Tax               = itemPriceCalculationItem.Tax;
            StandardItemPriceCalculation.HourlyWage        = itemPriceCalculationItem.HourlyWage;
            StandardItemPriceCalculation.ProductionTime    = itemPriceCalculationItem.ProductionTime;
            StandardItemPriceCalculation.ItemAmountPerAnno = itemPriceCalculationItem.ItemAmountPerAnno;

            foreach (var item in itemPriceCalculationItem.ItemPriceCalculationItemCostCenters)
            {
                switch (item.ItemPriceCalculationItemCostCenterType)
                {
                case ItemPriceCalculationItemCostCenterType.MaterialOverheadCosts:
                    MaterialOverHeadCostsCostCenters.CostCenterFlatStructures.SingleOrDefault(x => x.CostCenter?.CostCenterId == item.RefCostCenterId).IsActive = true;
                    break;

                case ItemPriceCalculationItemCostCenterType.ProductOverheadCosts:
                    ProductOverheadsCostCenters.CostCenterFlatStructures.SingleOrDefault(x => x.CostCenter?.CostCenterId == item.RefCostCenterId).IsActive = true;
                    break;

                case ItemPriceCalculationItemCostCenterType.AdministrativeOverheadCosts:
                    AdministrativeOverheadsCostCenters.CostCenterFlatStructures.SingleOrDefault(x => x.CostCenter?.CostCenterId == item.RefCostCenterId).IsActive = true;
                    break;

                case ItemPriceCalculationItemCostCenterType.SalesOverheadCosts:
                    SalesOverHeadsCostCenters.CostCenterFlatStructures.SingleOrDefault(x => x.CostCenter?.CostCenterId == item.RefCostCenterId).IsActive = true;
                    break;

                default:
                    break;
                }
            }
        }
        private void SaveNewItem()
        {
            itemPriceCalculationItem = new ItemPriceCalculationItem()
            {
                AgentCommission  = StandardItemPriceCalculation.AgentCommission,
                CustomerCashback = StandardItemPriceCalculation.CustomerCashback,
                CustomerDiscount = StandardItemPriceCalculation.CustomerDiscount,
                ProfitSurcharge  = StandardItemPriceCalculation.ProfitSurcharge,
                Tax               = StandardItemPriceCalculation.Tax,
                HourlyWage        = HourlyWage,
                ProductionTime    = ProductionTime,
                ItemAmountPerAnno = ItemAmountPerAnno,
                RefProductId      = Product.ProductId
            };

            var itemPriceCalculationItemId = ItemPriceCalculationItems.Insert(itemPriceCalculationItem);

            SaveCostCenters(itemPriceCalculationItemId);
        }
        private void CalculateOthers()
        {
            foreach (var item in MaterialOverHeadCostsCostCenters.CostCenterFlatStructures)
            {
                if (item.CostCenter == null)
                {
                    continue;
                }

                var itemPriceCalculationItemList = ItemPriceCalculationItems.GetByCostCenter(item.CostCenter.CostCenterId);

                foreach (ItemPriceCalculationItem tmpItemPriceCalculationItem in itemPriceCalculationItemList)
                {
                    if (tmpItemPriceCalculationItem.ItemPriceCalculationItemId != itemPriceCalculationItem.ItemPriceCalculationItemId)
                    {
                        ItemPriceCalculationItems.Update(tmpItemPriceCalculationItem);
                    }
                }
            }
        }