Exemple #1
0
        public void ConsultarSeguro()
        {
            try
            {
                if (this.vista != null && this.vista.SeguroID != null)
                {
                    SeguroBO bo = new SeguroBO()
                    {
                        TramiteID = this.vista.SeguroID
                    };

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

                    this.vista.RedirigirADetalleSeguro();
                }
                else
                {
                    this.vista.MostrarMensaje("La Unidad no cuenta con un Seguro Configurado", ETipoMensajeIU.ADVERTENCIA, null);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".ConsultarSeguro: " + ex.Message);
            }
        }
        private void EstablecerDatosNavegacion(object paqueteNavegacion)
        {
            if (paqueteNavegacion == null)
            {
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba un objeto en la navegación. No se puede identificar qué seguro se desea consultar.");
            }
            if (!(paqueteNavegacion is SeguroBO))
            {
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba un seguro.");
            }

            SeguroBO bo = (SeguroBO)paqueteNavegacion;

            if (bo.Tramitable == null)
            {
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba el tramitable para el seguro.");
            }
            if (!bo.Tramitable.TramitableID.HasValue)
            {
                if (!bo.Tramitable.TipoTramitable.HasValue)
                {
                    throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba el tramitable para el seguro.");
                }
                if (string.IsNullOrEmpty(bo.Tramitable.DescripcionTramitable) || string.IsNullOrWhiteSpace(bo.Tramitable.DescripcionTramitable))
                {
                    throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba el tramitable para el seguro.");
                }
            }

            this.DatoAInterfazUsuario(bo);
        }
        private void ConsultarCompleto()
        {
            try
            {
                SeguroBO bo = (SeguroBO)this.vista1.InterfazUsuarioADato();

                List <SeguroBO> lst = this.controlador.ConsultarCompleto(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.");
                }

                this.DatoAInterfazUsuario(lst[0]);
                this.vista1.ActualizarLista();
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
        public void RedirigirARegistrarSeguro()
        {
            SeguroBO seguroBO = new SeguroBO {
                Tramitable = this.vista.Tramitable
            };

            this.EstablecerDatosNavegacionSeguro("REGISTRARSEGURO", seguroBO);
            this.vista.RedirigirARegistrarSeguro();
        }
        public void EstablecerPaqueteNavegacion(string Clave, int?tramiteID)
        {
            SeguroBO seguro = (SeguroBO)this.presentador.InterfazUsuarioADato();

            if (seguro != null)
            {
                Session[Clave] = seguro;
            }
            else
            {
                throw new Exception(this.nombreClase + ".EstablecerPaqueteNavegacion: El seguro proporcionado no puede ser desplegado.");
            }
        }
Exemple #6
0
        public void EstablecerPaqueteNavegacion(string Clave, int?tramiteID)
        {
            SeguroBO seguro = this.Seguros.FirstOrDefault(x => x.TramiteID.Value == tramiteID.Value);

            if (seguro != null)
            {
                Session[Clave] = seguro;
            }
            else
            {
                throw new Exception(this.nombreClase + ".EstablecerPaqueteNavegacion: El seguro proporcionado no pertence al listado de seguros encontrados.");
            }
        }
        public void EstablecerPaqueteNavegacion(string Clave)
        {
            SeguroBO seguro = (SeguroBO)this.presentador.InterfazUsuarioADato();

            if (seguro != null)
            {
                Session[Clave] = seguro;
            }
            else
            {
                throw new Exception(nombreClase + ".EstablecerPaqueteNavegacion: El seguro proporcionado no pertence al listado de seguros registrados.");
            }
            Response.Redirect("EditarSeguroUI.aspx");
        }
        private object InterfazUsuarioADato()
        {
            SeguroBO bo = new SeguroBO();

            BPMO.SDNI.Equipos.BO.UnidadBO tramitable = new BPMO.SDNI.Equipos.BO.UnidadBO();

            bo.Aseguradora         = this.vista.Aseguradora;
            bo.NumeroPoliza        = this.vista.NumeroPoliza;
            tramitable.NumeroSerie = this.vista.VIN;
            tramitable.UnidadID    = this.vista.TramitableID;;
            bo.Tramitable          = tramitable;
            bo.Activo = true;
            return(bo);
        }
        private void EstablecerDatosNavegacion(object paqueteNavegacion)
        {
            if (paqueteNavegacion == null)
            {
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba un objeto en la navegación. No se puede identificar qué seguro se desea consultar.");
            }
            if (!(paqueteNavegacion is SeguroBO))
            {
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: Se esperaba un seguro.");
            }

            SeguroBO bo = (SeguroBO)paqueteNavegacion;

            this.DatoAInterfazUsuario(bo);
        }
        private void DatoAInterfazUsuario(SeguroBO bo)
        {
            this.vista1.DatoAInterfazUsuario(bo);

            this.vista.NumeroPoliza = bo.NumeroPoliza;

            if (bo.Tramitable != null)
            {
                this.vista.DescripcionTramitable = bo.Tramitable.DescripcionTramitable;
            }
            else
            {
                this.vista.DescripcionTramitable = null;
            }
        }
        public void CargarObjeto(string key)
        {
            this.EstablecerDatosNavegacion(this.vista.ObtenerDatosNavegacion(key));
            this.LimpiarSesion();

            //Se obtiene la información a partir de la Interfaz de Usuario
            SeguroBO        bo      = (SeguroBO)this.InterfazUsuarioADato();
            List <SeguroBO> seguros = this.controlador.ConsultarCompleto(this.dctx, bo);

            if (seguros.Count > 0)
            {
                this.vista.UltimoObjeto = seguros[0];
                this.DatoAInterfazUsuario(seguros[0]);
            }
        }
        /// <summary>
        /// Calcula el Numero de la Poliza de la Unidad
        /// </summary>
        /// <returns></returns>
        private string CalcularNumeroPoliza()
        {
            var seguroBR = new SeguroBR();
            //SC_0051
            List <SeguroBO> seguros = seguroBR.Consultar(dataContext, new SeguroBO {
                Activo = true, Tramitable = new UnidadBO {
                    UnidadID = vista.UnidadID
                }
            }) ?? new List <SeguroBO>();

            SeguroBO seguro =
                seguros.FindLast(
                    seg => seg.Tramitable.TramitableID == vista.UnidadID && seg.Tramitable.TipoTramitable == ETipoTramitable.Unidad);

            return(seguro != null ? seguro.NumeroPoliza: string.Empty);
        }
        private void DatoAInterfazUsuario(object bo)
        {
            SeguroBO obj = (SeguroBO)bo;

            this.vista1.Activo          = obj.Activo;
            this.vista1.Aseguradora     = obj.Aseguradora;
            this.vista1.Contacto        = obj.Contacto;
            this.vista1.NumeroPoliza    = obj.NumeroPoliza;
            this.vista1.Observaciones   = obj.Observaciones;
            this.vista1.PrimaAnual      = obj.PrimaAnual;
            this.vista1.PrimaSemestral  = obj.PrimaSemestral;
            this.vista1.TramiteID       = obj.TramiteID;
            this.vista1.VigenciaFinal   = obj.VigenciaFinal;
            this.vista1.VigenciaInicial = obj.VigenciaInicial;
            this.vista1.TramiteID       = obj.TramiteID;
        }
        public object InterfazUsuarioADato()
        {
            SeguroBO bo = new SeguroBO();

            bo.Auditoria = new AuditoriaBO();
            TramitableProxyBO tramitable = new TramitableProxyBO();

            bo.Activo      = this.vista.Activo;
            bo.Aseguradora = this.vista.Aseguradora;
            bo.Contacto    = this.vista.Contacto;
            if (this.vista.Deducibles.Count > 0)
            {
                bo.Deducibles = this.vista.Deducibles;
            }
            if (this.vista.Endosos.Count > 0)
            {
                bo.Endosos = this.vista.Endosos;
            }
            if (this.vista.Siniestros.Count > 0)
            {
                bo.Siniestros = this.vista.Siniestros;
            }
            bo.Auditoria.FC   = this.vista.FC;
            bo.Auditoria.FUA  = this.vista.FUA;
            bo.NumeroPoliza   = this.vista.NumeroPoliza;
            bo.Observaciones  = this.vista.Observaciones;
            bo.PrimaAnual     = this.vista.PrimaAnual;
            bo.PrimaSemestral = this.vista.PrimaSemestral;
            bo.Resultado      = this.vista.NumeroPoliza;
            bo.Tipo           = this.vista.TipoTramite;
            if (this.vista.TipoTramitable.HasValue)
            {
                tramitable.TipoTramitable = (ETipoTramitable)this.vista.TipoTramitable;
            }
            else
            {
                tramitable.TramitableID = null;
            }
            tramitable.TramitableID = this.vista.TramitableID;
            bo.Tramitable           = tramitable;
            bo.Auditoria.UC         = this.vista.UC;
            bo.Auditoria.UUA        = this.vista.UUA;
            bo.VigenciaFinal        = this.vista.VigenciaFinal;
            bo.VigenciaInicial      = this.vista.VigenciaInicial;
            bo.TramiteID            = this.vista.TramiteID;
            return(bo);
        }
        public void Registrar()
        {
            try
            {
                string s;
                if ((s = this.ValidarCampos()) != null)
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.INFORMACION, null);
                    return;
                }

                if ((s = this.ValidarFechas()) != null)
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.INFORMACION, null);
                    return;
                }

                if (this.ValidarVigente())
                {
                    this.vista.MostrarMensaje("La unidad cuenta actualmente con un seguro vigente.",
                                              ETipoMensajeIU.INFORMACION, null);
                    return;
                }
                //Se obtiene la información a partir de la Interfaz de Usuario
                SeguroBO bo = (SeguroBO)this.InterfazUsuarioADato();

                #region SC0008

                //Se obtiene el objeto SeguridadBO
                SeguridadBO seguridad = ObtenerSeguridad();
                if (seguridad == null)
                {
                    throw new Exception(nombreClase + ".Registrar():El objeto de SeguridadBO no debe se nulo");
                }

                #endregion

                //Se inserta en la base de datos
                this.controlador.InsertarCompleto(this.dctx, bo, seguridad);
                this.vista.IrADetalle();
                this.vista.MostrarMensaje("Registro Exitoso", ETipoMensajeIU.EXITO, null);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        private void ConsultarTramitable()
        {
            try
            {
                SeguroBO        bo  = (SeguroBO)this.InterfazUsuarioADato();
                List <UnidadBO> lst = null;
                if (bo.Tramitable != null)
                {
                    if (bo.Tramitable.TipoTramitable.HasValue)
                    {
                        if (bo.Tramitable.TipoTramitable.Value == ETipoTramitable.Unidad)//Consultamos unidades
                        {
                            UnidadBR unidadBR = new UnidadBR();
                            UnidadBO unidad   = new UnidadBO();
                            unidad.UnidadID = bo.Tramitable.TramitableID;

                            lst = unidadBR.ConsultarCompleto(this.dctx, unidad, true);
                        }
                    }
                    else if (bo.Tramitable.TramitableID.HasValue)
                    {
                        UnidadBR unidadBR = new UnidadBR();
                        UnidadBO unidad   = new UnidadBO();
                        unidad.UnidadID = bo.Tramitable.TramitableID;

                        lst = unidadBR.ConsultarCompleto(this.dctx, unidad, 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.");
                }
                SeguroBO temp = new SeguroBO();
                temp.Tramitable = lst[0];
                this.DatoAInterfazUsuario(temp);
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".ConsultarTramitable:" + ex.Message);
            }
        }
        public void DatoAInterfazUsuario(object obj)
        {
            SeguroBO seguro = (SeguroBO)obj;

            this.vista.Activo          = seguro.Activo;
            this.vista.Aseguradora     = seguro.Aseguradora;
            this.vista.Contacto        = seguro.Contacto;
            this.vista.Deducibles      = seguro.Deducibles;
            this.vista.Endosos         = seguro.Endosos;
            this.vista.NumeroPoliza    = seguro.NumeroPoliza;
            this.vista.Observaciones   = seguro.Observaciones;
            this.vista.PrimaAnual      = seguro.PrimaAnual;
            this.vista.PrimaSemestral  = seguro.PrimaSemestral;
            this.vista.Siniestros      = seguro.Siniestros;
            this.vista.TramiteID       = seguro.TramiteID;
            this.vista.VigenciaFinal   = seguro.VigenciaFinal;
            this.vista.VigenciaInicial = seguro.VigenciaInicial;
            if (seguro.Tramitable != null)
            {
                if (seguro.Tramitable is TramitableProxyBO)
                {
                    this.vista.VIN            = seguro.Tramitable.DescripcionTramitable;
                    this.vista.TipoTramitable = seguro.Tramitable.TipoTramitable;
                    this.vista.TramitableID   = seguro.Tramitable.TramitableID;
                }
                else
                {
                    this.vista.VIN = seguro.Tramitable.DescripcionTramitable;
                    if ((((UnidadBO)seguro.Tramitable).Modelo) != null)
                    {
                        this.vista.Modelo = ((UnidadBO)seguro.Tramitable).Modelo.Nombre;
                    }
                    this.vista.TipoTramitable = seguro.Tramitable.TipoTramitable;
                    this.vista.TramitableID   = seguro.Tramitable.TramitableID;
                }
            }
            if (this.vista.Endosos != null)
            {
                if (this.vista.Endosos.Count > 0)
                {
                    decimal sumaendosos = this.vista.Endosos.Sum(x => x.Importe.Value);
                    this.vista.PrimaAnualTotal = sumaendosos + this.vista.PrimaAnual;
                    this.vista.TotalEndosos    = sumaendosos;
                }
            }
        }
 protected void btnCancelar_Click(object sender, EventArgs e)
 {
     try
     {
         SeguroBO seguro = (SeguroBO)this.presentador.InterfazUsuarioADato();
         if (seguro != null)
         {
             if (seguro.TramiteID.HasValue)
             {
                 this.presentador.IrADetalle(seguro.TramiteID.Value);
             }
         }
     }
     catch (Exception ex)
     {
         this.MostrarMensaje("Inconsistencia al guardar el seguro", ETipoMensajeIU.ERROR, this.nombreClase + ".cmdCancelar_Click:" + ex.Message);
     }
 }
Exemple #19
0
        public void EstablecerPaqueteNavegacion(string Clave, int?tramiteID)
        {
            SeguroBO seguro = (SeguroBO)this.presentador.InterfazUsuarioADato();

            if (seguro != null)
            {
                Session[Clave] = seguro;
            }
            else
            {
                throw new Exception(this.nombreClase + ".EstablecerPaqueteNavegacion: El seguro proporcionado no pertence al listado de seguros encontrados.");
            }
            if (Clave.CompareTo("TramiteSeguro") == 0)
            {
                Response.Redirect("DetalleSeguroUI.aspx", false);
            }
            else
            {
                Response.Redirect("EditarSeguroUI.aspx", false);
            }
        }
        private bool ValidarVigente()
        {
            TramitableProxyBO tramitable = new TramitableProxyBO();

            tramitable.TipoTramitable = this.vista.TipoTramitable.Value;
            tramitable.TramitableID   = this.vista.TramitableID.Value;
            SeguroBO seguro = new SeguroBO {
                Activo = true, Tramitable = tramitable
            };
            List <SeguroBO> seguros = controlador.Consultar(this.dctx, seguro);

            if (seguros == null)
            {
                return(false);
            }

            if (seguros.Count > 0)
            {
                if (seguros.Count > 1)
                {
                    throw new Exception("Inconcistencia en los seguros registrados, por favor revisa la informacion proporcionada");
                }
            }

            if (seguros.Count <= 0)
            {
                return(false);
            }

            seguro = seguros[0];

            if (seguro.VigenciaFinal.HasValue)
            {
                if (seguro.VigenciaFinal.Value.Date < DateTime.Now.Date)
                {
                    return(false);
                }
            }
            return(true);
        }
        public void Consultar()
        {
            try
            {
                //Se obtiene la información a partir de la Interfaz de Usuario
                SeguroBO        bo      = (SeguroBO)this.InterfazUsuarioADato();
                List <SeguroBO> seguros = this.controlador.ConsultarCompleto(this.dctx, bo, this.vista.Vencido != null ? this.vista.Vencido : null);

                this.vista.Seguros = seguros;
                this.vista.ActualizarLista();

                if (seguros.Count < 1)
                {
                    this.vista.MostrarMensaje("La búsqueda no produjo resultados", ETipoMensajeIU.INFORMACION,
                                              "No se encontraron coincidencias con los criterios ingresados. Verifique sus datos");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(this.nombreClase + ".Consultar: " + ex.Message);
            }
        }
Exemple #22
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);
            }
        }
 private void DatoAInterfazUsuario(SeguroBO bo)
 {
     this.vista.Activo         = bo.Activo;
     this.vista.Aseguradora    = bo.Aseguradora;
     this.vista.Contacto       = bo.Contacto;
     this.vista.NumeroPoliza   = bo.NumeroPoliza;
     this.vista.Observaciones  = bo.Observaciones;
     this.vista.PrimaAnual     = bo.PrimaAnual;
     this.vista.PrimaSemestral = bo.PrimaSemestral;
     if (bo.Tramitable != null)
     {
         if (bo.Tramitable.TipoTramitable.HasValue)
         {
             this.vista.TipoTramitable = bo.Tramitable.TipoTramitable.Value;
         }
         if (bo.Tramitable is UnidadBO)
         {
             if (((UnidadBO)bo.Tramitable) != null)
             {
                 UnidadBO uni = (UnidadBO)bo.Tramitable;
                 if (uni.Modelo != null)
                 {
                     if (!string.IsNullOrEmpty(uni.Modelo.Nombre) && !string.IsNullOrWhiteSpace(uni.Modelo.Nombre))
                     {
                         this.vista.Modelo = ((UnidadBO)bo.Tramitable).Modelo.Nombre;
                     }
                 }
             }
         }
         if (bo.Tramitable.TramitableID.HasValue)
         {
             this.vista.TramitableID = bo.Tramitable.TramitableID;
         }
         if (!string.IsNullOrEmpty(bo.Tramitable.DescripcionTramitable) && !string.IsNullOrWhiteSpace(bo.Tramitable.DescripcionTramitable))
         {
             this.vista.VIN = bo.Tramitable.DescripcionTramitable;
         }
     }
     this.vista.TramiteID       = bo.TramiteID;
     this.vista.VigenciaFinal   = bo.VigenciaFinal;
     this.vista.VigenciaInicial = bo.VigenciaInicial;
     if (bo.Deducibles != null)
     {
         if (bo.Deducibles.Count > 0)
         {
             this.vista1.Deducibles = bo.Deducibles;
             this.vista1.ActualizarLista();
         }
     }
     if (bo.Endosos != null)
     {
         if (bo.Endosos.Count > 0)
         {
             this.vista2.Endosos = bo.Endosos;
             this.vista2.ActualizarLista();
             this.presentador2.CalcularTotales();//RI0015
         }
     }
     if (bo.Siniestros != null)
     {
         if (bo.Siniestros.Count > 0)
         {
             this.vista3.Siniestros = bo.Siniestros;
             this.vista3.ActualizarLista();
         }
     }
 }
Exemple #24
0
        private void DatoAInterfazUsuario(object obj)
        {
            if (obj is ElementoFlotaBOF)
            {
                ElementoFlotaBOF elemento = (ElementoFlotaBOF)obj;
                if (elemento == null)
                {
                    elemento = new ElementoFlotaBOF();
                }
                if (elemento.Unidad == null)
                {
                    elemento.Unidad = new UnidadBO();
                }
                if (elemento.Contrato == null)
                {
                    elemento.Contrato = new ContratoProxyBO();
                }
                if (elemento.Contrato.Cliente == null)
                {
                    elemento.Contrato.Cliente = new CuentaClienteIdealeaseBO();
                }
                if (elemento.Tramites == null)
                {
                    elemento.Tramites = new List <TramiteBO>();
                }

                //Información de la unidad
                this.DatoAInterfazUsuario(elemento.Unidad);
                this.vista.AreaNombre        = elemento.AreaText;
                this.vista.EstatusNombre     = elemento.EstatusText;
                this.vista.EstaDisponible    = elemento.EstaDisponible;
                this.vista.EstaEnContrato    = elemento.EstaEnRenta;
                this.vista.TieneEquipoAliado = elemento.TieneEquipoAliado;

                //Información de trámites
                PlacaEstatalBO tPlacaEstatal = (PlacaEstatalBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_ESTATAL);
                PlacaFederalBO tPlacaFederal = (PlacaFederalBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_FEDERAL);
                SeguroBO       tSeguro       = (SeguroBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.SEGURO);
                if (tSeguro == null)
                {
                    tSeguro = new SeguroBO();
                }

                if (tPlacaFederal != null)
                {
                    this.vista.NumeroPlaca = tPlacaFederal.Numero;
                    this.vista.TipoPlaca   = "FEDERAL";
                }
                else
                {
                    if (tPlacaEstatal != null)
                    {
                        this.vista.NumeroPlaca = tPlacaEstatal.Numero;
                        this.vista.TipoPlaca   = "ESTATAL";
                    }
                    else
                    {
                        this.vista.NumeroPlaca = null;
                        this.vista.TipoPlaca   = null;
                    }
                }
                this.vista.SeguroID = tSeguro.TramiteID;
                this.vista.FechaVigenciaSeguroInicial = tSeguro.VigenciaInicial;
                this.vista.FechaVigenciaSeguroFinal   = tSeguro.VigenciaFinal;
                this.vista.Aseguradora  = tSeguro.Aseguradora;
                this.vista.NumeroPoliza = tSeguro.NumeroPoliza;

                //Información del contrato
                this.vista.ContratoID     = elemento.Contrato.ContratoID;
                this.vista.NumeroContrato = elemento.Contrato.NumeroContrato;
                if (elemento.Contrato.Tipo != null)
                {
                    this.vista.TipoContratoID = (int)elemento.Contrato.Tipo;
                }
                else
                {
                    this.vista.TipoContratoID = null;
                }
                this.vista.CuentaClienteNombre      = elemento.Contrato.Cliente.Nombre;
                this.vista.FechaInicioContrato      = elemento.FechaInicioContrato;
                this.vista.FechaVencimientoContrato = elemento.FechaVencimientoContrato;
                if (elemento.FechaInicioContrato != null & elemento.FechaVencimientoContrato != null)
                {
                    this.vista.MesesFaltantesContrato = ((elemento.FechaVencimientoContrato.Value.Year - elemento.FechaInicioContrato.Value.Year) * 12) + elemento.FechaVencimientoContrato.Value.Month - elemento.FechaInicioContrato.Value.Month;
                }
                else
                {
                    this.vista.MesesFaltantesContrato = null;
                }

                this.ConfiguracionOpciones();
            }
            if (obj is UnidadBO)
            {
                UnidadBO unidad = (UnidadBO)obj;
                if (unidad == null)
                {
                    unidad = new UnidadBO();
                }
                if (unidad.ActivoFijo == null)
                {
                    unidad.ActivoFijo = new ActivoFijoBO();
                }
                if (unidad.Sucursal == null)
                {
                    unidad.Sucursal = new SucursalBO();
                }
                if (unidad.TipoEquipoServicio == null)
                {
                    unidad.TipoEquipoServicio = new TipoUnidadBO();
                }
                if (unidad.Modelo == null)
                {
                    unidad.Modelo = new ModeloBO();
                }
                if (unidad.Modelo.Marca == null)
                {
                    unidad.Modelo.Marca = new MarcaBO();
                }

                this.vista.UnidadID          = unidad.UnidadID;
                this.vista.EquipoID          = unidad.EquipoID;
                this.vista.IDLider           = unidad.IDLider;
                this.vista.ClaveActivoOracle = unidad.ClaveActivoOracle;
                this.vista.NumeroSerie       = unidad.NumeroSerie;
                this.vista.NumeroEconomico   = unidad.NumeroEconomico;
                this.vista.Anio = unidad.Anio;
                if (unidad.Area != null)
                {
                    this.vista.AreaID = Convert.ToInt32(unidad.Area);
                }
                else
                {
                    this.vista.AreaID = null;
                }
                if (unidad.EstatusActual != null)
                {
                    this.vista.EstatusID = (int)unidad.EstatusActual;
                }
                else
                {
                    this.vista.EstatusID = null;
                }

                this.vista.FechaCompra  = unidad.ActivoFijo.FechaFacturaCompra;
                this.vista.MontoFactura = unidad.ActivoFijo.CostoSinIva;
                if (this.vista.TiempoUsoActivos != null && unidad.ActivoFijo.FechaFacturaCompra != null && unidad.Area != null && (EArea)unidad.Area == EArea.RD)
                {
                    this.vista.FechaSustitucion = unidad.ActivoFijo.FechaFacturaCompra.Value.AddMonths(this.vista.TiempoUsoActivos.Value);
                }
                else
                {
                    this.vista.FechaSustitucion = null;
                }
                //Valores que en un futuro se obtendrán de Oracle pero que por ahora no tenemos
                this.vista.FolioFactura                  = null;
                this.vista.ValorLibros                   = unidad.ActivoFijo.ImporteResidual;
                this.vista.ResidualMonto                 = unidad.ActivoFijo.ImporteResidual;
                this.vista.ResidualPorcentaje            = unidad.ActivoFijo.PorcentajeResidual;
                this.vista.DepreciacionMensualMonto      = unidad.ActivoFijo.ImporteDepreciacion;
                this.vista.DepreciacionMensualPorcentaje = unidad.ActivoFijo.PorcentajeDepreciacion;
                this.vista.MesesVidaUtilTotal            = null;
                this.vista.MesesVidaUtilRestante         = null;

                this.vista.ModeloNombre     = unidad.Modelo.Nombre;
                this.vista.TipoUnidadNombre = unidad.TipoEquipoServicio.Nombre;
                this.vista.SucursalNombre   = unidad.Sucursal.Nombre;

                this.vista.Llantas        = unidad.Llantas;
                this.vista.EquiposAliados = unidad.EquiposAliados;
            }
        }
Exemple #25
0
        protected void grdSeguros_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try
            {
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    SeguroBO seguro = (SeguroBO)e.Row.DataItem;

                    Label label = e.Row.FindControl("lblModelo") as Label;
                    if (label != null)
                    {
                        string tipo = string.Empty;
                        if (((UnidadBO)seguro.Tramitable) != null)
                        {
                            if (((UnidadBO)seguro.Tramitable).Modelo != null)
                            {
                                label.Text = ((UnidadBO)seguro.Tramitable).Modelo.Nombre;
                            }
                        }
                    }

                    Label labelVIN = e.Row.FindControl("lblVIN") as Label;
                    if (labelVIN != null)
                    {
                        string tipo = string.Empty;
                        if (((UnidadBO)seguro.Tramitable) != null)
                        {
                            if (((UnidadBO)seguro.Tramitable).DescripcionTramitable != null)
                            {
                                labelVIN.Text = ((UnidadBO)seguro.Tramitable).DescripcionTramitable;
                            }
                        }
                    }

                    Label lblProximoVencer = e.Row.FindControl("lblProximoVencer") as Label;
                    if (lblProximoVencer != null)
                    {
                        int?dias = seguro.DiasParaVencimiento();
                        if (dias == null)
                        {
                            lblProximoVencer.Text = String.Empty;
                        }
                        else
                        {
                            lblProximoVencer.Text = seguro.DiasParaVencimiento().ToString();
                        }

                        bool?proximoVencer = seguro.ProximoAVencer();
                        if (proximoVencer != null)
                        {
                            var celda = e.Row.Cells[e.Row.Cells.Count - 2];
                            celda.BackColor            = proximoVencer.Value ? Color.FromArgb(222, 8, 20) : e.Row.Cells[e.Row.Cells.Count - 1].BackColor;
                            lblProximoVencer.ForeColor = proximoVencer.Value ? Color.White : e.Row.Cells[e.Row.Cells.Count - 3].ForeColor;
                        }
                        else
                        {
                            var celda = e.Row.Cells[e.Row.Cells.Count - 2];
                            celda.BackColor = e.Row.Cells[e.Row.Cells.Count - 1].BackColor;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                this.MostrarMensaje("Inconsistencia al consultar los seguros", ETipoMensajeIU.ERROR, this.nombreClase + ".grdSeguros_DataBound:" + ex.Message);
            }
        }
Exemple #26
0
        /// <summary>
        /// Consulta y muestra los trámites activos de un tramitable
        /// </summary>
        /// <param name="tramitableID">Identificador del tramitable</param>
        /// <param name="tipoTramitable">Tipo de tramitable</param>
        /// <param name="UnidadOperativaId">Identificador de la unidad operativa REQ: 13285</param>
        public void CargarTramites(int?tramitableID, ETipoTramitable?tipoTramitable, string descripcionEnllantable, int?UnidadOperativaId = null)
        {
            List <TramiteBO> lst = new List <TramiteBO>();

            //RQM 13285, habilitamos pedimento


            //Si se proporciona un tramitable, se obtienen sus trámites
            if (tramitableID != null && tipoTramitable != null)
            {
                TramiteBO bo = new TramiteProxyBO();
                bo.Activo     = true;
                bo.Tramitable = new TramitableProxyBO()
                {
                    TramitableID = tramitableID, TipoTramitable = tipoTramitable
                };

                lst = this.controlador.Consultar(this.dctx, bo);
            }

            //Se recorren los tipos de trámites para incluir los que no se hayan realizado aún
            foreach (ETipoTramite tipo in Enum.GetValues(typeof(ETipoTramite)))
            {
                if (!(lst.Exists(p => p.Tipo != null && p.Tipo == tipo)))
                {
                    TramiteBO temp = new TramiteProxyBO()
                    {
                        Activo = false, Tipo = tipo
                    };
                    lst.Add(temp);
                }
            }

            //Se obtiene el seguro para concatenarle su aseguradora
            foreach (TramiteBO bo in lst)
            {
                if (bo.Activo != null && bo.Activo == true && bo.Tipo != null && bo.Tipo == ETipoTramite.SEGURO && bo.TramiteID != null)
                {
                    SeguroBO seguro = new SeguroBO(bo);

                    List <SeguroBO> lstTemp = new SeguroBR().Consultar(this.dctx, seguro);
                    if (lstTemp.Count > 0)
                    {
                        seguro = lstTemp[0];
                    }
                    if (seguro.Aseguradora != null)
                    {
                        if (seguro.NumeroPoliza == null)
                        {
                            seguro.NumeroPoliza = "";
                        }
                        seguro.NumeroPoliza += " (" + seguro.Aseguradora + ")";
                    }

                    bo.Resultado = seguro.Resultado;
                }
            }

            //Se asigna la información a la vista
            this.vista.TramitableID           = tramitableID;
            this.vista.TipoTramitable         = tipoTramitable;
            this.vista.DescripcionEnllantable = descripcionEnllantable;
            this.vista.Tramites = lst;
            this.vista.ActualizarTramites();
        }