/// <summary> /// Inicializa la vista para Cerrar un contrato /// </summary> public void Inicializar() { try { informacionGeneralPRE.Inicializar(); informacionPagoPRE.Inicializar(); clienteContratoPRE.Inicializar(); datosRentaPRE.Inicializar(); herramientasPRE.Inicializar(); vista.CodigoUltimoObjeto = "UltimoContratoFSLBO"; ValidarEstadoContrato(); ContratoFSLBO contrato = vista.UltimoObjeto; DatosAInterfazUsuario(contrato); informacionGeneralPRE.Vista.ConfigurarModoConsultar(); informacionPagoPRE.Vista.ConfigurarModoConsultar(); clienteContratoPRE.Vista.ConfigurarModoConsultar(); datosRentaPRE.Vista.ConfigurarModoConsultar(); lineaContratoPRE.Vista.ConfigurarModoConsultar(); finalizacionPRE.EstablecerModoEdicion(true); clienteContratoPRE.Vista.HabilitarConsultaDireccionCliente(false); herramientasPRE.vista.HabilitarOpciones(false); herramientasPRE.vista.OcultarFormatosContrato(); herramientasPRE.vista.OcultarPlantillas(); EstablecerSeguridad(); } catch (Exception ex) { throw new Exception(nombreClase + ".Inicializar: " + ex.Message); } }
/// <summary> /// Despliega la informacion del contrato en la Vista /// </summary> /// <param name="contrato"></param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { if (contrato == null) { contrato = new ContratoFSLBO(); } if (contrato.Sucursal == null) { contrato.Sucursal = new SucursalBO(); } if (contrato.Divisa == null) { contrato.Divisa = new DivisaBO(); } if (contrato.Divisa.MonedaDestino == null) { contrato.Divisa.MonedaDestino = new MonedaBO(); } vista.FechaContrato = contrato.FechaContrato; if (contrato.Sucursal.Id != null) { vista.EstablecerSucursalSeleccionada(contrato.Sucursal.Id); } if (contrato.Divisa.MonedaDestino.Codigo != null) { vista.EstablecerMonedaSeleccionada(contrato.Divisa.MonedaDestino.Codigo); } vista.Representante = contrato.Representante; vista.PorcentajePenalizacion = contrato.PorcentajePenalizacion; }
/// <summary> /// Inicializa la vista para editar un contrato /// </summary> public void Inicializar() { herramientasPRE.Inicializar(); vista.CodigoUltimoObjeto = "UltimoContratoFSLBO"; DesplegarTiposArchivos(); ContratoFSLBO contrato = vista.UltimoObjeto; documentosPRE.ModoEditable(true); if (contrato != null && contrato.DocumentosAdjuntos != null && contrato.DocumentosAdjuntos.Count > 0) { contrato.DocumentosAdjuntos = contrato.DocumentosAdjuntos.Where(archivo => archivo.Activo == true).ToList(); } DatosAInterfazUsuario(contrato); herramientasPRE.vista.HabilitarOpcionesEdicion(); herramientasPRE.vista.DeshabilitarOpcionesEditarContratoFSL(); herramientasPRE.vista.MarcarOpcionAgregarDocumentos(); herramientasPRE.vista.OcultarFormatosContrato(); herramientasPRE.vista.OcultarPlantillas(); this.EstablecerSeguridad();//SC_0008 }
/// <summary> /// Registra el nuevo contrato en la base de datos /// </summary> /// <param name="contrato">Contrato a Registrar</param> /// <returns>Retorna el Identificador del Nuevo Contrato</returns> private int? GuardarContrato(ContratoFSLBO contrato) { try { //SC_0008 SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, new UsuarioBO { Id = this.vista.UsuarioID }, new AdscripcionBO { Departamento = new DepartamentoBO(), Sucursal = new SucursalBO(), UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadAdscripcionID } }); //END SC_0008 var contratoBR = new ContratoFSLBR(); contratoBR.InsertarCompleto(dataContext, contrato, seguridadBO); DataSet ds = contratoBR.ConsultarSet(dataContext, contrato); if (ds.Tables[0].Rows.Count > 0) { return ds.Tables[0].Rows[0].Field<int>("ContratoID"); } return null; } catch (Exception ex) { throw new Exception(nombreClase + ".GuardarContrato:" + ex.Message); } }
/// <summary> /// Despliega los datos en la interfaz de usuario /// </summary> /// <param name="contrato">contrato que contiene la informacion a desplegar</param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { if (contrato == null) { contrato = new ContratoFSLBO(); } #region Cuenta Bancaria //if(contrato.Banco == null) contrato.Banco = new Banco(); //vista.Banco = contrato.Banco.Nombre != null && !string.IsNullOrEmpty(contrato.Banco.Nombre) // ? contrato.Banco.Nombre // : null; //vista.Beneficiario = contrato.Banco.Beneficiario != null && !string.IsNullOrEmpty(contrato.Banco.Beneficiario) // ? contrato.Banco.Beneficiario // : null; //vista.EstablecerCuentaBancariaSeleccionada(contrato.Banco.Id); #endregion vista.FechaInicioContrato = contrato.FechaInicioContrato; CalcularFechaTerminacionContrato(contrato.Plazo); #region Cuenta Bancaria //vista.Lugar = contrato.Banco.Ciudad != null && !string.IsNullOrEmpty(contrato.Banco.Ciudad) // ? contrato.Banco.Ciudad // : null; #endregion vista.Mensualidad = contrato.CalcularMensualidad(); vista.Total = contrato.CalcularTotalAPagar(); vista.DiasPago = contrato.DiasPago; }
/// <summary> /// Guarda un Contrato con Estatus de Borrador /// </summary> public void GuardarContratoBorrador() { string resultado = ValidarContratoBorrador(); if (!string.IsNullOrEmpty(resultado)) { vista.MostrarMensaje(resultado, ETipoMensajeIU.INFORMACION); return; } try { ContratoFSLBO contrato = InterfazUsuarioADatos(); contrato.Estatus = EEstatusContrato.Borrador; int? contratoID = GuardarContrato(contrato); if (contratoID != null) { vista.EstablecerPaqueteNavegacion(vista.Clave, contrato); vista.MostrarMensaje("Se ha guardado del contrato exitosamente.", ETipoMensajeIU.EXITO); vista.IrADetalle(); } else vista.MostrarMensaje("Inconsistencias al intentar guardar el contrato.", ETipoMensajeIU.ADVERTENCIA); } catch (Exception ex) { throw new Exception(nombreClase + ".GuardarContratoBorrador:" + ex.Message); } }
/// <summary> /// Actualiza la lista de documentos /// </summary> public void ActualizarDocumentos() { try { //SC_0008 SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, new UsuarioBO { Id = this.vista.UsuarioID }, new AdscripcionBO { Departamento = new DepartamentoBO(), Sucursal = new SucursalBO(), UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadAdscripcionID } }); //End SC_0008 ContratoFSLBO contrato = vista.UltimoObjeto; List <ArchivoBO> adjuntos = documentosPRE.Vista.ObtenerArchivos(); foreach (ArchivoBO adjuntoContratoBo in adjuntos) { adjuntoContratoBo.TipoAdjunto = ETipoAdjunto.ContratoFSL; } contrato.DocumentosAdjuntos = adjuntos; // Se agrega la Auditoria de cada uno de los documentos adjuntos foreach (ArchivoBO adjunto in contrato.DocumentosAdjuntos) { if (adjunto.Id == null) { adjunto.Auditoria = new AuditoriaBO { FC = contrato.FUA, UC = contrato.UUA, FUA = contrato.FUA, UUA = contrato.UUA }; } else { adjunto.Auditoria.FUA = contrato.FUA; adjunto.Auditoria.UUA = contrato.UUA; } } // Se actualiza el Contrato var contratoBR = new ContratoBR(); contratoBR.ActualizarDocumento(dataContext, contrato, vista.UltimoObjeto, seguridadBO);//SC_0008 vista.EstablecerPaqueteNavegacion(vista.Codigo, contrato); vista.IrADetalleContrato(); vista.MostrarMensaje("Se han actualizado los documentos del contrato exitosamente.", ETipoMensajeIU.EXITO); } catch (Exception ex) { vista.MostrarMensaje("Inconsistencia al actualizar los documentos del contrato", ETipoMensajeIU.ERROR, nombreClase + ".AgregarDocumentos:" + ex.Message); } }
/// <summary> /// Valida que el contrato a cerrar se encuentre en curso. /// </summary> public void ValidarEstadoContrato() { ContratoFSLBO contrato = vista.UltimoObjeto; if (contrato == null || contrato.Estatus != EEstatusContrato.EnCurso) { vista.RedirigirSinPermisoAcceso(); } }
/// <summary> /// Despliega los datos del contrato en la interfaz de usuario /// </summary> /// <param name="contrato">Contrato que contiene los datos</param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { vista.ContratoID = contrato.ContratoID; vista.Estatus = contrato.Estatus; if (contrato.Sucursal != null && contrato.Sucursal.UnidadOperativa != null) { vista.UnidadOperativaContratoID = contrato.Sucursal.UnidadOperativa.Id; } herramientasPRE.DatosAInterfazUsuario(contrato); documentosPRE.CargarListaArchivos(contrato.DocumentosAdjuntos, documentosPRE.Vista.TiposArchivo); }
/// <summary> /// Despliega los datos del contrato en la interfaz de usuario /// </summary> /// <param name="contrato">Contrato FSL que contiene los datos a desplegar</param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { contrato = contrato ?? new ContratoFSLBO(); vista.NumeroContrato = contrato.NumeroContrato != null && !string.IsNullOrEmpty(contrato.NumeroContrato) ? contrato.NumeroContrato : null; vista.EstatusContrato = contrato.Estatus; vista.Configurar(contrato.Estatus); }
/// <summary> /// Establece el paquete navegacion de UltimoContrato para Edicion. /// </summary> /// <param name="clave">Clave del paquete de navegacion</param> /// <param name="contrato">Contrato a editar</param> public void EstablecerPaqueteNavegacionEditar(string clave, ContratoFSLBO contrato) { if (!String.IsNullOrEmpty(clave)) { Session[clave] = contrato; } else { throw new Exception(NombreClase + ".EstablecerPaqueteNavegacionEditar: No se ha proporcionado la clave para el paquete de navegación del contrato a editar."); } }
/// <summary> /// Establece el paquete de navegacion con el nuevo contrato /// </summary> /// <param name="codigo"></param> /// <param name="contrato"></param> public void EstablecerPaqueteNavegacion(string codigo, ContratoFSLBO contrato) { if (contrato != null && contrato.ContratoID != null) { Session[Clave] = contrato; } else { throw new Exception(NombreClase + ".EstablecerPaqueteNavegacion: El contrato proporcionado no contiene un identificador."); } }
/// <summary> /// Obtiene el Contrato presentado y se redirige a la interfaz de Modificacion de Lineas /// </summary> public void ModificarUnidadesContrato() { try { ContratoFSLBO contrato = InterfazUsuarioADatos(); vista.EstablecerPaqueteNavegacionEditar("ContratoFSLEditar", contrato); vista.IrAModificarLineas(); } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al intentar Modificar Lineas del contrato.", ETipoMensajeIU.ERROR, nombreClase + ".ModificarUnidadesContrato: " + ex.Message); } }
/// <summary> /// Envía el Contrato a Cerrar Contrato /// </summary> public void CerrarContrato() { try { ContratoFSLBO contrato = InterfazUsuarioADatos(); vista.Contrato = contrato; contrato = ObtenerContrato(); vista.EstablecerPaqueteNavegacionEditar("UltimoContratoFSLBO", contrato); vista.IrACerrarContrato(); } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al intentar cerrar el contrato.", ETipoMensajeIU.ERROR, nombreClase + ".CerrarContrato: " + ex.Message); } }
/// <summary> /// Regresar a la pantalla de Detalles /// </summary> public void RegresarADetalles() { try { ContratoFSLBO contrato = new ContratoFSLBO { ContratoID = vista.ContratoID }; ContratoFSLBR ContratoBR = new ContratoFSLBR(); contrato = ContratoBR.ConsultarCompleto(dataContext, contrato)[0]; vista.EstablecerPaqueteNavegacion(vista.Codigo, contrato); vista.LimpiarSesion(); vista.IrADetalleContrato(); } catch (Exception ex) { throw new Exception(nombreClase + ".RegresarADetalles: " + ex.Message); } }
/// <summary> /// Calcula los Pagos Totales y Mensuales /// </summary> public void CalcularTotales() { try { var contrato = new ContratoFSLBO { LineasContrato = datosRentaPRE.Vista.LineasContrato.ConvertAll(ln => (ILineaContrato)ln), Plazo = datosRentaPRE.Vista.PlazoMeses }; informacionPagoPRE.Vista.Total = contrato.CalcularTotalAPagar(); informacionPagoPRE.Vista.Mensualidad = contrato.CalcularMensualidad(); } catch (Exception ex) { throw new Exception(nombreClase + ".CalcularTotales:" + ex.Message); } }
/// <summary> /// Despliega los datos en la Interfaz de Usuario /// </summary> private void DatosAIntefazUsuario() { ContratoFSLBO contrato = ObtenerContrato(); if (contrato.Sucursal == null) { contrato.Sucursal = new SucursalBO(); } if (contrato.Sucursal.UnidadOperativa == null) { contrato.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } vista.Contrato = contrato; vista.ContratoID = contrato.ContratoID; vista.EstatusContrato = contrato.Estatus; vista.UnidadOperativaContratoID = contrato.Sucursal.UnidadOperativa.Id; informacionGeneralPRE.DatosAInterfazUsuario(contrato); informacionPagoPRE.DatosAInterfazUsuario(contrato); clienteContratoPRE.DatosAInterfazUsuario(contrato); datosRentaPRE.DatosAInterfazUsuario(contrato); herramientasPRE.DatosAInterfazUsuario(contrato); datosAdicionalesPRE.DatosAInterfazUsuario(contrato); //SC0007 vista.DatosAInterfazUsuario(contrato); if (contrato.InpcContrato != null) { if (contrato.InpcContrato.Fijo != null) { vista.InpcFijo = contrato.InpcContrato.Fijo; } if (contrato.InpcContrato.FechaInicio != null) { vista.FechaInicioINPC = contrato.InpcContrato.FechaInicio; } if (contrato.InpcContrato.Valor != null) { vista.ValorInpc = contrato.InpcContrato.Valor; } } }
/// <summary> /// Despliega los datos del contrato en la interfaz de usuario /// </summary> /// <param name="contrato">Contrato que contiene los datos</param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { try { vista.ContratoID = contrato.ContratoID; vista.Estatus = contrato.Estatus; if (contrato.Sucursal != null && contrato.Sucursal.UnidadOperativa != null) { vista.UnidadOperativaContratoID = contrato.Sucursal.UnidadOperativa.Id; } herramientasPRE.DatosAInterfazUsuario(contrato); informacionGeneralPRE.DatosAInterfazUsuario(contrato); clienteContratoPRE.DatosAInterfazUsuario(contrato); datosRentaPRE.DatosAInterfazUsuario(contrato); informacionPagoPRE.DatosAInterfazUsuario(contrato); finalizacionPRE.Inicializar(contrato); } catch (Exception ex) { throw new Exception(nombreClase + ".DatosAInterfazUsuario:" + ex.Message); } }
private List <PagoUnidadContratoFSLBO> ObtenerPagos(ContratoFSLBO contrato, DateTime FechaCierre) { var pagoBR = new PagoUnidadContratoBR(); var pago = new PagoUnidadContratoBOF { ReferenciaContrato = new ReferenciaContratoBO { ReferenciaContratoID = contrato.ContratoID, UnidadOperativa = new UnidadOperativaBO { Id = vista.UnidadOperativaContratoID } }, Facturado = false, FechaVencimientoInicial = FechaCierre, Sucursales = new List <SucursalBO> { contrato.Sucursal }, }; var pagos = pagoBR.ConsultarFiltroSinCuentas(dataContext, pago, true); return(pagos.Cast <PagoUnidadContratoFSLBO>().ToList()); }
public void Inicializar(ContratoFSLBO contrato) { try { vista.Mensualidad = contrato.CalcularMensualidad(); vista.Plazo = contrato.Plazo; vista.FechaInicioContrato = contrato.FechaInicioContrato; vista.FechaFinContrato = ((DateTime)contrato.FechaInicioContrato).AddMonths((int)contrato.Plazo); vista.PorcentajePenalizacion = contrato.PorcentajePenalizacion; if (contrato.CierreContrato != null && contrato.CierreContrato.Fecha != null) { vista.FechaCierre = contrato.CierreContrato.Fecha; vista.ObservacionesCierre = contrato.Observaciones; if (DateTime.Compare((DateTime)contrato.CierreContrato.Fecha, (DateTime)contrato.CalcularFechaTerminacionContrato()) < 0) { vista.Penalizacion = ((CierreAnticipadoContratoFSLBO)contrato.CierreContrato).CantidadPenalizacion; vista.MotivoCierreAnticipado = ((CierreAnticipadoContratoFSLBO)contrato.CierreContrato).Motivo; } } } catch (Exception ex) { vista.MostrarMensaje("Error al desplegar los datos de cierre", ETipoMensajeIU.ADVERTENCIA); } }
/// <summary> /// Elimina la linea de contrato desplegada en la Interfaz de Usuario (Con estatus Borrador) /// </summary> public void EliminarContrato() { try { ContratoFSLBO contratoEliminar = InterfazUsuarioADatos(); if (contratoEliminar.Estatus != EEstatusContrato.Borrador) { vista.MostrarMensaje("El contrato debe tener estatus Borrador para ser eliminado.", ETipoMensajeIU.INFORMACION); return; } contratoEliminar.FUA = vista.FUA; contratoEliminar.UUA = vista.UUA; var contratoBR = new ContratoFSLBR(); //SC_0008 SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, new UsuarioBO { Id = this.vista.UsuarioID }, new AdscripcionBO { Departamento = new DepartamentoBO(), Sucursal = new SucursalBO(), UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadAdscripcionID } }); //END SC_0008 contratoBR.BorrarCompleto(dataContext, contratoEliminar, seguridadBO); vista.MostrarMensaje("El contrato ha sido eliminado exitosamente.", ETipoMensajeIU.EXITO); vista.RegresarAConsultar(); } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al intentar eliminar el contrato", ETipoMensajeIU.ERROR, nombreClase + ".EliminarContrato: " + ex.Message); } }
/// <summary> /// Despliega la informacion del contrato en la Vista /// </summary> /// <param name="contrato"></param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { if (contrato == null) { contrato = new ContratoFSLBO(); } vista.LineasContrato = (contrato.LineasContrato != null) ? contrato.LineasContrato.ConvertAll(s => (LineaContratoFSLBO)s) : null; vista.PlazoMeses = contrato.Plazo; int?plazo = contrato.CalcularPlazoEnAños(); vista.PlazoAnios = plazo != null ? plazo.Value : 0; vista.UbicacionTaller = contrato.UbicacionTaller; vista.EstablecerIncluyeLavadoSeleccionado(contrato.IncluyeLavado); vista.EstablecerIncluyeLlantasSeleccionado(contrato.IncluyeLlantas); vista.EstablecerIncluyePinturaSeleccionado(contrato.IncluyePinturaRotulacion); vista.EstablecerIncluyeSeguroSeleccionado(contrato.IncluyeSeguro); vista.EstablecerFrecuenciaSeguro(contrato.FrecuenciaSeguro); vista.PermitirFrecuenciaSeguro(contrato.IncluyeSeguro != null && contrato.IncluyeSeguro == ETipoInclusion.NoIncluidoCargoCliente); vista.PorcentajeSeguro = contrato.PorcentajeSeguro; }
public void CalcularPlazoAnios() { try { if (vista.PlazoMeses != null) { var calcularPlazoEnAños = new ContratoFSLBO { Plazo = vista.PlazoMeses }.CalcularPlazoEnAños(); if (calcularPlazoEnAños != null) { vista.PlazoAnios = calcularPlazoEnAños.Value; } } else { vista.PlazoAnios = 0; } } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al calcular el plazo en años.", ETipoMensajeIU.ERROR, NombreClase + ".CalcularPlazoAnios: " + ex.Message); } }
public void ConsultarContrato() { try { if (this.vista.TipoContratoID == null) { throw new Exception("No se identificó el tipo de contrato que desea ver"); } ETipoContrato tipo = (ETipoContrato)Enum.Parse(typeof(ETipoContrato), this.vista.TipoContratoID.ToString()); switch (tipo) { case ETipoContrato.CM: #region Ir a CM ContratoManttoBO boCM = new ContratoManttoBO() { ContratoID = this.vista.ContratoID }; this.LimpiarSesion(); this.vista.EstablecerPaqueteNavegacion("ContratoManttoBO", boCM); this.vista.RedirigirADetalleContratoCM(); #endregion break; case ETipoContrato.FSL: #region Ir a FSL ContratoFSLBO boFSL = new ContratoFSLBO() { ContratoID = this.vista.ContratoID }; this.LimpiarSesion(); this.vista.EstablecerPaqueteNavegacion("ContratoFSLBO", boFSL); this.vista.RedirigirADetalleContratoFSL(); #endregion break; case ETipoContrato.RD: #region Ir a RD ContratoRDBO boRD = new ContratoRDBO() { ContratoID = this.vista.ContratoID }; this.LimpiarSesion(); this.vista.EstablecerPaqueteNavegacion("ContratoRDBO", boRD); this.vista.RedirigirADetalleContratoRD(); #endregion break; case ETipoContrato.SD: #region Ir a SD ContratoManttoBO boSD = new ContratoManttoBO() { ContratoID = this.vista.ContratoID }; this.LimpiarSesion(); this.vista.EstablecerPaqueteNavegacion("ContratoManttoBO", boSD); this.vista.RedirigirADetalleContratoSD(); #endregion break; default: throw new Exception("No se identificó el tipo de contrato que desea ver"); } } catch (Exception ex) { throw new Exception(this.nombreClase + ".ConsultarContrato: " + ex.Message); } }
/// <summary> /// Despliega los datos del contrato en la interfaz de usuario /// </summary> /// <param name="contrato">Contrato que contiene los datos a desplegar</param> public void DatosAInterfazUsuario(ContratoFSLBO contrato) { if (contrato == null) { contrato = new ContratoFSLBO(); } if (contrato.Cliente == null) { contrato.Cliente = new CuentaClienteIdealeaseBO(); } if (contrato.Cliente.Cliente == null) { contrato.Cliente.Cliente = new ClienteBO(); } vista.CuentaClienteID = contrato.Cliente.Id; vista.ClienteID = contrato.Cliente.Cliente.Id; vista.NombreCuentaCliente = contrato.Cliente.Nombre; vista.ClienteNumeroCuenta = contrato.Cliente.Numero; vista.EsFisico = contrato.Cliente.EsFisico; vista.SoloRepresentantes = contrato.SoloRepresentantes; vista.ObligadosComoAvales = contrato.ObligadosComoAvales; if (contrato.Cliente.Direcciones.Count > 0) { if (contrato.Cliente.Direcciones.Count == 1) { var bof = new DireccionCuentaClienteBOF { Direccion = contrato.Cliente.Direcciones[0] }; EstablecerDatosDireccionCliente(bof); } else { vista.MostrarMensaje("Inconsistencias en las direcciones del cliente, la consulta regreso mas de una dirección", ETipoMensajeIU.ADVERTENCIA); } } if (vista.CuentaClienteID != null && vista.ClienteID != null && !string.IsNullOrEmpty(vista.NombreCuentaCliente) && vista.ModoEditar) { DesplegarPersonasCliente(); } if (vista.EsFisico != true) { vista.RepresentantesLegalesContrato = contrato.RepresentantesLegales.ConvertAll(s => (RepresentanteLegalBO)s); vista.ConfigurarClienteMoral(); } else { vista.HabilitarAgregarRepresentanteLegal(false); vista.HabilitarListadoRepresentantesLegales(false); vista.HabilitarSoloRepresentantes(false); vista.PermitirAgregarAvales(false); vista.PermitirSeleccionarAvales(false); vista.HabilitarObligadosComoAvales(false); vista.ConfigurarClienteFisico(); } if (vista.SoloRepresentantes != true) { vista.ObligadosSolidariosContrato = contrato.ObligadosSolidarios.ConvertAll(s => (ObligadoSolidarioBO)s); vista.HabilitarAgregarObligadoSolidario(true); vista.HabilitarListadoObligadosSolidarios(true); if (vista.ObligadosComoAvales != true) { vista.AvalesSeleccionados = new List <AvalBO>(contrato.Avales); vista.PermitirAgregarAvales(true); vista.PermitirSeleccionarAvales(true); vista.HabilitarObligadosComoAvales(true); vista.ActualizarAvales(); Vista.MostrarAvales(true); } } else { vista.HabilitarAgregarObligadoSolidario(false); vista.HabilitarListadoObligadosSolidarios(false); vista.MostrarObligadosSolidarios(false); vista.MostrarAvales(false); vista.PermitirAgregarAvales(false); vista.PermitirSeleccionarAvales(false); } }
internal void DatosAInterfazUsuario(ContratoFSLBO contrato) { vista.DatosAdicionales = contrato.DatosAdicionalesAnexo; vista.ContratoID = contrato.ContratoID; }
/// <summary> /// Obtiene el Contrato que sera Editado /// </summary> private void ConsultarCompleto() { ContratoBO contrato = new ContratoProxyBO() { ContratoID = this.vista.ContratoId }; ContratoBO contratoCompleto = null; switch (this.vista.TipoContrato) { case ETipoContrato.RD: ContratoRDBR controladorRD = new ContratoRDBR(); var contratoRd = new ContratoRDBO((ContratoBO)contrato); var contratosRd = controladorRD.ConsultarCompleto(this.dataContext, contratoRd); contratoCompleto = contratosRd.FirstOrDefault(); this.controlador = new ContratoRDBR(); this.vista.ObjetoAnterior = contratoCompleto != null?controladorRD.ConsultarCompleto(this.dataContext, contratoRd).FirstOrDefault() : null; break; case ETipoContrato.FSL: ContratoFSLBR controladorFsl = new ContratoFSLBR(); var contratoFsl = new ContratoFSLBO() { ContratoID = this.vista.ContratoId }; var contratosFsl = controladorFsl.ConsultarCompleto(this.dataContext, contratoFsl); contratoCompleto = contratosFsl.FirstOrDefault(); this.controlador = new ContratoFSLBR(); this.vista.ObjetoAnterior = contratoCompleto != null?controladorFsl.ConsultarCompleto(this.dataContext, contratoFsl).FirstOrDefault() : null; break; case ETipoContrato.CM: case ETipoContrato.SD: ContratoManttoBR controladorMantto = new ContratoManttoBR(); var contratoMantto = new ContratoManttoBO((ContratoBO)contrato); var contratosMantto = controladorMantto.ConsultarCompleto(this.dataContext, contratoMantto, false); contratoCompleto = contratosMantto.FirstOrDefault(); this.controlador = new ContratoManttoBR(); this.vista.ObjetoAnterior = contratoCompleto != null?controladorMantto.ConsultarCompleto(this.dataContext, contratoMantto, false).FirstOrDefault() : null; break; default: contratoCompleto = null; break; } if (contratoCompleto != null) { this.vista.ContratoId = contratoCompleto.ContratoID; this.vista.NumeroContrato = contratoCompleto.NumeroContrato; this.vista.SucursalIdAntigua = contratoCompleto.Sucursal.Id; this.vista.SucursalNombreAntigua = contratoCompleto.Sucursal.Nombre; this.vista.TipoContrato = contratoCompleto.Tipo; this.vista.ContratoConsultado = contratoCompleto; } else { throw new Exception(nombreClase + ".ConsultarCompleto: No se encontro el Contrato solicitado"); } }
/// <summary> /// Metodo que genera el pago adicional /// </summary> public void GenerarPagoAdicional() { try { string validacion = this.ValidarPagoAdicional(); if (!String.IsNullOrEmpty(validacion)) { this.vista.MostrarMensaje("No se puede generar el pago Adicional: " + validacion, ETipoMensajeIU.INFORMACION); return; } ContratoBO contratoBo = null; IGeneradorPagosBR generadorPagos = null; SeguridadBO seguridadBo = this.CrearObjetoSeguridad(); List <ContratoBO> contratos = new List <ContratoBO>(); switch (vista.TipoContrato) { case ETipoContrato.RD: contratoBo = new ContratoRDBO { ContratoID = this.vista.ContratoID }; var contratosRd = new ContratoRDBR().ConsultarCompleto(this.dctx, (ContratoRDBO)contratoBo, false); contratos.AddRange(contratosRd); generadorPagos = new GeneradorPagoRDBR(); break; case ETipoContrato.FSL: contratoBo = new ContratoFSLBO { ContratoID = this.vista.ContratoID }; var contratosFsl = new ContratoFSLBR().ConsultarCompleto(this.dctx, (ContratoFSLBO)contratoBo); contratos.AddRange(contratosFsl); generadorPagos = new GeneradorPagosFSLBR(); break; case ETipoContrato.CM: case ETipoContrato.SD: contratoBo = new ContratoManttoBO { ContratoID = this.vista.ContratoID }; var contratosMantto = new ContratoManttoBR().ConsultarCompleto(this.dctx, (ContratoManttoBO)contratoBo, true, false); contratos.AddRange(contratosMantto); generadorPagos = new GeneradorPagosManttoBR(); break; } if (generadorPagos == null) { throw new Exception("No se pudo determinar el Tipo del Pago a Generar."); } generadorPagos.GenerarPagoAdicional(this.dctx, contratos.First(), (ultimoPagoContrato.NumeroPago.Value + 1), seguridadBo, false, true); PagoUnidadContratoBO pagoBo = new PagoUnidadContratoBOF { ReferenciaContrato = new ReferenciaContratoBO() { ReferenciaContratoID = this.vista.ContratoID } }; PagoUnidadContratoBR pagoBr = new PagoUnidadContratoBR(); var pagos = pagoBr.Consultar(this.dctx, (PagoUnidadContratoBO)pagoBo); this.Inicializar(); this.vista.MostrarMensaje("El pago " + pagos.Last().NumeroPago.ToString() + " con Fecha " + pagos.Last().FechaVencimiento.Value.ToShortDateString() + " se ha Creado con Éxito.", ETipoMensajeIU.EXITO); } catch (Exception ex) { this.vista.MostrarMensaje("Error al generar el pago Adicional", ETipoMensajeIU.ERROR, NombreClase + ".GenerarPagoAdicional: " + ex.GetBaseException().Message); } }
/// <summary> /// Determina si es posible generar el pago adicional del contrato /// </summary> /// <returns>Devuelve la inconsitencia encontrada para genera el pago adicional</returns> private string ValidarPagoAdicional() { if (this.vista.TipoContrato == null) { return("No se ha seleccionado del Departamento del Contrato"); } if (this.vista.SucursalID == null) { return("No se ha seleccionado la Sucursal del Contrato"); } if (String.IsNullOrEmpty(this.vista.FolioContrato)) { return("No se ha introducido el Folio del Contrato"); } ContratoBO contratoBo = null; List <ContratoBO> contratos = new List <ContratoBO>(); switch (vista.TipoContrato) { case ETipoContrato.RD: contratoBo = new ContratoRDBO { NumeroContrato = vista.FolioContrato, Sucursal = new SucursalBO { Id = vista.SucursalID }, Estatus = EEstatusContrato.EnCurso }; var contratosRD = new ContratoRDBR().Consultar(this.dctx, (ContratoRDBO)contratoBo); contratos.AddRange(contratosRD); break; case ETipoContrato.FSL: contratoBo = new ContratoFSLBO { NumeroContrato = vista.FolioContrato, Sucursal = new SucursalBO { Id = vista.SucursalID }, Estatus = EEstatusContrato.EnCurso }; var contratosFsl = new ContratoFSLBR().Consultar(this.dctx, (ContratoFSLBO)contratoBo); contratos.AddRange(contratosFsl); break; case ETipoContrato.CM: case ETipoContrato.SD: contratoBo = new ContratoManttoBO { NumeroContrato = vista.FolioContrato, Tipo = vista.TipoContrato, Sucursal = new SucursalBO { Id = vista.SucursalID }, Estatus = EEstatusContrato.EnCurso }; var contratosMantto = new ContratoManttoBR().Consultar(this.dctx, (ContratoManttoBO)contratoBo); contratos.AddRange(contratosMantto); break; } if (!contratos.Any()) { return("No se encontró el Contrato solicitado"); } switch (vista.TipoContrato) { case ETipoContrato.RD: var contratoRD = contratos.FirstOrDefault() as ContratoRDBO; if (!String.IsNullOrEmpty(TiempoMaximoRecepcionRD)) { if (DateTime.Now < contratoRD.FechaPromesaDevolucion.Value.AddHours(int.Parse(TiempoMaximoRecepcionRD))) { return("Deben pasar al menos " + TiempoMaximoRecepcionRD + " hrs para poder generar un pago adicional después de la Fecha de Promesa de Devolución."); } } break; } this.vista.ContratoID = contratos.FirstOrDefault().ContratoID; PagoUnidadContratoBO pagoBo = new PagoUnidadContratoBOF { ReferenciaContrato = new ReferenciaContratoBO() { ReferenciaContratoID = this.vista.ContratoID } }; PagoUnidadContratoBR pagoBr = new PagoUnidadContratoBR(); var pagos = pagoBr.Consultar(this.dctx, (PagoUnidadContratoBO)pagoBo); if (!pagos.Any()) { return("No se han generado Pagos para el Contrato"); } var ultimoPago = pagos.Last(x => x.Activo.Value); if (ultimoPago.EnviadoFacturacion != null && !ultimoPago.EnviadoFacturacion.Value) { return("No se ha Facturado el Último Pago Activo del Contrato"); } this.ultimoPagoContrato = ultimoPago; return(null); }
/// <summary> /// Guarda un contrato con estatus de En Curso /// </summary> public void GuardarContratoEnCurso() { string resultado = ValidarContratoEnCurso(); if (!string.IsNullOrEmpty(resultado)) { vista.MostrarMensaje(resultado, ETipoMensajeIU.INFORMACION); return; } #region Se inicia la Transaccion dataContext.SetCurrentProvider("Outsourcing"); Guid firma = Guid.NewGuid(); try { dataContext.OpenConnection(firma); dataContext.BeginTransaction(firma); } catch(Exception) { if(dataContext.ConnectionState == ConnectionState.Open) dataContext.CloseConnection(firma); throw new Exception("Se encontraron inconsistencias al insertar el Contrato."); } #endregion try { ContratoFSLBO contrato = InterfazUsuarioADatos(); contrato.Estatus = EEstatusContrato.EnCurso; int? contratoID= GuardarContrato(contrato); if (contratoID != null) { #region SC0001 BEP1401 - Registra los pagos del Contrato contrato.ContratoID = contratoID; GeneradorPagosFSLBR generadorPagosFsl = new GeneradorPagosFSLBR(); SeguridadBO seguridadBo = new SeguridadBO(Guid.Empty, new UsuarioBO { Id = this.vista.UsuarioID }, new AdscripcionBO { Departamento = new DepartamentoBO(), Sucursal = new SucursalBO(), UnidadOperativa = new UnidadOperativaBO { Id = this.vista.UnidadAdscripcionID } }); generadorPagosFsl.GenerarPagos(dataContext, contrato, seguridadBo,true); #endregion dataContext.CommitTransaction(firma); vista.EstablecerPaqueteNavegacion(vista.Clave, contrato); vista.MostrarMensaje("Se ha guardado del contrato exitosamente.", ETipoMensajeIU.EXITO); vista.IrADetalle(); } else vista.MostrarMensaje("Inconsistencias al intentar guardar el contrato.", ETipoMensajeIU.ADVERTENCIA); } catch (Exception ex) { dataContext.RollbackTransaction(firma); throw new Exception(nombreClase + ".GuardarContratoEnCurso:" + ex.Message); } finally { if(dataContext.ConnectionState == ConnectionState.Open) dataContext.CloseConnection(firma); } }