public void RealizarPrimeraCarga()
        {
            try {
                ContratoPSLBO contratoSesion = (ContratoPSLBO)this.vista.ObtenerPaqueteNavegacion("UltimoContratoPSLBO");
                if (contratoSesion != null)
                {
                    this.LimpiarSesion();
                    this.vista.ContratoID = contratoSesion.ContratoID;
                }

                this.EstablecerConfiguracionInicial();
                this.ConsultarCompleto();

                this.presentadorHerramientas.vista.OcultarImprimirPlantilla();
                this.presentadorHerramientas.vista.OcultarImprimirPlantillaCheckList();
                this.presentadorHerramientas.vista.OcultarSolicitudPago();
                this.presentadorHerramientas.DeshabilitarMenuEditar();
                this.presentadorHerramientas.DeshabilitarMenuCerrar();
                this.presentadorHerramientas.DeshabilitarMenuBorrar();
                this.presentadorHerramientas.DeshabilitarMenuImprimir();
                this.presentadorHerramientas.DeshabilitarMenuDocumentos();
                this.presentadorHerramientas.vista.MarcarOpcionCerrarContrato();
                this.presentadorHerramientas.vista.OcultarPlantillas();

                this.EstablecerTipoCierre();
                this.EstablecerSeguridad();
                this.vista.EstablecerEtiquetas();
            } catch (Exception ex) {
                throw new Exception(this.nombreClase + ".RealizarPrimeraCarga: " + ex.Message);
            }
        }
        private object InterfazUsuarioADato()
        {
            ContratoPSLBO bo = new ContratoPSLBO();

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

            bo.CierreContrato         = new CancelacionContratoPSLBO();
            bo.CierreContrato.Usuario = new UsuarioBO();
            bo.ContratoID             = this.vista.ContratoID;
            bo.UUA  = this.vista.UUA;
            bo.FUA  = this.vista.FUA;
            bo.Tipo = (ETipoContrato)this.vista.TipoContrato;

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

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

            ((CancelacionContratoPSLBO)bo.CierreContrato).Motivo = this.vista.MotivoCancelacion;
            return(bo);
        }
Example #3
0
        private void ConsultarCompleto()
        {
            try {
                //Se consulta la información del contrato
                ContratoPSLBO        bo  = (ContratoPSLBO)this.InterfazUsuarioADato();
                List <ContratoPSLBO> lst = this.controlador.ConsultarCompleto(this.dctx, bo, true);

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

                ContratoPSLBO contrato = lst[0];
                this.DatoAInterfazUsuario(contrato);
                this.vista.UltimoObjeto = contrato;
                this.presentadorHerramientas.DatosAInterfazUsuario(contrato);
                this.vista.lstUnidades = null;

                List <UnidadBO> lstUnidadActivas = new List <UnidadBO>();
                foreach (LineaContratoPSLBO linea in contrato.LineasContrato.Where(a => a.Activo.HasValue && a.Activo.Value == true))
                {
                    lstUnidadActivas.Add(new UnidadBO(linea.Equipo as UnidadBO));
                }

                this.vista.lstUnidades = lstUnidadActivas;
                this.DesplegarListadoSeries(lstUnidadActivas);
            } catch (Exception ex) {
                this.DatoAInterfazUsuario(new ContratoPSLBO());
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
Example #4
0
        /// <summary>
        /// Cancela el intercambio de la unidad
        /// </summary>
        public void CancelarRegistro()
        {
            ContratoPSLBO cto = (ContratoPSLBO)this.vista.UltimoObjeto;

            this.LimpiarSesion();
            this.vista.EstablecerPaqueteNavegacion("ContratoPSLBO", cto);
            this.vista.RedirigirACancelar();
        }
Example #5
0
 public void Inicializar(LineaContratoPSLBO linea, ContratoPSLBO contrato)
 {
     Inicializar();
     vista.UnidadOperativaID = ((UnidadBO)linea.Equipo).Sucursal.UnidadOperativa.Id;
     EstablecerConfiguracionInicial();
     DatosAInterfazUsuario(linea, contrato);
     EstablecerUltimoObjeto(linea);
 }
        /// <summary>
        /// Despliega los datos del contrato en la interfaz de usuario
        /// </summary>
        /// <param name="contrato">Contrato PSL que contiene los datos a desplegar</param>
        public void DatosAInterfazUsuario(ContratoPSLBO contrato)
        {
            contrato = contrato ?? new ContratoPSLBO();

            vista.NumeroContrato = contrato.NumeroContrato != null && !string.IsNullOrEmpty(contrato.NumeroContrato)
                                       ? contrato.NumeroContrato
                                       : null;
            vista.EstatusContrato = contrato.Estatus;
            vista.Configurar(contrato.Estatus);
        }
        public void CancelarEdicion()
        {
            ContratoPSLBO bo = (ContratoPSLBO)this.vista.UltimoObjeto;

            this.LimpiarSesion();

            this.vista.LimpiarPaqueteNavegacion("UltimoContratoPSLBO");
            this.vista.EstablecerPaqueteNavegacion("ContratoPSLBO", bo);

            this.vista.RedirigirADetalles();
        }
        public void CancelarContrato()
        {
            string s;

            if ((s = this.ValidarCampos()) != null)
            {
                this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null);
                return;
            }
            Guid firma = Guid.NewGuid();

            try {
                #region Transaccion
                dctx.SetCurrentProvider("Outsourcing");
                dctx.OpenConnection(firma);
                dctx.BeginTransaction(firma);
                #endregion

                ContratoPSLBO bo = (ContratoPSLBO)this.InterfazUsuarioADato();

                //Se crea el objeto de seguridad
                UsuarioBO usuario = new UsuarioBO()
                {
                    Id = this.vista.UsuarioID
                };
                AdscripcionBO adscripcion = new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                };
                SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion);

                this.controlador.CancelarCompleto(this.dctx, bo, (ContratoPSLBO)this.vista.UltimoObjeto, seguridadBO);

                //Se concluye la transacción.
                dctx.CommitTransaction(firma);

                this.LimpiarSesion();
                this.vista.LimpiarPaqueteNavegacion("UltimoContratoPSLBO");
                this.vista.EstablecerPaqueteNavegacion("ChecklistRecepcionPSL", this.vista.DatosReporte);
                this.vista.RedirigirAImprimir();
            } catch (Exception ex) {
                dctx.RollbackTransaction(firma);
                throw new Exception(nombreClase + ".CancelarContratoPSLPRE:" + ex.Message);
            } finally {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
            }
        }
Example #9
0
        private void DatoAInterfazUsuario(object obj)
        {
            ContratoPSLBO bo = (ContratoPSLBO)obj;

            if (bo == null)
            {
                bo = new ContratoPSLBO();
            }

            this.vista.ContratoID   = bo.ContratoID;
            this.vista.EstatusID    = (int)bo.Estatus;
            this.vista.TipoContrato = bo.Tipo;
        }
        private void ConsultarCompleto()
        {
            try {
                ContratoPSLBO        bo  = (ContratoPSLBO)this.InterfazUsuarioADato();
                List <ContratoPSLBO> lst = this.controlador.ConsultarCompleto(this.dctx, bo, true);

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

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

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

                    this.presentadorDG.DatoAInterfazUsuario(elemento as object);
                    this.presentadorEA.DatoAInterfazUsuario(elemento as object);
                    this.presentadorEA.CargarEquiposAliados();
                }
                else
                {
                    this.presentadorDG.Inicializar();
                    this.presentadorEA.Inicializar();
                }
            } catch (Exception ex) {
                this.DatoAInterfazUsuario(new ContratoPSLBO());
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
Example #11
0
        private object InterfazUsuarioADato()
        {
            ContratoPSLBO bo = new ContratoPSLBO();

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

            bo.ContratoID = this.vista.ContratoID;
            if (bo.AnexosContrato == null)
            {
                bo.AnexosContrato = new List <AnexosContratoPSLBO>();
            }

            return(bo);
        }
        /// <summary>
        /// Registra el contrato con Estatus En Curso
        /// </summary>
        public void RegistrarTerminada()
        {
            string s;

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

            this.vista.EstatusID = (int)EEstatusContrato.EnPausa;

            ContratoPSLBO contrato = this.Registrar();

            this.vista.EstablecerPaqueteNavegacion("ContratoPSLBO", contrato);
            this.vista.RedirigirADetalles();
        }
        private void EstablecerDatosNavegacion(object paqueteNavegacion)
        {
            try {
                if (paqueteNavegacion == null)
                {
                    throw new Exception("Se esperaba un objeto en la navegación. No se puede identificar qué reservación se desea consultar.");
                }
                if (!(paqueteNavegacion is ContratoPSLBO))
                {
                    throw new Exception("Se esperaba un Contrato de Renta Ordinaria.");
                }

                ContratoPSLBO bo = (ContratoPSLBO)paqueteNavegacion;

                this.DatoAInterfazUsuario(bo);
            } catch (Exception ex) {
                this.DatoAInterfazUsuario(new ContratoPSLBO());
                throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: " + ex.Message);
            }
        }
        private object InterfazUsuarioADato()
        {
            ContratoPSLBO bo = new ContratoPSLBO();

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

            bo.CierreContrato         = new CierreContratoPSLBO();
            bo.CierreContrato.Usuario = new UsuarioBO();
            bo.ContratoID             = this.vista.ContratoID;
            bo.UUA = this.vista.UUA;
            bo.FUA = this.vista.FUA;

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

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

            if (bo.CierreContrato is CierreContratoPSLBO)
            {
                ((CierreContratoPSLBO)bo.CierreContrato).ImporteReembolso       = this.vista.ImporteReembolso;
                ((CierreContratoPSLBO)bo.CierreContrato).PersonaRecibeReembolso = this.vista.PersonaRecibeReembolso;
            }
            else
            {
                ((CierreContratoPSLBO)bo.CierreContrato).ImporteReembolso       = null;
                ((CierreContratoPSLBO)bo.CierreContrato).PersonaRecibeReembolso = null;
            }

            return(bo);
        }
Example #15
0
        public void RealizarPrimeraCarga()
        {
            try {
                ContratoPSLBO contratoSesion = (ContratoPSLBO)this.vista.ObtenerPaqueteNavegacion("UltimoContratoPSLBO");
                if (contratoSesion != null)
                {
                    this.LimpiarSesion();
                    this.vista.ContratoID = contratoSesion.ContratoID;
                }

                this.DesplegarSucursalesAutorizadas();
                this.EstablecerConfiguracionInicial();
                this.ConsultarCompleto();

                this.EstablecerSeguridad();
                this.presentadorDocumentos.ModoEditable(true);
                this.DeshabilitaBarraHerramientas();
            } catch (Exception ex) {
                throw new Exception(this.nombreClase + ".RealizarPrimeraCarga: " + ex.Message);
            }
        }
        private void ConsultarCompleto()
        {
            try {
                //Se consulta la información del contrato
                ContratoPSLBO        bo  = (ContratoPSLBO)this.InterfazUsuarioADato();
                List <ContratoPSLBO> lst = this.controlador.ConsultarCompleto(this.dctx, bo, true);

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

                this.DatoAInterfazUsuario(lst[0]);
                this.vista.UltimoObjeto = lst[0];
            } catch (Exception ex) {
                this.DatoAInterfazUsuario(new ContratoPSLBO());
                throw new Exception(this.nombreClase + ".ConsultarCompleto:" + ex.Message);
            }
        }
Example #17
0
        /// <summary>
        /// Registra el contrato con estatus Borrador
        /// </summary>
        public void RegistrarIntercambio()
        {
            try {
                string s;
                if ((s = this.ValidarCamposBorrador()) != null)
                {
                    this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null);
                    return;
                }

                this.vista.EstatusID = (int)EEstatusContrato.EnCurso;
                this.Registrar();

                ContratoPSLBO ctoCheckList = new ContratoPSLBO((ContratoPSLBO)this.vista.UltimoObjeto);
                this.vista.UltimoObjeto = null;

                this.vista.EstablecerPaqueteNavegacion("RegistrarEntregaPSLUI", ctoCheckList);
                this.vista.EstablecerPaqueteNavegacion("LineaContratoPSLID", this.lineaContratoID);
                this.vista.EstablecerPaqueteNavegacion("EsIntercambio", true);
                this.vista.RedirigirADetalles();
            } catch (Exception ex) {
                throw new Exception(nombreClase + ".IntercambioUnidadPSLPRE: " + Environment.NewLine + ex.Message);
            }
        }
        /// <summary>
        /// Actualiza el cierre de un contrato de RD
        /// </summary>
        public void CerrarContrato()
        {
            string s;

            if ((s = this.ValidarCampos()) != null)
            {
                this.vista.MostrarMensaje(s, ETipoMensajeIU.ADVERTENCIA, null);
                return;
            }
            Guid firma = Guid.NewGuid();

            try {
                #region Transaccion

                dctx.SetCurrentProvider("Outsourcing");
                dctx.OpenConnection(firma);
                dctx.BeginTransaction(firma);

                #endregion

                ////Se obtiene la información a partir de la Interfaz de Usuario
                ContratoPSLBO bo = (ContratoPSLBO)this.InterfazUsuarioADato();

                GeneradorPagoPSLBR GenerarPagosBr = new GeneradorPagoPSLBR();
                var pagos = ObtenerPagosContrato(bo.ContratoID);
                ////Se crea el objeto de seguridad
                UsuarioBO usuario = new UsuarioBO()
                {
                    Id = this.vista.UsuarioID
                };
                AdscripcionBO adscripcion = new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                };
                SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion);

                //Crear pago de adicional
                var ultimoPago = 0;
                if (pagos.Count > 0)
                {
                    ultimoPago = (int)ObtenerUltimoNumeroPago(pagos);
                }
                GenerarPagosBr.ModuloID = this.vista.ModuloID;
                GenerarPagosBr.GenerarPagoAdicional(dctx, bo, (ultimoPago + 1), seguridadBO, true, true);

                //Se actualiza en la base de datos
                this.controlador.Terminar(this.dctx, bo, (ContratoPSLBO)this.vista.UltimoObjeto, seguridadBO);
                dctx.CommitTransaction(firma);

                this.LimpiarSesion();
                this.vista.LimpiarPaqueteNavegacion("UltimoContratoPSLBO");
                this.vista.EstablecerPaqueteNavegacion("ContratoPSLBO", bo);
                this.vista.RedirigirADetalles();
            } catch (Exception ex) {
                dctx.RollbackTransaction(firma);
                throw new Exception(nombreClase + ".CerrarContrato:" + ex.Message);
            } finally {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
            }
        }
Example #19
0
        /// <summary>
        /// Despliega la línea en la interfaz de usuario
        /// </summary>
        /// <param name="lineaContrato"></param>
        /// <param name="plazoAnio"></param>
        public void DatosAInterfazUsuario(LineaContratoPSLBO lineaContrato, ContratoPSLBO bo)
        {
            DatosAInterfazUsuario((UnidadBO)lineaContrato.Equipo);

            if (lineaContrato.Equipo != null && lineaContrato.Equipo.Sucursal != null &&
                lineaContrato.Equipo.Sucursal.UnidadOperativa != null)
            {
                vista.UnidadOperativaID = lineaContrato.Equipo.Sucursal.UnidadOperativa.Id;
            }
            //this.vista.TipoTarifaID = (int?)lineaContrato.TipoTarifa;

            if (lineaContrato.Cobrable != null)
            {
                var tarifaContrato = ((TarifaContratoPSLBO)lineaContrato.Cobrable);
                vista.TarifaPSLID         = tarifaContrato.TarifaPSLID;
                vista.DuracionDiasPeriodo = tarifaContrato.DuracionDiasPeriodo;
                vista.MaximoHrsTurno      = tarifaContrato.MaximoHrsTurno;

                //Tarifas
                this.vista.TarifaHrsLibres    = tarifaContrato.HorasLibres == null ? 0 : tarifaContrato.HorasLibres;
                this.vista.TarifaHrsExcedidas = tarifaContrato.RangoTarifas != null && tarifaContrato.RangoTarifas.Any() ? tarifaContrato.RangoTarifas.First().Cargo ?? 0 : 0;

                AVerificacionLineaPSLBO entrega   = lineaContrato.ObtenerListadoVerificacionPorTipo <AVerificacionLineaPSLBO>(ETipoListadoVerificacion.ENTREGA);
                AVerificacionLineaPSLBO recepcion = lineaContrato.ObtenerListadoVerificacionPorTipo <AVerificacionLineaPSLBO>(ETipoListadoVerificacion.RECEPCION);

                this.vista.HrsExcedidas          = lineaContrato.CalcularHorasExcedidas();
                this.vista.HrsConsumidas         = lineaContrato.CalcularHorasConsumidas();
                this.vista.MontoHrsExcedidas     = lineaContrato.CalcularMontoPorHorasExcedidas() == null ? 0 : lineaContrato.CalcularMontoPorHorasExcedidas();
                this.vista.HrsEntrega            = entrega.Horometro;
                this.vista.HrsRecepcion          = recepcion.Horometro;
                this.vista.DiferenciaCombustible = lineaContrato.CalcularDiferenciaCombustible();

                if (this.vista.ImporteUnidadCombustible != null)
                {
                    this.vista.ImporteTotalCombustible = lineaContrato.CalcularMontoCombustible(this.vista.ImporteUnidadCombustible.Value);
                }
                else
                {
                    this.vista.ImporteUnidadCombustible = null;
                }

                this.vista.CargoAbusoOperacion    = lineaContrato.CargoAbusoOperacion;
                this.vista.CargoDisposicionBasura = lineaContrato.CargoDisposicionBasura;

                //Cálculos de Días de Renta
                this.vista.DiasRentaProgramada = bo.CalcularDiasPrometidosRenta();
                this.vista.DiasEnTaller        = 0; //TODO: Integración con módulo de mantenimiento
                this.vista.DiasRealesRenta     = bo.CalcularDiasTranscurridosRenta();
                if (this.vista.DiasRentaProgramada != null && this.vista.DiasRealesRenta != null)
                {
                    this.vista.DiasAdicionales = this.vista.DiasRealesRenta.Value - this.vista.DiasRentaProgramada.Value;
                }
                else
                {
                    this.vista.DiasAdicionales = null;
                }
                if (this.vista.DiasAdicionales != null && ((TarifaContratoPSLBO)lineaContrato.Cobrable).TarifaDiaria != null)
                {
                    this.vista.MontoTotalDiasAdicionales = this.vista.DiasAdicionales * ((TarifaContratoPSLBO)lineaContrato.Cobrable).TarifaDiaria;
                }
                else
                {
                    this.vista.MontoTotalDiasAdicionales = null;
                }
            }
            else
            {
                this.vista.TarifaHrsLibres   = 0;
                this.vista.MontoHrsExcedidas = 0;
            }
        }
        /// <summary>
        /// Registra un Contrato RO
        /// </summary>
        private void Registrar()
        {
            #region Se inicia la Transaccion
            dctx.SetCurrentProvider("Outsourcing");
            Guid firma = Guid.NewGuid();
            try {
                dctx.OpenConnection(firma);
                dctx.BeginTransaction(firma);
            } catch (Exception) {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
                throw new Exception("Se encontraron inconsistencias al insertar el Contrato.");
            }
            #endregion

            try {
                //Se obtiene la información a partir de la Interfaz de Usuario
                ContratoPSLBO bo = (ContratoPSLBO)this.InterfazUsuarioADato();
                if (bo.Estatus == EEstatusContrato.EnPausa)
                {
                    #region LLenar el anexo por cambios en la renovación.
                    AnexosContratoPSLBO anexo = new AnexosContratoPSLBO();
                    anexo.FechaInicio             = bo.FechaInicioActual;
                    anexo.FechaFin                = bo.FechaPromesaActual;
                    anexo.FechaIntercambioUnidad  = null;
                    anexo.MontoTotalArrendamiento = bo.MontoTotalArrendamiento;
                    anexo.TipoAnexoContrato       = ETipoAnexoContrato.Contrato;
                    anexo.Vigente       = true;
                    anexo.ContratoPSLID = this.vista.ContratoID;
                    anexo.FC            = this.vista.FUA;
                    anexo.FUA           = this.vista.FUA;
                    anexo.UC            = this.vista.UUA;
                    anexo.UUA           = this.vista.UUA;

                    ArchivoBO archivo = new ArchivoBO();
                    archivo.Activo    = true;
                    archivo.Auditoria = new AuditoriaBO {
                        FC = this.vista.FUA, FUA = this.vista.FUA, UC = this.vista.UUA, UUA = this.vista.UUA
                    };
                    archivo.TipoAdjunto = ETipoAdjunto.AnexoContrato;
                    archivo.TipoArchivo = this.presentadorDocumentos.Vista.TiposArchivo.Find(x => x.Extension.ToUpper() == "PDF");

                    Random random = new Random();
                    archivo.Nombre      = "Anexo_" + DateTime.Now.ToShortDateString().Replace("/", string.Empty) + random.Next(99999).ToString() + ".pdf";
                    archivo.NombreCorto = archivo.Nombre;

                    Dictionary <string, object> dataSources = new Dictionary <string, object>();
                    #region Consulta periodoTarifario.
                    List <DiaPeriodoTarifaBO> lstTemp         = new List <DiaPeriodoTarifaBO>();
                    DiaPeriodoTarifaBR        periodoTarifaBR = new DiaPeriodoTarifaBR();
                    lstTemp = periodoTarifaBR.Consultar(dctx, new DiaPeriodoTarifaBO()
                    {
                        UnidadOperativaID = this.vista.UnidadOperativaID
                    });
                    if (lstTemp.Count == 1)
                    {
                        dataSources.Add("PeriodoTarifa", lstTemp[0]);
                    }
                    if (!string.IsNullOrEmpty(bo.Divisa.MonedaDestino.Codigo))
                    {
                        MonedaBO moneda = FacadeBR.ConsultarMoneda(this.dctx, new MonedaBO()
                        {
                            Codigo = bo.Divisa.MonedaDestino.Codigo
                        }).FirstOrDefault();
                        dataSources.Add("Moneda", moneda);
                    }
                    #endregion
                    dataSources["ContratoPSLBO"] = bo;
                    ContratoAnexoROCRPT reporteCorrectivo = new ContratoAnexoROCRPT(dataSources);
                    using (MemoryStream stream = new MemoryStream()) {
                        reporteCorrectivo.CreateDocument();
                        reporteCorrectivo.ExportToPdf(stream);
                        archivo.Archivo = stream.GetBuffer();
                    }
                    anexo.AgregarAnexo(archivo);
                    bo.AgregarAnexoContrato(anexo);
                    #endregion

                    #region Llenando información del pago
                    GeneradorPagoPSLBR generadorPago = new GeneradorPagoPSLBR();
                    //Cuando se genera el pago se llenan los campos de acumulados de tarifas
                    generadorPago.ObtenerPagos(new PagoContratoPSLBO(), bo, null, 0, ETipoPago.NORMAL);
                    #endregion
                }

                //Se crea el objeto de seguridad
                UsuarioBO usuario = new UsuarioBO()
                {
                    Id = this.vista.UsuarioID
                };
                AdscripcionBO adscripcion = new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                };
                SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion);

                //Se inserta en la base de datos
                this.controlador.InsertarCompleto(this.dctx, bo, seguridadBO);
                //Se consulta lo insertado para recuperar los ID
                DataSet ds = this.controlador.ConsultarSet(this.dctx, bo);
                if (ds.Tables[0].Rows.Count <= 0)
                {
                    throw new Exception("Al consultar lo insertado no se encontraron coincidencias.");
                }
                if (ds.Tables[0].Rows.Count > 1)
                {
                    throw new Exception("Al consultar lo insertado se encontró más de una coincidencia.");
                }

                bo.ContratoID = this.controlador.DataRowToContratoPSLBO(ds.Tables[0].Rows[0]).ContratoID;

                //El proceso de generación de pagos es eliminado de esta sección
                dctx.CommitTransaction(firma);

                //Se despliega la información en la Interfaz de Usuario
                this.DatoAInterfazUsuario(bo);
            } catch (Exception ex) {
                dctx.RollbackTransaction(firma);
                throw new Exception(this.nombreClase + ".Registrar:" + ex.Message);
            } finally {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
            }
        }
Example #21
0
        private LineaContratoPSLBO ObtenerLineaContrato(LineaContratoPSLBO lineaAnterior, UnidadBO unidadNueva, ContratoPSLBO bo)
        {
            LineaContratoPSLBO lineaBO = new LineaContratoPSLBO();

            lineaBO.Equipo = unidadNueva;

            lineaBO.TipoTarifa = lineaAnterior.TipoTarifa;

            lineaBO.Cobrable = new TarifaContratoPSLBO
            {
                PeriodoTarifa                = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).PeriodoTarifa,
                Tarifa                       = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).Tarifa,
                TarifaHrAdicional            = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaHrAdicional,
                TarifaTurno                  = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaTurno,
                TipoTarifaID                 = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TipoTarifaID,
                Maniobra                     = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).Maniobra,
                TarifaPSLID                  = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaPSLID,
                DuracionDiasPeriodo          = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).DuracionDiasPeriodo,
                MaximoHrsTurno               = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).MaximoHrsTurno,
                TarifaDiaria                 = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaDiaria,
                TarifaRealAcumulada          = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaRealAcumulada,
                TarifaCobradaAcumulada       = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaCobradaAcumulada,
                TarifaCobradaEnPago          = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaCobradaEnPago,
                TarifaDevueltaNotaC          = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaDevueltaNotaC,
                TarifaDevueltaNotaCAcumulada = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaDevueltaNotaCAcumulada,
                Activo                       = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).Activo,
                PorcentajeDescuento          = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).PorcentajeDescuento,
                PorcentajeDescuentoMaximo    = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).PorcentajeDescuentoMaximo,
                EtiquetaDescuento            = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).EtiquetaDescuento,
                TarifaConDescuento           = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).TarifaConDescuento,
                PorcentajeSeguro             = ((TarifaContratoPSLBO)lineaAnterior.Cobrable).PorcentajeSeguro
            };
            lineaBO.Activo = true;

            //Si el tipo de contrato es RO, significa que ya paso al menos por aquí y no será necesario realizar las validaciones de nuevo
            if (bo.Tipo != ETipoContrato.RO)
            {
                switch (vista.UnidadOperativaID)
                {
                case (int)ETipoEmpresa.Construccion:
                    if ((EAreaConstruccion)((UnidadBO)lineaAnterior.Equipo).Area == EAreaConstruccion.RO)
                    {
                        bo.Tipo = ETipoContrato.RO;
                    }
                    break;

                case (int)ETipoEmpresa.Generacion:
                    if ((EAreaGeneracion)((UnidadBO)lineaAnterior.Equipo).Area == EAreaGeneracion.RO)
                    {
                        bo.Tipo = ETipoContrato.RO;
                    }
                    break;

                case (int)ETipoEmpresa.Equinova:
                    if ((EAreaEquinova)((UnidadBO)lineaAnterior.Equipo).Area == EAreaEquinova.RO)
                    {
                        bo.Tipo = ETipoContrato.RO;
                    }
                    break;

                default:
                    break;
                }
            }

            return(lineaBO);
        }
Example #22
0
        /// <summary>
        /// Registra un intercambio de unidad
        /// </summary>
        private void Registrar()
        {
            #region Se inicia la Transaccion
            dctx.SetCurrentProvider("Outsourcing");
            Guid firma = Guid.NewGuid();
            try {
                this.dctx.OpenConnection(firma);
                this.dctx.BeginTransaction(firma);
            } catch (Exception) {
                if (this.dctx.ConnectionState == ConnectionState.Open)
                {
                    this.dctx.CloseConnection(firma);
                }
                throw new Exception("Se encontraron inconsistencias al insertar el Contrato.");
            }
            #endregion

            try {
                //Se crea el objeto de seguridad
                UsuarioBO usuario = new UsuarioBO()
                {
                    Id = this.vista.UsuarioID
                };
                AdscripcionBO adscripcion = new AdscripcionBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                };
                SeguridadBO seguridadBO = new SeguridadBO(Guid.Empty, usuario, adscripcion);

                //Se consulta la información del contrato
                ContratoPSLBO bo = (ContratoPSLBO)this.InterfazUsuarioADato();

                UnidadBO unidadNueva = new UnidadBO()
                {
                    UnidadID = this.vista.IntercambioUnidadID
                };
                unidadNueva = controladorUnidades.ConsultarCompleto(this.dctx, unidadNueva, true).FirstOrDefault();

                ContratoPSLBO contratoPrevio = new ContratoPSLBO(bo);
                if (bo.ObtenerLineaContrato() != null && bo.ObtenerLineaContrato().Equipo != null && bo.ObtenerLineaContrato().Equipo is UnidadBO &&
                    ((UnidadBO)bo.ObtenerLineaContrato().Equipo).UnidadID != null)
                {
                    //Se obtiene el ID de la unidad que será intercambiada
                    UnidadBO unidadActual = new UnidadBO()
                    {
                        UnidadID = this.vista.UnidadID
                    };
                    LineaContratoPSLBO linea = bo.ObtenerLineaContrato(unidadActual);

                    UnidadBO unidadBO = (UnidadBO)linea.Equipo;
                    if (unidadBO.UnidadID == this.vista.UnidadID)
                    {
                        linea.Activo = false;

                        //Agregar nueva línea al contrato
                        bo.LineasContrato.Add(this.ObtenerLineaContrato(linea, unidadNueva, bo));
                    }
                }
                ContratoPSLBO contratoModificado = bo;

                //Generamos objeto tipo anexo
                AnexosContratoPSLBO anexo = new AnexosContratoPSLBO();
                anexo.FechaIntercambioUnidad  = this.vista.FechaIntercambio;
                anexo.MontoTotalArrendamiento = contratoModificado.MontoTotalArrendamiento;
                anexo.TipoAnexoContrato       = ETipoAnexoContrato.Intercambio;
                anexo.Vigente       = true;
                anexo.ContratoPSLID = contratoModificado.ContratoID;
                anexo.FC            = this.vista.FC;
                anexo.FUA           = this.vista.FUA;
                anexo.UC            = this.vista.UC;
                anexo.UUA           = this.vista.UUA;
                contratoModificado.AnexosContrato.Add(anexo);

                #region Archivos Adjuntos
                List <ArchivoBO> adjuntos = presentadorDocumentos.Vista.ObtenerArchivos() ?? new List <ArchivoBO>();
                foreach (ArchivoBO adjunto in adjuntos)
                {
                    if (contratoModificado.Tipo == ETipoContrato.RO)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoRO;
                    }
                    if (contratoModificado.Tipo == ETipoContrato.ROC)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoROC;
                    }
                    if (contratoModificado.Tipo == ETipoContrato.RE)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoRE;
                    }
                    if (contratoModificado.Tipo == ETipoContrato.RD)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoRD;
                    }
                    if (contratoModificado.Tipo == ETipoContrato.FSL)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoFSL;
                    }
                    if (contratoModificado.Tipo == ETipoContrato.CM)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoMantenimiento;
                    }
                    if (contratoModificado.Tipo == ETipoContrato.SD)
                    {
                        adjunto.TipoAdjunto = ETipoAdjunto.ContratoServicioDedicado;
                    }

                    adjunto.Auditoria = new AuditoriaBO
                    {
                        FC  = this.vista.FC,
                        UC  = this.vista.UC,
                        FUA = this.vista.FUA,
                        UUA = this.vista.UUA
                    };
                }
                contratoModificado.DocumentosAdjuntos = adjuntos;
                #endregion

                this.controlador.ActualizarCompleto(this.dctx, contratoModificado, contratoPrevio, seguridadBO);
                this.vista.UltimoObjeto = contratoModificado;

                #region Recuperar ID del la línea agregada
                LineaContratoPSLBO lineaNueva = contratoModificado.LineasContrato
                                                .ConvertAll(l => (LineaContratoPSLBO)l)
                                                .FirstOrDefault(lc => lc.Equipo.EquipoID == this.vista.IntercambioEquipoID);

                if (lineaNueva != null)
                {
                    this.lineaContratoID = lineaNueva.LineaContratoID;
                }
                #endregion /Recuperar ID

                dctx.CommitTransaction(firma);
            } catch (Exception ex) {
                dctx.RollbackTransaction(firma);
                throw new Exception(this.nombreClase + ".Registrar:" + ex.Message);
            } finally {
                if (dctx.ConnectionState == ConnectionState.Open)
                {
                    dctx.CloseConnection(firma);
                }
            }
        }
Example #23
0
        public void ObtenerDatosUnidad()
        {
            if (this.vista.lstUnidades != null)
            {
                if (this.vista.lstUnidades.Count > 0)
                {
                    int?     equipoId = this.vista.EquipoID.Value != null ? this.vista.EquipoID.Value : 0;
                    UnidadBO unidad   = this.vista.lstUnidades.Where(r => r.EquipoID == this.vista.EquipoID).FirstOrDefault();

                    if (unidad == null)
                    {
                        throw new Exception("La unidad seleccionada no es valida. Favor de recargar el contrato.");
                    }

                    //revisamos que tenga checklist de recepción
                    ContratoPSLBO bo            = (ContratoPSLBO)this.vista.ObtenerPaqueteNavegacion("UltimoContratoPSLBO");
                    ContratoPSLBR contratoPSLBR = new ContratoPSLBR();

                    //Obtenemos el Horómetro
                    if (bo != null)
                    {
                        if (bo.LineasContrato != null)
                        {
                            LineaContratoPSLBO lineaContrato = (LineaContratoPSLBO)bo.LineasContrato.Where(r => r.Equipo.EquipoID == equipoId).FirstOrDefault();


                            //Verificamos que exista un checkList de recepción
                            if (lineaContrato.ListadosVerificacion.Count < 2)
                            {
                                bool existeEntrega = lineaContrato.ListadosVerificacion.Where(r => r.Tipo == ETipoListadoVerificacion.ENTREGA).Any();
                                if (existeEntrega)
                                {
                                    //Obtiene los últimos valores de Combustible y Horómetro
                                    List <Int32> linea = contratoPSLBR.ConsultarUltimosCombustibleHorometro(this.dctx, unidad.UnidadID, ETipoListadoVerificacion.ENTREGA);
                                    this.vista.PorcentajeUnidadCliente = linea.Count > 0 ? linea[0].ToString() : Convert.ToString(0);
                                    this.vista.HorometroUnidadCliente  = linea.Count > 0 ? linea[1].ToString() : Convert.ToString(0);
                                }
                            }
                            else
                            {
                                bool existeRecepcion = lineaContrato.ListadosVerificacion.Where(r => r.Tipo == ETipoListadoVerificacion.RECEPCION).Any();
                                if (existeRecepcion)
                                {
                                    if (lineaContrato != null)
                                    {
                                        //LineaContratoPSLBO lineaContratoBO = new LineaContratoPSLBO();
                                        AVerificacionLineaPSLBO listado = lineaContrato.ObtenerListadoVerificacionPorTipo <AVerificacionLineaPSLBO>(ETipoListadoVerificacion.RECEPCION);

                                        //Obtiene los últimos valores de Combustible y Horómetro
                                        List <Int32> linea = contratoPSLBR.ConsultarUltimosCombustibleHorometro(this.dctx, unidad.UnidadID, ETipoListadoVerificacion.RECEPCION);
                                        this.vista.PorcentajeUnidadCliente = linea.Count > 0 ? linea[0].ToString() : Convert.ToString(0);
                                        this.vista.HorometroUnidadCliente  = linea.Count > 0 ? linea[1].ToString() : Convert.ToString(0);
                                    }
                                }
                            }
                        }
                        else
                        {
                            throw new Exception(this.nombreClase + ".ObtenerDatosUnidad: no se pueden obtener líneas del contrato de esta unidad ");
                        }
                    }
                    else
                    {
                        throw new Exception(this.nombreClase + ".ObtenerDatosUnidad: no se pueden obtener datos del contrato ");
                    }

                    this.vista.ECodeCliente = unidad.NumeroEconomico;
                    //consultamos el modelo
                    this.vista.ModeloCliente = ConsultarModeloUnidad(unidad.IDLider).ConfiguracionModeloMotorizacion.Modelo.Nombre;
                    this.vista.EquipoID      = unidad.EquipoID;
                    this.vista.UnidadID      = unidad.UnidadID;
                    this.vista.SucursalID    = unidad.Sucursal.Id;
                }
            }
            else
            {
                throw new Exception(this.nombreClase + ".ObtenerDatosUnidad: no se pueden determinar la unidad del contrato ");
            }
        }
        /// <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>
        /// Despliega los datos a la Vista
        /// </summary>
        /// <param name="obj"></param>
        private void DatoAInterfazUsuario(object obj)
        {
            ContratoPSLBO bo = (ContratoPSLBO)obj;

            this.vista.ContratoID = bo.ContratoID;
        }
        private void DatoAInterfazUsuario(object obj)
        {
            ContratoPSLBO bo = (ContratoPSLBO)obj;

            if (bo == null)
            {
                bo = new ContratoPSLBO();
            }
            if (bo.Cliente == null)
            {
                bo.Cliente = new CuentaClienteIdealeaseBO();
            }
            if (bo.Divisa == null)
            {
                bo.Divisa = new DivisaBO();
            }
            if (bo.Divisa.MonedaDestino == null)
            {
                bo.Divisa.MonedaDestino = new MonedaBO();
            }
            if (bo.Operador == null)
            {
                bo.Operador = new OperadorBO();
            }
            if (bo.Operador.Direccion == null)
            {
                bo.Operador.Direccion = new DireccionPersonaBO();
            }
            if (bo.Operador.Direccion.Ubicacion == null)
            {
                bo.Operador.Direccion.Ubicacion = new UbicacionBO();
            }
            if (bo.Operador.Direccion.Ubicacion.Ciudad == null)
            {
                bo.Operador.Direccion.Ubicacion.Ciudad = new CiudadBO();
            }
            if (bo.Operador.Direccion.Ubicacion.Estado == null)
            {
                bo.Operador.Direccion.Ubicacion.Estado = new EstadoBO();
            }
            if (bo.Operador.Direccion.Ubicacion.Pais == null)
            {
                bo.Operador.Direccion.Ubicacion.Pais = new PaisBO();
            }
            if (bo.Operador.Licencia == null)
            {
                bo.Operador.Licencia = new LicenciaBO();
            }
            if (bo.Sucursal == null)
            {
                bo.Sucursal = new SucursalBO();
            }
            if (bo.Sucursal.UnidadOperativa == null)
            {
                bo.Sucursal.UnidadOperativa = new UnidadOperativaBO();
            }
            if (bo.CierreContrato == null)
            {
                bo.CierreContrato = new CancelacionContratoPSLBO();
            }
            if (bo.CierreContrato.Usuario == null)
            {
                bo.CierreContrato.Usuario = new UsuarioBO();
            }

            LineaContratoPSLBO linea = bo.ObtenerLineaContrato();

            if (linea == null)
            {
                linea = new LineaContratoPSLBO();
            }
            if (linea.Equipo == null)
            {
                linea.Equipo = new UnidadBO();
            }
            if (linea.Cobrable == null)
            {
                linea.Cobrable = new TarifaContratoPSLBO();
            }

            this.vista.ContratoID = bo.ContratoID;
            if (bo.Estatus != null)
            {
                this.vista.EstatusID = bo.Estatus;
            }
            else
            {
                this.vista.EstatusID = null;
            }
            this.vista.FechaCancelacion         = bo.CierreContrato.Fecha;
            this.vista.ObservacionesCancelacion = bo.CierreContrato.Observaciones;

            if (bo.CierreContrato is CancelacionContratoPSLBO)
            {
                this.vista.MotivoCancelacion = ((CancelacionContratoPSLBO)bo.CierreContrato).Motivo;
            }
            else
            {
                this.vista.MotivoCancelacion = null;
            }

            this.vista.EquipoID = linea.Equipo.EquipoID;
            if (linea.Equipo is UnidadBO)
            {
                this.vista.UnidadID = ((UnidadBO)linea.Equipo).UnidadID;
            }
            else
            {
                this.vista.UnidadID = null;
            }

            this.vista.TipoContrato = (int)bo.Tipo;
            if (bo.Tipo is ETipoContrato)
            {
                this.vista.TipoContrato = (int)bo.Tipo;
            }
            else
            {
                this.vista.TipoContrato = null;
            }

            vista.FechaContrato = bo.FechaContrato;

            this.presentadorHerramientas.DatosAInterfazUsuario(bo);
            this.presentadorResumen.DatosAInterfazUsuario(bo);
        }
        private void DatoAInterfazUsuario(object obj)
        {
            ContratoPSLBO bo = (ContratoPSLBO)obj;

            if (bo == null)
            {
                bo = new ContratoPSLBO();
            }
            if (bo.Cliente == null)
            {
                bo.Cliente = new CuentaClienteIdealeaseBO();
            }
            if (bo.Divisa == null)
            {
                bo.Divisa = new DivisaBO();
            }
            if (bo.Divisa.MonedaDestino == null)
            {
                bo.Divisa.MonedaDestino = new MonedaBO();
            }
            if (bo.Operador == null)
            {
                bo.Operador = new OperadorBO();
            }
            if (bo.Operador.Direccion == null)
            {
                bo.Operador.Direccion = new DireccionPersonaBO();
            }
            if (bo.Operador.Direccion.Ubicacion == null)
            {
                bo.Operador.Direccion.Ubicacion = new UbicacionBO();
            }
            if (bo.Operador.Direccion.Ubicacion.Ciudad == null)
            {
                bo.Operador.Direccion.Ubicacion.Ciudad = new CiudadBO();
            }
            if (bo.Operador.Direccion.Ubicacion.Estado == null)
            {
                bo.Operador.Direccion.Ubicacion.Estado = new EstadoBO();
            }
            if (bo.Operador.Direccion.Ubicacion.Pais == null)
            {
                bo.Operador.Direccion.Ubicacion.Pais = new PaisBO();
            }
            if (bo.Operador.Licencia == null)
            {
                bo.Operador.Licencia = new LicenciaBO();
            }
            if (bo.Sucursal == null)
            {
                bo.Sucursal = new SucursalBO();
            }
            if (bo.Sucursal.UnidadOperativa == null)
            {
                bo.Sucursal.UnidadOperativa = new UnidadOperativaBO();
            }
            if (bo.CierreContrato == null)
            {
                bo.CierreContrato = new CancelacionContratoPSLBO();
            }
            if (bo.CierreContrato.Usuario == null)
            {
                bo.CierreContrato.Usuario = new UsuarioBO();
            }

            if (bo.LineasContrato != null)
            {
                this.vista.LineasContrato = bo.LineasContrato.ConvertAll(a => (LineaContratoPSLBO)a).Where(x => x.Activo == true).ToList();
            }

            //Cierre del Contrato
            if (bo.CierreContrato is CierreContratoPSLBO)
            {
                this.vista.ImporteReembolso       = ((CierreContratoPSLBO)bo.CierreContrato).ImporteReembolso;
                this.vista.PersonaRecibeReembolso = ((CierreContratoPSLBO)bo.CierreContrato).PersonaRecibeReembolso;
            }
            else
            {
                this.vista.ImporteReembolso       = null;
                this.vista.PersonaRecibeReembolso = null;
            }

            foreach (var item in bo.LineasContrato)
            {
                if (item.Activo.HasValue && item.Activo == true)
                {
                    LineaContratoPSLBO linea = new LineaContratoPSLBO((LineaContratoPSLBO)item);

                    if (linea == null)
                    {
                        linea = new LineaContratoPSLBO();
                    }
                    if (linea.Equipo == null)
                    {
                        linea.Equipo = new UnidadBO();
                    }
                    if (linea.Cobrable == null)
                    {
                        linea.Cobrable = new TarifaContratoPSLBO();
                    }

                    this.vista.EquipoID = linea.Equipo.EquipoID;
                    if (linea.Equipo is UnidadBO)
                    {
                        this.vista.UnidadID = ((UnidadBO)linea.Equipo).UnidadID;
                    }
                    else
                    {
                        this.vista.UnidadID = null;
                    }

                    if (linea.Equipo.ActivoFijo != null && linea.Equipo.ActivoFijo.CostoSinIva != null)
                    {
                        Decimal?montoDeducibleCalcuado = 0;
                        montoDeducibleCalcuado = linea.Equipo.ActivoFijo.CostoSinIva;
                        var unidad = (UnidadBO)linea.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);
                        }
                        this.vista.ImporteDeposito = bo.CalcularMontoDeposito(montoDeducibleCalcuado.Value);
                    }
                    else
                    {
                        this.vista.ImporteDeposito = null;
                    }
                }
            }
            this.vista.ContratoID = bo.ContratoID;
            if (bo.Estatus != null)
            {
                this.vista.EstatusID = (int)bo.Estatus;
            }
            else
            {
                this.vista.EstatusID = null;
            }

            this.vista.ContratoID   = bo.ContratoID;
            this.vista.TipoContrato = (int)bo.Tipo;
            vista.FechaContrato     = bo.FechaContrato;
            this.vista.UltimoObjeto = bo;
            this.presentadorHerramientas.DatosAInterfazUsuario(bo);
            this.presentadorResumen.DatosAInterfazUsuario(bo);
        }
        /// <summary>
        /// Despliega la información del contrato en la Vista
        /// </summary>
        /// <param name="contrato"></param>
        public void DatosAInterfazUsuario(ContratoPSLBO contrato)
        {
            if (contrato == null)
            {
                contrato = new ContratoPSLBO();
            }
            if (contrato.Sucursal == null)
            {
                contrato.Sucursal = new SucursalBO();
            }
            if (contrato.Cliente == null)
            {
                contrato.Cliente = new CuentaClienteIdealeaseBO();
            }
            if (contrato.Cliente.Cliente == null)
            {
                contrato.Cliente.Cliente = new ClienteBO();
            }

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

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

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

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

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

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

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

            DesplegarEmpresa();
        }