// Verifica que la cuenta exista en Plan y la elimina. public static void QuitarCuenta() { int codigo = Validadores.Codigo("Ingrese el codigo de la cuenta a eliminar"); if (!PlanDeCuentas.TryGetValue(codigo, out var cuentaEliminada)) { Console.WriteLine($"No existe una cuenta con el codigo '{codigo}'. Intente nuevamente..."); Console.ReadKey(); } else { PlanDeCuentas.Remove(codigo); Console.WriteLine($"Se ha eliminado la cuenta '{cuentaEliminada.Nombre}' con el codigo {cuentaEliminada.Codigo}"); Console.ReadKey(); GrabarPlan(); } }
// Agrega una cuenta a Plan verificando que el codigo para identificarla este disponible. public static void AgregarCuenta() { int codigo = Validadores.Codigo("Ingrese el codigo de la cuenta nueva"); string nombre = Validadores.Texto("Ingrese el nombre de la cuenta nueva"); string tipo = Validadores.TipoCuenta("Es (A)ctivo, (P)asivo o Patrimonio (N)eto?"); Cuenta nueva = new Cuenta(codigo, nombre, tipo); if (PlanDeCuentas.ContainsKey(codigo)) { Console.WriteLine($"Error: El codigo '{codigo}' ya esta siendo utilizado por otra cuenta. Intente con otro codigo..."); Console.ReadKey(); } else { PlanDeCuentas.Add(nueva.Codigo, nueva); Console.WriteLine($"Se ha agregado la cuenta '{nueva.Nombre}' con el codigo {nueva.Codigo}"); Console.ReadKey(); GrabarPlan(); } }
public Dictionary <int, double> Haber = new Dictionary <int, double>(); // KEY: Nº de Cuenta || VALUE: Monto // Constructor para crear Asientos manualmente dentro de la aplicación. // Se puede invocar desde el menu principal. public Asiento(int numero) { Numero = numero; Fecha = DateTime.Now; bool salir = false; int codigo; double debe = 0; double haber = 0; double debeTotal = 0; double haberTotal = 0; Dictionary <int, double> DebeTemporal = new Dictionary <int, double>(); // KEY: Nº de Cuenta || VALUE: Monto Dictionary <int, double> HaberTemporal = new Dictionary <int, double>(); // KEY: Nº de Cuenta || VALUE: Monto do { bool continuar = true; string deseaContinuar; Console.WriteLine("Codigos de cuentas disponibles:\n"); LibroDiario.ImprimirPlanDeCuentas(); do { debe = 0; // Reset de variables para evitar acarreo de errores. haber = 0; codigo = Validadores.Codigo($"\nIngrese el codigo de cuenta del DEBE:"); if (!LibroDiario.PlanDeCuentas.ContainsKey(codigo)) { Console.WriteLine($"El codigo '{codigo}' no está asociado a ninguna cuenta dentro del Plan de cuentas. Intente nuevamente..."); Console.ReadKey(); } else { debe = Validadores.NumeroPositivo($"Ingrese el monto de '{LibroDiario.PlanDeCuentas[codigo].Nombre}':"); deseaContinuar = Validadores.SoN("Desea agregar mas cuentas dentro del DEBE? (S)i o (N)o"); if (deseaContinuar == "N") { continuar = false; } DebeTemporal.Add(codigo, debe); debeTotal += debe; } } while (continuar == true); continuar = true; do { debe = 0; // Reset de variables para evitar acarreo de errores. haber = 0; codigo = Validadores.Codigo($"\nIngrese el codigo de cuenta del HABER:"); if (!LibroDiario.PlanDeCuentas.ContainsKey(codigo)) { Console.WriteLine($"El codigo '{codigo}' no está asociado a ninguna cuenta dentro del Plan de cuentas. Intente nuevamente..."); Console.ReadKey(); } else { haber = Validadores.NumeroPositivo($"Ingrese el monto de '{LibroDiario.PlanDeCuentas[codigo].Nombre}':"); deseaContinuar = Validadores.SoN("Desea agregar mas cuentas dentro del HABER? (S)i o (N)o"); if (deseaContinuar == "N") { continuar = false; } HaberTemporal.Add(codigo, haber); haberTotal += haber; } } while (continuar == true); if (debeTotal != haberTotal) { Console.WriteLine($"ERROR: El DEBE ({debeTotal}) no es IGUAL al HABER ({haberTotal}). Intente nuevamente..."); Console.ReadKey(); DebeTemporal.Clear(); HaberTemporal.Clear(); debeTotal = 0; // Reset de variables para eliminar acarreo de errores. haberTotal = 0; // Reset de variables para eliminar acarreo de errores. } else { salir = true; Debe = DebeTemporal; Haber = HaberTemporal; } } while (salir == false); Console.WriteLine($"Se ha creado el asiento Nº{Numero} con exito!"); Console.ReadKey(); Console.Clear(); }