Пример #1
0
        private object InterfazUsuarioADato()
        {
            ContratoRDBO bo = new ContratoRDBO();

            if (this.vista.UltimoObjeto != null)
            {
                bo = new ContratoRDBO((ContratoRDBO)this.vista.UltimoObjeto);
            }

            bo.CierreContrato         = new CancelacionContratoRDBO();
            bo.CierreContrato.Usuario = new UsuarioBO();

            bo.ContratoID = this.vista.ContratoID;
            bo.UUA        = this.vista.UUA;
            bo.FUA        = this.vista.FUA;
            bo.Tipo       = ETipoContrato.RD;

            if (this.vista.EstatusID != null)
            {
                bo.Estatus = (EEstatusContrato)Enum.Parse(typeof(EEstatusContrato), this.vista.EstatusID.ToString());
            }
            else
            {
                bo.Estatus = null;
            }

            bo.CierreContrato.Fecha         = this.vista.FechaCancelacion;
            bo.CierreContrato.Observaciones = this.vista.ObservacionesCancelacion;
            bo.CierreContrato.Usuario.Id    = this.vista.UsuarioID;

            ((CancelacionContratoRDBO)bo.CierreContrato).Motivo = this.vista.MotivoCancelacion;

            return(bo);
        }
Пример #2
0
        private void EstablecerDatosNavegacion(object paqueteNavegacion)
        {
            try
            {
                if (paqueteNavegacion == null)
                {
                    throw new Exception("Se esperaba un objeto en la navegación. No se puede identificar qué reservación se desea consultar.");
                }
                if (!(paqueteNavegacion is ContratoRDBO))
                {
                    throw new Exception("Se esperaba un Contrato de Renta Diaria.");
                }

                ContratoRDBO bo = (ContratoRDBO)paqueteNavegacion;

                if (!bo.FC.HasValue)
                {
                    this.ConsultarCompleto();
                }

                this.DatoAInterfazUsuario(bo);
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: " + ex.Message);
            }
        }
Пример #3
0
        private void ConsultarCompleto()
        {
            try
            {
                ContratoRDBO bo = (ContratoRDBO)this.InterfazUsuarioADato();

                List <ContratoRDBO> lst = new ContratoRDBR().Consultar(this.dctx, bo);

                if (lst.Count < 1)
                {
                    throw new Exception("No se encontró ningún registro que corresponda a la información proporcionada.");
                }
                if (lst.Count > 1)
                {
                    throw new Exception("La consulta devolvió más de un registro.");
                }

                lst[0].DocumentosAdjuntos = new ArchivoBR().Consultar(this.dctx, new ArchivoBO()
                {
                    Activo = true, TipoAdjunto = ETipoAdjunto.ContratoRD
                }, lst[0].ContratoID);

                this.DatoAInterfazUsuario(lst[0]);
                this.vista.UltimoObjeto = lst[0];
            }
            catch (Exception ex)
            {
                this.DatoAInterfazUsuario(new ContratoRDBO());
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
        public void CerrarContrato()
        {
            try
            {
                ContratoRDBO bo = (ContratoRDBO)this.vista.UltimoObjeto;
                this.LimpiarSesion();
                this.vista.EstablecerPaqueteNavegacion("UltimoContratoRDBO", bo);

                if (this.vista.Cancelable != null && this.vista.Cancelable == true)
                {
                    this.vista.RedirigirACancelacion();
                    return;
                }
                if (this.vista.Cerrable != null && this.vista.Cerrable == true)
                {
                    this.vista.RedirigirACierre();
                    return;
                }

                this.vista.MostrarMensaje("El contrato no se puede cancelar ni cerrar", ETipoMensajeIU.ADVERTENCIA);
                return;
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".CerrarContrato: " + ex.Message);
            }
        }
        /// <summary>
        /// Convierte los datos de la interfaz en un Objeto
        /// </summary>
        /// <returns>El objeto devuelto con los datos de la interfaz</returns>
        private Object InterfazUsuarioDato()
        {
            ContratoRDBO contratoBo = new ContratoRDBO()
            {
                Cliente  = new CuentaClienteIdealeaseBO(),
                Sucursal = new SucursalBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                },
            };

            if (this.vista.ContratoId != null)
            {
                contratoBo.ContratoID = this.vista.ContratoId;
            }
            if (this.vista.ClienteId != null)
            {
                contratoBo.Cliente.Id = this.vista.ClienteId;
            }
            if (this.vista.UnidadOperativa.Id != null)
            {
                contratoBo.Sucursal.UnidadOperativa.Id = this.vista.UnidadOperativa.Id;
            }
            if (this.vista.SucursalId != null)
            {
                contratoBo.Sucursal.Id = this.vista.SucursalId;
            }
            if (!String.IsNullOrEmpty(this.vista.NumeroContrato))
            {
                contratoBo.NumeroContrato = this.vista.NumeroContrato;
            }

            return(contratoBo);
        }
        /// <summary>
        /// Coloca la Información del Contrato en la Interfaz de Usuario
        /// </summary>
        /// <param name="objeto">Objeto con la informacion que se presentara</param>
        private void DatoInterfazUsuario(Object objeto)
        {
            ContratoRDBO contrato = objeto as ContratoRDBO;

            this.vista.ContratoId     = contrato.ContratoID != null ? contrato.ContratoID : null;
            this.vista.NumeroContrato = !String.IsNullOrEmpty(contrato.NumeroContrato) ? contrato.NumeroContrato : null;
            if (contrato.Sucursal != null)
            {
                this.vista.SucursalId     = contrato.Sucursal.Id != null ? contrato.Sucursal.Id : null;
                this.vista.SucursalNombre = !String.IsNullOrEmpty(contrato.Sucursal.Nombre) ? contrato.Sucursal.Nombre : null;
            }
            else
            {
                this.vista.SucursalId     = null;
                this.vista.SucursalNombre = null;
            }
            if (contrato.Cliente != null)
            {
                this.vista.ClienteId     = contrato.Cliente.Id != null ? contrato.Cliente.Id : null;
                this.vista.ClienteNombre = !String.IsNullOrEmpty(contrato.Cliente.Nombre) ? contrato.Cliente.Nombre : null;
            }
            else
            {
                this.vista.ClienteId     = null;
                this.vista.ClienteNombre = null;
            }
            this.vista.FechaContrato          = contrato.FechaContrato != null ? contrato.FechaContrato : null;
            this.vista.FechaPromesaDevolucion = contrato.FechaPromesaDevolucion != null ? contrato.FechaPromesaDevolucion : null;
            this.vista.FrecuenciaActual       = contrato.FrecuenciaFacturacion != null ? contrato.FrecuenciaFacturacion : null;
        }
Пример #7
0
        /// <summary>
        /// Despliega la informacion del contrato en la Vista
        /// </summary>
        /// <param name="contrato"></param>
        public void DatosAInterfazUsuario(ContratoRDBO contrato)
        {
            if (contrato == null)
            {
                contrato = new ContratoRDBO();
            }
            if (contrato.Sucursal == null)
            {
                contrato.Sucursal = new SucursalBO();
            }
            if (contrato.Cliente == null)
            {
                contrato.Cliente = new CuentaClienteIdealeaseBO();
            }
            if (contrato.Cliente.Cliente == null)
            {
                contrato.Cliente.Cliente = new ClienteBO();
            }

            vista.FechaContrato       = contrato.FechaContrato;
            vista.FechaCierreContrato = contrato.CierreContrato != null ? contrato.CierreContrato.Fecha : null;//SC0035

            if (contrato.Sucursal.Nombre != null)
            {
                vista.NombreSucursal = contrato.Sucursal.Nombre;
            }

            if (contrato.Cliente.Direcciones.Count > 0)
            {
                foreach (DireccionClienteBO direccion in contrato.Cliente.Direcciones)
                {
                    if (direccion.Primaria == true)
                    {
                        vista.DireccionCliente = direccion.Direccion;
                        break;
                    }
                }
            }

            if (contrato.Cliente.Nombre != null)
            {
                vista.NombreCuentaCliente = contrato.Cliente.Nombre;
            }

            if (contrato.Cliente.Cliente.RFC != null)
            {
                vista.RFCCliente = contrato.Cliente.Cliente.RFC;
            }

            vista.NumeroCuentaCliente = String.IsNullOrEmpty(contrato.Cliente.Numero) ? null : contrato.Cliente.Numero;

            if (contrato.FrecuenciaFacturacion != null)   //SC0035
            {
                vista.FrecuenciaFacturacion = contrato.FrecuenciaFacturacion;
            }

            DesplegarEmpresa();
        }
        /// <summary>
        /// Realiza los pasos para solicitar redireccion a la pantalla de Detalle
        /// </summary>
        public void RedirigirADetalle()
        {
            this.EstablecerSeguridad("CAMBIARFRECUENCIAFACTURACIONRD");
            ContratoRDBO contratoBo = (ContratoRDBO)this.InterfazUsuarioDato();

            this.vista.EstablecerPaqueteNavegacion("ContratoRDBO", contratoBo);
            this.vista.LimpiarSesion();
            this.vista.RedirigirADetalle();
        }
Пример #9
0
        private object InterfazUsuarioADato()
        {
            ContratoRDBO bo = new ContratoRDBO();

            if (this.vista.UltimoObjeto != null && this.vista.UltimoObjeto is ContratoRDBO)
            {
                bo = new ContratoRDBO((ContratoRDBO)this.vista.UltimoObjeto);
            }

            bo.ContratoID = this.vista.ContratoID;
            if (this.vista.EstatusID != null)
            {
                bo.Estatus = (EEstatusContrato)Enum.Parse(typeof(EEstatusContrato), this.vista.EstatusID.ToString());
            }
            else
            {
                bo.Estatus = null;
            }
            bo.FUA = this.vista.FUA;
            bo.UUA = this.vista.UUA;

            List <ArchivoBO> adjuntos = this.presentadorDocumentos.Vista.ObtenerArchivos();

            if (adjuntos != null)
            {
                foreach (ArchivoBO adjuntoContratoBo in adjuntos)
                {
                    adjuntoContratoBo.TipoAdjunto = ETipoAdjunto.ContratoRD;
                }
            }
            bo.DocumentosAdjuntos = adjuntos;

            // Se agrega la Auditoria de cada uno de los documentos adjuntos
            if (bo.DocumentosAdjuntos != null)
            {
                foreach (ArchivoBO adjunto in bo.DocumentosAdjuntos)
                {
                    if (adjunto.Id == null)
                    {
                        adjunto.Auditoria = new AuditoriaBO
                        {
                            FC  = bo.FUA,
                            UC  = bo.UUA,
                            FUA = bo.FUA,
                            UUA = bo.UUA
                        };
                    }
                    else
                    {
                        adjunto.Auditoria.FUA = bo.FUA;
                        adjunto.Auditoria.UUA = bo.UUA;
                    }
                }
            }

            return(bo);
        }
        /// <summary>
        /// Consulta El contrato y los pagos facturados y Pendientes por Facturar
        /// </summary>
        private void ConsultarCompleto()
        {
            try
            {
                var contratoRd = new ContratoRDBO()
                {
                    Sucursal = new SucursalBO(), Cliente = new CuentaClienteIdealeaseBO(), ContratoID = this.vista.ContratoId
                };
                var contratosRd = this.controladorContrato.ConsultarCompleto(this.dataContext, contratoRd);
                if (!contratosRd.Any())
                {
                    throw new Exception("No se encontro el contrato Solicitado");
                }
                if (contratosRd.Count > 1)
                {
                    throw new Exception("El contrato proporcionado devolvio mas de un resultado");
                }

                contratoRd = contratosRd.First();
                this.vista.ContratoOriginal = contratoRd;
                this.vista.ContratoAntiguo  = new ContratoRDBO(contratoRd);
                this.DatoInterfazUsuario(contratoRd);

                var pagos = controladorPagos.ConsultarCompleto(this.dataContext, new PagoUnidadContratoRDBO()
                {
                    ReferenciaContrato = new ReferenciaContratoBO()
                    {
                        ReferenciaContratoID = contratoRd.ContratoID
                    }, Activo = true
                });
                if (!pagos.Any())
                {
                    throw new Exception("No se encontraton los pagos del Contrato");
                }

                DateTime fechaHoy            = new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, 23, 59, 59);
                var      listaPagosVencidos  = pagos.Where(x => x.FechaVencimiento < fechaHoy).OrderBy(y => y.NumeroPago).ToList().ConvertAll(x => (PagoUnidadContratoRDBO)x);
                var      listaPagosFaltantes = pagos.Where(x => x.FechaVencimiento > fechaHoy).OrderBy(y => y.NumeroPago).ToList().ConvertAll(x => (PagoUnidadContratoRDBO)x);

                this.vista.EstablecerPagosFacturados(listaPagosVencidos);
                this.vista.EstablecerPagosPendientes(listaPagosFaltantes);

                this.vista.ListaPagosFacturados = listaPagosVencidos;
                this.vista.ListaPagosFaltantes  = listaPagosFaltantes;

                var diasUsados   = listaPagosVencidos.Sum(x => x.DiasFacturar);
                var diasContrato = contratoRd.FechaPromesaDevolucion.Value.Subtract(contratoRd.FechaContrato.Value).Days;
                this.vista.DiasRestantes = diasContrato > diasUsados ? (diasContrato - diasUsados) : 0;

                this.CalcularFrecuenciasPermitidas(contratoRd.FrecuenciaFacturacion);
            }
            catch (Exception ex)
            {
                throw new Exception("ConsultarCompleto(): Ocurrio un problema al consultar completo el contrato y sus pagos. " + ex.Message, ex.InnerException);
            }
        }
 /// <summary>
 /// Coloca la informacion inicial del contrato obtenido del paquete de Navegacion
 /// </summary>
 /// <param name="contratoBo">Contrato con las informacion inicial</param>
 public void EstablecerInformacionInicial(ContratoRDBO contratoBo)
 {
     if (contratoBo == null)
     {
         throw new Exception("No se encuentra el contrato con la información inicial. ");
     }
     this.ContratoId       = contratoBo.ContratoID;
     this.SucursalId       = contratoBo.Sucursal != null ? contratoBo.Sucursal.Id : null;
     this.FrecuenciaActual = contratoBo.FrecuenciaFacturacion;
 }
Пример #12
0
        public void CancelarEdicion()
        {
            ContratoRDBO bo = (ContratoRDBO)this.vista.UltimoObjeto;

            this.LimpiarSesion();
            this.vista.LimpiarPaqueteNavegacion("UltimoContratoRDBO");
            this.vista.EstablecerPaqueteNavegacion("ContratoRDBO", bo);

            this.vista.RedirigirADetalles();
        }
        /// <summary>
        /// Despliega los datos del contrato en la interfaz de usuario
        /// </summary>
        /// <param name="contrato">Contrato RD que contiene los datos a desplegar</param>
        public void DatosAInterfazUsuario(ContratoRDBO contrato)
        {
            contrato = contrato ?? new ContratoRDBO();

            vista.NumeroContrato = contrato.NumeroContrato != null && !string.IsNullOrEmpty(contrato.NumeroContrato)
                                       ? contrato.NumeroContrato
                                       : null;
            vista.EstatusContrato = contrato.Estatus;

            vista.Configurar(contrato.Estatus);
        }
        /// <summary>
        /// Obtiene el Paquete con el Contrato a Cambiar de Frecuencia
        /// </summary>
        /// <param name="key">Nombre con el que se identifica el objeto</param>
        /// <returns>Objeto Contrato que cambiara de Frecuencia</returns>
        public object ObtenerPaqueteNavegacion(string key)
        {
            ContratoRDBO contrato = (ContratoRDBO)Session["ContratoRDBO"];

            if (contrato == null)
            {
                throw new Exception(nombreClase + ".ObtenerPaqueteNavegacion: No se encontro el Contrato que Cambiara de Frecuencia");
            }
            //this.Session.Remove("ContratoRDBO");
            return(contrato);
        }
        /// <summary>
        /// Elimina el contrato desplegado con estatus de borrador
        /// </summary>
        public void EliminarContrato()
        {
            try
            {
                #region InterfazUsuarioADato Personalizado
                ContratoRDBO bo = (ContratoRDBO)this.vista.UltimoObjeto;

                if (bo.Estatus != EEstatusContrato.Borrador)
                {
                    vista.MostrarMensaje("El contrato debe tener estatus Borrador para ser eliminado.", ETipoMensajeIU.INFORMACION);
                    return;
                }

                //finalización del contrato
                FinalizacionContratoProxyBO finalizacionContrato = new FinalizacionContratoProxyBO();
                finalizacionContrato.Fecha   = vista.FUA;
                finalizacionContrato.Usuario = new UsuarioBO {
                    Id = vista.UUA
                };
                finalizacionContrato.Observaciones = vista.Observaciones;

                ContratoRDBO previous = new ContratoRDBO(bo);

                bo.CierreContrato = finalizacionContrato;
                bo.FUA            = vista.FUA;
                bo.UUA            = vista.UUA;
                #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);

                this.controlador.BorrarCompleto(dctx, bo, previous, seguridadBO);

                this.LimpiarSesion();
                this.vista.LimpiarPaqueteNavegacion("ContratoRDBO");
                this.vista.RedirigirAConsulta();
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".EliminarContrato: " + ex.Message);
            }
        }
Пример #16
0
        private void ConsultarCompleto()
        {
            try
            {
                //Se consulta la información del contrato
                ContratoRDBO bo = (ContratoRDBO)this.InterfazUsuarioADato();

                List <ContratoRDBO> lst = this.controlador.ConsultarCompleto(this.dctx, bo, true);

                if (lst.Count < 1)
                {
                    throw new Exception("No se encontró ningún registro que corresponda a la información proporcionada.");
                }
                if (lst.Count > 1)
                {
                    throw new Exception("La consulta devolvió más de un registro.");
                }

                this.DatoAInterfazUsuario(lst[0]);
                this.vista.UltimoObjeto = lst[0];

                //Se consulta la información de la flota
                if (lst[0].ObtenerLineaContrato() != null && lst[0].ObtenerLineaContrato().Equipo != null && lst[0].ObtenerLineaContrato().Equipo is UnidadBO && ((UnidadBO)lst[0].ObtenerLineaContrato().Equipo).UnidadID != null)
                {
                    ElementoFlotaBO elemento = new ElementoFlotaBO()
                    {
                        Unidad = (UnidadBO)lst[0].ObtenerLineaContrato().Equipo
                    };
                    elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO()
                    {
                        Activo = true, Tramitable = elemento.Unidad
                    }, false);
                    if (elemento != null && elemento.Unidad != null && elemento.Unidad.Sucursal == null)
                    {
                        elemento.Unidad.Sucursal = new SucursalBO();
                    }

                    this.presentadorDG.DatoAInterfazUsuario(elemento as object);
                    this.presentadorEA.DatoAInterfazUsuario(elemento as object);
                    this.presentadorEA.CargarEquiposAliados();
                }
                else
                {
                    this.presentadorDG.Inicializar();
                    this.presentadorEA.Inicializar();
                }
            }
            catch (Exception ex)
            {
                this.DatoAInterfazUsuario(new ContratoRDBO());
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
Пример #17
0
        private object InterfazUsuarioADato()
        {
            ContratoRDBO bo = new ContratoRDBO();

            if (this.vista.UltimoObjeto != null)
            {
                bo = new ContratoRDBO((ContratoRDBO)this.vista.UltimoObjeto);
            }

            if (bo.CierreContrato == null)
            {
                bo.CierreContrato         = new CierreContratoRDBO();
                bo.CierreContrato.Usuario = new UsuarioBO();
            }

            bo.ContratoID = this.vista.ContratoID;
            bo.UUA        = this.vista.UUA;
            bo.FUA        = this.vista.FUA;
            bo.Tipo       = ETipoContrato.RD;

            if (this.vista.EstatusID != null)
            {
                bo.Estatus = (EEstatusContrato)Enum.Parse(typeof(EEstatusContrato), this.vista.EstatusID.ToString());
            }
            else
            {
                bo.Estatus = null;
            }

            bo.CierreContrato.Fecha         = this.vista.FechaCierre;
            bo.CierreContrato.Observaciones = this.vista.ObservacionesCierre;
            bo.CierreContrato.Usuario.Id    = this.vista.UsuarioID;

            if (bo.CierreContrato is CierreContratoRDBO)
            {
                ((CierreContratoRDBO)bo.CierreContrato).CargoAbusoOperacion     = this.vista.CargoAbusoOperacion;
                ((CierreContratoRDBO)bo.CierreContrato).CargoDisposicionBasura  = this.vista.CargoDisposicionBasura;
                ((CierreContratoRDBO)bo.CierreContrato).ImporteReembolso        = this.vista.ImporteReembolso;
                ((CierreContratoRDBO)bo.CierreContrato).PersonaRecibeReembolso  = this.vista.PersonaRecibeReembolso;
                ((CierreContratoRDBO)bo.CierreContrato).PrecioUnidadCombustible = this.vista.ImporteUnidadCombustible;
            }
            else
            {
                ((CierreContratoRDBO)bo.CierreContrato).CargoAbusoOperacion     = null;
                ((CierreContratoRDBO)bo.CierreContrato).CargoDisposicionBasura  = null;
                ((CierreContratoRDBO)bo.CierreContrato).ImporteReembolso        = null;
                ((CierreContratoRDBO)bo.CierreContrato).PersonaRecibeReembolso  = null;
                ((CierreContratoRDBO)bo.CierreContrato).PrecioUnidadCombustible = null;
            }

            return(bo);
        }
        /// <summary>
        /// Envia el contrato a Agregar Documentos
        /// </summary>
        public void AgregarDocumentos()
        {
            try
            {
                ContratoRDBO bo = (ContratoRDBO)this.InterfazUsuarioADato();

                this.LimpiarSesion();
                this.vista.EstablecerPaqueteNavegacion("UltimoContratoRDBO", bo);

                this.vista.RedirigirAAgregarDocumentos();
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".AgregarDocumentos: " + ex.Message);
            }
        }
Пример #19
0
        /// <summary>
        /// Despliega los datos del contrato en la interfaz de usuario
        /// </summary>
        /// <param name="obj">Contrato que contiene los datos</param>
        public void DatoAInterfazUsuario(object obj)
        {
            ContratoRDBO bo = (ContratoRDBO)obj;

            this.vista.ContratoID = bo.ContratoID;
            if (bo.Estatus != null)
            {
                this.vista.EstatusID = (int)bo.Estatus;
            }
            else
            {
                this.vista.EstatusID = null;
            }

            this.presentadorHerramientas.DatosAInterfazUsuario(bo);
            this.presentadorDocumentos.CargarListaArchivos(bo.DocumentosAdjuntos, presentadorDocumentos.Vista.TiposArchivo);
        }
        /// <summary>
        /// Obtiene la informacion de la interfaz
        /// </summary>
        /// <returns>Objeto con la Informacion de la Interfaz</returns>
        private Object InterfazUsuarioDato()
        {
            ContratoRDBO contrato = this.vista.ContratoOriginal != null ? this.vista.ContratoOriginal : new ContratoRDBO()
            {
                Sucursal = new SucursalBO()
                {
                    UnidadOperativa = this.vista.UnidadOperativa
                }, Cliente = new CuentaClienteIdealeaseBO()
            };

            contrato.ContratoID            = this.vista.ContratoId != null ? this.vista.ContratoId : null;
            contrato.Sucursal.Id           = this.vista.SucursalId != null ? this.vista.SucursalId : null;
            contrato.Cliente.Id            = this.vista.ClienteId != null ? this.vista.ClienteId : null;
            contrato.FrecuenciaFacturacion = this.vista.FrecuenciaNueva != null ? this.vista.FrecuenciaNueva : null;

            return(contrato);
        }
        private object InterfazUsuarioADato()
        {
            ContratoRDBO bo = new ContratoRDBO();

            bo.Sucursal = new SucursalBO();
            bo.Sucursal.UnidadOperativa = new UnidadOperativaBO();

            bo.ContratoID = this.vista.ContratoID;
            if (this.vista.EstatusID != null)
            {
                bo.Estatus = (EEstatusContrato)Enum.Parse(typeof(EEstatusContrato), this.vista.EstatusID.ToString());
            }
            else
            {
                bo.Estatus = null;
            }
            bo.Sucursal.UnidadOperativa.Id = this.vista.UnidadOperativaID;

            return(bo);
        }
        private ContratoRDBO ConsultarCompleto(ContratoRDBO bo)
        {
            try {
                List <ContratoRDBO> lst = this.controlador.ConsultarCompleto(this.dctx, bo, true);

                if (lst.Count < 1)
                {
                    throw new Exception("No se encontró ningún registro que corresponda a la información proporcionada.");
                }
                if (lst.Count > 1)
                {
                    throw new Exception("La consulta devolvió más de un registro.");
                }

                return(lst[0]);
            }
            catch (Exception ex) {
                this.DatoAInterfazUsuario(new ContratoRDBO());
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
        /// <summary>
        /// Genera el reporte para la impresión solo con los datos de la cabecera
        /// </summary>
        public void ImprimirCabeceraCheckList()
        {
            try
            {
                ContratoRDBO bo = (ContratoRDBO)this.InterfazUsuarioADato();

                if (this.vista.ModuloID == null)
                {
                    throw new Exception("No se identificó el módulo");
                }

                Dictionary <string, Object> datosImprimir = this.controlador.ObtenerDatosCabeceraCheckList(dctx, bo, this.vista.ModuloID.Value);

                this.vista.EstablecerPaqueteNavegacion("NombreReporte", "CU012");
                this.vista.EstablecerPaqueteNavegacion("DatosReporte", datosImprimir);

                this.vista.RedirigirAImprimir();
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".ImprimirCabeceraCheckList: " + ex.Message);
            }
        }
Пример #24
0
        public void ActualizarDocumentos()
        {
            try
            {
                //Se obtiene la información a partir de la Interfaz de Usuario
                ContratoRDBO bo = (ContratoRDBO)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 el Contrato
                this.controlador.ActualizarDocumento(this.dctx, bo, (ContratoRDBO)this.vista.UltimoObjeto, seguridadBO);

                this.LimpiarSesion();
                this.vista.LimpiarPaqueteNavegacion("UltimoContratoRDBO");
                this.vista.EstablecerPaqueteNavegacion("ContratoRDBO", new ContratoRDBO()
                {
                    ContratoID = this.vista.ContratoID
                });
                this.vista.RedirigirADetalles();
            }
            catch (Exception ex)
            {
                vista.MostrarMensaje("Inconsistencia al actualizar los documentos del contrato", ETipoMensajeIU.ERROR, nombreClase + ".AgregarDocumentos:" + ex.Message);
            }
        }
        public void RealizarPrimeraCarga()
        {
            try {
                this.PrepararVisualizacion();

                var          sucursalTemp = this.vista.ObtenerPaqueteNavegacion("SucursalesAutorizadas");
                ContratoRDBO bo           = (ContratoRDBO)this.vista.ObtenerPaqueteNavegacion("ContratoRDBO");
                this.vista.PermitirRegresar(this.vista.ObtenerPaqueteNavegacion("FiltroConsultaContratoRD") != null);

                if (!bo.FC.HasValue)
                {
                    bo = this.ConsultarCompleto(bo);
                }


                this.DatoAInterfazUsuario(bo);
                this.EstablecerConfiguracionInicial();
                this.EstablecerSeguridad();
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".RealizarPrimeraCarga: " + ex.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>
        /// 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);
            }
        }
Пример #28
0
        protected void ImprimirReporte(Dictionary <string, Object> datos, XmlDocument documento)
        {
            try
            {
                #region Obtener Formato del XML
                string leyendaCondiciones      = string.Empty;
                string leyendaCargoCombustible = string.Empty;
                string leyendaBitacora         = string.Empty;
                string leyendaSeguro           = string.Empty;
                string leyendaArrendatarios    = string.Empty;
                string leyendaOperacion        = string.Empty;
                string leyendaInspeccion       = string.Empty;
                string leyendaTitulo           = string.Empty;
                string numeroPlaca             = string.Empty;
                string direccionSuc            = string.Empty;
                string telefonoUO  = string.Empty;
                string direccionUO = string.Empty;

                XmlNodeList textoCondiciones = documento.GetElementsByTagName("condiciones");
                if (textoCondiciones.Count < 1)
                {
                    throw new Exception("el formato del archivo XML es incorrecto");
                }
                leyendaCondiciones = textoCondiciones[0].InnerText;
                XmlNodeList textoCargoCombustible = documento.GetElementsByTagName("cargoCombustible");
                if (textoCargoCombustible.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaCargoCombustible = textoCargoCombustible[0].InnerText;
                XmlNodeList textoBitacora = documento.GetElementsByTagName("bitacora");
                if (textoBitacora.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaBitacora = textoBitacora[0].InnerText;
                XmlNodeList textoSeguro = documento.GetElementsByTagName("seguro");
                if (textoSeguro.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaSeguro = textoSeguro[0].InnerText;
                XmlNodeList textoArrendatarios = documento.GetElementsByTagName("arrendatarios");
                if (textoArrendatarios.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaArrendatarios = textoArrendatarios[0].InnerText;
                XmlNodeList textoOperacion = documento.GetElementsByTagName("operacion");
                if (textoOperacion.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaOperacion = textoOperacion[0].InnerText;
                XmlNodeList textoInspeccion = documento.GetElementsByTagName("inspeccion");
                if (textoInspeccion.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaInspeccion = textoInspeccion[0].InnerText;
                XmlNodeList textoTitulo = documento.GetElementsByTagName("Titulo");
                if (textoTitulo.Count < 1)
                {
                    throw new Exception("El formato del archivo XML es incorrecto");
                }
                leyendaTitulo = textoTitulo[0].InnerText;
                #endregion
                #region Iniciar Variables

                if (datos["Contrato"] == null)
                {
                    throw new Exception("Se esperaba un contrato");
                }
                if (datos["Firmantes"] == null)
                {
                    throw new Exception("Se esperaba Firmantes");
                }
                if (datos["Modulo"] == null)
                {
                    throw new Exception("Se esperaba una configuración de módulo");
                }
                if (!(datos["Contrato"] is ContratoRDBO))
                {
                    throw new Exception("Se esperaba un contrato de Renta Diaria");
                }

                // Contrato
                ContratoRDBO contrato = (ContratoRDBO)datos["Contrato"];
                if (contrato == null)
                {
                    contrato = new ContratoRDBO();
                }
                if (contrato.Sucursal == null)
                {
                    contrato.Sucursal = new SucursalBO();
                }
                if (contrato.Sucursal.DireccionesSucursal == null)
                {
                    direccionSuc = string.Empty;
                }
                else
                {
                    var direcUO = contrato.Sucursal.DireccionesSucursal.Find(x => x.Primaria != null && x.Primaria.Value == true);
                    if (direcUO != null)
                    {
                        if (!string.IsNullOrEmpty(direcUO.Calle) &&
                            !string.IsNullOrWhiteSpace(direcUO.Calle))
                        {
                            direccionSuc = direcUO.Calle;
                        }
                    }
                }
                if (contrato.Cliente == null)
                {
                    contrato.Cliente = new CuentaClienteIdealeaseBO();
                }
                if (contrato.Cliente.Cliente == null)
                {
                    contrato.Cliente.Cliente = new ClienteBO();
                }
                if (contrato.Cliente.Direcciones == null)
                {
                    DireccionClienteBO direccion = new DireccionClienteBO();
                    contrato.Cliente.Agregar(direccion);
                }
                if (contrato.Operador == null)
                {
                    contrato.Operador = new OperadorBO();
                }
                if (contrato.Operador.Direccion == null)
                {
                    contrato.Operador.Direccion = new DireccionPersonaBO();
                }
                if (contrato.Operador.Licencia == null)
                {
                    contrato.Operador.Licencia = new LicenciaBO();
                }
                if (contrato.Operador.Direccion.Ubicacion == null)
                {
                    contrato.Operador.Direccion.Ubicacion = new UbicacionBO();
                }
                if (contrato.Operador.Direccion.Ubicacion.Ciudad == null)
                {
                    contrato.Operador.Direccion.Ubicacion.Ciudad = new CiudadBO();
                }
                if (contrato.Operador.Direccion.Ubicacion.Estado == null)
                {
                    contrato.Operador.Direccion.Ubicacion.Estado = new EstadoBO();
                }

                LineaContratoRDBO linea = contrato.ObtenerLineaContrato();
                if (linea == null)
                {
                    linea = new LineaContratoRDBO();
                }
                if (linea.Equipo == null)
                {
                    linea.Equipo = new UnidadBO();
                }
                if (linea.Equipo.TipoEquipoServicio == null)
                {
                    linea.Equipo.TipoEquipoServicio = new TipoUnidadBO();
                }
                if (linea.Equipo.ActivoFijo == null)
                {
                    linea.Equipo.ActivoFijo = new ActivoFijoBO();
                }
                if (linea.Equipo.Modelo == null)
                {
                    linea.Equipo.Modelo = new ModeloBO();
                }
                if (((UnidadBO)linea.Equipo).CaracteristicasUnidad == null)
                {
                    ((UnidadBO)linea.Equipo).CaracteristicasUnidad = new CaracteristicasUnidadBO();
                }
                if (linea.Equipo.TipoEquipoServicio == null)
                {
                    linea.Equipo.TipoEquipoServicio = new TipoUnidadBO();
                }
                if (linea.Cobrable == null)
                {
                    linea.Cobrable = new TarifaContratoRDBO();
                }
                contrato.LineasContrato = new List <ILineaContrato>();
                contrato.AgregarLineaContrato(linea);
                if (linea.ListadosVerificacion == null)
                {
                    linea.ListadosVerificacion = new List <ListadoVerificacionBO>();
                }

                // Configuración del Modulo

                ModuloBO modulo = (ModuloBO)datos["Modulo"];
                ConfiguracionUnidadOperativaBO unidadOperativaConfiguracion;
                if (modulo == null)
                {
                    modulo = new ModuloBO();
                }
                if (modulo.Configuracion == null)
                {
                    modulo.Configuracion = new ConfiguracionModuloBO();
                }
                if (contrato.Sucursal.UnidadOperativa.Id == null)
                {
                    unidadOperativaConfiguracion = new ConfiguracionUnidadOperativaBO();
                }
                else
                {
                    unidadOperativaConfiguracion = modulo.ObtenerConfiguracionUO(new UnidadOperativaBO {
                        Id = contrato.Sucursal.UnidadOperativa.Id
                    });
                }
                if (unidadOperativaConfiguracion == null)
                {
                    unidadOperativaConfiguracion = new ConfiguracionUnidadOperativaBO();
                }
                if (unidadOperativaConfiguracion.ConfiguracionModulo == null)
                {
                    unidadOperativaConfiguracion.ConfiguracionModulo = new ConfiguracionModuloBO();
                }
                //Tramites
                List <TramiteBO> tramites = (List <TramiteBO>)datos["Tramites"];
                if (tramites == null)
                {
                    tramites = new List <TramiteBO>();
                }

                PlacaEstatalBO placaEstatal = (PlacaEstatalBO)tramites.Find(t => t.Tipo == ETipoTramite.PLACA_ESTATAL);
                if (placaEstatal != null)
                {
                    numeroPlaca = placaEstatal.Resultado;
                }
                PlacaFederalBO placaFederal = (PlacaFederalBO)tramites.Find(t => t.Tipo == ETipoTramite.PLACA_FEDERAL);
                if (placaFederal != null)
                {
                    numeroPlaca = placaFederal.Resultado;
                }
                //Firmantes

                Tuple <IConstituible, List <PersonaBO>, List <IConstituible> > firmantes =
                    (Tuple <IConstituible, List <PersonaBO>, List <IConstituible> >)datos["Firmantes"];
                if (firmantes == null)
                {
                    IConstituible        cliente        = new CuentaClienteIdealeaseBO();
                    List <PersonaBO>     representantes = new List <PersonaBO>();
                    List <IConstituible> depositarios   = new List <IConstituible>();
                    firmantes = new Tuple <IConstituible, List <PersonaBO>, List <IConstituible> >(cliente, representantes,
                                                                                                   depositarios);
                }

                //Usuarios
                UsuarioBO usuarioCreacion = (UsuarioBO)datos["UsuarioCreacion"];
                if (usuarioCreacion == null)
                {
                    usuarioCreacion = new UsuarioBO();
                }

                UsuarioBO usuarioCierre = (UsuarioBO)datos["UsuarioCierre"];
                if (usuarioCierre == null)
                {
                    usuarioCierre = new UsuarioBO();
                }

                //Sucursal Matriz
                SucursalBO matriz = (SucursalBO)datos["SucursalMatriz"];
                if (matriz == null)
                {
                    matriz = new SucursalBO();
                }
                if (matriz.UnidadOperativa == null)
                {
                    matriz.UnidadOperativa = new UnidadOperativaBO();
                }
                if (matriz.DireccionesSucursal == null)
                {
                    direccionUO = string.Empty;
                }
                else
                {
                    var direcUO = matriz.DireccionesSucursal.Find(x => x.Primaria != null && x.Primaria.Value == true);
                    if (direcUO != null)
                    {
                        if (!string.IsNullOrEmpty(direcUO.Telefono) &&
                            !string.IsNullOrWhiteSpace(direcUO.Telefono))
                        {
                            telefonoUO = direcUO.Telefono;
                            if (!string.IsNullOrEmpty(direcUO.Calle) &&
                                !string.IsNullOrWhiteSpace(direcUO.Calle))
                            {
                                direccionUO = direcUO.Calle;
                            }
                        }
                        else
                        {
                            if (!string.IsNullOrEmpty(direcUO.Calle) &&
                                !string.IsNullOrWhiteSpace(direcUO.Calle))
                            {
                                direccionUO = direcUO.Calle;
                            }
                        }
                    }
                }

                #endregion
                #region Asignar valores al Reporte
                #region Encabezado
                xrlblTitulo.Html = leyendaTitulo;
                if (String.IsNullOrEmpty(unidadOperativaConfiguracion.ConfiguracionModulo.URLLogoEmpresa))
                {
                    xrLogo.ImageUrl = modulo.Configuracion.URLLogoEmpresa;
                }
                else
                {
                    xrLogo.ImageUrl = unidadOperativaConfiguracion.ConfiguracionModulo.URLLogoEmpresa;
                }
                xrlblFormatoNumero.Text = contrato.NumeroContrato ?? String.Empty;
                if (contrato.Estatus == EEstatusContrato.Borrador || contrato.Estatus == EEstatusContrato.EnPausa)
                {
                    Watermark.Text = "BORRADOR";
                }

                #endregion
                #region Seccion Izquierda

                xrlblUnidadOperativa.Text = matriz.UnidadOperativa.Nombre ?? String.Empty;
                xrlblCliente.Text         = contrato.Cliente.Nombre ?? String.Empty;
                xrlblRFC.Text             = contrato.Cliente.Cliente.RFC ?? String.Empty;
                xrtblCellDireccion.Text   = contrato.Cliente.Direccion ?? String.Empty;

                DireccionClienteBO direccionCliente = contrato.Cliente.Direcciones.Find(c => c.Primaria != null && c.Primaria.Value) ??
                                                      new DireccionClienteBO();

                if (direccionCliente.Ubicacion == null)
                {
                    direccionCliente.Ubicacion = new UbicacionBO();
                }
                if (direccionCliente.Ubicacion.Ciudad == null)
                {
                    direccionCliente.Ubicacion.Ciudad = new CiudadBO();
                }
                if (direccionCliente.Ubicacion.Estado == null)
                {
                    direccionCliente.Ubicacion.Estado = new EstadoBO();
                }

                xrtblCellCiudad.Text = direccionCliente.Ubicacion.Ciudad.Codigo ?? String.Empty;
                xrtblCellEstado.Text = direccionCliente.Ubicacion.Estado.Codigo ?? String.Empty;
                xrtblCellCP.Text     = direccionCliente.CodigoPostal ?? String.Empty;



                xrtblCellNumeroCuenta.Text = contrato.Cliente.Id != null?contrato.Cliente.Id.ToString() : String.Empty;

                //SC0021 orden de compra con N/A
                if (contrato.FormaPago == null)
                {
                    xrtblCellOrdenCompra.Text = String.Empty;
                }
                if (contrato.FormaPago == null && contrato.TipoConfirmacion == null)
                {
                    xrtblCellOrdenCompra.Text = String.Empty;
                }
                else
                {
                    if (contrato.FormaPago != null && contrato.TipoConfirmacion != null &&
                        contrato.FormaPago == EFormaPago.CREDITO &&
                        contrato.TipoConfirmacion == ETipoConfirmacion.ORDEN_DE_COMPRA)
                    {
                        xrtblCellOrdenCompra.Text = contrato.AutorizadorOrdenCompra;
                    }
                    else
                    {
                        xrtblCellOrdenCompra.Text = "N/A";
                    }
                }
                xrtblCellNombreOperador.Text      = contrato.Operador.Nombre ?? String.Empty;
                xrtblCellExperienciaOperador.Text = contrato.Operador.AñosExperiencia != null
                                                        ? contrato.Operador.AñosExperiencia.ToString()
                                                        : String.Empty;

                xrtblCellCalleOperador.Text  = contrato.Operador.Direccion.Calle ?? String.Empty;
                xrtblCellCiudadOperador.Text = contrato.Operador.Direccion.Ubicacion.Ciudad.Nombre ?? String.Empty;
                xrtblCellEstadoOperador.Text = contrato.Operador.Direccion.Ubicacion.Estado.Nombre ?? String.Empty;
                xrtblCellCPOperador.Text     = contrato.Operador.Direccion.CodigoPostal ?? String.Empty;
                if (contrato.Operador.Licencia.Tipo == ETipoLicencia.ESTATAL)
                {
                    xrchkEstatal.Checked = true;
                }
                if (contrato.Operador.Licencia.Tipo == ETipoLicencia.FEDERAL)
                {
                    xrchkFederal.Checked = true;
                }
                xrTableCell20.Controls.Add(xrchkEstatal);
                xrTableCell21.Controls.Add(xrchkFederal);
                xrtblCellNumeroLicencia.Text  = contrato.Operador.Licencia.Numero ?? String.Empty;
                xrtblCellEstadoLicencia.Text  = contrato.Operador.Licencia.Estado ?? String.Empty;
                xrtblCellFechaExpiracion.Text = contrato.Operador.Licencia.FechaExpiracion != null
                                                    ? contrato.Operador.Licencia.FechaExpiracion.Value.ToString("dd/MM/yyyy")
                                                    : String.Empty;

                xrtblCellFechaNacimiento.Text = contrato.Operador.FechaNacimiento != null
                                                    ? contrato.Operador.FechaNacimiento.Value.ToString("dd/MM/yyyy")
                                                    : String.Empty;

                xrlblLeyendaCondiciones.Html      = leyendaCondiciones;
                xrtblCellAreaOperacion.Text       = contrato.DestinoAreaOperacion ?? String.Empty;
                xrtblCellVehiculoDevuelto.Text    = direccionSuc ?? String.Empty;
                xrtblCellMercanciaTrasportar.Text = contrato.MercanciaTransportar ?? String.Empty;

                if (contrato.MotivoRenta == EMotivoRenta.DEMOSTRACION)
                {
                    xrchkDemostracion.Checked = true;
                }
                if (contrato.MotivoRenta == EMotivoRenta.MATERIAL_PELIGROSO)
                {
                    xrchkMaterialPeligroso.Checked = true;
                }
                if (contrato.MotivoRenta == EMotivoRenta.SUSTITUCION_TEMPORAL)
                {
                    xrchkSustitucionTemporal.Checked = true;
                }
                if (contrato.MotivoRenta == EMotivoRenta.UNIDAD_EXTRA)
                {
                    xrchkUnidadExtra.Checked = true;
                }
                xrlblLeyendaCargosCombustible.Html = leyendaCargoCombustible;
                xrlblLeyendaBitacoraViaje.Html     = leyendaBitacora;
                if (contrato.BitacoraViajeConductor == true)
                {
                    xrchkBitacora.Checked = true;
                }

                SeguroBO seguro = (SeguroBO)tramites.Find(t => t.Tipo == ETipoTramite.SEGURO);
                if (seguro != null)
                {
                    string aseguradoraTelefono = string.Empty;
                    aseguradoraTelefono = !String.IsNullOrEmpty(seguro.Aseguradora) ? seguro.Aseguradora : string.Empty;

                    aseguradoraTelefono = !String.IsNullOrEmpty(seguro.Contacto)
                                              ? (!String.IsNullOrEmpty(aseguradoraTelefono)
                                                     ? aseguradoraTelefono + " - " + seguro.Contacto
                                                     : aseguradoraTelefono)
                                              : aseguradoraTelefono;

                    xrtblCellCompaniaAseguradora.Text = !String.IsNullOrEmpty(aseguradoraTelefono)
                                                            ? aseguradoraTelefono
                                                            : String.Empty;
                    xrlblNumeroPoliza.Text = seguro.NumeroPoliza ?? String.Empty;
                    xrlblCompania.Text     = seguro.Aseguradora ?? String.Empty;
                }

                LineaContratoRDBO lineaTemp = contrato.ObtenerLineaContrato();
                if (lineaTemp.Equipo.ActivoFijo.CostoSinIva == null)
                {
                    leyendaSeguro = leyendaSeguro.Replace("{MONTODEDUCIBLE}", "__________");
                }
                else
                {
                    Decimal?montoDeducibleCalcuado = 0;
                    montoDeducibleCalcuado = lineaTemp.Equipo.ActivoFijo.CostoSinIva;
                    var unidad = (UnidadBO)lineaTemp.Equipo;
                    if (unidad.EquiposAliados.Count > 0)
                    {
                        montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto);
                    }
                    //SC0021 formato de decimales
                    leyendaSeguro = leyendaSeguro.Replace("{MONTODEDUCIBLE}", String.Format("{0:#,##0.00##}", contrato.CalcularMontoDeducible((Decimal)montoDeducibleCalcuado).Value));
                }
                xrlblLeyendaSeguro.Html = leyendaSeguro;

                xrlblFirmaUnidadOperativa.Text         = matriz.UnidadOperativa.Nombre;
                xrlblRepresentanteUnidadOperativa.Text = unidadOperativaConfiguracion.Representante;
                xrlblTelefonoUnidadOperativa.Text      = telefonoUO;
                xrlblDireccionUnidadOperativa.Text     = direccionUO;
                if (contrato.Cliente.EsFisico == null || contrato.Cliente.EsFisico == true)
                {
                    RepresentanteLegalBO representante;
                    if (firmantes.Item2 == null)
                    {
                        representante = new RepresentanteLegalBO();
                    }
                    else
                    {
                        representante = (RepresentanteLegalBO)firmantes.Item2[0];
                    }
                    string cliente = representante.Nombre;
                    cliente = !String.IsNullOrEmpty(representante.Telefono)
                                  ? cliente + "/n" + representante.Telefono
                                  : cliente;
                    cliente = !String.IsNullOrEmpty(representante.Direccion)
                                  ? cliente + "/n" + representante.Direccion
                                  : cliente;
                    xrlblDatosClienteMoral.Text = cliente;

                    xrSubreport3.Visible = false;
                }
                if (contrato.Cliente.EsFisico == false)
                {
                    xrlblDatosClienteMoral.BorderWidth = 0;
                    string clienteMoral = contrato.Cliente.Nombre;
                    var    direccion    = contrato.Cliente.Direcciones.Find(p => p.Primaria != null && p.Primaria.Value);

                    if (direccion != null)
                    {
                        if (!String.IsNullOrWhiteSpace(direccion.Telefono) && !String.IsNullOrEmpty(direccion.Telefono))
                        {
                            clienteMoral = clienteMoral + "\n" + direccion.Telefono;
                        }
                    }
                    clienteMoral = clienteMoral + "\n" + contrato.Cliente.Direccion;
                    xrlblDatosClienteMoral.Text = clienteMoral;
                    if (firmantes.Item2 != null)
                    {
                        firmantes.Item2.ForEach(r => r.Telefono = null);
                        xrSubreport3.ReportSource.DataSource    = firmantes.Item2.ConvertAll(r => (RepresentanteLegalBO)r);
                    }
                    else
                    {
                        xrSubreport3.Visible = false;
                    }
                }

                #endregion
                #region Seccion Derecha

                xrlblFecha.Text = contrato.FechaContrato != null
                                      ? contrato.FechaContrato.Value.ToShortDateString()
                                      : String.Empty;

                xrlblFechaPromesaDevolucion.Text = contrato.FechaPromesaDevolucion != null
                                                       ? contrato.FechaPromesaDevolucion.Value.ToShortDateString()
                                                       : String.Empty;

                xrlblModelo.Text = lineaTemp.Equipo.Modelo.Nombre ?? String.Empty;
                xrtblCellNumeroEconomico.Text = ((UnidadBO)lineaTemp.Equipo).NumeroEconomico ?? String.Empty;
                xrtblCellNumeroSerie.Text     = lineaTemp.Equipo.NumeroSerie ?? String.Empty;
                xrtblCellNumeroPlaca.Text     = numeroPlaca;
                //SC0021 formato de decimales
                xrtblCellPBC.Text = ((UnidadBO)lineaTemp.Equipo).CaracteristicasUnidad.PBCMaximoRecomendado != null
                                        ? String.Format("{0:#,##0.00##}", ((UnidadBO)lineaTemp.Equipo).CaracteristicasUnidad.PBCMaximoRecomendado)
                                        : String.Empty;

                xrlblTipo.Text = lineaTemp.Equipo.TipoEquipoServicio.Nombre ?? String.Empty;
                xrSubreport1.ReportSource.DataSource = ((UnidadBO)linea.Equipo).EquiposAliados;
                //xrlblModeloEquipoAliado.DataBindings.Add(new XRBinding("Text", (((UnidadBO)linea.Equipo).EquiposAliados), "Modelo.Nombre"));
                //xrlblSerieEquipoAliado.DataBindings.Add(new XRBinding("Text", (((UnidadBO)linea.Equipo).EquiposAliados), "NumeroSerie"));


                if (lineaTemp.Equipo.EquipoID != null)
                {
                    xrtblCellFechaDevolucion.Text = contrato.ObtenerFechaDevolucion((UnidadBO)lineaTemp.Equipo) != null
                                                        ? contrato.ObtenerFechaDevolucion((UnidadBO)lineaTemp.Equipo)
                                                    .Value.ToString()
                                                        : String.Empty;

                    xrtblCellFechaSalida.Text = contrato.ObtenerFechaEntrega((UnidadBO)lineaTemp.Equipo) != null
                                                    ? contrato.ObtenerFechaEntrega((UnidadBO)lineaTemp.Equipo)
                                                .Value.ToString()
                                                    : String.Empty;

                    xrtblCellKmTotal.Text = contrato.CalcularKilometrajeRecorrido((UnidadBO)lineaTemp.Equipo) != null
                                            ? String.Format("{0:#,##0}", contrato.CalcularKilometrajeRecorrido((UnidadBO)lineaTemp.Equipo))
                                            : String.Empty;

                    xrlblCargoKilometro.Text =
                        ((TarifaContratoRDBO)lineaTemp.Cobrable).RangoTarifas.First().CargoKm != null
                                              ? "$ " + String.Format("{0:#,##0.00##}", ((TarifaContratoRDBO)lineaTemp.Cobrable).RangoTarifas.First().CargoKm)
                                              : "$";


                    xrtblCellTotalEquipoAliado.Text = contrato.CalcularHorasConsumidas((UnidadBO)lineaTemp.Equipo) != null
                                                          ? String.Format("{0:#,##0}", contrato.CalcularHorasConsumidas((UnidadBO)lineaTemp.Equipo))
                                                          : String.Empty;
                }
                else
                {
                    xrtblCellFechaDevolucion.Text   = String.Empty;
                    xrtblCellFechaSalida.Text       = String.Empty;
                    xrtblCellKmTotal.Text           = String.Empty;
                    xrlblCargoKilometro.Text        = "$";
                    xrtblCellTotalEquipoAliado.Text = String.Empty;
                }
                xrtblCellDias.Text = contrato.CalcularDiasTranscurridosRenta() != null
                                         ? String.Format("{0:#,##0}", contrato.CalcularDiasTranscurridosRenta())
                                         : String.Empty;

                xrtblCellHoras.Text = contrato.CalcularHorasTranscurridasRenta() != null
                                          ? String.Format("{0:#,##0.00##}", contrato.CalcularHorasTranscurridasRenta())
                                          : String.Empty;

                if (contrato.LectorKilometraje == ELectorKilometraje.HUBODOMETRO)
                {
                    xrchkHubodometro.Checked = true;
                }
                if (contrato.LectorKilometraje == ELectorKilometraje.ODOMETRO)
                {
                    xrchkOdometro.Checked = true;
                }
                ListadoVerificacionBO listadoEntrada =
                    lineaTemp.ListadosVerificacion.Find(l => l.Tipo == ETipoListadoVerificacion.RECEPCION);
                if (listadoEntrada == null)
                {
                    xrtblCellKmEntrada.Text = String.Empty;
                    xrtblCellHrEntrada.Text = String.Empty;
                }
                else
                {
                    xrtblCellKmEntrada.Text = listadoEntrada.Kilometraje != null
                                                  ? String.Format("{0:#,##0}", listadoEntrada.Kilometraje)
                                                  : String.Empty;

                    xrtblCellHrEntrada.Text = listadoEntrada.Horometro != null
                                                  ? String.Format("{0:#,##0}", listadoEntrada.Horometro)
                                                  : String.Empty;
                }
                ListadoVerificacionBO listadoSalida =
                    lineaTemp.ListadosVerificacion.Find(l => l.Tipo == ETipoListadoVerificacion.ENTREGA);
                if (listadoSalida == null)
                {
                    xrtblCellKmSalida.Text = String.Empty;
                    xrtblCellHrSalida.Text = String.Empty;
                }
                else
                {
                    xrtblCellKmSalida.Text = listadoSalida.Kilometraje != null
                                                 ? String.Format("{0:#,##0}", listadoSalida.Kilometraje)
                                                 : String.Empty;

                    xrtblCellHrSalida.Text = listadoSalida.Horometro != null
                                                 ? String.Format("{0:#,##0}", listadoSalida.Horometro)
                                                 : String.Empty;
                }

                //SC0021 formato de decimales
                var tarifaContrato = lineaTemp.Cobrable != null ? lineaTemp.Cobrable as TarifaContratoRDBO : new TarifaContratoRDBO();
                xrlblTarifaDiaria.Text = tarifaContrato.TarifaDiaria != null
                                                 ? "$ " + String.Format("{0:#,##0.00##}", tarifaContrato.TarifaDiaria)
                                                 : "$";

                xrlblTarifaHora.Text = tarifaContrato.RangoTarifas != null && tarifaContrato.RangoTarifas.Any() && tarifaContrato.RangoTarifas.First().CargoHr != null
                                               ? "$ " + String.Format("{0:#,##0.00##}", tarifaContrato.RangoTarifas.First().CargoHr)
                                               : "$";
                if (unidadOperativaConfiguracion.PrecioUnidadCombustible == null)
                {
                    xrtblCellLitro.Text = "";
                }

                xrtblCellPrecioLitro.Text = unidadOperativaConfiguracion.PrecioUnidadCombustible != null
                                                ? "$ " + String.Format("{0:#,##0.00##}", unidadOperativaConfiguracion.PrecioUnidadCombustible)
                                                : "$";

                string descripcion = string.Empty;
                if (contrato.FormaPago != null)
                {
                    FieldInfo fi = contrato.FormaPago.GetType().GetField(contrato.FormaPago.ToString());

                    DescriptionAttribute[] attributes =
                        (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);

                    if (attributes != null &&
                        attributes.Length > 0)
                    {
                        descripcion = attributes[0].Description;
                    }
                    else
                    {
                        descripcion = contrato.FormaPago.ToString();
                    }
                }
                if (contrato.TipoConfirmacion != null)
                {
                    FieldInfo fi = contrato.TipoConfirmacion.GetType().GetField(contrato.TipoConfirmacion.ToString());

                    DescriptionAttribute[] attributes =
                        (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);

                    if (attributes != null &&
                        attributes.Length > 0)
                    {
                        descripcion = !String.IsNullOrEmpty(descripcion)
                                          ? descripcion + " - " + attributes[0].Description
                                          : attributes[0].Description;
                    }
                    else
                    {
                        descripcion = !String.IsNullOrEmpty(descripcion)
                                          ? descripcion + " - " + contrato.TipoConfirmacion.ToString()
                                          : contrato.TipoConfirmacion.ToString();
                    }
                }

                this.xrtblCellCreditoAprobadoPor.Text = !string.IsNullOrEmpty(contrato.AutorizadorTipoConfirmacion) &&
                                                        !string.IsNullOrWhiteSpace(contrato.AutorizadorTipoConfirmacion)
                                                            ? contrato.AutorizadorTipoConfirmacion.Trim().ToUpper()
                                                            : string.Empty;

                xrtblCellTipoConfirmacion.Text = descripcion;

                if (contrato.FormaPago != null)
                {
                    xrchkDeposito.Checked = true;
                    if (lineaTemp.Equipo.ActivoFijo.CostoSinIva == null)
                    {
                        xrtblCellDepositoRecibido.Text = "$";
                    }
                    else
                    {
                        Decimal?montoDeducibleCalcuado = 0;
                        montoDeducibleCalcuado = lineaTemp.Equipo.ActivoFijo.CostoSinIva;
                        var unidad = (UnidadBO)lineaTemp.Equipo;
                        if (unidad.EquiposAliados.Count > 0)
                        {
                            montoDeducibleCalcuado = unidad.EquiposAliados.Aggregate(montoDeducibleCalcuado, (monto, equipoAliado) => equipoAliado.ActivoFijo != null ? equipoAliado.ActivoFijo.CostoSinIva != null ? monto + equipoAliado.ActivoFijo.CostoSinIva : monto : monto);
                        }
                        //SC0021 formato de decimales
                        xrtblCellDepositoRecibido.Text =
                            contrato.CalcularMontoDeposito((Decimal)montoDeducibleCalcuado) != null
                                ? "$" +
                            String.Format("{0:#,##0.00##}", contrato.CalcularMontoDeposito((Decimal)montoDeducibleCalcuado))
                                : "$";
                    }
                }
                if (contrato.TipoConfirmacion != null && contrato.TipoConfirmacion == ETipoConfirmacion.ORDEN_DE_COMPRA)
                {
                    xrchkDeposito.Checked          = false;
                    xrtblCellDepositoRecibido.Text = "$0.00";
                }
                xrtblCellPreparadoPor.Text  = usuarioCreacion.Nombre ?? String.Empty;
                xrtblCellCompletadoPor.Text = usuarioCierre.Nombre ?? String.Empty;

                #region CU011 – Imprimir Cierre de Contrato de Renta Diaria

                //se obtiene los datos de finalizacion del contrato
                object             finalizacion   = contrato.ObtenerFinalizacionContratoRD();
                CierreContratoRDBO cierreContrato = null;
                if (finalizacion != null && typeof(CierreContratoRDBO) == finalizacion.GetType() && lineaTemp != null)
                {
                    cierreContrato = (CierreContratoRDBO)finalizacion;
                }

                if (cierreContrato != null)
                {
                    // se realizan los calculos
                    decimal?importeRenta       = contrato.CalcularDiasTranscurridosRenta() * ((TarifaContratoRDBO)lineaTemp.Cobrable).TarifaDiaria;
                    decimal?importeKmAdicional = contrato.CalcularMontoPorKilometrosExcedidos((UnidadBO)lineaTemp.Equipo);
                    decimal?importeHrAdicional = contrato.CalcularMontoPorHorasExcedidas((UnidadBO)lineaTemp.Equipo);
                    decimal?subtotalTarifa     = importeRenta + importeKmAdicional + importeHrAdicional;
                    int?    litrosUnidad       = contrato.CalcularDiferenciaCombustible();
                    decimal?importeLitros      = contrato.CalcularMontoPorCombustible(unidadOperativaConfiguracion.PrecioUnidadCombustible);
                    decimal?subtotalCargos     = unidadOperativaConfiguracion.PrecioUnidadCombustible.HasValue ? contrato.CalcularSubTotalCargos(unidadOperativaConfiguracion.PrecioUnidadCombustible.Value) : null;
                    decimal?importeSinIva      = subtotalTarifa + subtotalCargos;
                    decimal?importeDelIva      = (importeSinIva * (contrato.Sucursal.Impuesto != null ? contrato.Sucursal.Impuesto.PorcentajeImpuesto : null)) / 100;
                    decimal?cargoNeto          = importeSinIva + importeDelIva;
                    //decimal? montoDeposito = contrato.CalcularMontoDeposito(lineaTemp.Equipo.ActivoFijo.CostoSinIva.Value);
                    decimal?totalPagar = cargoNeto;

                    // se asignan valores a los campos del reporte
                    xrtblCellTarifaDiaria.Text   = importeRenta != null ? "$ " + String.Format("{0:#,##0.00##}", importeRenta) : string.Empty;
                    xrtblCellCargoKilometro.Text = importeKmAdicional != null ? "$ " + String.Format("{0:#,##0.00##}", importeKmAdicional) : string.Empty;
                    xrtblCellTarifaHora.Text     = importeHrAdicional != null ? "$ " + String.Format("{0:#,##0.00##}", importeHrAdicional) : string.Empty;
                    xrtblCellSubtotalTarifa.Text = subtotalTarifa != null ? "$ " + String.Format("{0:#,##0.00##}", subtotalTarifa) : string.Empty;
                    xrtblCellLitros.Text         = litrosUnidad != null?String.Format("{0:#,##0.00##}", litrosUnidad) : string.Empty;

                    xrtblCellImporteLitros.Text       = importeLitros != null ? "$ " + String.Format("{0:#,##0.00##}", importeLitros) : string.Empty;
                    xrtblCellCargoAbuso.Text          = cierreContrato.CargoAbusoOperacion != null ? "$ " + String.Format("{0:#,##0.00##}", cierreContrato.CargoAbusoOperacion) : string.Empty;
                    xrtblCellCargoBasura.Text         = cierreContrato.CargoDisposicionBasura != null ? "$ " + String.Format("{0:#,##0.00##}", cierreContrato.CargoDisposicionBasura) : string.Empty;
                    xrtblCellSubtotalCargos.Text      = subtotalCargos != null ? "$ " + String.Format("{0:#,##0.00##}", subtotalCargos) : string.Empty;
                    xrtblCellPorcentajeIva.Text       = contrato.Sucursal.Impuesto.PorcentajeImpuesto.HasValue ? contrato.Sucursal.Impuesto.PorcentajeImpuesto.Value.ToString() + " %" : string.Empty;
                    xrtblCellCargoNeto.Text           = cargoNeto != null ? "$ " + String.Format("{0:#,##0.00##}", cargoNeto) : string.Empty;
                    xrtblCellRembolso.Text            = cierreContrato.ImporteReembolso != null ? "$ " + String.Format("{0:#,##0.00##}", cierreContrato.ImporteReembolso) : string.Empty;
                    xrtblCellTotalPagar.Text          = totalPagar != null ? "$ " + String.Format("{0:#,##0.00##}", totalPagar) : string.Empty;
                    xrtblCellRembolsoRecibidoPor.Text = cierreContrato.PersonaRecibeReembolso;
                    xrtblCellImporteIVA.Text          = importeDelIva != null ? "$ " + String.Format("{0:#,##0.00##}", importeDelIva) : string.Empty;
                }
                #endregion
                #endregion
                #region Pie de Reporte
                xrlblLeyendaArrendatarios.Html = leyendaArrendatarios;
                xrlblLeyendaOperacion.Html     = leyendaOperacion;
                xrlblLeyendaInspeccion.Html    = leyendaInspeccion;
                xrlblNumeroCheckList.Text      = contrato.CalcularNumeroListadoVerificacion() ?? String.Empty;
                #endregion
                #endregion
            }
            catch (Exception ex)
            {
                throw new Exception("ContratoRentaDiariaRPT.ImprimirReporte:Error al intentar generar el reporte." + ex.Message);
            }
        }
        /// <summary>
        /// Asocia los datos del objeto Contrato a la interfaz
        /// </summary>
        /// <param name="bo">Origen de los datos</param>
        private void DatoAInterfazUsuario(ContratoRDBO bo)
        {
            try{
                if (bo == null)
                {
                    bo = new ContratoRDBO();
                    if (bo.Sucursal == null)
                    {
                        bo.Sucursal = new SucursalBO();
                    }
                    if (bo.Sucursal.UnidadOperativa == null)
                    {
                        bo.Sucursal.UnidadOperativa = new UnidadOperativaBO();
                    }
                    return;
                }
                this.vista.ContratoID = bo.ContratoID;
                if (bo.Estatus != null)
                {
                    this.vista.EstatusID = (int)bo.Estatus;
                }
                else
                {
                    this.vista.EstatusID = null;
                }

                this.presentadorHerramientas.DatosAInterfazUsuario(bo);

                if (bo != null && bo.DocumentosAdjuntos != null && bo.DocumentosAdjuntos.Count > 0)
                {
                    bo.DocumentosAdjuntos = bo.DocumentosAdjuntos.Where(archivo => archivo.Activo == true).ToList();
                }
                #region Lineas
                if (bo.ObtenerLineaContrato() != null && bo.ObtenerLineaContrato().Equipo != null && bo.ObtenerLineaContrato().Equipo is UnidadBO && ((UnidadBO)bo.ObtenerLineaContrato().Equipo).UnidadID != null)
                {
                    ElementoFlotaBO elemento = new ElementoFlotaBO()
                    {
                        Unidad = (UnidadBO)bo.ObtenerLineaContrato().Equipo
                    };
                    elemento.Tramites = new TramiteBR().ConsultarCompleto(this.dctx, new TramiteProxyBO()
                    {
                        Activo = true, Tramitable = elemento.Unidad
                    }, false);
                    if (elemento != null && elemento.Unidad != null && elemento.Unidad.Sucursal == null)
                    {
                        elemento.Unidad.Sucursal = new SucursalBO();
                    }

                    this.presentadorDG.DatoAInterfazUsuario(elemento as object);
                    this.presentadorDG.ProductoServicioAInterfazUsuario(bo.ObtenerLineaContrato().ProductoServicio);
                    this.presentadorDG.MostrarProductoServicio(true);
                    this.presentadorEA.DatoAInterfazUsuario(elemento as object);
                    this.presentadorEA.CargarEquiposAliados();
                }
                else
                {
                    this.presentadorDG.Inicializar();
                    this.presentadorEA.Inicializar();
                }

                int?kmRecorridos = null;
                if (bo.ObtenerLineaContrato() != null)
                {
                    kmRecorridos = bo.ObtenerLineaContrato().CalcularKilometrajeRecorrido();
                }
                #endregion
                //En cualquiera de estos casos, es Cancelación
                bool casoPermitido1 = bo.Estatus != null && bo.Estatus == EEstatusContrato.EnPausa;
                bool casoPermitido2 = bo.Estatus != null && bo.Estatus == EEstatusContrato.PendientePorCerrar && kmRecorridos != null && kmRecorridos == 0;
                //En este caso, es Cierre
                bool casoPermitido3 = bo.Estatus != null && bo.Estatus == EEstatusContrato.PendientePorCerrar && kmRecorridos != null && kmRecorridos > 0;

                this.vista.Cancelable = casoPermitido1 || casoPermitido2;
                this.vista.Cerrable   = casoPermitido3;

                this.vista.PermitirCerrar(casoPermitido1 || casoPermitido2 || casoPermitido3);

                this.presentadorDocumentosContrato.Vista.EstablecerListasArchivos(bo.DocumentosAdjuntos, new List <TipoArchivoBO>());
                LineaContratoRDBO linea = bo.ObtenerLineaContrato();
                if (linea != null)
                {
                    ListadoVerificacionBO chkEntrega   = new ListadoVerificacionBO();
                    ListadoVerificacionBO chkRecepcion = new ListadoVerificacionBO();
                    chkEntrega = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.ENTREGA);
                    if (chkEntrega != null)
                    {
                        this.presentadorDocumentosEntrega.Vista.EstablecerListasArchivos(chkEntrega.Adjuntos, new List <TipoArchivoBO>());
                    }
                    chkRecepcion = linea.ObtenerListadoVerificacionPorTipo(ETipoListadoVerificacion.RECEPCION);
                    if (chkRecepcion != null)
                    {
                        this.presentadorDocumentosRecepcion.Vista.EstablecerListasArchivos(chkRecepcion.Adjuntos, new List <TipoArchivoBO>());
                    }
                }
                this.presentadorResumen.DatosAInterfazUsuario(bo);
                this.vista.UltimoObjeto = bo;
            } catch (Exception ex) {
                throw new Exception(this.nombreClase + ".DatoAInterfazUsuario: " + ex.Message);
            }
        }
Пример #30
0
        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);
            }
        }