Ejemplo n.º 1
0
        public GeneralFollowUp GetResults(CostProductOption cpo, string objectID)
        {
            GeneralFollowUp gfu = new GeneralFollowUp();

            switch (cpo)
            {
            case CostProductOption.Product:
                var product = db.Product.Single(p => p.ProductID.Equals(objectID));
                gfu.ObjectName = product.ProductName;

                gfu.Costs    = (int)GetDirectProductCostByProductID(objectID);
                gfu.Revenues = GetCalculatedIncomeBudgetByProduct(objectID);

                gfu.Result = gfu.Revenues - gfu.Costs;
                break;

            case CostProductOption.Productgroup:
                var productGroup = db.ProductGroup.Single(p => p.ProductGroupID.Equals(objectID));
                gfu.ObjectName = productGroup.ProductGroupName;

                gfu.Costs    = GetProductGroupCostByID(objectID);
                gfu.Revenues = GetCalculatedIncomeBudgetByGroup(objectID);

                gfu.Result = gfu.Revenues - gfu.Costs;
                break;

            case CostProductOption.Department:
                var department = db.Department.Single(p => p.DepartmentID.Equals(objectID));
                gfu.ObjectName = department.DepartmentName;

                if (objectID == "DA" || objectID == "UF")
                {
                    gfu.Costs    = GetProductionDepartmentCostByDepartmentID(objectID);
                    gfu.Revenues = GetCalculatedIncomeBudgetProductByDepartment(objectID);
                }
                if (objectID == "AO" || objectID == "FO")
                {
                    gfu.Costs    = GetAFFODepartmentCostByDepartmentID(objectID);
                    gfu.Revenues = 0;
                }

                gfu.Result = gfu.Revenues - gfu.Costs;
                break;

            case CostProductOption.Company:
                gfu.ObjectName = "IT-Service";

                gfu.Costs    = (int)GetTotalCost();
                gfu.Revenues = GetCalculatedTotalIncomeBudget();

                gfu.Result = gfu.Revenues - gfu.Costs;
                break;
            }

            return(gfu);
        }
Ejemplo n.º 2
0
        public GeneralFollowUp GetResults(CostProductOption cpo, GeneralFollowUp inGFU)
        {
            GeneralFollowUp gfu = new GeneralFollowUp();

            var products = from p in CostProducts
                           where p.CeProductID.Equals(inGFU.ObjectID)
                           orderby p.CeIncomeDate descending
                           select p;

            CostProduct product = null;

            var pg = from p in ProductManagement.Instance.Products
                     where p.ProductGroupID.Equals(inGFU.ObjectID)
                     select p;

            var pd = from p in ProductManagement.Instance.Products
                     where p.DepartmentID.Equals(inGFU.ObjectID)
                     select p;

            var cps = from cp in CostProducts
                      orderby cp.CeIncomeDate descending
                      select cp;

            Product productToLookFor = null;


            switch (cpo)
            {
            case CostProductOption.Product:

                if (products.Any())
                {
                    product = products.First(s => s.CeProductID.Equals(inGFU.ObjectID));
                }

                if (product != null)
                {
                    var revenues = from c in db.IncomeProductCustomer
                                   where c.IeProductID.Equals(product.CeProductID)
                                   orderby c.IeAmount ascending
                                   select c;

                    var costs = from r in db.CostProduct
                                where r.CeProductID.Equals(product.CeProductID)
                                orderby r.CeAmount descending
                                select r;

                    int revenue = 0, cost = 0;

                    if (revenues.Any())
                    {
                        var p = revenues.First();
                        revenue = ~p.IeAmount + 1;
                    }

                    if (costs.Any())
                    {
                        var re = costs.First();
                        cost = re.CeAmount;
                    }

                    gfu.ObjectName = product.CeProductName;
                    gfu.Costs      = cost;
                    gfu.Revenues   = revenue;
                    gfu.Result     = gfu.Revenues - gfu.Costs;
                    gfu.Date       = inGFU.Date;
                }
                break;

            case CostProductOption.Productgroup:


                foreach (var p in pg.Where(p => p.ProductGroupID.Equals(inGFU.ObjectID)))
                {
                    productToLookFor = p;
                }

                if (cps.Any() && productToLookFor != null)
                {
                    gfu.Date = cps.First(s => s.CeProductID.Equals(productToLookFor.ProductID)).CeIncomeDate;
                }

                gfu.Revenues = GetProductGroupRevenues(productToLookFor.ProductID);
                gfu.Costs    = GetProductGroupCosts(productToLookFor.ProductID);

                var productGroup = db.ProductGroup.Single(p => p.ProductGroupID.Equals(inGFU.ObjectID));
                gfu.ObjectName = productGroup.ProductGroupName;

                gfu.Result = gfu.Revenues - gfu.Costs;

                break;

            case CostProductOption.Department:

                foreach (var p in from p in pd.Where(p => p.DepartmentID.Equals(inGFU.ObjectID))
                         from item in cps
                         where item.CeProductID.Equals(p.ProductID)
                         select p)
                {
                    productToLookFor = p;
                }

                if (cps.Any() && productToLookFor != null)
                {
                    gfu.Date = cps.First(s => s.CeProductID.Equals(productToLookFor.ProductID)).CeIncomeDate;
                }


                gfu.Costs    = GetProductGroupCosts(productToLookFor.ProductID);
                gfu.Revenues = GetProductGroupRevenues(productToLookFor.ProductID);

                var department = db.Department.First(p => p.DepartmentID.Equals(inGFU.ObjectID));
                gfu.ObjectName = department.DepartmentName;

                gfu.Result = gfu.Revenues - gfu.Costs;
                break;

            case CostProductOption.Company:
                gfu.ObjectName = "IT-Service";


                foreach (var item in db.CostProduct)
                {
                    gfu.Costs += item.CeAmount;
                }


                foreach (var item in db.IncomeProductCustomer)
                {
                    gfu.Revenues += ~item.IeAmount + 1;
                }

                gfu.Date   = inGFU.Date;
                gfu.Result = gfu.Revenues - gfu.Costs;
                break;
            }

            return(gfu);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Show the company
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void rbCompany_Checked(object sender, RoutedEventArgs e)
 {
     RevenueFollowUpManagement.Instance.FillGeneralFollowUpsWithCompany();
     cpo = CostProductOption.Company;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Show all product groups
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void rbProductGroup_Checked(object sender, RoutedEventArgs e)
 {
     RevenueFollowUpManagement.Instance.FillGeneralFollowUpsWithProductGroups();
     cpo = CostProductOption.Productgroup;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Show all departments
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void rbDepartment_Checked(object sender, RoutedEventArgs e)
 {
     RevenueFollowUpManagement.Instance.FillGeneralFollowUpsWithDepartments();
     cpo = CostProductOption.Department;
 }
Ejemplo n.º 6
0
 private void rbProduct_Checked(object sender, RoutedEventArgs e)
 {
     BudgetedResultManagement.Instance.FillGeneralFollowUpsWithProducts();
     cpo = CostProductOption.Product;
 }