예제 #1
0
 private void CheckCurrentAssets(Item xbrlItem, ref BalanceSheetFilterItem item)
 {
     if (xbrlItem.Name.Equals("AssetsCurrent"))
     {
         item.CurrentAssetsItems.Add(xbrlItem);
     }
 }
예제 #2
0
 private void CheckCurrentLiabilities(Item xbrlItem, ref BalanceSheetFilterItem item)
 {
     if (xbrlItem.Name.Equals("LiabilitiesCurrent"))
     {
         item.CurrentLiabilitiesItems.Add(xbrlItem);
     }
 }
예제 #3
0
 private void CheckTotalAssets(Item xbrlItem, ref BalanceSheetFilterItem item)
 {
     if (xbrlItem.Name.Equals("Assets"))
     {
         item.TotalAssetsItems.Add(xbrlItem);
     }
 }
예제 #4
0
 private void CheckShareholdersEquity(Item xbrlItem, ref BalanceSheetFilterItem item)
 {
     if (xbrlItem.Name.Equals("StockholdersEquity"))
     {
         item.ShareholderEquityItems.Add(xbrlItem);
     }
     else if (xbrlItem.Name.Equals("StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest"))
     {
         item.ShareholderEquityItems.Add(xbrlItem);
     }
 }
예제 #5
0
        internal BalanceSheet PopulateFinancialStatement(BalanceSheetFilterItem item, BalanceSheet bs)
        {
            bs.CurrentAssets      = GetMaxValue(item.CurrentAssetsItems);
            bs.CurrentLiabilities = GetMaxValue(item.CurrentLiabilitiesItems);
            bs.Debt = GetMaxValue(item.DebtItems);
            bs.Ppe  = GetMaxValue(item.PpeItems);
            bs.ShareholdersEquity = GetMaxValue(item.ShareholderEquityItems);
            bs.Cash        = GetMaxValue(item.CashItems);
            bs.TotalAssets = GetMaxValue(item.TotalAssetsItems);

            return(bs);
        }
예제 #6
0
        internal BalanceSheetFilterItem CheckItem(Item xbrlItem, BalanceSheetFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree)
        {
            CheckCurrentAssets(xbrlItem, ref item);
            CheckCurrentLiabilities(xbrlItem, ref item);
            CheckCash(xbrlItem, ref item, xbrlTaxonomyTree);
            CheckDebt(xbrlItem, ref item);
            CheckPpe(xbrlItem, ref item, xbrlTaxonomyTree);
            CheckShareholdersEquity(xbrlItem, ref item);
            CheckTotalAssets(xbrlItem, ref item);

            return(item);
        }
예제 #7
0
 private void CheckDebt(Item xbrlItem, ref BalanceSheetFilterItem item)
 {
     if (xbrlItem.Name.Contains("LongTermDebt"))
     {
         item.DebtItems.Add(xbrlItem);
     }
     else
     {
         foreach (XbrlNode node in item.DebtNodes)
         {
             if (xbrlItem.Name.Equals(node.nodeId))
             {
                 item.DebtItems.Add(xbrlItem);
             }
         }
     }
 }
예제 #8
0
 private void CheckCash(Item xbrlItem, ref BalanceSheetFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree)
 {
     if (xbrlItem.Name.Equals("Cash"))
     {
         item.CashItems.Add(xbrlItem);
     }
     else
     {
         foreach (string child in xbrlTaxonomyTree["AssetsCurrent"])
         {
             if (child.Equals(xbrlItem.Name) && xbrlItem.Name.Contains("Cash"))
             {
                 item.CashItems.Add(xbrlItem);
             }
         }
     }
 }
예제 #9
0
 private void CheckPpe(Item xbrlItem, ref BalanceSheetFilterItem item, Dictionary <string, List <string> > xbrlTaxonomyTree)
 {
     if (xbrlItem.Name.Equals("PropertyPlantAndEquipmentNet"))
     {
         item.PpeItems.Add(xbrlItem);
     }
     else
     {
         foreach (string child in xbrlTaxonomyTree["PropertyPlantAndEquipmentNet"])
         {
             if (child.Equals(xbrlItem.Name))
             {
                 item.PpeItems.Add(xbrlItem);
             }
         }
     }
 }
예제 #10
0
        public BalanceSheet Populate(XbrlDocument xbrlDoc, string symbol, int year, Dictionary <string, List <string> > xbrlTaxonomyTree)
        {
            BalanceSheet bal = new BalanceSheet();

            bal.Symbol = symbol;
            bal.Year   = year;

            BalanceSheetFilterItem item = new BalanceSheetFilterItem();

            foreach (XbrlFragment frag in xbrlDoc.XbrlFragments)
            {
                foreach (Item xbrlItem in frag.Facts)
                {
                    if (xbrlItem.ContextRef.InstantPeriod && xbrlItem.Type.Name.Equals("monetaryItemType"))
                    {
                        if (xbrlItem.ContextRef.InstantDate.Year == bal.Year)
                        {
                            item = CheckItem(xbrlItem, item, xbrlTaxonomyTree);
                        }
                    }
                }
            }
            return(PopulateFinancialStatement(item, bal));
        }