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);
            }
        }
Exemple #3
0
 public void Inicializar(LineaContratoPSLBO linea, ContratoPSLBO contrato)
 {
     Inicializar();
     vista.UnidadOperativaID = ((UnidadBO)linea.Equipo).Sucursal.UnidadOperativa.Id;
     EstablecerConfiguracionInicial();
     DatosAInterfazUsuario(linea, contrato);
     EstablecerUltimoObjeto(linea);
 }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        /// <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);
     }
 }
Exemple #11
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);
                }
            }
        }
        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);
            }
        }
Exemple #13
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>
        /// 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);
        }
Exemple #18
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);
        }
Exemple #19
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 ");
            }
        }