public void CargarDatosAdscripcion()
        {
            try
            {
                this.ddlUnidadOperativa.Items.Clear();
                var grupoUnidadOperativa = this.Adscripciones.GroupBy(ad => ad.UnidadOperativa.Id);
                foreach (var unidadID in grupoUnidadOperativa)
                {
                    if (unidadID.Key == null)
                    {
                        continue;
                    }

                    UnidadOperativaBO unidadBO = this.Adscripciones.FirstOrDefault(ad => ad.UnidadOperativa.Id == unidadID.Key.Value).UnidadOperativa;
                    if (unidadBO.Id != null && !string.IsNullOrWhiteSpace(unidadBO.Nombre))
                    {
                        ListItem unidadItem = new ListItem(unidadBO.Nombre, unidadBO.Id.ToString());
                        this.ddlUnidadOperativa.Items.Add(unidadItem);
                    }
                }
            }
            catch (Exception) {
                this.MostrarMensaje("Error al cargar listas de adscripciones", ETipoMensajeIU.ERROR, "Es posible que algunas unidades operativas no sean validas," +
                                    "por favor contacte al administrador del sistema");
            }
        }
        /// <summary>
        /// Despliega el nombre de la Empresa
        /// </summary>
        private void DesplegarEmpresa()
        {
            try {
                string nombreEmpresa = string.Empty;
                if (this.vista.UnidadOperativa == null || this.vista.UnidadOperativa.Empresa == null || string.IsNullOrWhiteSpace(this.vista.UnidadOperativa.Empresa.Nombre))
                {
                    //Obtener información de la Unidad Operativa
                    UnidadOperativaBO UO = FacadeBR.ConsultarUnidadOperativaCompleto(this.dataContext, new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativa.Id
                    }).FirstOrDefault();
                    if (UO == null || UO.Empresa == null)
                    {
                        throw new Exception("No se encontró la información completa de la unidad operativa sobre la que trabaja.");
                    }

                    nombreEmpresa = UO.Empresa.Nombre;
                }
                else
                {
                    nombreEmpresa = this.vista.UnidadOperativa.Empresa.Nombre;
                }
                this.vista.NombreEmpresa = this.vista.UnidadOperativa.Empresa.Nombre;
            } catch (Exception ex) {
                vista.MostrarMensaje("Inconsistencias al presentar la información de la empresa.", ETipoMensajeIU.ERROR, NombreClase + ".DesplegarEmpresa: " + ex.Message);
            }
        }
Exemple #3
0
        private UnidadOperativaBO ObtenerUnidadOperativa(int?UnidadOperativaID)
        {
            UnidadOperativaBO unidadOperativa = new UnidadOperativaBO()
            {
                Id = UnidadOperativaID
            };

            return(FacadeBR.ConsultarUnidadOperativa(dataContext, unidadOperativa).FirstOrDefault());
        }
        /// <summary>
        /// Consulta las sucursales asignadas al usuario por unidad operativa
        /// </summary>
        /// <param name="usuario">Usuario al que estan asignadas las sucursales</param>
        /// <param name="unidadOperativa">Unidad Operativa a la cual pertenecen las sucursales</param>
        /// <returns></returns>
        private List <SucursalBO> ConsultarSucursales(UsuarioBO usuario, UnidadOperativaBO unidadOperativa)
        {
            try
            {
                var seguridad = new SeguridadBO(Guid.Empty, usuario, new AdscripcionBO {
                    UnidadOperativa = unidadOperativa
                });
                List <SucursalBO> resultado = FacadeBR.ConsultarSucursalesSeguridad(dataContext, seguridad) ??
                                              new List <SucursalBO>();

                return(resultado);
            }
            catch (Exception ex)
            {
                throw new Exception(nombreClase + ".ConsultarSucursales: Inconsistencias al consultar la lista de Sucursales del usuario." + ex.Message);
            }
        }
        /// <summary>
        /// Despiega el nombre de la Empresa
        /// </summary>
        private void DesplegarEmpresa()
        {
            try
            {
                // Obtener la Unidad Operativa Completa
                List <UnidadOperativaBO> unidadesOperativas = Facade.SDNI.BR.FacadeBR.ConsultarUnidadOperativa(dataContext, vista.UnidadOperativa);//SC_0051

                UnidadOperativaBO unidadOperativaBO = unidadesOperativas.Find(
                    unidOperativa => vista.UnidadOperativa.Id == unidOperativa.Id);

                if (unidadOperativaBO != null)
                {
                    if (unidadOperativaBO.Empresa != null)
                    {
                        //Consultamos el nombre de la empresa
                        var resultEmps = FacadeBR.ConsultarEmpresa(this.dataContext, unidadOperativaBO.Empresa);
                        if (resultEmps.Count > 0)
                        {
                            unidadOperativaBO.Empresa = resultEmps[0];
                        }

                        if (!string.IsNullOrEmpty(unidadOperativaBO.Empresa.Nombre))
                        {
                            vista.NombreEmpresa = unidadOperativaBO.Empresa.Nombre;
                        }
                        if (unidadOperativaBO.Empresa.Id != null)
                        {
                            vista.EmpresaID = unidadOperativaBO.Empresa.Id;
                        }
                        if (unidadOperativaBO.Empresa.Nombre != null &&
                            !string.IsNullOrEmpty(unidadOperativaBO.Empresa.Nombre.Trim()))
                        {
                            vista.NombreEmpresa = unidadOperativaBO.Empresa.Nombre;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                vista.MostrarMensaje("Inconsistencias al presentar la información de la empresa.", ETipoMensajeIU.ERROR, NombreClase + ".DesplegarEmpresa: " + ex.Message);
            }
        }
        /// <summary>
        /// Obtiene los datos de la Vista
        /// </summary>
        /// <returns></returns>
        private object InterfazUsuarioADato()
        {
            UnidadOperativaBO unidadOperativa = new UnidadOperativaBO();

            unidadOperativa.Empresa = new EmpresaBO();

            if (this.vista.UnidadOperativaID != null)
            {
                unidadOperativa.Id = this.vista.UnidadOperativaID;
            }

            if (this.vista.UnidadOperativaNombre != null)
            {
                unidadOperativa.Nombre = vista.UnidadOperativaNombre;
            }

            if (this.presentadorDatosContrato.Vista.NombreEmpresa != null)
            {
                unidadOperativa.Empresa.Nombre = this.presentadorDatosContrato.Vista.NombreEmpresa;
            }

            ContratoPSLBO bo = new ContratoPSLBO();

            bo.Cliente = new CuentaClienteIdealeaseBO();
            bo.Cliente.UnidadOperativa = new UnidadOperativaBO();
            bo.Divisa = new DivisaBO();
            bo.Divisa.MonedaDestino         = new MonedaBO();
            bo.Sucursal                     = new SucursalBO();
            bo.Sucursal.UnidadOperativa     = new UnidadOperativaBO();
            bo.LineasContrato               = new List <ILineaContrato>();
            bo.Operador                     = new OperadorBO();
            bo.Operador.Direccion           = new DireccionPersonaBO();
            bo.Operador.Direccion.Ubicacion = new UbicacionBO()
            {
                Ciudad = new CiudadBO(), Estado = new EstadoBO(), Municipio = new MunicipioBO(), Pais = new PaisBO()
            };
            bo.Operador.Licencia = new LicenciaBO();
            bo.TasaInteres       = this.presentadorDatosContrato.Vista.TasaInteres;

            //Configuración de días a cobrar
            bo.IncluyeSD = this.vista.IncluyeSD;

            bo.Tipo = ETipoContrato.ROC;//Se establece el tipo como ROC.

            if (this.vista.SucursalSeleccionada != null)
            {
                bo.Sucursal.Id     = this.vista.SucursalSeleccionada.Id;
                bo.Sucursal.Nombre = this.vista.SucursalSeleccionada.Nombre;
            }

            bo.Sucursal.UnidadOperativa = unidadOperativa;
            bo.Cliente.UnidadOperativa  = unidadOperativa;

            if (this.vista.CuentaClienteID != null)
            {
                bo.Cliente.Id = this.vista.CuentaClienteID;
            }
            if (vista.CuentaClienteNombre != null)
            {
                bo.Cliente.Nombre = vista.CuentaClienteNombre;
            }
            if (this.vista.CodigoMoneda != null)
            {
                bo.Divisa.MonedaDestino.Codigo = this.vista.CodigoMoneda;
            }
            if (this.vista.RepresentantesLegales != null)
            {
                bo.RepresentantesLegales = this.vista.RepresentantesLegales.ConvertAll(s => (PersonaBO)s);
            }
            bo.SoloRepresentantes = vista.SoloRepresentantes;
            bo.Avales             = vista.Avales;
            #region Dirección del Cliente
            DireccionClienteBO direccion = new DireccionClienteBO
            {
                Ubicacion =
                    new UbicacionBO
                {
                    Pais = new PaisBO {
                        Codigo = this.vista.ClienteDireccionPais
                    },
                    Municipio = new MunicipioBO {
                        Codigo = this.vista.ClienteDireccionMunicipio
                    },
                    Estado = new EstadoBO {
                        Codigo = this.vista.ClienteDireccionEstado
                    },
                    Ciudad = new CiudadBO {
                        Codigo = this.vista.ClienteDireccionCiudad
                    }
                },
                CodigoPostal = this.vista.ClienteDireccionCodigoPostal,
                Calle        = this.vista.ClienteDireccionCalle,
                Colonia      = this.vista.ClienteDireccionColonia,
                Id           = this.vista.ClienteDireccionId
            };

            bo.Cliente.RemoverDirecciones();
            bo.Cliente.Agregar(direccion);
            #endregion


            if (this.vista.FechaContrato != null)
            {
                bo.FechaContrato = this.vista.FechaContrato;
            }

            if (this.vista.FechaInicioActual != null)
            {
                bo.FechaInicioActual        = this.vista.FechaInicioActual;
                bo.FechaInicioArrendamiento = this.vista.FechaInicioActual;
            }

            if (this.vista.FechaPromesaActual != null)
            {
                bo.FechaPromesaActual     = this.vista.FechaPromesaActual;
                bo.FechaPromesaDevolucion = this.vista.FechaPromesaActual;
            }

            if (this.vista.FormaPagoID != null)
            {
                bo.FormaPago = (EFormaPago)Enum.Parse(typeof(EFormaPago), this.vista.FormaPagoID.ToString());
            }
            if (this.vista.FrecuenciaFacturacionID != null)
            {
                bo.FrecuenciaFacturacion = (EFrecuencia)Enum.Parse(typeof(EFrecuencia), this.vista.FrecuenciaFacturacionID.ToString());
            }
            if (this.vista.AutorizadorTipoConfirmacion != null)
            {
                bo.AutorizadorTipoConfirmacion = this.vista.AutorizadorTipoConfirmacion;
            }
            if (this.vista.AutorizadorOrdenCompra != null)
            {
                bo.AutorizadorOrdenCompra = this.vista.AutorizadorOrdenCompra;
            }
            if (this.vista.DestinoAreaOperacion != null)
            {
                bo.DestinoAreaOperacion = this.vista.DestinoAreaOperacion;
            }
            if (this.vista.MercanciaTransportar != null)
            {
                bo.MercanciaTransportar = this.vista.MercanciaTransportar;
            }
            if (this.vista.TipoConfirmacionID != null)
            {
                bo.TipoConfirmacion = (ETipoConfirmacion)Enum.Parse(typeof(ETipoConfirmacion), this.vista.TipoConfirmacionID.ToString());
            }

            if (this.vista.Observaciones != null)
            {
                bo.Observaciones = this.vista.Observaciones;
            }

            if (this.vista.DiasFacturar != null)
            {
                bo.DiasFacturar = this.vista.DiasFacturar;
            }

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

            if (!string.IsNullOrWhiteSpace(this.vista.ClaveProductoServicio))
            {
                if (bo.ProductoServicio == null)
                {
                    bo.ProductoServicio = new ProductoServicioBO();
                }
                bo.ProductoServicio.Id          = this.vista.ProductoServicioId;
                bo.ProductoServicio.NombreCorto = this.vista.ClaveProductoServicio;
                bo.ProductoServicio.Nombre      = this.vista.DescripcionProductoServicio;
            }

            #region ConfiguracionUO.PorcentajeSeguro
            decimal? porcentajeSeguro = 0;
            ModuloBR configBR         = new ModuloBR();
            ConfiguracionUnidadOperativaBO configBO = new ConfiguracionUnidadOperativaBO()
            {
                UnidadOperativa = new UnidadOperativaBO()
                {
                    Id = this.vista.UnidadOperativaID
                }
            };
            List <ConfiguracionUnidadOperativaBO> listConfigUO = new List <ConfiguracionUnidadOperativaBO>();
            listConfigUO = configBR.ConsultarConfiguracionUnidadOperativa(dctx, configBO, this.vista.ModuloID);
            if (listConfigUO != null && listConfigUO.Count > 0)
            {
                porcentajeSeguro = listConfigUO[0].PorcentajeSeguro != null ? listConfigUO[0].PorcentajeSeguro : 0;
            }
            #endregion

            #region Campos de ROC
            bo.MontoTotalArrendamiento = this.vista.MontoTotalArrendamiento;
            bo.FechaPagoRenta          = this.vista.FechaPagoRenta;
            bo.Plazo            = this.vista.Plazo;
            bo.InversionInicial = this.vista.InversionInicial;
            #endregion

            #region Linea de Contrato
            LineaContratoPSLBO lineaBO = null;
            foreach (LineaContratoPSLBO linea in this.vista.LineasContrato)
            {
                lineaBO = new LineaContratoPSLBO();

                lineaBO.Equipo = (UnidadBO)linea.Equipo;

                lineaBO.TipoTarifa = linea.TipoTarifa;

                lineaBO.Cobrable = new TarifaContratoPSLBO
                {
                    PeriodoTarifa             = ((TarifaContratoPSLBO)linea.Cobrable).PeriodoTarifa,
                    Tarifa                    = ((TarifaContratoPSLBO)linea.Cobrable).Tarifa,
                    TarifaHrAdicional         = ((TarifaContratoPSLBO)linea.Cobrable).TarifaHrAdicional,
                    TarifaTurno               = ((TarifaContratoPSLBO)linea.Cobrable).TarifaTurno,
                    Maniobra                  = ((TarifaContratoPSLBO)linea.Cobrable).Maniobra,
                    TarifaPSLID               = ((TarifaContratoPSLBO)linea.Cobrable).TarifaPSLID,
                    DuracionDiasPeriodo       = ((TarifaContratoPSLBO)linea.Cobrable).DuracionDiasPeriodo,
                    MaximoHrsTurno            = ((TarifaContratoPSLBO)linea.Cobrable).MaximoHrsTurno,
                    Activo                    = true,
                    PorcentajeDescuento       = ((TarifaContratoPSLBO)linea.Cobrable).PorcentajeDescuento,
                    PorcentajeDescuentoMaximo = ((TarifaContratoPSLBO)linea.Cobrable).PorcentajeDescuentoMaximo,
                    EtiquetaDescuento         = ((TarifaContratoPSLBO)linea.Cobrable).EtiquetaDescuento,
                    TarifaConDescuento        = ((TarifaContratoPSLBO)linea.Cobrable).TarifaConDescuento,
                    PorcentajeSeguro          = porcentajeSeguro
                };
                lineaBO.Activo   = linea.Activo;
                lineaBO.Devuelta = linea.Devuelta;
                lineaBO.LineaOrigenIntercambioID = linea.LineaOrigenIntercambioID;
                bo.LineasContrato.Add(lineaBO);
            }

            //bo.LineasContrato = this.vista.LineasContrato.ConvertAll(s => (ILineaContrato)s);
            #endregion

            #region Archivos Adjuntos
            List <ArchivoBO> adjuntos = presentadorDocumentos.Vista.ObtenerArchivos() ?? new List <ArchivoBO>();
            foreach (ArchivoBO adjunto in adjuntos)
            {
                adjunto.TipoAdjunto = ETipoAdjunto.ContratoROC;
                adjunto.Auditoria   = new AuditoriaBO
                {
                    FC  = this.vista.FC,
                    UC  = this.vista.UC,
                    FUA = this.vista.FUA,
                    UUA = this.vista.UUA
                };
            }
            bo.DocumentosAdjuntos = adjuntos;
            #endregion

            return(bo);
        }
        /// <summary>
        /// Realiza la impresión del Historico de Pagos para una referencia de Contrato Seleccionada
        /// </summary>
        public void ImprimirPagos()
        {
            try
            {
                var numeroContrato = Vista.NumeroContrato;

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

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


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

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

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

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

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

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

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

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

                Vista.EstablecerPaqueteNavegacionImprimir(codigoImprimirHistorico, datosReporte);
                Vista.IrAImprimirHistorico();
            }
            catch (Exception ex)
            {
                var strMetodo = new StackFrame().GetMethod().Name;
                var strMsg    = string.Format("{0}.{1}: {2}", nombreClase, strMetodo, ex.Message);
                Vista.MostrarMensaje("Inconsistencias al Desplegar los Pagos del Contrato", ETipoMensajeIU.ERROR, strMsg);
            }
        }
Exemple #8
0
        /// <summary>
        /// Obtiene los datos de la Vista
        /// </summary>
        /// <returns></returns>
        private object InterfazUsuarioADato()
        {
            UnidadOperativaBO unidadOperativa = new UnidadOperativaBO();

            if (this.vista.UnidadOperativaID != null)
            {
                unidadOperativa.Id = this.vista.UnidadOperativaID;
            }

            if (this.vista.UnidadOperativaNombre != null)
            {
                unidadOperativa.Nombre = vista.UnidadOperativaNombre;
            }

            ContratoRDBO bo = new ContratoRDBO();

            bo.Cliente                 = new CuentaClienteIdealeaseBO();
            bo.Cliente.Cliente         = new ClienteBO();
            bo.Cliente.UnidadOperativa = new UnidadOperativaBO();
            bo.Divisa = new DivisaBO();
            bo.Divisa.MonedaDestino         = new MonedaBO();
            bo.Sucursal                     = new SucursalBO();
            bo.Sucursal.UnidadOperativa     = new UnidadOperativaBO();
            bo.LineasContrato               = new List <ILineaContrato>();
            bo.Operador                     = new OperadorBO();
            bo.Operador.Direccion           = new DireccionPersonaBO();
            bo.Operador.Direccion.Ubicacion = new UbicacionBO()
            {
                Ciudad = new CiudadBO(), Estado = new EstadoBO(), Municipio = new MunicipioBO(), Pais = new PaisBO()
            };
            bo.Operador.Licencia = new LicenciaBO();
            bo.Tipo = ETipoContrato.RD;

            if (this.vista.SucursalID != null)
            {
                bo.Sucursal.Id = this.vista.SucursalID;
            }
            if (this.vista.SucursalNombre != null)
            {
                bo.Sucursal.Nombre = this.vista.SucursalNombre;
            }

            bo.Sucursal.UnidadOperativa = unidadOperativa;
            bo.Cliente.UnidadOperativa  = unidadOperativa;

            if (this.vista.CuentaClienteID != null)
            {
                bo.Cliente.Id = this.vista.CuentaClienteID;
            }
            if (vista.CuentaClienteNombre != null)
            {
                bo.Cliente.Nombre = vista.CuentaClienteNombre;
            }

            bo.Cliente.Cliente.RFC    = this.vista.ClienteRFC ?? this.vista.ClienteRFC;
            bo.Cliente.Cliente.Numero = this.vista.CuentaClienteNumeroCuenta ?? this.vista.CuentaClienteNumeroCuenta;
            if (this.vista.CodigoMoneda != null)
            {
                bo.Divisa.MonedaDestino.Codigo = this.vista.CodigoMoneda;
            }
            if (this.vista.RepresentantesLegales != null)
            {
                bo.RepresentantesLegales = this.vista.RepresentantesLegales.ConvertAll(s => (PersonaBO)s);
            }
            bo.SoloRepresentantes = vista.SoloRepresentantes;
            bo.Avales             = vista.Avales;
            #region Dirección del Cliente
            DireccionClienteBO direccion = new DireccionClienteBO
            {
                Ubicacion =
                    new UbicacionBO
                {
                    Pais = new PaisBO {
                        Codigo = this.vista.ClienteDireccionPais
                    },
                    Municipio = new MunicipioBO {
                        Codigo = this.vista.ClienteDireccionMunicipio
                    },
                    Estado = new EstadoBO {
                        Codigo = this.vista.ClienteDireccionEstado
                    },
                    Ciudad = new CiudadBO {
                        Codigo = this.vista.ClienteDireccionCiudad
                    }
                },
                CodigoPostal = this.vista.ClienteDireccionCodigoPostal,
                Calle        = this.vista.ClienteDireccionCalle,
                Colonia      = this.vista.ClienteDireccionColonia,
                Id           = this.vista.ClienteDireccionId,
                Primaria     = true
            };

            bo.Cliente.RemoverDirecciones();
            bo.Cliente.Agregar(direccion);
            #endregion

            #region Operador
            if (this.vista.OperadorID != null)
            {
                bo.Operador.OperadorID = this.vista.OperadorID;
            }
            if (this.vista.OperadorAniosExperiencia != null)
            {
                bo.Operador.AñosExperiencia = this.vista.OperadorAniosExperiencia;
            }
            if (this.vista.OperadorFechaNacimiento != null)
            {
                bo.Operador.FechaNacimiento = this.vista.OperadorFechaNacimiento;
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorDireccionCalle))
            {
                bo.Operador.Direccion.Calle = this.vista.OperadorDireccionCalle;
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorDireccionCiudad))
            {
                bo.Operador.Direccion.Ubicacion.Ciudad.Nombre = this.vista.OperadorDireccionCiudad;
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorDireccionEstado))
            {
                bo.Operador.Direccion.Ubicacion.Estado.Nombre = this.vista.OperadorDireccionEstado;
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorDireccionCP))
            {
                bo.Operador.Direccion.CodigoPostal = this.vista.OperadorDireccionCP;
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorLicenciaEstado))
            {
                bo.Operador.Licencia.Estado = this.vista.OperadorLicenciaEstado;
            }
            if (this.vista.OperadorLicenciaFechaExpiracion != null)
            {
                bo.Operador.Licencia.FechaExpiracion = this.vista.OperadorLicenciaFechaExpiracion;
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorLicenciaNumero))
            {
                bo.Operador.Licencia.Numero = this.vista.OperadorLicenciaNumero;
            }
            if (this.vista.OperadorLicenciaTipoID != null)
            {
                bo.Operador.Licencia.Tipo = (ETipoLicencia)Enum.Parse(typeof(ETipoLicencia), this.vista.OperadorLicenciaTipoID.ToString());
            }
            if (!string.IsNullOrEmpty(this.vista.OperadorNombre))
            {
                bo.Operador.Nombre = this.vista.OperadorNombre;
            }
            #endregion

            if (this.vista.FechaContrato != null)
            {
                bo.FechaContrato = this.vista.FechaContrato;
            }
            if (this.vista.FechaPromesaDevolucion != null)
            {
                bo.FechaPromesaDevolucion = this.vista.FechaPromesaDevolucion;
            }

            if (this.vista.FormaPagoID != null)
            {
                bo.FormaPago = (EFormaPago)Enum.Parse(typeof(EFormaPago), this.vista.FormaPagoID.ToString());
            }
            if (this.vista.FrecuenciaFacturacionID != null)
            {
                bo.FrecuenciaFacturacion = (EFrecuencia)Enum.Parse(typeof(EFrecuencia), this.vista.FrecuenciaFacturacionID.ToString());
            }
            if (this.vista.AutorizadorTipoConfirmacion != null)
            {
                bo.AutorizadorTipoConfirmacion = this.vista.AutorizadorTipoConfirmacion;
            }
            if (this.vista.AutorizadorOrdenCompra != null)
            {
                bo.AutorizadorOrdenCompra = this.vista.AutorizadorOrdenCompra;
            }
            if (this.vista.BitacoraViajeConductor != null)
            {
                bo.BitacoraViajeConductor = this.vista.BitacoraViajeConductor;
            }
            if (this.vista.DestinoAreaOperacion != null)
            {
                bo.DestinoAreaOperacion = this.vista.DestinoAreaOperacion;
            }
            if (this.vista.LectorKilometrajeID != null)
            {
                bo.LectorKilometraje = (ELectorKilometraje)Enum.Parse(typeof(ELectorKilometraje), this.vista.LectorKilometrajeID.ToString());
            }
            if (this.vista.MercanciaTransportar != null)
            {
                bo.MercanciaTransportar = this.vista.MercanciaTransportar;
            }
            if (this.vista.MotivoRentaID != null)
            {
                bo.MotivoRenta = (EMotivoRenta)Enum.Parse(typeof(EMotivoRenta), this.vista.MotivoRentaID.ToString());
            }
            if (this.vista.PorcentajeDeducible != null)
            {
                bo.PorcentajeDeducible = this.vista.PorcentajeDeducible;
            }
            if (this.vista.TipoConfirmacionID != null)
            {
                bo.TipoConfirmacion = (ETipoConfirmacion)Enum.Parse(typeof(ETipoConfirmacion), this.vista.TipoConfirmacionID.ToString());
            }

            if (this.vista.Observaciones != null)
            {
                bo.Observaciones = this.vista.Observaciones;
            }
            #region BEP1401.SC0026
            if (this.vista.DiasFacturar != null)
            {
                bo.DiasFacturar = this.vista.DiasFacturar;
            }
            #endregion
            if (this.vista.EstatusID != null)
            {
                bo.Estatus = (EEstatusContrato)Enum.Parse(typeof(EEstatusContrato), this.vista.EstatusID.ToString());
            }
            if (this.vista.FC != null)
            {
                bo.FC = this.vista.FC;
            }
            if (this.vista.UC != null)
            {
                bo.UC = this.vista.UC;
            }
            if (this.vista.FUA != null)
            {
                bo.FUA = this.vista.FUA;
            }
            if (this.vista.UUA != null)
            {
                bo.UUA = this.vista.UUA;
            }

            #region Linea de Contrato

            LineaContratoRDBO lineaBO = new LineaContratoRDBO()
            {
                Activo = true
            };

            if (this.vista.EquipoID != null)
            {
                if (lineaBO.Equipo == null)
                {
                    lineaBO.Equipo = new UnidadBO();
                }
                lineaBO.Equipo.EquipoID = this.vista.EquipoID;
            }
            if (this.vista.UnidadID != null)
            {
                if (lineaBO.Equipo == null)
                {
                    lineaBO.Equipo = new UnidadBO();
                }
                ((UnidadBO)lineaBO.Equipo).UnidadID = this.vista.UnidadID;
            }

            if (!string.IsNullOrWhiteSpace(this.vista.ClaveProductoServicio))
            {
                if (lineaBO.ProductoServicio == null)
                {
                    lineaBO.ProductoServicio = new ProductoServicioBO();
                }
                lineaBO.ProductoServicio.Id          = this.vista.ProductoServicioId;
                lineaBO.ProductoServicio.NombreCorto = this.vista.ClaveProductoServicio;
                lineaBO.ProductoServicio.Nombre      = this.vista.DescripcionProductoServicio;
            }

            if (this.vista.TipoTarifaID != null)
            {
                lineaBO.TipoTarifa = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaID.ToString());
            }

            lineaBO.Cobrable = new TarifaContratoRDBO()
            {
                RangoTarifas = new List <RangoTarifaRDBO>()
                {
                    new RangoTarifaRDBO()
                },
                TarifasEquipoAliado = new List <TarifaContratoRDEquipoAliadoBO>()
            };

            if (string.IsNullOrEmpty(this.vista.TarifaDescripcion))
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).Descripcion = this.vista.TarifaDescripcion;
            }

            if (this.vista.CapacidadCarga != null)
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).CapacidadCarga = this.vista.CapacidadCarga;
            }
            if (this.vista.TarifaDiaria != null)
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).TarifaDiaria = this.vista.TarifaDiaria;
            }
            if (this.vista.KmsLibres != null)
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).KmsLibres = this.vista.KmsLibres;
                ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().KmRangoInicial = this.vista.KmsLibres + 1;
            }
            if (this.vista.TarifaKmAdicional != null)
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().CargoKm = this.vista.TarifaKmAdicional;
            }
            if (this.vista.HrsLibres != null)
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).HrsLibres = this.vista.HrsLibres;
                ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().HrRangoInicial = this.vista.HrsLibres + 1;
            }
            if (this.vista.TarifaHrAdicional != null)
            {
                ((TarifaContratoRDBO)lineaBO.Cobrable).RangoTarifas.First().CargoHr = this.vista.TarifaHrAdicional;
            }
            if (!String.IsNullOrEmpty(this.vista.NumeroEconomico))
            {
                if (lineaBO.Equipo == null)
                {
                    lineaBO.Equipo = new UnidadBO();
                }
                ((UnidadBO)lineaBO.Equipo).NumeroEconomico = this.vista.NumeroEconomico;
            }
            bo.LineasContrato.Add(lineaBO);
            #endregion

            #region Archivos Adjuntos
            List <ArchivoBO> adjuntos = presentadorDocumentos.Vista.ObtenerArchivos() ?? new List <ArchivoBO>();
            foreach (ArchivoBO adjunto in adjuntos)
            {
                adjunto.TipoAdjunto = ETipoAdjunto.ContratoRD;
                adjunto.Auditoria   = new AuditoriaBO
                {
                    FC  = this.vista.FC,
                    UC  = this.vista.UC,
                    FUA = this.vista.FUA,
                    UUA = this.vista.UUA
                };
            }
            bo.DocumentosAdjuntos = adjuntos;
            #endregion

            return(bo);
        }