public EditarPeriodoTarifarioPSLPRE(IEditarPeriodoTarifarioPSLVIS vistaActual, IucPeriodoTarifarioPSLVIS vistaTarifa) { try { this.vista = vistaActual; presentadorPeriodoTarifario = new ucPeriodoTarifarioPSLPRE(vistaTarifa); periodoTarifaBR = new DiaPeriodoTarifaBR(); dctx = FacadeBR.ObtenerConexion(); } catch (Exception ex) { this.MostrarMensaje("Inconsistencias al configurar el presentador", ETipoMensajeIU.ERROR, nombreClase + ".EditarTarifaPSLPRE:" + ex.Message); } }
private DiaPeriodoTarifaBO ConsultarTarifa(DiaPeriodoTarifaBO periodoTarifa) { try { if (periodoTarifa == null) { throw new Exception("Se esperaba el objeto PeriodoTarifaPSLBO"); } if (periodoTarifa.UnidadOperativaID == null) { throw new Exception("Se necesita el identificador de la Unidad Operativa para ver el Período Tarifario"); } List <DiaPeriodoTarifaBO> lstTemp = new List <DiaPeriodoTarifaBO>(); periodoTarifaBR = new DiaPeriodoTarifaBR(); lstTemp = periodoTarifaBR.ConsultarCompleto(dctx, periodoTarifa); if (lstTemp.Count == 0) { #region Si no existe un registro en la DB, es porque se agregó la UO pero no se ha configurado #region Obtener la seguridad UsuarioBO usr = new UsuarioBO { Id = this.vista.UsuarioID }; AdscripcionBO adscripcion = new AdscripcionBO { UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadOperativaID } }; SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usr, adscripcion); #endregion #region Asignar valores default para insertar periodoTarifa.IncluyeSD = false; periodoTarifa.DiasDuracionSemana = 0; periodoTarifa.DiasDuracionMes = 0; periodoTarifa.InicioPeriodoDia = 1; periodoTarifa.InicioPeriodoSemana = 0; periodoTarifa.InicioPeriodoMes = 0; periodoTarifa.Auditoria = new AuditoriaBO() { UC = this.vista.UsuarioID, FC = DateTime.Now, UUA = this.vista.UsuarioID, FUA = DateTime.Now }; #endregion periodoTarifaBR.InsertarCompleto(dctx, periodoTarifa, seguridadBO); #endregion } if (lstTemp.Count > 1) { throw new Exception("Inconsistencias en los registros de la base datos, se encontro mas de un registro de la tarifa que desea buscar"); } return(lstTemp[0]); } catch (Exception ex) { throw new Exception(nombreClase + ".ConsultarPeriodoTarifario:Inconsistencias al consultar los datos del Período Tarifario." + ex.Message); } }
/// <summary> /// Calcula la duración días periodo dependiendo de los campos Periodo Unidad Operativa /// </summary> public void CalcularPeriodoTarifa() { try { if (this.vista.PeriodoTarifa != null) { DiaPeriodoTarifaBR DiaPerioBR = new DiaPeriodoTarifaBR(); this.vista.DuracionDiasPeriodo = DiaPerioBR.ObtenerPeriodoTarifa(this.dataContext, this.vista.UnidadOperativaID, (EPeriodosTarifa)this.vista.PeriodoTarifa); CalcularTarifas(); } } catch { throw new Exception(this.nombreClase + ".CalcularPeriodoTarifa: Error al obtener la duración días periodo"); } }
/// <summary> /// Calcula el MaximoHrsTurno dependiendo de los campos Periodo, Tarifa Turno y Unidad Operativa /// </summary> public void CalcularMaximoHrsTurno() { try { if (this.vista.PeriodoTarifa != null && this.vista.TarifaTurno != null) { DiaPeriodoTarifaBR DiaPerioBR = new DiaPeriodoTarifaBR(); this.vista.MaximoHrsTurno = DiaPerioBR.ObtenerMaximoHorasTurnoTarifa(this.dataContext, this.vista.UnidadOperativaID, (EPeriodosTarifa)this.vista.PeriodoTarifa, this.vista.TarifaTurno); CalcularTarifas(); } } catch (Exception ex) { throw new Exception(this.nombreClase + ".CalcularMaximoHrsTurno: Error al obtener el máximo hrs. turno"); } }
/// <summary> /// Establece la información Inicial en la Vista /// </summary> private void EstablecerInformacionInicial() { //Se establecen los tipos de archivos permitidos para adjuntar al contrato List <TipoArchivoBO> lstTiposArchivo = new TipoArchivoBR().Consultar(this.dctx, new TipoArchivoBO()); this.presentadorDocumentos.EstablecerTiposArchivo(lstTiposArchivo); this.presentadorDocumentos.RequiereObservaciones(false); #region Estableciendo configuración de días DiaPeriodoTarifaBR DiaPerioBR = new DiaPeriodoTarifaBR(); this.vista.IncluyeSD = DiaPerioBR.IncluyeSabadoDomingo(this.dctx, (int)this.vista.UnidadOperativaID); #endregion this.EstablecerProductoSATPredeterminado(); }
/// <summary> /// Asigna el periodo correspondiente con los días de contrato. /// </summary> /// <param name="diasRenta">Duración en días del contrato</param> private void EstablecerPeriodo(int?diasRenta) { try { //Si no existe tarifa agregada se coloca el periodo de tarifa sugerido de acuerdo al numero de días de contrato if (this.vista.Tarifa == null) { DiaPeriodoTarifaBR DiaPerioBR = new DiaPeriodoTarifaBR(); List <Object> listValues = DiaPerioBR.ObtenerPeriodoTarifa(this.dataContext, this.vista.UnidadOperativaID, diasRenta.Value); this.vista.PeriodoTarifa = (EPeriodosTarifa)listValues[0]; this.vista.DuracionDiasPeriodo = Convert.ToInt32(listValues[1]); } } catch (Exception ex) { throw new Exception(this.nombreClase + ".ObtenerPeriodo:Error al obtener el período"); } }
/// <summary> /// Registra un Contrato RO /// </summary> private void Registrar() { #region Se inicia la Transaccion dctx.SetCurrentProvider("Outsourcing"); Guid firma = Guid.NewGuid(); try { dctx.OpenConnection(firma); dctx.BeginTransaction(firma); } catch (Exception) { if (dctx.ConnectionState == ConnectionState.Open) { dctx.CloseConnection(firma); } throw new Exception("Se encontraron inconsistencias al insertar el Contrato."); } #endregion try { //Se obtiene la información a partir de la Interfaz de Usuario ContratoPSLBO bo = (ContratoPSLBO)this.InterfazUsuarioADato(); if (bo.Estatus == EEstatusContrato.EnPausa) { #region LLenar el anexo por cambios en la renovación. AnexosContratoPSLBO anexo = new AnexosContratoPSLBO(); anexo.FechaInicio = bo.FechaInicioActual; anexo.FechaFin = bo.FechaPromesaActual; anexo.FechaIntercambioUnidad = null; anexo.MontoTotalArrendamiento = bo.MontoTotalArrendamiento; anexo.TipoAnexoContrato = ETipoAnexoContrato.Contrato; anexo.Vigente = true; anexo.ContratoPSLID = this.vista.ContratoID; anexo.FC = this.vista.FUA; anexo.FUA = this.vista.FUA; anexo.UC = this.vista.UUA; anexo.UUA = this.vista.UUA; ArchivoBO archivo = new ArchivoBO(); archivo.Activo = true; archivo.Auditoria = new AuditoriaBO { FC = this.vista.FUA, FUA = this.vista.FUA, UC = this.vista.UUA, UUA = this.vista.UUA }; archivo.TipoAdjunto = ETipoAdjunto.AnexoContrato; archivo.TipoArchivo = this.presentadorDocumentos.Vista.TiposArchivo.Find(x => x.Extension.ToUpper() == "PDF"); Random random = new Random(); archivo.Nombre = "Anexo_" + DateTime.Now.ToShortDateString().Replace("/", string.Empty) + random.Next(99999).ToString() + ".pdf"; archivo.NombreCorto = archivo.Nombre; Dictionary <string, object> dataSources = new Dictionary <string, object>(); #region Consulta periodoTarifario. List <DiaPeriodoTarifaBO> lstTemp = new List <DiaPeriodoTarifaBO>(); DiaPeriodoTarifaBR periodoTarifaBR = new DiaPeriodoTarifaBR(); lstTemp = periodoTarifaBR.Consultar(dctx, new DiaPeriodoTarifaBO() { UnidadOperativaID = this.vista.UnidadOperativaID }); if (lstTemp.Count == 1) { dataSources.Add("PeriodoTarifa", lstTemp[0]); } if (!string.IsNullOrEmpty(bo.Divisa.MonedaDestino.Codigo)) { MonedaBO moneda = FacadeBR.ConsultarMoneda(this.dctx, new MonedaBO() { Codigo = bo.Divisa.MonedaDestino.Codigo }).FirstOrDefault(); dataSources.Add("Moneda", moneda); } #endregion dataSources["ContratoPSLBO"] = bo; ContratoAnexoROCRPT reporteCorrectivo = new ContratoAnexoROCRPT(dataSources); using (MemoryStream stream = new MemoryStream()) { reporteCorrectivo.CreateDocument(); reporteCorrectivo.ExportToPdf(stream); archivo.Archivo = stream.GetBuffer(); } anexo.AgregarAnexo(archivo); bo.AgregarAnexoContrato(anexo); #endregion #region Llenando información del pago GeneradorPagoPSLBR generadorPago = new GeneradorPagoPSLBR(); //Cuando se genera el pago se llenan los campos de acumulados de tarifas generadorPago.ObtenerPagos(new PagoContratoPSLBO(), bo, null, 0, ETipoPago.NORMAL); #endregion } //Se crea el objeto de seguridad UsuarioBO usuario = new UsuarioBO() { Id = this.vista.UsuarioID }; AdscripcionBO adscripcion = new AdscripcionBO() { UnidadOperativa = new UnidadOperativaBO() { Id = this.vista.UnidadOperativaID } }; SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion); //Se inserta en la base de datos this.controlador.InsertarCompleto(this.dctx, bo, seguridadBO); //Se consulta lo insertado para recuperar los ID DataSet ds = this.controlador.ConsultarSet(this.dctx, bo); if (ds.Tables[0].Rows.Count <= 0) { throw new Exception("Al consultar lo insertado no se encontraron coincidencias."); } if (ds.Tables[0].Rows.Count > 1) { throw new Exception("Al consultar lo insertado se encontró más de una coincidencia."); } bo.ContratoID = this.controlador.DataRowToContratoPSLBO(ds.Tables[0].Rows[0]).ContratoID; //El proceso de generación de pagos es eliminado de esta sección dctx.CommitTransaction(firma); //Se despliega la información en la Interfaz de Usuario this.DatoAInterfazUsuario(bo); } catch (Exception ex) { dctx.RollbackTransaction(firma); throw new Exception(this.nombreClase + ".Registrar:" + ex.Message); } finally { if (dctx.ConnectionState == ConnectionState.Open) { dctx.CloseConnection(firma); } } }