/// <summary> /// Realiza la búsqueda de bienes con su descripción completa /// </summary> /// <param name="filtro">Filtro de búsqueda</param> /// <returns>Listado de bienes con su descripción completa</returns> public ProcessResult <List <BienResponse> > ObtenerDescripcionCompletaBien(BienRequest filtro) { ProcessResult <List <BienResponse> > resultado = new ProcessResult <List <BienResponse> >(); try { List <BienLogic> listado = bienLogicRepository.ObtenerDescripcionCompletaBien(filtro.Descripcion); var listaPeriodoAlquilerBien = politicaService.ListaPeriodoAlquilerBien().Result; resultado.Result = new List <BienResponse>(); foreach (var registro in listado) { var listaTarifa = new List <BienAlquilerResponse>(); if (registro.CodigoTipoTarifa == DatosConstantes.TipoTarifa.Escalonado) { listaTarifa = ListarBienAlquiler(registro.CodigoBien).Result; } var bien = BienAdapter.ObtenerDescripcionCompletaBien(registro, listaTarifa, listaPeriodoAlquilerBien); resultado.Result.Add(bien); } } catch (Exception ex) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <BienService>(ex); } return(resultado); }
/// <summary> /// Método que registra y/o Edita un Bien /// </summary> /// <param name="objRqst">objeto request del tipo Bien</param> /// <returns>Retorna entero, 1 transacción Ok.</returns> public ProcessResult <Object> RegistraEditaBien(BienRequest objRqst) { ProcessResult <Object> rpta = new ProcessResult <Object>(); BienEntity entidad = BienAdapter.ObtenerBienEntityDeRequest(objRqst); try { using (TransactionScope tsc = new TransactionScope(TransactionScopeOption.Required)) { if (entidad.CodigoBien == Guid.Empty) { entidad.CodigoBien = Guid.NewGuid(); bienRepository.Insertar(entidad); } else { var entidadUpdate = bienRepository.GetById(entidad.CodigoBien); entidadUpdate.CodigoTipoBien = entidad.CodigoTipoBien; entidadUpdate.CodigoIdentificacion = entidad.CodigoIdentificacion; entidadUpdate.NumeroSerie = entidad.NumeroSerie; entidadUpdate.Descripcion = entidad.Descripcion; entidadUpdate.Marca = entidad.Marca; entidadUpdate.Modelo = entidad.Modelo; entidadUpdate.FechaAdquisicion = entidad.FechaAdquisicion; entidadUpdate.TiempoVida = entidad.TiempoVida; entidadUpdate.ValorResidual = entidad.ValorResidual; entidadUpdate.CodigoTipoTarifa = entidad.CodigoTipoTarifa; entidadUpdate.CodigoPeriodoAlquiler = entidad.CodigoPeriodoAlquiler; entidadUpdate.ValorAlquiler = entidad.ValorAlquiler; entidadUpdate.CodigoMoneda = entidad.CodigoMoneda; entidadUpdate.MesInicioAlquiler = entidad.MesInicioAlquiler; entidadUpdate.AnioInicioAlquiler = entidad.AnioInicioAlquiler; bienRepository.Editar(entidadUpdate); } rpta.Result = bienRepository.GuardarCambios(); var RegistraHist = RegistraHistBienRegistro(entidad.NumeroSerie, entidad.Descripcion, entidad.Marca, entidad.Modelo); tsc.Complete(); } } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <BienService>(ex); } return(rpta); }
/// <summary> /// Retorna información del bien alquiler por código. /// </summary> /// <param name="codigoBienAlquiler">código del bien alquiler</param> /// <returns>Información del bien alquiler</returns> public ProcessResult <BienAlquilerResponse> RetornaBienAlquilerPorId(Guid codigoBienAlquiler) { ProcessResult <BienAlquilerResponse> rpta = new ProcessResult <BienAlquilerResponse>(); try { BienAlquilerEntity entBienAlquiler = bienAlquilerLogicRepository.GetById(codigoBienAlquiler); rpta.Result = new BienAlquilerResponse(); rpta.Result = BienAdapter.ObtenerBienAlquilerResponseDeEntity(entBienAlquiler); } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <BienService>(ex); } return(rpta); }
/// <summary> /// Retorna la lista del descripciones de campos del bien. /// </summary> /// <param name="tipoContenido">código del tipo de contenido</param> /// <returns>Lista información de descripciones de campos del bien por tipo de contenido</returns> public ProcessResult <List <BienRegistroResponse> > ListaBienRegistro(string tipoContenido) { ProcessResult <List <BienRegistroResponse> > rpta = new ProcessResult <List <BienRegistroResponse> >(); BienRegistroResponse itemrpta; try { rpta.Result = new List <BienRegistroResponse>(); List <BienRegistroLogic> result = bienLogicRepository.ListaBienRegistro(tipoContenido); foreach (BienRegistroLogic item in result) { itemrpta = new BienRegistroResponse(); itemrpta = BienAdapter.ObtenerBienRegistroResponseDeLogic(item); rpta.Result.Add(itemrpta); } } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <BienService>(ex); } return(rpta); }
/// <summary> /// Método que retorna la Lista de Bienes Alquiler /// </summary> /// <param name="filtro">objeto request del tipo Bien</param> /// <returns>Lista de Bien-Alquiler para la bandeja</returns> public ProcessResult <List <BienAlquilerResponse> > ListarBienAlquiler(Guid codigoBien) { ProcessResult <List <BienAlquilerResponse> > rpta = new ProcessResult <List <BienAlquilerResponse> >(); BienAlquilerResponse itemrpta; try { var listaBienAlquiler = bienLogicRepository.ListaBienAlquiler(codigoBien); rpta.Result = new List <BienAlquilerResponse>(); foreach (BienAlquilerLogic itemLogic in listaBienAlquiler) { itemrpta = new BienAlquilerResponse(); itemrpta = BienAdapter.ObtenerBienAlquilerResponseDeLogic(itemLogic); rpta.Result.Add(itemrpta); } } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <BienService>(ex); } return(rpta); }
/// <summary> /// Método que retorna la Lista de Bienes /// </summary> /// <param name="filtro">objeto request del tipo Bien</param> /// <returns>Lista de Bienes</returns> public ProcessResult <List <BienResponse> > ListarBienes(BienRequest filtro, List <CodigoValorResponse> plstTipoBien = null, List <CodigoValorResponse> plstTipoTarifa = null, List <CodigoValorResponse> plstMoneda = null, List <CodigoValorResponse> plstPeriodoAlq = null) { ProcessResult <List <BienResponse> > rpta = new ProcessResult <List <BienResponse> >(); List <CodigoValorResponse> listaTipoBien; List <CodigoValorResponse> listaTipoTarifa; List <CodigoValorResponse> listaPeriodoAlq; List <CodigoValorResponse> listaMoneda; BienResponse itemrpta; try { if (plstTipoBien != null) { listaTipoBien = plstTipoBien; } else { listaTipoBien = politicaService.ListaTipoBien().Result; } if (plstTipoTarifa != null) { listaTipoTarifa = plstTipoTarifa; } else { listaTipoTarifa = politicaService.ListaTipoTarifaBien().Result; } if (plstPeriodoAlq != null) { listaPeriodoAlq = plstPeriodoAlq; } else { listaPeriodoAlq = politicaService.ListaPeriodoAlquilerBien().Result; } if (plstMoneda != null) { listaMoneda = plstMoneda; } else { listaMoneda = politicaService.ListarMoneda().Result; } var listaBien = bienLogicRepository.ListaBandejaBien(filtro.CodigoIdentificacion, filtro.CodigoTipoBien, filtro.NumeroSerie, filtro.Descripcion, filtro.Marca, filtro.Modelo, filtro.FechaInicio, filtro.FechaFin, filtro.CodigoTipoTarifa); rpta.Result = new List <BienResponse>(); foreach (BienLogic itemLogic in listaBien) { itemrpta = new BienResponse(); itemrpta = BienAdapter.ObtenerBienResponseDeLogic(itemLogic, listaTipoBien, listaTipoTarifa, listaMoneda, listaPeriodoAlq); rpta.Result.Add(itemrpta); } } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <BienService>(ex); } return(rpta); }
/// <summary> /// Método que registra y/o Edita un Bien Alquiler /// </summary> /// <param name="objRqst">objeto request del tipo BienAlquiler</param> /// <returns>Retorna entero, 1 si transacción satisfactoria y -1 si hubo Error.</returns> public ProcessResult <Object> RegistraEditaBienAlquiler(BienAlquilerRequest objRqst) { ProcessResult <Object> rpta = new ProcessResult <Object>(); BienAlquilerEntity entidad = BienAdapter.ObtenerBienAlquilerEntityDeRequest(objRqst); List <BienAlquilerLogic> listaAux = new List <BienAlquilerLogic>(); int existeSinLimite = 0, existeCantidadHora = 0; listaAux = bienLogicRepository.ListaBienAlquiler((Guid)objRqst.CodigoBien); /*Verificamos si existe ya un registro con Limite.*/ if (entidad.IndicadorSinLimite) { var listaBienAlquiler = listaAux.FindAll(x => x.IndicadorSinLimite == true).ToList(); if (listaBienAlquiler.Count > 0) { if (entidad.CodigoBienAlquiler == Guid.Empty)//es nu nuevo registro y ya existe uno con Indicador. { existeSinLimite = 1; } else { if (listaBienAlquiler[0].CodigoBienAlquiler != entidad.CodigoBienAlquiler) { existeSinLimite = 1; } } } } if (entidad.CantidadLimite > 0) { var listaBienAlquiler = listaAux.FindAll(x => x.CantidadLimite == entidad.CantidadLimite).ToList(); if (listaBienAlquiler != null && listaBienAlquiler.Count > 0) { if (entidad.CodigoBienAlquiler == Guid.Empty)//es nu nuevo registro y ya existe uno con esa Cantidad. { existeCantidadHora = 1; } else { if (listaBienAlquiler[0].CodigoBienAlquiler != entidad.CodigoBienAlquiler) { existeCantidadHora = 1; } } } } if (existeSinLimite > 0) { rpta.Result = "Sólo puede existir un registro con el indicador Sin Límite, verifique.."; rpta.IsSuccess = false; return(rpta); } if (existeCantidadHora > 0) { rpta.Result = "No puede ingresar cantidad de horas duplicadas, verifique."; rpta.IsSuccess = false; return(rpta); } try { if (entidad.CodigoBienAlquiler == Guid.Empty) { entidad.CodigoBienAlquiler = Guid.NewGuid(); bienAlquilerRepository.Insertar(entidad); } else { var entidadUpdate = bienAlquilerRepository.GetById(entidad.CodigoBienAlquiler); entidadUpdate.CodigoBien = entidad.CodigoBien; entidadUpdate.IndicadorSinLimite = entidad.IndicadorSinLimite; entidadUpdate.CantidadLimite = entidad.CantidadLimite; entidadUpdate.Monto = entidad.Monto; bienAlquilerRepository.Editar(entidadUpdate); } rpta.Result = bienAlquilerRepository.GuardarCambios(); } catch (Exception ex) { rpta.IsSuccess = false; rpta.Exception = new ApplicationLayerException <BienService>(ex); } return(rpta); }