public void Levantar()
 {
     if (File.Exists(planDeCuenta))
     {
         using (var reader = new StreamReader(planDeCuenta))
         {
             while (!reader.EndOfStream)
             {
                 var linea = reader.ReadLine();
                 if (linea == "Codigo|Nombre|Tipo")
                 {
                     continue;
                 }
                 else
                 {
                     var unPlan = new PlanDeCuenta(linea);
                     planes.Add(unPlan);
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
        public void Iniciar()
        {
            const string opcionDebe  = "D";
            const string opcionHaber = "H";
            const string opcionSalir = "F";

            string       opcionMenu = "";
            int          nroAsiento;
            DateTime     laFecha;
            int          codigoCuenta;
            decimal      elMonto;
            decimal      totalDebe  = 0;
            decimal      totalHaber = 0;
            Diario       nuevoDiario;
            PlanDeCuenta unPlan = new PlanDeCuenta();

            unPlan.Levantar();

            Console.WriteLine("********************\nINGRESO DE ASIENTOS:\n********************\n");
            laFecha    = Validaciones.PedirFecha("Ingrese la fecha del asiento que desea cargar:");
            nroAsiento = ProximoNroAsiento();
            do
            {
                opcionMenu = Validaciones.PedirStrNoVac("Presione:\n\tD - Para cargar en el DEBE" +
                                                        "\n\tH - Para cargar en el HABER" +
                                                        "\n\tF - Para finalizar la carga del asiento actual\n");

                switch (opcionMenu)
                {
                case opcionDebe:
                    unPlan.ListarPlan();
                    Console.WriteLine();
                    do
                    {
                        codigoCuenta = Validaciones.PedirInt("Ingrese el Código de la cuenta en la que desea cargar:");
                        if (!unPlan.BuscarCodigo(codigoCuenta))
                        {
                            Console.WriteLine("El código ingresado no se encuentra en el Plan de Cuentas");
                        }
                    } while (!unPlan.BuscarCodigo(codigoCuenta));
                    elMonto     = Validaciones.PedirDecimal("Ingrese el monto que desea cargar:");
                    nuevoDiario = new Diario(nroAsiento, laFecha, codigoCuenta, elMonto, 0);
                    asiento.Add(nuevoDiario);

                    break;

                case opcionHaber:
                    unPlan.ListarPlan();
                    Console.WriteLine();
                    do
                    {
                        codigoCuenta = Validaciones.PedirInt("Ingrese el Código de la cuenta en la que desea cargar:");
                        if (!unPlan.BuscarCodigo(codigoCuenta))
                        {
                            Console.WriteLine("El código ingresado no se encuentra en el Plan de Cuentas");
                        }
                    } while (!unPlan.BuscarCodigo(codigoCuenta));
                    elMonto     = Validaciones.PedirDecimal("Ingrese el monto que desea cargar:");
                    nuevoDiario = new Diario(nroAsiento, laFecha, codigoCuenta, 0, elMonto);
                    asiento.Add(nuevoDiario);

                    break;

                case opcionSalir:

                    foreach (Diario dia in asiento)
                    {
                        if (dia.NroAsiento == nroAsiento)
                        {
                            totalDebe = totalDebe + dia.Debe;
                        }
                    }

                    foreach (Diario dia in asiento)
                    {
                        if (dia.NroAsiento == nroAsiento)
                        {
                            totalHaber = totalHaber + dia.Haber;
                        }
                    }

                    if (totalDebe != totalHaber)
                    {
                        if (totalDebe > totalHaber)
                        {
                            Console.WriteLine($"El DEBE tiene cargados ${totalDebe - totalHaber} más que el Haber.");
                        }
                        else
                        {
                            Console.WriteLine($"El HABER tiene cargados ${totalHaber - totalDebe} más que el Debe.");
                        }
                        Console.WriteLine("\nEste Asiento no puede guardarse.");

                        asiento.Clear();
                    }
                    else
                    {
                        Console.WriteLine("Ud. ha cargado el siguiente asiento diario:\n");
                        Console.WriteLine("NroAsiento |       Fecha         |CodigoCuenta |    Debe    |     Haber    |\n");
                        foreach (Diario d in asiento)
                        {
                            if (d.Fecha == laFecha)
                            {
                                Console.WriteLine($" {d.NroAsiento}         | {d.Fecha} |     {d.CodigoCuenta}       |      {d.Debe}     |   {d.Haber}");
                            }
                        }
                        Console.WriteLine();
                        foreach (Diario d in asiento)
                        {
                            unDiario.Add(d);
                        }
                        asiento.Clear();
                    }
                    break;

                default:
                    Console.WriteLine("Opción no válida");
                    break;
                }
            } while (opcionMenu != opcionSalir);
        }