A chart of accounts holds information on how accounts are grouped and classified.
 /// <summary>
 /// Deletes a chart of account from the company. The server will return an error if the chart of account is connect to a year.
 /// </summary>
 /// <param name="chartOfAccounts">The id of the chart of account to be deleted</param>
 public void Delete(ChartOfAccounts chartOfAccounts)
 {
     Delete(chartOfAccounts.id);
 }
        public KnownGroupDictionary(ChartOfAccounts chartOfAccounts)
        {
            this.chartOfAccounts = chartOfAccounts;

            // Mandatory groups

            #region Mandatory groups

            // Basic
            income = new KnownGroup();
            costs = new KnownGroup();
            assets = new KnownGroup();
            liabilities = new KnownGroup();

            // Income children. These groups must be children to the Income group
            financialIncome = new KnownGroup();

            // Costs children. These groups must be children to the Costs group
            financialCosts = new KnownGroup();
            deprecationsAccordingToPlan = new KnownGroup();
            extraordinaryIncomeAndExpenses = new KnownGroup();
            appropriations = new KnownGroup();
            profitEntryAccounts = new KnownGroup();
            taxes = new KnownGroup();

            // Assets children. These groups must be children to the Assets group
            currentAssets = new KnownGroup();
            fixedAssets = new KnownGroup();
            financialAssets = new KnownGroup();
            inventory = new KnownGroup();

            // Liabilities children. These groups must be children to the Liabilities group
            currentLiabilities = new KnownGroup();
            longTermLiabilities = new KnownGroup();
            equityCapital = new KnownGroup();

            #endregion

            #region Optional groups

            // Income children. These groups must be children to the Income group
            netSales = new KnownGroup(); // Income
            otherOperatingIncome = new KnownGroup();

            // Costs children. These groups must be children to the Costs group
            purchaseOfGoodsAndEquipment = new KnownGroup();
            costsForEmployees = new KnownGroup();
            salariesSocialBenefitsEtc = new KnownGroup();
            otherCostsForEmployees = new KnownGroup();
            impairmentsAndWriteBack = new KnownGroup();
            costsOfPremisesAndProperty = new KnownGroup();
            sellingExpenses = new KnownGroup();
            administrativeExpenses = new KnownGroup();
            otherOperatingExpenses = new KnownGroup();
            operatingExpenses = new KnownGroup();
            itemsAffectingComparability = new KnownGroup();
            goodsForResale = new KnownGroup();
            rawMaterial = new KnownGroup();

            // Assets children. These groups must be children to the Assets group
            accountsReceivables = new KnownGroup();
            otherCurrentReceivables = new KnownGroup();
            currentInvestmentsAndLiquidFunds = new KnownGroup();
            intangibleFixedAssets = new KnownGroup();
            landsAndBuildings = new KnownGroup();
            machineryAndEquipment = new KnownGroup();

            // Liabilities children. These groups must be children to the Liabilities group
            untaxedReserves = new KnownGroup();
            nonRestrictedEquityCapital = new KnownGroup();
            restrictedEquityCapital = new KnownGroup();
            allocationsAndProvisions = new KnownGroup();
            bankOverdraft = new KnownGroup();
            nonCurrentLiabilities = new KnownGroup();

            #endregion
        }
 public ChartOfAccounts Create(ChartOfAccounts chartOfAccounts)
 {
     var url = GetUrl();
     return client.Post<ChartOfAccounts>(url, JObject.FromObject(chartOfAccounts).ToString());
 }