public CerrarContratoManttoPRE(ICerrarContratoManttoVIS vistaActual, IucHerramientasManttoVIS vistaHerramientas, IucContratoManttoVIS vistaContrato, IucLineaContratoManttoVIS vistaLinea) { try { this.vista = vistaActual; this.presentadorContrato = new ucContratoManttoPRE(vistaContrato, vistaLinea); this.presentadorHerramientas = new ucHerramientasManttoPRE(vistaHerramientas); this.controlador = new ContratoManttoBR(); this.pagoCtrl = new PagoUnidadContratoBR(); this.generadorPagos = new GeneradorPagosManttoBR(); this.dctx = FacadeBR.ObtenerConexion(); } catch (Exception ex) { this.vista.MostrarMensaje("Inconsistencia en los parámetros de configuración", ETipoMensajeIU.ERROR, this.nombreClase + ".CerrarContratoManttoPRE:" + ex.Message); } }
/// <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> /// Ejecuta la llamada al método que actualiza el contrato en la base de datos /// </summary> private void Editar() { #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 del contrato a partir de la vista var bo = (ContratoManttoBO)this.InterfazUsuarioADato(); //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 actualiza en la base de datos this.controlador.ActualizarCompleto(dctx, bo, (ContratoManttoBO)this.vista.UltimoObjeto, seguridadBO); #region SC0001 BEP1401 - Registra los pagos del Contrato if (bo.Estatus == EEstatusContrato.EnCurso) { GeneradorPagosManttoBR generadorPagos = new GeneradorPagosManttoBR(); generadorPagos.GenerarPagos(dctx, bo, seguridadBO, true); } dctx.CommitTransaction(firma); #endregion }catch (Exception ex) { dctx.RollbackTransaction(firma); throw new Exception(string.Format("{0}.Editar:{1}{2}", nombreClase, Environment.NewLine, ex.Message)); } finally { if (dctx.ConnectionState == ConnectionState.Open) { dctx.CloseConnection(firma); } } }
/// <summary> /// Registra un Contrato RD /// </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 ContratoManttoBO bo = (ContratoManttoBO)this.InterfazUsuarioADato(); //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.DataRowToContratoManttoBO(ds.Tables[0].Rows[0]).ContratoID; #region SC0001 BEP1401 - Registra los pagos del Contrato if (bo.Estatus == EEstatusContrato.EnCurso) { GeneradorPagosManttoBR generadorPagos = new GeneradorPagosManttoBR(); generadorPagos.GenerarPagos(dctx, bo, seguridadBO, true); } #endregion //Se despliega la información en la Interfaz de Usuario this.DatoAInterfazUsuario(bo); dctx.CommitTransaction(firma); } catch (Exception ex) { dctx.RollbackTransaction(firma); throw new Exception(this.nombreClase + ".Registrar:" + ex.Message); } finally { if (dctx.ConnectionState == ConnectionState.Open) { dctx.CloseConnection(firma); } } }