private IPaqueteCostoMenor ObtenerCostoMenor(IPaqueteEnviado _paquete)
        {
            IPaqueteCostoMenor     PaqueteCostoMenor = null;
            decimal                dCosto            = 0;
            List <ITransportistas> lstTransportistas = EnlistadorPaqueteriaDisponibles.obtenerListadoTransportistas();
            IMediosTransportes     MediosTransportes = null;

            if (lstTransportistas.Any())
            {
                foreach (ITransportistas item in lstTransportistas.Where(x => x.cPaqueteria.ToUpper() != _paquete.cPaqueteria.ToUpper()))
                {
                    MediosTransportes = item.lstMediosTransporte.Where(x => x.cMedioTransporte.ToUpper() == _paquete.cMedioTransporte.ToUpper()).FirstOrDefault();
                    if (MediosTransportes != null)
                    {
                        dCosto = decimal.MaxValue;
                        dCosto = MediosTransportes.ObtenerCostoEnvio(Convert.ToDecimal(_paquete.cDistancia), item.dMargenUtilidad);
                        if (dCosto < _paquete.dCostoEnvio)
                        {
                            dCosto            = _paquete.dCostoEnvio - dCosto;
                            PaqueteCostoMenor = CrearPaqueteCostoMenor(item.cPaqueteria, dCosto);
                        }
                    }
                }
            }
            return(PaqueteCostoMenor);
        }
Exemplo n.º 2
0
        public void GenerarMensajeCostoMenor(IPaqueteCostoMenor _paqueteCostoMenor)
        {
            Console.ForegroundColor = ConsoleColor.Blue;
            string cMensaje = string.Format("Si hubieras pedido en {0} te hubiera costado ${1} más barato.", _paqueteCostoMenor.Empresa, _paqueteCostoMenor.CostoEnvio);

            Console.WriteLine(cMensaje);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Obtiene el mensaje a mostrar de acuerdo a los registros contenidos en la lista de Evento.
 /// </summary>
 /// <param name="_lstEvento">Listo de objetos de objetos DTO´s</param>
 /// <param name="_dtFechaBase">Fecha Base que servira para comparar.</param>
 /// <returns>Retorna una cadena que contiene la concatenación de los mensajes de cada item de la lista.</returns>
 private void ObtenerMensajeDeListaEventos(List <IPaqueteEnviado> _lstEvento, DateTime _dtFechaBase)
 {
     foreach (IPaqueteEnviado item in _lstEvento)
     {
         if (item.dtFechaPedido != DateTime.MinValue)
         {
             item.dtFechaActual = _dtFechaBase;
             ITransportistas Transportistas = RecuperadorTransportistaFactory.ObtenerTransportista(item.cPaqueteria);
             if (Transportistas != null)
             {
                 if (Transportistas.ProcesarDTOPaqueteEnviado(item))
                 {
                     CompletadorDatosDTO.LlenarDTOPaquete(item);
                     GeneradorMensajes.GenerarMensajeConExpresiones(item);
                     IPaqueteCostoMenor paqueteCostoMenor = ObtenedorCostoEnvioMenor.RecuperarDTOCostoMenor(item);
                     if (paqueteCostoMenor != null)
                     {
                         GeneradorMensajes.GenerarMensajeCostoMenor(paqueteCostoMenor);
                     }
                 }
             }
             else
             {
                 GeneradorMensajes.GenerarMensajePaqueteriaInexistente(item.cPaqueteria);
             }
         }
     }
 }