private void CheckDepreciation(Item xbrlItem, IncomeStatementFilterItem item) { if (xbrlItem.Name.Contains("Depreciation")) { item.DepreciationItems.Add(xbrlItem); } }
private void CheckRevenue(Item xbrlItem, IncomeStatementFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree) { if (xbrlItem.Name.Equals("Revenues")) { item.RevenueItems.Add(xbrlItem); } else { foreach (string child in xbrlTaxonomyTree["Revenues"]) { if (child.Equals(xbrlItem.Name)) { item.RevenueItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["GrossProfit"]) { if (child.Equals(xbrlItem.Name) && xbrlItem.Name.Contains("Sales")) { item.RevenueItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["OperatingIncomeLoss"]) { if (child.Equals(xbrlItem.Name) && xbrlItem.Name.Contains("Sales")) { item.RevenueItems.Add(xbrlItem); } } } }
private void CheckOperatingExpense(Item xbrlItem, IncomeStatementFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree) { if (xbrlItem.Name.Contains("Operating") && xbrlItem.Name.Contains("Expense")) { item.OperatingItems.Add(xbrlItem); } else { foreach (string child in xbrlTaxonomyTree["OperatingIncomeLoss"]) { if (xbrlItem.Name.Contains("Selling") && child.Equals(xbrlItem.Name)) { item.OperatingItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments"]) { if (xbrlItem.Name.Contains("Selling") && child.Equals(xbrlItem.Name)) { item.OperatingItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["IncomeLossFromContinuingOperationsBeforeInterestExpenseInterestIncomeIncomeTaxesExtraordinaryItemsNoncontrollingInterestsNet"]) { if (xbrlItem.Name.Contains("Selling") && child.Equals(xbrlItem.Name)) { item.OperatingItems.Add(xbrlItem); } } } }
internal IncomeStatement PopulateFinancialStatement(IncomeStatementFilterItem item, IncomeStatement inc) { inc.Revenue = GetMaxValue(item.RevenueItems); inc.Cogs = GetMaxValue(item.CogsItems); inc.OperatingExpenses = GetMaxValue(item.OperatingItems); inc.Depreciation = GetMaxValue(item.DepreciationItems); inc.NetIncome = GetMaxValue(item.NetIncomeItems); return(inc); }
internal IncomeStatementFilterItem CheckItem(Item xbrlItem, IncomeStatementFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree) { CheckRevenue(xbrlItem, item, xbrlTaxonomyTree); CheckCogs(xbrlItem, item, xbrlTaxonomyTree); CheckOperatingExpense(xbrlItem, item, xbrlTaxonomyTree); CheckDepreciation(xbrlItem, item); CheckNetIncome(xbrlItem, item); return(item); }
private void CheckNetIncome(Item xbrlItem, IncomeStatementFilterItem item) { if (xbrlItem.Name.Contains("NetIncomeLoss")) { item.NetIncomeItems.Add(xbrlItem); } else if (xbrlItem.Name.Contains("ProfitLoss")) { item.NetIncomeItems.Add(xbrlItem); } }
private void CheckCogs(Item xbrlItem, IncomeStatementFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree) { if (xbrlItem.Name.Contains("Cost")) { foreach (string child in xbrlTaxonomyTree["OperatingIncomeLoss"]) { if (child.Equals(xbrlItem.Name)) { item.CogsItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["GrossProfit"]) { if (child.Equals(xbrlItem.Name)) { item.CogsItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["EarningsBeforeInterestAndIncomeTaxes"]) { if (child.Equals(xbrlItem.Name)) { item.CogsItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments"]) { if (child.Equals(xbrlItem.Name)) { item.CogsItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["CostOfRevenue"]) { if (child.Equals(xbrlItem.Name)) { item.CogsItems.Add(xbrlItem); } } foreach (string child in xbrlTaxonomyTree["CostOfGoodsAndServicesSold"]) { if (child.Equals(xbrlItem.Name)) { item.CogsItems.Add(xbrlItem); } } } }
public IncomeStatement Populate(XbrlNodeBL nodeMngr, XbrlDocument xbrlDoc, string symbol, int year, Dictionary <string, List <string> > xbrlTaxonomyTree) { IncomeStatement inc = new IncomeStatement(); inc.Symbol = symbol; inc.Year = year; IncomeStatementFilterItem item = new IncomeStatementFilterItem(); foreach (XbrlFragment frag in xbrlDoc.XbrlFragments) { foreach (Item xbrlItem in frag.Facts) { if (nodeMngr.IsAnnualItem(xbrlItem) && xbrlItem.Type.Name.Equals("monetaryItemType")) { if (xbrlItem.ContextRef.PeriodEndDate.Year == inc.Year) { item = CheckItem(xbrlItem, item, xbrlTaxonomyTree); } } } } return(PopulateFinancialStatement(item, inc)); }