//Constructor, se crea la raíz con las ocho cuentas principales en el árbol public NodoRaiz(string pNombreEmpresa) { this.nombreEmpresa = pNombreEmpresa; this.activos = new NodoCuenta("1", "Activos", false); this.pasivos = new NodoCuenta("2", "Pasivos", false); this.patrimonio = new NodoCuenta("3", "Patrimonio", false); this.ingresos = new NodoCuenta("4", "Ingresos", false); this.costos = new NodoCuenta("5", "Costos", false); this.gastos = new NodoCuenta("6", "Gastos", false); this.otrosIngresos = new NodoCuenta("7", "Otros Ingresos", false); this.otrosGastos = new NodoCuenta("8", "Otros Gastos", false); }
/* * Constructor, crea la cuenta con el código, el nombre y estado de la cuenta como parámetros, * lo demás se inicializa por default */ public NodoCuenta(string pCodigo, string pNombre, bool pEstadoCuenta) { this.codigo = pCodigo; this.nombre = pNombre; this.cuentaActiva = pEstadoCuenta; this.moneda = "USD"; this.saldoEnLocal = 0; this.saldoEnSistema = 0; this.listaCuentasHijas = null; this.sigCuenta = null; this.antCuenta = null; this.cuentaPadre = null; }
//procedimiento para insertar una nueva cuenta en el arbolCuentas public void insertarNuevaCuenta(Cuenta pCuenta) { //busca la cuenta padre NodoCuenta cuentaPadre = buscarCuenta(pCuenta.CodigoCuentaPadre); //crea la instancia de la nueva cuenta NodoCuenta nuevaCuenta = new NodoCuenta(pCuenta.Codigo, pCuenta.Nombre, true); nuevaCuenta.moneda = pCuenta._Moneda.Nombre; nuevaCuenta.cuentaPadre = cuentaPadre; //la cuenta padre para a estar desactivada para movimientos cuentaPadre.cuentaActiva = false; //si la cuentaPadre no posee hijos if (cuentaPadre.listaCuentasHijas == null) //se le asigna el primer hijo cuentaPadre.listaCuentasHijas = nuevaCuenta; else { //se inserta la cuenta nueva cuenta en la lista simple de cuentas hijas cuentaPadre.listaCuentasHijas.antCuenta = nuevaCuenta; nuevaCuenta.sigCuenta = cuentaPadre.listaCuentasHijas; cuentaPadre.listaCuentasHijas = nuevaCuenta; } }