Esempio n. 1
0
        public List <Cuenta> AsientoDeCierre(Compañia compañia, Usuario usuario, IEnumerable <FechaTransaccion> fechaTransaccions, Cuenta cuenta)
        {
            var meses = this.FechaCerrarMes(compañia, usuario);

            var mensaje   = "";
            var firstMont = fechaTransaccions.OrderBy(x => x.Fecha).LastOrDefault();

            //var lst = fechaTransaccions.OrderByDescending(x => x.Fecha).ToList();
            //var lst2 = fechaTransaccions.OrderBy(x => x.Fecha);
            foreach (FechaTransaccion item in fechaTransaccions.OrderBy(x => x.Fecha))

            {
                item.Cerrada = true;
                if (!CerrarMes(item, compañia, usuario, out mensaje))
                {
                    throw new Exception(mensaje);
                }
            }
            ///Una vez cerrado todos los mese debemos
            ///1- sacar el saldo del balance de comprobacion.
            ///   para esto usamos el ultimo mes en la lista
            ///2- Actualizar todas las cuentas en saldo cero y
            ///   poner el saldo en una cuenta
            ///
            ///  ***Guardar una copia de las cuentas para retornarla y generar el balance de
            ///  comprobación y que este pueda ser impreso
            CuentaCL      _cuentaCL = new CuentaCL();
            List <Cuenta> cuentas   = _cuentaCL.GetAll(compañia).ToList <Cuenta>();

            _cuentaCL.LLenarConSaldos(meses[0].Fecha, firstMont.Fecha, cuentas, compañia);
            var _cuenta = SaldoReporComprobacion(cuentas, cuenta);



            var rsl = _cuentaCL.GenerarSaldosEnCeroParaCierreDeAsieto(_cuenta, compañia, usuario, cuentas.Count);

            if (!rsl)
            {
                throw new Exception("error al guardar el saldo");
            }


            return(cuentas);
        }
Esempio n. 2
0
        public Boolean CerrarMes(FechaTransaccion t, Compañia compañia, Usuario user, out String mensaje)
        {
            ///Primero verificamos que este mes sea apto para cerrarse
            var meses = this.FechaCerrarMes(compañia, user);

            if (meses[0].Fecha == t.Fecha)
            {
                var cuentaCL = new CuentaCL();

                if (!BuscarAsientosDescuadrados(compañia, t, out mensaje))
                {
                    var lstCuentas = cuentaCL.GetAll(compañia).ToList <Cuenta>();

                    cuentaCL.LLenarConSaldos(t.Fecha, t.Fecha, lstCuentas, compañia);

                    if (_fechaDao.CerrarMes(t, compañia, user, lstCuentas, out mensaje))
                    {
                        mensaje = "Se cerro correctamente el mes!!!";
                        return(true);
                    }
                    else
                    {
                        mensaje = "No se pudo cerrar el mes!!!";
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                mensaje = "Este mes no se puede cerrar";
                return(false);
            }
        }