// Busca os ramos derivados de "branch", lista eles em ordem alfabética através do nome
        // completo desde a raiz
        private void SearchBranches(CostTree tree, CostBranch branch)
        {
            orderedBranches.Add(tree.GetBranchQualifiedName(branch.Id), branch);

            foreach (CostBranch child in branch.Children)
            {
                SearchBranches(tree, child);
            }
        }
示例#2
0
        /// <summary>
        /// Recupera uma árvore de custo do banco
        /// </summary>
        public CostTree GetCostTree(int tenantId)
        {
            CostCenterDAO costCenterDAO  = new CostCenterDAO(sqlConnection);
            List <Object> costCenterList = costCenterDAO.GetAllCostCenters(tenantId);

            CostCenterAssociateDAO associateDAO  = new CostCenterAssociateDAO(sqlConnection);
            List <Object>          associateList = associateDAO.GetAllAssociates(tenantId);

            CostTreeBuilder costTreeBuilder = new CostTreeBuilder(costCenterList, associateList);
            CostTree        tree            = costTreeBuilder.BuildTree();

            return(tree);
        }
        /// <summary>
        /// Retorna uma lista com os custos de impressão por centro de custo
        /// </summary>
        public List <Object> GetCostsOfBranches(CostTree tree)
        {
            List <Object> costsOfBranches = new List <Object>();

            // Caso não tenham sido passados os custos por usuário retorna a lista em branco
            if (userPrintingCosts == null)
            {
                return(costsOfBranches);
            }

            // Não modificar o método "SearchBranches" para receber um parâmetro apenas, pois "tree.root"
            // é apenas um dos casos, nos outros são branchs variados
            SearchBranches(tree, tree.Root);

            foreach (KeyValuePair <String, CostBranch> pair in orderedBranches)
            {
                GroupPrintingCost groupPrintingCost = AssembleCosts(pair.Value, pair.Key);
                costsOfBranches.Add(groupPrintingCost);
            }

            return(costsOfBranches);
        }
 public CostTreeRenderer(CostTree tree, Object output)
 {
     this.tree   = tree;
     this.output = output;
 }
示例#5
0
 /// <summary>
 /// Armazena uma arvore de custo no banco
 /// </summary>
 public void SetCostTree(CostTree tree)
 {
     // not implemented yet
 }