Пример #1
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 ");
            }
        }
Пример #2
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;
            }
        }