예제 #1
0
        /// <summary>Invoca al Procedimiento Movimientoado que lista Descripcion Base.</summary>
        /// <param name="objFiltro">Parámetros para el filtro de Listar los Descripcion Base</param>
        ///<remarks>
        ///<list type = "bullet">
        ///<item><CreadoPor>Bryan Luna Vasquez.</CreadoPor></item>
        ///<item><FecCrea>12/02/2018</FecCrea></item></list>
        ///<list type="bullet">
        /// <item><FecActu>XX/XX/XXXX.</FecActu></item>
        /// <item><Resp>Responsable.</Resp></item>
        /// <item><Mot>Motivo.</Mot></item></list></remarks>
        public static CampaniaResponseDto ListarCampanias(CampaniaRequestDto request)
        {
            try
            {
                CampaniaResponseDto     response;
                List <CampaniaListaDto> listaCampanias;
                CampaniaFiltroDto       objFiltro;

                objFiltro = request.Filtro;

                listaCampanias = CampaniaData.ListarCampanias(objFiltro);

                response = new CampaniaResponseDto
                {
                    ListaCampanias = listaCampanias
                };

                return(response);
            }
            catch (Exception ex)
            {
                Log.RegistrarLog(NivelLog.Error, ex);
                throw;
            }
        }
예제 #2
0
        /// <summary>Invoca al Procedimiento almacenado que lista Usuarios.</summary>
        /// <param name="objFiltro">Parámetros para el filtro de Listar las Usuarios</param>
        ///<remarks>
        ///<list type = "bullet">
        ///<item><CreadoPor>Bryan Luna Vasquez.</CreadoPor></item>
        ///<item><FecCrea>19/02/2018</FecCrea></item></list>
        ///<list type="bullet">
        /// <item><FecActu>XX/XX/XXXX.</FecActu></item>
        /// <item><Resp>Responsable.</Resp></item>
        /// <item><Mot>Motivo.</Mot></item></list></remarks>
        public static LoginResponseDto Login(LoginRequestDto request)
        {
            try
            {
                LoginResponseDto      response;
                LoginListaDto         objLogin;
                ArchivoListaDto       objArchivo;
                List <OpcionListaDto> listaOpcionesPerfil;
                Campania             objCampaniaActual;
                DatosUsuarioListaDto objDatosUsuario;
                string usuario;
                string clave;
                string campania;

                usuario  = request.Usuario;
                clave    = request.Clave;
                objLogin = UsuarioData.Login(usuario);

                if (objLogin == null)
                {
                    BusinessException.Generar(Constantes.Mensajes.USUARIO_NO_EXISTE);
                }

                if (objLogin.Clave != Funciones.Encriptar(clave.ToUpper()))
                {
                    BusinessException.Generar(Constantes.Mensajes.CLAVE_USUARIO_INCORRECTA);
                }

                objDatosUsuario = UsuarioData.ListarDatosUsuario(objLogin.Codigo);

                objDatosUsuario.Codigo         = objLogin.Codigo;
                objDatosUsuario.Clave          = objLogin.Clave;
                objDatosUsuario.CodigoEdificio = objLogin.CodigoEdificio;
                objDatosUsuario.CodigoPerfil   = objLogin.CodigoPerfil;
                objDatosUsuario.CodigoPersona  = objLogin.CodigoPersona;
                objDatosUsuario.Nombre         = objLogin.Nombre;
                objDatosUsuario.Usuario        = objLogin.Usuario;
                objCampaniaActual = CampaniaData.ObtenerCampaniaActual((int)objDatosUsuario.CodigoEdificio);
                campania          = objCampaniaActual.Codigo;
                objDatosUsuario.CampaniaActual = campania;
                listaOpcionesPerfil            = OpcionData.ListaOpcionesPorPerfil(objLogin.CodigoPerfil);

                response = new LoginResponseDto
                {
                    ListaOpcionesPorPerfil = listaOpcionesPerfil,
                    Usuario = objDatosUsuario,
                    //FotoUsuario = objArchivo,
                };

                return(response);
            }
            catch (Exception ex)
            {
                Log.RegistrarLog(NivelLog.Error, ex);
                throw;
            }
        }
예제 #3
0
        /// <summary>Invoca al Procedimiento Movimientoado que lista Descripcion Base.</summary>
        /// <param name="objFiltro">Parámetros para el filtro de Listar los Descripcion Base</param>
        ///<remarks>
        ///<list type = "bullet">
        ///<item><CreadoPor>Bryan Luna Vasquez.</CreadoPor></item>
        ///<item><FecCrea>12/02/2018</FecCrea></item></list>
        ///<list type="bullet">
        /// <item><FecActu>XX/XX/XXXX.</FecActu></item>
        /// <item><Resp>Responsable.</Resp></item>
        /// <item><Mot>Motivo.</Mot></item></list></remarks>
        public static CampaniaResponseDto ObtenerEditorCampania(int edificioId, int campaniaId)
        {
            try
            {
                CampaniaResponseDto     response;
                List <GenericoListaDto> listaMeses;
                List <GenericoListaDto> listaConceptosGenerales;
                List <CampaniaDetalle>  listaConceptosPorCampania;
                List <ConceptoListaDto> listaConceptos;
                Campania objCampania;
                Campania objCampaniaAnterior;
                List <GenericoListaDto> listaCampanias;

                listaConceptosGenerales = ConceptoData.ListarConceptos(edificioId);
                listaMeses = new List <GenericoListaDto>();
                foreach (var item in Funciones.ListaMeses())
                {
                    listaMeses.Add(new GenericoListaDto {
                        Codigo = item.Codigo, Descripcion = item.Descripcion
                    });
                }
                objCampania = CampaniaData.ObtenerCampania(campaniaId);
                listaConceptosPorCampania = new List <CampaniaDetalle>();
                listaConceptos            = new List <ConceptoListaDto>();
                listaCampanias            = new List <GenericoListaDto>();
                foreach (var item in Funciones.ListarCampaniasParaFiltro())
                {
                    listaCampanias.Add(new GenericoListaDto {
                        Codigo = item.Codigo, Descripcion = item.Descripcion
                    });
                }

                if (objCampania != null)
                {
                    listaConceptosPorCampania = CampaniaDetalleData.ListarPorCampania(campaniaId);

                    foreach (var item in listaConceptosGenerales)
                    {
                        var objConcepto = listaConceptosPorCampania.FirstOrDefault(x => x.ConceptoId.ToString() == item.Codigo);

                        listaConceptos.Add(new ConceptoListaDto
                        {
                            ConceptoId     = Convert.ToInt32(item.Codigo),
                            NombreConcepto = item.Descripcion,
                            Monto          = (objConcepto != null) ? objConcepto.Monto : 0,
                            Existe         = (objConcepto != null)
                        });
                    }
                }
                else
                {
                    objCampaniaAnterior = CampaniaData.ObtenerUltimaCampania(edificioId);

                    listaConceptosPorCampania = CampaniaDetalleData.ListarPorCampania(objCampaniaAnterior.CampaniaId);

                    foreach (var item in listaConceptosGenerales)
                    {
                        var objConcepto = listaConceptosPorCampania.FirstOrDefault(x => x.ConceptoId.ToString() == item.Codigo);

                        listaConceptos.Add(new ConceptoListaDto
                        {
                            ConceptoId     = Convert.ToInt32(item.Codigo),
                            NombreConcepto = item.Descripcion,
                            Monto          = (objConcepto != null) ? objConcepto.Monto : 0,
                            Existe         = (objConcepto != null)
                        });
                    }
                }



                response = new CampaniaResponseDto
                {
                    ListaMeses              = listaMeses,
                    ListaConceptos          = listaConceptos,
                    Campania                = objCampania,
                    ListaCampaniasPlantilla = listaCampanias
                };

                return(response);
            }
            catch (Exception ex)
            {
                Log.RegistrarLog(NivelLog.Error, ex);
                throw;
            }
        }
예제 #4
0
        /// <summary>Invoca al Procedimiento Movimientoado que lista Descripcion Base.</summary>
        /// <param name="objFiltro">Parámetros para el filtro de Listar los Descripcion Base</param>
        ///<remarks>
        ///<list type = "bullet">
        ///<item><CreadoPor>Bryan Luna Vasquez.</CreadoPor></item>
        ///<item><FecCrea>12/02/2018</FecCrea></item></list>
        ///<list type="bullet">
        /// <item><FecActu>XX/XX/XXXX.</FecActu></item>
        /// <item><Resp>Responsable.</Resp></item>
        /// <item><Mot>Motivo.</Mot></item></list></remarks>
        public static void ActualizarCampania(CampaniaRequestDto request)
        {
            Campania objCampania;
            Campania objCampaniaAnterior;
            List <ConceptoListaDto> listaConceptos;
            int idCampania;

            objCampania         = request.Campania;
            idCampania          = objCampania.CampaniaId;
            objCampaniaAnterior = CampaniaData.ObtenerCampania(idCampania);
            objCampania.Codigo  = objCampania.Anio + objCampania.MesId.ToString("0#");
            listaConceptos      = request.ListaConceptos;

            //VALIDACIONES
            if (objCampaniaAnterior.FechaInicio != objCampania.FechaInicio || objCampaniaAnterior.FechaFin != objCampania.FechaFin)
            {
                if (CampaniaData.ValidaExisteFecha(objCampania))
                {
                    BusinessException.Generar("Las fechas ingresadas ya están ocupadas por otra campaña");
                }
            }

            if (objCampaniaAnterior.Codigo != objCampania.Codigo)
            {
                if (CampaniaData.ValidaExiste(objCampania))
                {
                    BusinessException.Generar("La campaña que está intentado registrar ya fué registrada anteriormente");
                }
            }


            try
            {
                using (TransactionScope tran = new TransactionScope())
                {
                    CampaniaData.Actualizar(objCampania);
                    CampaniaDetalleData.EliminarPorCampania(idCampania);

                    foreach (var item in listaConceptos)
                    {
                        if (item.Existe)
                        {
                            var objDetalle = new CampaniaDetalle
                            {
                                CampaniaId = idCampania,
                                ConceptoId = item.ConceptoId,
                                Monto      = item.Monto
                            };
                            CampaniaDetalleData.Insertar(objDetalle);
                        }
                    }

                    tran.Complete();
                }
            }
            catch (Exception ex)
            {
                Log.RegistrarLog(NivelLog.Error, ex);
                throw;
            }
        }
예제 #5
0
        /// <summary>Invoca al Procedimiento Movimientoado que lista Descripcion Base.</summary>
        /// <param name="objFiltro">Parámetros para el filtro de Listar los Descripcion Base</param>
        ///<remarks>
        ///<list type = "bullet">
        ///<item><CreadoPor>Bryan Luna Vasquez.</CreadoPor></item>
        ///<item><FecCrea>12/02/2018</FecCrea></item></list>
        ///<list type="bullet">
        /// <item><FecActu>XX/XX/XXXX.</FecActu></item>
        /// <item><Resp>Responsable.</Resp></item>
        /// <item><Mot>Motivo.</Mot></item></list></remarks>
        public static void InsertarCampania(CampaniaRequestDto request)
        {
            Campania objCampania;
            List <ConceptoListaDto> listaConceptos;
            List <ConceptoListaDto> listaConceptosSeleccionados;
            int     idCampania;
            int     estadoActivo;
            decimal totalCampania;

            totalCampania               = 0;
            estadoActivo                = 1;
            objCampania                 = request.Campania;
            listaConceptos              = request.ListaConceptos;
            objCampania.Codigo          = objCampania.Anio + objCampania.MesId.ToString("0#");
            objCampania.EstadoId        = estadoActivo;
            listaConceptosSeleccionados = new List <ConceptoListaDto>();

            //INICIO VALIDACIONES
            if (CampaniaData.ValidaExisteFecha(objCampania))
            {
                BusinessException.Generar("Las fechas ingresadas ya están ocupadas por otra campaña");
            }

            if (CampaniaData.ValidaExiste(objCampania))
            {
                BusinessException.Generar("La campaña que está intentado registrar ya fué registrada anteriormente");
            }

            foreach (var item in listaConceptos)
            {
                if (item.Existe)
                {
                    listaConceptosSeleccionados.Add(item);
                }
            }

            if (listaConceptos.Count == 0)
            {
                BusinessException.Generar("Debe seleccionar por lo menos un gasto");
            }

            foreach (var item in listaConceptosSeleccionados)
            {
                if (item.Monto <= 0)
                {
                    BusinessException.Generar("Los conceptos seleccionados deben tener un monto mayor a 0");
                }
                totalCampania += item.Monto;
            }
            //FIN VALIDACIONES
            objCampania.Total = totalCampania;

            try
            {
                using (TransactionScope tran = new TransactionScope())
                {
                    idCampania = CampaniaData.Insertar(objCampania);

                    foreach (var item in listaConceptosSeleccionados)
                    {
                        var objDetalle = new CampaniaDetalle
                        {
                            CampaniaId = idCampania,
                            ConceptoId = item.ConceptoId,
                            Monto      = item.Monto
                        };
                        CampaniaDetalleData.Insertar(objDetalle);
                    }

                    tran.Complete();
                }
            }
            catch (Exception ex)
            {
                Log.RegistrarLog(NivelLog.Error, ex);
                throw;
            }
        }
예제 #6
0
        /// <summary>Invoca al Procedimiento almacenado que lista Usuarios.</summary>
        /// <param name="objFiltro">Parámetros para el filtro de Listar las Usuarios</param>
        ///<remarks>
        ///<list type = "bullet">
        ///<item><CreadoPor>Bryan Luna Vasquez.</CreadoPor></item>
        ///<item><FecCrea>19/02/2018</FecCrea></item></list>
        ///<list type="bullet">
        /// <item><FecActu>XX/XX/XXXX.</FecActu></item>
        /// <item><Resp>Responsable.</Resp></item>
        /// <item><Mot>Motivo.</Mot></item></list></remarks>
        public static HomeResponseDto ListaDatosHome(int depaId)
        {
            try
            {
                HomeResponseDto         response;
                string                  campaniaActual;
                decimal                 deudaActual;
                int                     campaniasDebe;
                int                     diasRetraso;
                string                  textoMostrarDias;
                string                  textoAlDia;
                bool                    tieneRetraso;
                DateTime?               fechaUltimoVencimiento;
                List <GenericoListaDto> listaCampanias;
                List <ReporteGastosMensualEdificioResumido> listaGastosMensualResumido;
                List <DepasEstadoHomeListaDto> listaDepasEstado;
                List <ReporteEstadoCuentaMensualResumidoListaDto> listaReporteEstadoCuentaMensualResumido;
                DateTime     fechaActual;
                int          edificioId;
                Departamento objDepa;
                Campania     objCampaniaActual;

                objDepa        = DepartamentoData.ObtenerDepartamento(depaId);
                edificioId     = objDepa.EdificioId;
                deudaActual    = DepartamentoData.ObtenerDeudaActual(depaId);
                campaniasDebe  = DepartamentoData.ObtenerCampaniasDebe(depaId);
                listaCampanias = new List <GenericoListaDto>();
                foreach (var item in Funciones.ListarCampaniasParaFiltro())
                {
                    listaCampanias.Add(new GenericoListaDto {
                        Codigo = item.Codigo, Descripcion = item.Descripcion
                    });
                }
                listaGastosMensualResumido = CampaniaData.ReporteProgresoMensualEdificioResumido(edificioId);
                listaGastosMensualResumido = listaGastosMensualResumido.OrderBy(x => x.Campania).ToList();
                fechaUltimoVencimiento     = EstadoCuentaData.ObtenerFechaPrimerVencido(depaId);
                fechaActual       = DateTime.Now;
                diasRetraso       = (fechaActual - fechaUltimoVencimiento).Value.Days;
                objCampaniaActual = CampaniaData.ObtenerCampaniaActual(edificioId);
                listaReporteEstadoCuentaMensualResumido = EstadoCuentaData.ReporteMensualResumido(depaId);
                listaReporteEstadoCuentaMensualResumido = listaReporteEstadoCuentaMensualResumido.OrderBy(x => x.Anio).ThenBy(x => x.MesId).ToList();
                //listaReporteEstadoCuentaMensualResumido = listaReporteEstadoCuentaMensualResumido.OrderBy(x => x.MesId).ToList();
                campaniaActual = objCampaniaActual.Codigo;

                if (diasRetraso > 0)
                {
                    tieneRetraso     = true;
                    textoAlDia       = Constantes.Mensajes.TEXTO_NOAL_DIA;
                    textoMostrarDias = string.Format(Constantes.Mensajes.DIAS_RETRASO, diasRetraso);
                }
                else if (diasRetraso < 0)
                {
                    tieneRetraso     = false;
                    textoAlDia       = Constantes.Mensajes.TEXTO_AL_DIA;
                    textoMostrarDias = string.Format(Constantes.Mensajes.DIAS_FALTANTES, diasRetraso);
                }
                else
                {
                    tieneRetraso     = true;
                    textoAlDia       = Constantes.Mensajes.TEXTO_NOAL_DIA;
                    textoMostrarDias = string.Format(Constantes.Mensajes.HOY_DIOPAGO);
                }

                listaDepasEstado = DepartamentoData.ListarEstadosHome(edificioId);

                foreach (var item in listaDepasEstado)
                {
                    item.Debe = ((item.FechaVencimiento <= fechaActual || item.FechaVencimiento == null) && item.Saldo > 0);
                }

                foreach (var item in listaReporteEstadoCuentaMensualResumido)
                {
                    item.Campania = Funciones.ObtenerDescripcionCampania(item.MesId, item.Anio);
                    item.AlDia    = !(item.FechaVencimiento <= fechaActual && item.Saldo > 0);
                }

                response = new HomeResponseDto
                {
                    CampaniaActual      = campaniaActual,
                    DeudaActual         = deudaActual,
                    CampaniasDebe       = campaniasDebe,
                    ListaCampanias      = listaCampanias,
                    ListaDepasEstado    = listaDepasEstado,
                    ListaGastosMensual  = listaGastosMensualResumido,
                    TieneRetraso        = tieneRetraso,
                    TextoMostrarRetraso = textoMostrarDias,
                    TextoAlDia          = textoAlDia,
                    ListaReporteEstadoCuentaResumido = listaReporteEstadoCuentaMensualResumido
                };

                return(response);
            }
            catch (Exception ex)
            {
                Log.RegistrarLog(NivelLog.Error, ex);
                throw;
            }
        }