public void AgregarCargoACierre(LineaContratoPSLBO linea) { try { if (linea != null) { var unidad = linea.Equipo as SDNI.Equipos.BO.UnidadBO; if (unidad != null && unidad.UnidadID != null) { // Verificar Unidad en Líneas de Contrato LineaContratoPSLBO lineaRepetida = vista.LineasContrato.Find(li => ((SDNI.Equipos.BO.UnidadBO)li.Equipo).UnidadID == unidad.UnidadID && li.Activo == true); if (lineaRepetida != null) { linea.LineaContratoID = lineaRepetida.LineaContratoID; linea.CargoAbusoOperacion = linea.CargoAbusoOperacion; linea.CargoDisposicionBasura = linea.CargoDisposicionBasura; } vista.LineasContrato = this.vista.LineasContrato; } else { throw new Exception("Se requiere una Unidad valida para agregarla al detalle del contrato."); } } else { throw new Exception("No se ha proporcionado una línea de contrato"); } } catch (Exception ex) { vista.MostrarMensaje("Inconsistencias al Agregar una Unidad al contrato.", ETipoMensajeIU.ERROR, nombreClase + ".AgregarLineaContrato: " + ex.Message); } }
/// <summary> /// Despliega la línea en la interfaz de usuario /// </summary> /// <param name="lineaContrato"></param> /// <param name="plazoAnio"></param> public void DatosAInterfazUsuario(LineaContratoPSLBO lineaContrato) { 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; this.vista.Activo = lineaContrato.Activo; this.vista.Devuelta = lineaContrato.Devuelta; this.vista.LineaOrigenIntercambioID = lineaContrato.LineaOrigenIntercambioID; if (lineaContrato.Cobrable != null) { var tarifaContrato = ((TarifaContratoPSLBO)lineaContrato.Cobrable); vista.PeriodoTarifa = (EPeriodosTarifa?)tarifaContrato.PeriodoTarifa; vista.Tarifa = tarifaContrato.Tarifa; vista.TarifaHrAdicional = tarifaContrato.TarifaHrAdicional; vista.TarifaTurno = tarifaContrato.TarifaTurno != null ? tarifaContrato.TarifaTurno : null; vista.Maniobra = tarifaContrato.Maniobra; vista.TarifaPSLID = tarifaContrato.TarifaPSLID; vista.DuracionDiasPeriodo = tarifaContrato.DuracionDiasPeriodo; vista.MaximoHrsTurno = tarifaContrato.MaximoHrsTurno; vista.PorcentajeDescuentoTarifa = tarifaContrato.PorcentajeDescuento; vista.PorcentajeMaximoDescuentoTarifa = tarifaContrato.PorcentajeDescuentoMaximo; vista.TarifaEtiqueta = tarifaContrato.EtiquetaDescuento; vista.TarifaConDescuento = tarifaContrato.TarifaConDescuento; vista.PorcentajeSeguro = tarifaContrato.PorcentajeSeguro; CalcularSeguro(tarifaContrato.Tarifa); } }
public void Inicializar(LineaContratoPSLBO linea, ContratoPSLBO contrato) { Inicializar(); vista.UnidadOperativaID = ((UnidadBO)linea.Equipo).Sucursal.UnidadOperativa.Id; EstablecerConfiguracionInicial(); DatosAInterfazUsuario(linea, contrato); EstablecerUltimoObjeto(linea); }
/// <summary> /// Inicializa la Vista con la línea /// </summary> /// <param name="linea">Línea a Cargar en la Vista</param> /// <param name="díasRenta">Duración en días del contrato</param> /// <param name="codigoMoneda">Código de la moneda</param> public void Inicializar(LineaContratoPSLBO linea, int?díasRenta, string codigoMoneda, string modoRegistro = "") { vista.ModoRegistro = modoRegistro; vista.UnidadOperativaID = ((UnidadBO)linea.Equipo).Sucursal.UnidadOperativa.Id; vista.CodigoMoneda = codigoMoneda; Inicializar(); EstablecerUltimoObjeto(linea); }
/// <summary> /// Obtiene la Línea de Contrato a partir de los datos de la Vista /// </summary> /// <returns></returns> public LineaContratoPSLBO InterfazUsuarioADatos() { LineaContratoPSLBO nuevaLinea = this.vista.UltimoObjeto; nuevaLinea.CargoAbusoOperacion = this.vista.CargoAbusoOperacion; nuevaLinea.CargoDisposicionBasura = this.vista.CargoDisposicionBasura; return(nuevaLinea); }
/// <summary> /// Prepara la vista de cargos adicionales /// </summary> /// <param name="linea">Línea de Contrato que contiene los datos a mostrar</param> public void PrepararCargoAdicional(LineaContratoPSLBO linea) { try { var contrato = (ContratoPSLBO)this.vista.UltimoObjeto; presentadorCargosA.Inicializar(linea, contrato); vista.CambiarACargoAdicional(); } catch (Exception ex) { throw new Exception(nombreClase + ".PrepararLinea:" + ex.Message); } }
/// <summary> /// Obtiene la Línea de Contrato a partir de los datos de la Vista /// </summary> /// <returns></returns> public LineaContratoPSLBO InterfazUsuarioADatos() { this.DatosSesionTarifaPersonalizada(); LineaContratoPSLBO nuevaLinea = new LineaContratoPSLBO { Equipo = new UnidadBO { UnidadID = vista.UnidadID, EquipoID = vista.EquipoID, NumeroSerie = !String.IsNullOrEmpty(vista.VIN) ? vista.VIN : null, NumeroEconomico = !String.IsNullOrEmpty(vista.NumeroEconocimico) ? vista.NumeroEconocimico : null, Modelo = new ModeloBO { Id = vista.ModeloID, Nombre = vista.Modelo }, Sucursal = new SucursalBO { Nombre = vista.Sucursal, UnidadOperativa = new UnidadOperativaBO { Id = vista.UnidadOperativaID, } }, CombustibleConsumidoTotal = vista.UnidadCapacidadTanque, Area = vista.EArea, Anio = this.vista.Anio }, TipoTarifa = (ETipoTarifa)Enum.Parse(typeof(ETipoTarifa), this.vista.TipoTarifaID.ToString()) , Cobrable = new TarifaContratoPSLBO { PeriodoTarifa = (EPeriodosTarifa)vista.PeriodoTarifa, Tarifa = vista.Tarifa, TarifaHrAdicional = vista.TarifaHrAdicional, TarifaTurno = vista.TarifaTurno, TipoTarifaID = vista.TipoTarifaID.ToString(), Maniobra = vista.Maniobra, TarifaPSLID = vista.TarifaPSLID, DuracionDiasPeriodo = vista.DuracionDiasPeriodo, MaximoHrsTurno = vista.MaximoHrsTurno, PorcentajeDescuento = vista.PorcentajeDescuentoTarifa, PorcentajeDescuentoMaximo = vista.PorcentajeMaximoDescuentoTarifa, EtiquetaDescuento = this.vista.TarifaEtiqueta, TarifaConDescuento = this.vista.TarifaConDescuento, PorcentajeSeguro = this.vista.PorcentajeSeguro }, Activo = vista.Activo, Devuelta = vista.Devuelta, LineaOrigenIntercambioID = vista.LineaOrigenIntercambioID }; return(nuevaLinea); }
/// <summary> /// Genera el reporte para la impresion del check list con todos los datos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void ImprimirChkListEntRec_Click(object sender, CommandEventArgs e) { try { LineaContratoPSLBO lineaContratoBO = e.CommandArgument as LineaContratoPSLBO; LineaContratoID = lineaContratoBO.LineaContratoID; if (lineaContratoBO.ListadosVerificacion.Count == 1) { TipoListadoVerificacionPSL = 0; } else { TipoListadoVerificacionPSL = 1; } this.presentador.ImprimirCheckList(); } catch (Exception ex) { this.MostrarMensaje("Inconsistencias al intentar imprimir el checklist.", ETipoMensajeIU.ERROR, ex.Message); } }
protected void grdLineasContrato_RowCommand(object sender, GridViewCommandEventArgs e) { try { string eCommandNameUpper = e.CommandName.ToUpper(); if (eCommandNameUpper == "PAGE" || eCommandNameUpper == "SORT") { return; } if (e.CommandArgument == null) { return; } int index = 0; if (!Int32.TryParse(e.CommandArgument.ToString(), out index)) { return; } LineaContratoPSLBO linea = LineasContrato[index]; switch (eCommandNameUpper) { case "CMDDETALLES": { if (VerCargosAdicionalesCierre != null) { var c = new CommandEventArgs("LineaContrato", linea); VerCargosAdicionalesCierre.Invoke(sender, c); } } break; } } catch (Exception ex) { MostrarMensaje("Inconsistencias al eliminar la unidad del contrato.", ETipoMensajeIU.ERROR, nombreClase + ".grdLineasContrato_RowCommand: " + ex.Message); } }
/// <summary> /// Prepara la Línea de contrato para visualización /// </summary> /// <param name="linea">Línea de Contrato que contiene los datos a mostrar</param> public void PrepararLinea(LineaContratoPSLBO linea) { try { if (presentadorDatosContrato.Vista != null) { if (presentadorDatosContrato.Vista.DiasRenta != null && presentadorDatosContrato.Vista.DiasRenta > 0) { if (presentadorDatosContrato.Vista.CodigoMoneda != null) { lineaContratoPRE.Vista.ModuloID = this.presentadorDatosContrato.Vista.ModuloID; lineaContratoPRE.Vista.UsuarioID = this.vista.UsuarioID; lineaContratoPRE.Vista.CuentaClienteID = this.presentadorDatosContrato.Vista.CuentaClienteID; lineaContratoPRE.Inicializar(linea, presentadorDatosContrato.Vista.DiasRenta, presentadorDatosContrato.Vista.CodigoMoneda); vista.CambiarALinea(); } else { vista.MostrarMensaje("No ha seleccionado la moneda.", ETipoMensajeIU.INFORMACION); } } else { vista.MostrarMensaje("Los días de renta deben ser mayor a 0.", ETipoMensajeIU.INFORMACION); } } else { vista.MostrarMensaje("No se ha cargado correctamente la vista.", ETipoMensajeIU.ADVERTENCIA); } } catch (Exception ex) { throw new Exception(nombreClase + ".PrepararLinea:" + ex.Message); } }
/// <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); } } }
protected void grdLineasContrato_RowDataBound(object sender, GridViewRowEventArgs e) { try { if (e.Row.RowType == DataControlRowType.DataRow) { LineaContratoPSLBO linea = ((LineaContratoPSLBO)e.Row.DataItem); var label = e.Row.FindControl("lblVIN") as Label; var button = e.Row.FindControl("ibtnDetalles") as ImageButton; button.Visible = true; // Numero de Serie if (label != null) { if (linea.Equipo != null && linea.Equipo.NumeroSerie != null) { label.Text = linea.Equipo.NumeroSerie; } else { label.Text = string.Empty; } } // Modelo label = e.Row.FindControl("lblModelo") as Label; if (label != null) { if (linea.Equipo != null && linea.Equipo.Modelo != null) { label.Text = linea.Equipo.Modelo.Nombre; } else { label.Text = string.Empty; } } //Anio label = e.Row.FindControl("lblAnio") as Label; if (label != null) { label.Text = linea.Equipo.Anio != null?linea.Equipo.Anio.ToString() : string.Empty; } //Tipo Tarifa label = e.Row.FindControl("lblTipoTarifa") as Label; if (label != null) { label.Text = linea.TipoTarifa != null?linea.TipoTarifa.ToString() : string.Empty; } //Turno label = e.Row.FindControl("lblTurno") as Label; if (label != null) { label.Text = string.Empty; if (linea.Cobrable != null && ((TarifaContratoPSLBO)linea.Cobrable).TarifaTurno != null) { Type type = ((TarifaContratoPSLBO)linea.Cobrable).obtenerETarifaTurno(this.UnidadOperativaID.Value); var memInfo = type.GetMember(type.GetEnumName(((TarifaContratoPSLBO)linea.Cobrable).TarifaTurno)); var display = memInfo[0] .GetCustomAttributes(typeof(DescriptionAttribute), false) .FirstOrDefault() as DescriptionAttribute; label.Text = display.Description; } } //Maniobra label = e.Row.FindControl("lblManiobra") as Label; if (label != null) { label.Text = string.Empty; if (linea.Cobrable != null && ((TarifaContratoPSLBO)linea.Cobrable).Maniobra != null) { label.Text = string.Format("{0:c2}", ((TarifaContratoPSLBO)linea.Cobrable).Maniobra.Value); } } //Activo label = e.Row.FindControl("lblActiva") as Label; if (label != null) { label.Text = linea.Activo != null ? linea.Activo.Value ? "SI" : "NO" : string.Empty; label.ForeColor = linea.Activo != null && linea.Activo == false ? Color.Red : label.ForeColor; } } } catch (Exception ex) { MostrarMensaje("Se han encontrado Inconsistencias al presentar el detalle del contrato.", ETipoMensajeIU.ERROR, nombreClase + ".grdLineasContrato_RowDataBound: " + ex.Message); } }
/// <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> /// 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); }
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> /// Establece el Objeto de Línea de Contrato antes de editar /// </summary> /// <param name="lineaContrato"></param> public void EstablecerUltimoObjeto(LineaContratoPSLBO lineaContrato) { vista.UltimoObjeto = lineaContrato; }
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 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); }
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 "); } }