예제 #1
0
        /// <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);
            }
        }
 public CambiarContratoSucursalPRE(ICambiarContratoSucursalVIS view)
 {
     if (view != null)
     {
         vista = view;
     }
     else
     {
         throw new Exception(nombreClase + ".CambiarContratoSucursalPRE: La vista no puede ser null");
     }
     this.dataContext = FacadeBR.ObtenerConexion();
     controlador      = new ContratoBR();
 }
예제 #3
0
        /// <summary>
        /// Constructor del presentador
        /// </summary>
        /// <param name="view">Vista con la cual iteractuara el presentador</param>
        public ConsultarContratoSucursalPRE(IConsultarContratoSucursalVIS view)
        {
            try
            {
                if (view != null)
                {
                    vista = view;
                }
                else
                {
                    throw new Exception("La vista proporcionada no puede ser Nula.");
                }

                dataContext = FacadeBR.ObtenerConexion();
                controlador = new ContratoBR();
            }
            catch (Exception ex)
            {
                vista.MostrarMensaje("Inconsistencias en la construcción del presentador", ETipoMensajeIU.ERROR, nombreClase + ".ConsultarContratoSucursalPRE: " + ex.Message);
            }
        }
        /// <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>
        /// Cambia el contrato de Sucursal
        /// </summary>
        public void CambiarSucursal()
        {
            try
            {
                string s = this.ValidarCampos();
                if (!String.IsNullOrEmpty(s))
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                ContratoBO contrato = (ContratoBO)InterfazUsuarioDato();
                if (contrato == null)
                {
                    throw new Exception("No se pudo obtener el contrato que sera cambiado de sucursal desde la interfaz");
                }

                SeguridadBO seguridadBo = this.CrearObjetoSeguridad();
                #region Conexion a BD

                Guid firma = Guid.NewGuid();
                try
                {
                    this.dataContext.OpenConnection(firma);
                    this.dataContext.BeginTransaction(firma);
                }
                catch (Exception)
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                    throw new Exception("Se encontraron inconsistencias al Cambiar la Sucursal del Contrato.");
                }

                #endregion
                try
                {
                    bool cambioExitoso = false;
                    switch (this.vista.TipoContrato)
                    {
                    case ETipoContrato.RD:
                        this.controlador = new ContratoRDBR();
                        cambioExitoso    = ((ContratoRDBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoRDBO)contrato, (ContratoRDBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;

                    case ETipoContrato.FSL:
                        this.controlador = new ContratoFSLBR();
                        cambioExitoso    = ((ContratoFSLBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoFSLBO)contrato, (ContratoFSLBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;

                    case ETipoContrato.CM:
                    case ETipoContrato.SD:
                        this.controlador = new ContratoManttoBR();
                        cambioExitoso    = ((ContratoManttoBR)controlador).CambiarSucursalContrato(this.dataContext, (ContratoManttoBO)contrato, (ContratoManttoBO)this.vista.ObjetoAnterior, this.vista.Observaciones, seguridadBo);
                        break;
                    }

                    if (!cambioExitoso)
                    {
                        throw new Exception("Ocurrio un problema al cambiar El contrato y las Unidades de Sucursal");
                    }

                    ModificarPagosBR modificarPagosBr = new ModificarPagosBR();
                    cambioExitoso = modificarPagosBr.CambiarPagosSucursal(this.dataContext, contrato, seguridadBo);

                    if (!cambioExitoso)
                    {
                        throw new Exception("Ocurrio un problema al cambiar Los Pagos de Sucursal");
                    }

                    this.dataContext.CommitTransaction(firma);
                    this.vista.PermitirGuardar(false);

                    this.vista.MostrarMensaje("El Contrato cambio de Sucursal con Éxito", ETipoMensajeIU.EXITO);
                }
                catch (Exception ex)
                {
                    this.dataContext.RollbackTransaction(firma);
                    throw;
                }
                finally
                {
                    if (this.dataContext.ConnectionState == ConnectionState.Open)
                    {
                        this.dataContext.CloseConnection(firma);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".CambiarSucursal: " + ex.Message, ex.InnerException);
            }
        }
        /// <summary>
        /// Realiza la impresión del Historico de Pagos para una referencia de Contrato Seleccionada
        /// </summary>
        public void ImprimirPagos()
        {
            try
            {
                var numeroContrato = Vista.NumeroContrato;

                // Validar la Informacion de la Referencia de Contrato Seleccionada
                var msg = ValidarDatos(numeroContrato);

                if (!string.IsNullOrEmpty(msg))
                {
                    Vista.MostrarMensaje(msg, ETipoMensajeIU.ADVERTENCIA);
                    return;
                }


                // Validar la existencia de folio del contrato
                var contratoBR = new ContratoBR();
                var contratos  = contratoBR.Consultar(dataContext, new ContratoProxyBO {
                    NumeroContrato = numeroContrato.ToUpper()
                });
                if (!contratos.Any())
                {
                    Vista.MostrarMensaje("No existe un Contrato con el Folio proporcionado.", ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                var referencia = contratos.First();
                var usuario    = new UsuarioBO {
                    Id = Vista.UsuarioId
                };
                var unidadOperativa = new UnidadOperativaBO {
                    Id = Vista.UnidadOperativaId
                };
                var sucursales = ConsultarSucursales(usuario, unidadOperativa);

                // Validar que el contrato pertenezca a una sucursal del usuario
                if (sucursales.All(x => x.Id != referencia.Sucursal.Id))
                {
                    Vista.MostrarMensaje("El Folio del Contrato proporcionado pertence a una sucursal no asignada al usuario.", ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                // Validar la existencia de Pagos del Contrato
                int conteo = 0;
                ReferenciaContratoBO referenciaContrato = new ReferenciaContratoBO {
                    ReferenciaContratoID = referencia.ContratoID, UnidadOperativa = unidadOperativa
                };

                switch (referencia.Tipo)
                {
                case ETipoContrato.RO:
                case ETipoContrato.RE:
                case ETipoContrato.ROC:
                    PagoContratoPSLBOF pagoPsl = new PagoContratoPSLBOF()
                    {
                        ReferenciaContrato = referenciaContrato, Sucursales = sucursales
                    };
                    PagoContratoPSLBR pagosPslBR = new PagoContratoPSLBR();
                    conteo = pagosPslBR.ContarPagos(dataContext, pagoPsl);
                    break;

                default:
                    PagoUnidadContratoBOF pago = new PagoUnidadContratoBOF {
                        ReferenciaContrato = referenciaContrato, Sucursales = sucursales
                    };
                    PagoUnidadContratoBR pagosBR = new PagoUnidadContratoBR();
                    conteo = pagosBR.ContarPagos(dataContext, pago);
                    break;
                }

                if (conteo == 0)
                {
                    Vista.MostrarMensaje("El contrato no cuenta con pagos generados.", ETipoMensajeIU.ADVERTENCIA);
                    return;
                }

                //Obtener Datos de Reporte
                var adscripcion = new AdscripcionBO {
                    UnidadOperativa = unidadOperativa
                };
                var seguridad      = new SeguridadBO(Guid.Empty, usuario, adscripcion);
                var imprmirPagosBR = new ImprimirPagosBR();
                var datosReporte   = imprmirPagosBR.ObtenerDatosHistoricoPagos(dataContext,
                                                                               referenciaContrato, unidadOperativa, seguridad, this.Vista.URLLogoEmpresa);

                Vista.EstablecerPaqueteNavegacionImprimir(codigoImprimirHistorico, datosReporte);
                Vista.IrAImprimirHistorico();
            }
            catch (Exception ex)
            {
                var strMetodo = new StackFrame().GetMethod().Name;
                var strMsg    = string.Format("{0}.{1}: {2}", nombreClase, strMetodo, ex.Message);
                Vista.MostrarMensaje("Inconsistencias al Desplegar los Pagos del Contrato", ETipoMensajeIU.ERROR, strMsg);
            }
        }