private decimal ObtenerRetrasoPorEstacion(EEstaciones _eEstacion) { decimal _dPorcentaje = 0; switch (_eEstacion) { case EEstaciones.Primavera: _dPorcentaje = 4; break; case EEstaciones.Vernao: _dPorcentaje = 6; break; case EEstaciones.Otonio: _dPorcentaje = 5; break; case EEstaciones.Invierno: _dPorcentaje = 8; break; } return(_dPorcentaje); }
private decimal ObtenerPorcentajeCostoPorEstacion(EEstaciones _eEstacion) { decimal _dPorcentaje = 0; switch (_eEstacion) { case EEstaciones.Primavera: _dPorcentaje = 0; break; case EEstaciones.Vernao: _dPorcentaje = 10; break; case EEstaciones.Otonio: _dPorcentaje = 15; break; case EEstaciones.Invierno: _dPorcentaje = 23; break; } _dPorcentaje = ((_dPorcentaje / 100) + 1); return(_dPorcentaje); }
private decimal ObtenerPorcentajeVelocidadPorEstacion(EEstaciones _eEstacion) { decimal _dPorcentaje = 0; switch (_eEstacion) { case EEstaciones.Primavera: _dPorcentaje = 0; break; case EEstaciones.Vernao: _dPorcentaje = -10; break; case EEstaciones.Otonio: _dPorcentaje = 15; break; case EEstaciones.Invierno: _dPorcentaje = -30; break; } return(_dPorcentaje / 100); }
/// <summary> /// /// </summary> /// <param name="_dtFecha"></param> /// <returns></returns> public EEstaciones ValidarEstacionAnio(DateTime _dtFecha) { EEstaciones eEstacion = EEstaciones.Otonio; ValidarPrimavera(_dtFecha, ref eEstacion); ValidarVerano(_dtFecha, ref eEstacion); ValidarOtonio(_dtFecha, ref eEstacion); ValidarInvierno(_dtFecha, ref eEstacion); return(eEstacion); }
/// <summary> /// / /// </summary> /// <param name="_iDistancia"></param> /// <param name="_eEstacion"></param> /// <param name="_dtFechaPedido"></param> /// <returns></returns> public decimal ObtenerCostoServicio(int _iDistancia, EEstaciones _eEstacion, DateTime _dtFechaPedido) { decimal dCostoServicio = 0; var dCostoTransporte = obtenedorDatosEnvioService.ObtenerCostoPorEnvio(_iDistancia, _eEstacion); decimal dMargenUtilidad = recuperadorDatosPaqueteriaService.ObtenerMargenUtilidad(_dtFechaPedido); dCostoServicio = dCostoTransporte * dMargenUtilidad; return(dCostoServicio); }
/// <summary> /// /// </summary> /// <param name="_dtFecha"></param> /// <param name="_eEstacion"></param> /// <returns></returns> private void ValidarVerano(DateTime _dtFecha, ref EEstaciones _eEstacion) { DateTime dtFechaAux = new DateTime(2020, _dtFecha.Month, _dtFecha.Day); DateTime dtFechaInicio = new DateTime(2020, 06, 21); DateTime dtFechaFin = new DateTime(2020, 09, 23); if (dtFechaAux >= dtFechaInicio && dtFechaAux <= dtFechaFin) { _eEstacion = EEstaciones.Vernao; } }
/// <summary> /// /// </summary> /// <param name="_dtFecha"></param> /// <param name="_eEstacion"></param> /// <returns></returns> private void ValidarPrimavera(DateTime _dtFecha, ref EEstaciones _eEstacion) { DateTime dtFechaAux = new DateTime(2020, _dtFecha.Month, _dtFecha.Day); DateTime dtFechaInicio = new DateTime(2020, 03, 21); DateTime dtFechaFin = new DateTime(2020, 06, 20); if (dtFechaAux >= dtFechaInicio && dtFechaAux <= dtFechaFin) { _eEstacion = EEstaciones.Primavera; } }
/// <summary> /// /// </summary> /// <param name="_dtFecha"></param> /// <param name="_eEstacion"></param> /// <returns></returns> private void ValidarInvierno(DateTime _dtFecha, ref EEstaciones _eEstacion) { DateTime dtFechaAux = new DateTime(2020, _dtFecha.Month, _dtFecha.Day); DateTime dtFechaInicio = new DateTime(2020, 12, 21); DateTime dtFechaFin = new DateTime(2021, 03, 20); if (dtFechaAux >= dtFechaInicio && dtFechaAux <= dtFechaFin) { _eEstacion = EEstaciones.Invierno; } }
/// <summary> /// Método encargado de obtener el precio por kilómetros. /// </summary> /// <param name="_iDistancia">Distancia de entrega.</param> /// <param name="_eEstacion">Estación del año.</param> /// <returns>Retorna el precio por kilómetros.</returns> public decimal ObtenerCostoPorEnvio(int _iDistancia, EEstaciones _eEstacion) { decimal dCostoEnvio = 0; decimal dCostoPorKilometro = ObtenerCostoPorKilometro(_iDistancia); decimal dCostoPorEnvio = ObtenerPorcentajeCostoPorEstacion(_eEstacion); dCostoEnvio = _iDistancia * dCostoPorKilometro; dCostoEnvio = dCostoEnvio * dCostoPorEnvio; return(dCostoEnvio); }
/// <summary> /// /// </summary> /// <param name="_dtFecha"></param> /// <param name="_eEstacion"></param> /// <returns></returns> private void ValidarOtonio(DateTime _dtFecha, ref EEstaciones _eEstacion) { DateTime dtFechaAux = new DateTime(2020, _dtFecha.Month, _dtFecha.Day); DateTime dtFechaInicio = new DateTime(2020, 09, 24); DateTime dtFechaFin = new DateTime(2020, 12, 20); if (dtFechaAux >= dtFechaInicio && dtFechaAux <= dtFechaFin) { _eEstacion = EEstaciones.Otonio; } }
/// <summary> /// Método encargado de obtener el tiempo de traslado del pedido. /// </summary> /// <param name="_iDistancia">Distancia de entrega.</param> /// <param name="_eEstacion">Estación del año.</param> /// <returns>Retorna el tiempo total de traslado.</returns> public decimal ObtenerTiempoDeTraslado(int _iDistancia, EEstaciones _eEstacion) { decimal dTiempoTraslado = 0M; int iVelocidad = ObtenerVelocidadEntrega(); decimal dPorcentajeEstacion = ObtenerPorcentajeVelocidadPorEstacion(_eEstacion); decimal dVelocidad = iVelocidad + (iVelocidad * dPorcentajeEstacion); dTiempoTraslado = _iDistancia / dVelocidad; dTiempoTraslado = (dTiempoTraslado / 24); return(Math.Round(dTiempoTraslado, 2)); }
/// <summary> /// Método encargado de obtener el tiempo de traslado del pedido. /// </summary> /// <param name="_iDistancia">Distancia de entrega.</param> /// <param name="_dtFechaPedido">Fecha del pedido.</param> /// <returns>Retorna el tiempo total de traslado.</returns> public decimal ObtenerTiempoDeTraslado(int _iDistancia, EEstaciones _eEstacion) { decimal dTiempoTraslado = 0; int iHorasPorEscala = 6; int iVelocidadEntrega = ObtenerVelocidadEntrega(); decimal dDistanciaEscala = _iDistancia / 1000; decimal dNumeroEscalas = Math.Truncate(dDistanciaEscala); decimal dTiempoExtra = dNumeroEscalas * iHorasPorEscala; dTiempoTraslado = (_iDistancia / iVelocidadEntrega); dTiempoTraslado = dTiempoTraslado + dTiempoExtra; return(dTiempoTraslado); }
/// <summary> /// Método encargado de obtener el precio por kilómetros. /// </summary> /// <param name="_iDistancia">Distancia de entrega.</param> /// <param name="_eEstacion">Estación del año.</param> /// <returns>Retorna el precio por kilómetros.</returns> public decimal ObtenerCostoPorEnvio(int _iDistancia, EEstaciones _eEstacion) { decimal dCostoEnvio = 0; decimal dCostoEscala = ObtenerCostoPorEscala(); decimal dCostoPorKilometro = ObtenerCostoPorKilometro(_iDistancia); decimal dDistanciaEscala = _iDistancia / 1000; decimal dNumeroEscalas = Math.Truncate(dDistanciaEscala); decimal dCargoExtra = dNumeroEscalas * dCostoEscala; dCostoEnvio = (_iDistancia * dCostoPorKilometro); dCostoEnvio = dCostoEnvio + dCargoExtra; return(dCostoEnvio); }
/// <summary> /// Método encargado de obtener el tiempo de traslado del pedido. /// </summary> /// <param name="_iDistancia">Distancia de entrega.</param> /// <param name="_dtFechaPedido">Fecha del pedido.</param> /// <returns>Retorna el tiempo total de traslado.</returns> public decimal ObtenerTiempoDeTraslado(int _iDistancia, EEstaciones _eEstacion) { decimal dTiempoTraslado = 0; decimal iVelocidadEntrega = ObtenerVelocidadEntrega(); decimal dRetrasoEstacion = ObtenerRetrasoPorEstacion(_eEstacion); decimal dTiempoEntrega = _iDistancia / iVelocidadEntrega; decimal dTiempoEntregaEnDias = Math.Round((dTiempoEntrega / 24), 2); decimal dTiempoExtra = (dTiempoEntregaEnDias * dRetrasoEstacion) / 24; dTiempoExtra = Math.Round(dTiempoExtra, 2); dTiempoTraslado = dTiempoEntregaEnDias + dTiempoExtra; return(dTiempoTraslado); }
public decimal ObtenerTiempoDeTraslado(int _iDistancia, EEstaciones _eEstacion) { return(obtenedorDatosEnvio.ObtenerTiempoDeTraslado(_iDistancia, _eEstacion)); }
public decimal ObtenerCostoPorEnvio(int _iDistancia, EEstaciones _eEstacion) { return(obtenedorDatosEnvio.ObtenerCostoPorEnvio(_iDistancia, _eEstacion)); }
/// <summary> /// Método encargado de obtener el precio por kilómetros. /// </summary> /// <param name="_iDistancia">Distancia de entrega.</param> /// <param name="_eEstacion">Estación del año.</param> /// <returns>Retorna el precio por kilómetros.</returns> public decimal ObtenerCostoPorEnvio(int _iDistancia, EEstaciones _eEstacion) { return(0); }