コード例 #1
0
        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();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            const string menuPrincipal = "\t-MENU PRINCIPAL-\n\n" +
                                         "I - Ingresar nuevo asiento\n" +
                                         "V - Ver Libro Diario\n" +
                                         "P - Ver plan de cuentas\n" +
                                         "M - Modificar plan de cuentas\n" +
                                         "S - Guardar y salir\n";
            const string menuModificarPlan = "\t-MODIFICAR PLAN DE CUENTAS-\nA - Agregar nueva cuenta\n" +
                                             "E - Eliminar cuenta\n" +
                                             "V - Volver al menu principal\n";
            string opcionElegida;


            Console.WriteLine($"\tBienvenido {Environment.UserName} a su gestor de libro diario!\n");
            LibroDiario.IniciarPlanDeCuentas();
            LibroDiario.IniciarDiario();
            Console.ReadKey();
            Console.Clear();

            do
            {
                Console.WriteLine(menuPrincipal);
                opcionElegida = Console.ReadLine().ToUpper();

                switch (opcionElegida)
                {
                case "I":
                    LibroDiario.AgregarAsiento();
                    break;

                case "V":
                    Console.WriteLine("\tLibro Diario Actual:\n");
                    LibroDiario.ImprimirDiario();
                    Console.WriteLine("----Presione una tecla para continuar----\n");
                    Console.ReadKey();
                    break;

                case "P":
                    Console.WriteLine("\tPlan de Cuentas Actual:\n");
                    LibroDiario.ImprimirPlanDeCuentas();
                    Console.WriteLine("----Presione una tecla para continuar----\n");
                    Console.ReadKey();
                    break;

                case "M":
                    do
                    {
                        Console.WriteLine(menuModificarPlan);
                        opcionElegida = Console.ReadLine().ToUpper();

                        if (opcionElegida == "A")
                        {
                            LibroDiario.AgregarCuenta();
                        }
                        else if (opcionElegida == "E")
                        {
                            LibroDiario.QuitarCuenta();
                        }
                        else if (opcionElegida != "A" && opcionElegida != "E" && opcionElegida != "V")
                        {
                            Console.WriteLine($"'{opcionElegida}' no es una opcion valida\n");
                            Console.ReadKey();
                        }
                    } while (opcionElegida != "V");
                    break;
                }

                if (opcionElegida != "I" && opcionElegida != "V" && opcionElegida != "P" && opcionElegida != "M" && opcionElegida != "S")
                {
                    Console.WriteLine($"'{opcionElegida}' no es una opcion valida\n");
                    Console.ReadKey();
                }
            } while (opcionElegida != "S");

            Console.WriteLine("Saliendo al escritorio...");
            Console.ReadKey();
        }