예제 #1
0
        public static List<EgresoDTO> importarEgresos(string ruta)
        {
            List<EgresoDTO> egresos = new List<EgresoDTO>();

            StreamReader objReader = new StreamReader(ruta);
            string sLine = "";
            ArrayList arrText = new ArrayList();

            while (sLine != null)
            {
                sLine = objReader.ReadLine();
                if (sLine != null)
                {
                    string[] columnas = sLine.Split(';');
                    if (columnas[0].Trim().Equals("CE"))
                    {
                        EgresoDTO e = new EgresoDTO();
                        //Pimera columna
                        e.TipoDocumento = 1;
                        //Segunda columna
                        e.Numero = long.Parse(columnas[1].Trim());
                        //Tercera columna
                        e.FechaAplica = DateTime.ParseExact(columnas[2].Trim(), "yyyy/dd/MM", CultureInfo.InvariantCulture);
                        //Quinta columna
                        e.Valor = Utilidades.parsearDecimal(columnas[3].Trim(), ',');
                        egresos.Add(e);
                    }
                }
            }
            objReader.Close();

            return egresos;
        }
        /// <summary>
        /// <para>Obtien la lista de egresos aplicados en la fecha indicada.</para>
        /// <para>CierreException.  Si la operación falla.</para>
        /// </summary>
        /// <param name="fecha">DateTime,  fecha a la que se aplicaron lo egresos.</param>
        /// <returns>Lista de DTO con la información de los egresos.</returns>
        public IList<EgresoDTO> consultarEgresosAplicados(DateTime fecha)
        {
            try
            {
                IList<EgresoDTO> dtos = new List<EgresoDTO>();
                IList vos = egresosDAO.consultarEgresosAplicados(fecha, fecha);

                foreach (EgresoVO vo in vos)
                {
                    EgresoDTO dto = new EgresoDTO();
                    dto.IdEgreso = vo.IdEgreso;
                    dto.TipoDocumento = vo.Documento;
                    dto.Numero = vo.Numero;
                    dto.Beneficiario = vo.Beneficiario;
                    dto.Valor = vo.Valor;
                    dto.Fecha = vo.Fecha;
                    dto.FechaAplica = vo.FechaAplica;

                    dtos.Add(dto);
                }

                return dtos;
            }
            catch (EstacionDBException ex)
            {
                throw new CierreException("No se pudo obtener los egresos aplicados a la fecha indicada", ex);
            }
        }
        /// <summary>
        /// <para>Elimina el egreso que recibe como parámetros.</para>
        /// </summary>
        /// <param name="egreso">EgrestoDTO debe contener al menos el campo IdEgreso.</param>
        /// <returns>int, número de egreso eliminados.</returns>
        public int eliminarEgreso(EgresoDTO egreso)
        {
            try
            {
                EgresoVO e = new EgresoVO();
                e.Beneficiario = egreso.Beneficiario;
                e.Documento = egreso.TipoDocumento;
                e.Fecha = egreso.Fecha;
                e.FechaAplica = egreso.FechaAplica;
                e.IdEgreso = egreso.IdEgreso;
                e.Isla = 0;
                e.Numero = egreso.Numero;
                e.Valor = egreso.Valor;

                return egresosDAO.eliminarEgreso(e);
            }
            catch (EstacionDBException ex)
            {
                throw new CierreException("No se pudo eliminar el egreso", ex);
            }
        }
        /// <summary>
        /// <para>Compara la información del egreso contenida en el DTO con la información
        /// registrada.  En caso de inconsistencia lanza una excepción de tipo
        /// CierreException con la respectiva descripción.</para>
        /// </summary>
        /// <param name="dto">EgresoDTO DTO con los datos a validar</param>
        public void validarEgreso(EgresoDTO dto)
        {
            EgresoVO vo = egresosDAO.consultarEgreso(dto.Numero);

            if (vo == null)
            {
                throw new CierreException("Egreso # " + dto.Numero + ".  No existe");
            }

            if (vo.Valor.CompareTo(dto.Valor) != 0)
            {
                throw new CierreException("Egreso # " + dto.Numero + ".  Diferencia de valor: [Registrado : "
                    + Utilidades.Utilidades.formatearDecimal(vo.Valor) + "][Archivo : "
                    + Utilidades.Utilidades.formatearDecimal(dto.Valor) + "]");
            }
            DateTime fechaVo = DateTime.Parse(vo.FechaAplica.ToString("yyyy/MM/dd"));
            DateTime fechaDto = DateTime.Parse(dto.FechaAplica.ToString("yyyy/MM/dd"));

            if (fechaVo.CompareTo(fechaDto) != 0)
            {
                throw new CierreException("Egreso # " + dto.Numero + ".  Fechas no coninciden: [Registrado : ]"
                    + fechaVo.ToShortDateString() + "][Archivo : "
                    + fechaDto.ToShortDateString() + "]");
            }
        }