Exemplo n.º 1
0
        /// <summary>
        /// Consulta la URL de la página maestra de Facturación
        /// </summary>
        public void ConsultarUrl()
        {
            try
            {
                var moduloBr = new ModuloBR();
                var configuracionUnidadOperativa = new ConfiguracionUnidadOperativaBO {
                    UnidadOperativa = new UnidadOperativaBO {
                        Id = Vista.UnidadOperativaID
                    }
                };
                string moduloId = string.Empty;
                if (this.Vista.ModuloID == null)
                {
                    throw new Exception("Es necesario definir el ModuloID");
                }
                else
                {
                    moduloId = this.Vista.ModuloID.ToString();
                }
                var listaConfiguracion = moduloBr.ConsultarConfiguracionUnidadOperativa(dataContext, configuracionUnidadOperativa, Int32.Parse(moduloId));

                if (listaConfiguracion.Any())
                {
                    if (listaConfiguracion[0].ConfiguracionModulo != null)
                    {
                        var url = listaConfiguracion[0].ConfiguracionModulo.UrlMasterFacturacion;
                        if (!String.IsNullOrEmpty(url))
                        {
                            var SucId = ConsultarSucursalUnica();


                            Vista.RedirigirMaster(url, Vista.UnidadOperativaID.ToString(),
                                                  SucId != null ? SucId.ToString() : string.Empty,
                                                  Vista.UsuarioID.ToString(), Vista.Ambiente.ToString());
                        }
                        else
                        {
                            throw new Exception("No se encuentra configurada la dirección de la Master de Facturación");
                        }
                    }
                    else
                    {
                        throw new Exception("No se encontraron configuraciones para la Unidad Operativa");
                    }
                }
                else
                {
                    throw new Exception("No se encontraron configuraciones para la Unidad Operativa");
                }
            }
            catch (Exception ex)
            {
                var strMetodo = new StackFrame().GetMethod().Name;
                var strMsg    = string.Format("{0}.{1}: {2}", nombreClase, strMetodo, ex.Message);
                Vista.MostrarMensaje("Inconsistencias al Redirigir a la Master de Facturación", ETipoMensajeIU.ERROR, strMsg);
            }
        }
        /// <summary>
        /// Obtiene el porcentaje de seguro de acuerrdo a la unidad operativa
        /// </summary>
        public decimal?ObtenerPorcentajeSeguro(int?unidadOperativaID, int?ModuloID)
        {
            try {
                decimal? porcentajeSeguro = 0;
                ModuloBR configBR         = new ModuloBR();
                ConfiguracionUnidadOperativaBO configBO = new ConfiguracionUnidadOperativaBO()
                {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = unidadOperativaID
                    }
                };
                List <ConfiguracionUnidadOperativaBO> listConfigUO = new List <ConfiguracionUnidadOperativaBO>();
                listConfigUO = configBR.ConsultarConfiguracionUnidadOperativa(dataContext, configBO, this.vista.ModuloID);
                if (listConfigUO != null && listConfigUO.Count > 0)
                {
                    porcentajeSeguro = listConfigUO[0].PorcentajeSeguro != null ? listConfigUO[0].PorcentajeSeguro : 0;
                }

                return(porcentajeSeguro);
            } catch {
                throw new Exception(this.nombreClase + ".CalcularSeguro: Error al obtener el Seguro");
            }
        }
        /// <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>
        /// Calcula y despliega las configuraciones de la unidad operativa en la vista
        /// </summary>
        public void DesplegarConfiguracionUnidadOperativa()
        {
            try
            {
                var moduloBR = new ModuloBR();

                var configuracion = new ConfiguracionUnidadOperativaBO
                {
                    UnidadOperativa = vista.UnidadOperativa
                };

                int?ModuloID = vista.ModuloID;

                if (vista.ModuloID != null)
                {
                    List <ConfiguracionUnidadOperativaBO> configuraciones =
                        moduloBR.ConsultarConfiguracionUnidadOperativa(dataContext, configuracion, ModuloID);

                    if (configuraciones != null && configuraciones.Count > 0)
                    {
                        configuracion =
                            configuraciones.Find(conf => configuracion.UnidadOperativa.Id == vista.UnidadOperativa.Id);
                        if (configuracion != null)
                        {
                            if (!string.IsNullOrEmpty(configuracion.Representante))
                            {
                                vista.Representante = configuracion.Representante.Trim();
                            }
                            else
                            {
                                vista.MostrarMensaje("No se ha configurado el representante de la unidad operativa.", ETipoMensajeIU.ADVERTENCIA);
                                vista.Representante = string.Empty;
                            }

                            if (configuracion.PorcentajePenalizacion != null)
                            {
                                vista.PorcentajePenalizacion = configuracion.PorcentajePenalizacion;
                            }
                            else
                            {
                                vista.MostrarMensaje("No se ha configurado el porcentaje de penalización en la unidad operativa.", ETipoMensajeIU.ADVERTENCIA);
                                vista.PorcentajePenalizacion = null;
                            }
                        }
                        else
                        {
                            vista.MostrarMensaje("No se ha configurado la unidad operativa.", ETipoMensajeIU.ADVERTENCIA);
                            vista.Representante = string.Empty;
                        }
                    }
                    else
                    {
                        vista.MostrarMensaje("No se ha configurado la unidad operativa.", ETipoMensajeIU.ADVERTENCIA);
                        vista.Representante = string.Empty;
                    }
                }
                else
                {
                    vista.MostrarMensaje("No se ha configurado el identificador del Modulo.", ETipoMensajeIU.ADVERTENCIA);
                    vista.Representante = string.Empty;
                }
            }
            catch (Exception ex)
            {
                vista.Representante = string.Empty;
                throw new Exception(NombreClase + ".MostrarRepresentante: " + ex.Message);
            }
        }