private string investigarMejorPrecio(Pedido pedido) { string mensaje = ""; foreach (IPaqueteria paqueteria in this.paqueterias) { if (!paqueteria.getNombre().Equals(pedido.paqueteria)) { IMedioTransporte medio = paqueteria.getMedioTransporte(pedido.medioTransporte); if (medio != null) { decimal precio = (medio.getCostoPorKilometro() * pedido.distancia) * (1 + (paqueteria.getUtilidad() / 100)); if (pedido.costoEnvio > precio) { mensaje = "\n" + "Si hubieras pedido en " + paqueteria.getNombre() + " te hubiera costado $" + (pedido.costoEnvio - precio) + " más barato."; } } } } return(mensaje); }
/*(Costo por km del [Medio de Transporte] * [Distancia]) * (1 + Margen de utilidad de la [Paquetería]/100)*/ public decimal getCostoEnvio(Pedido pedido) { foreach (IPaqueteria paqueteria in this.paqueterias) { if (paqueteria.getNombre().Equals(pedido.paqueteria)) { IMedioTransporte medio = paqueteria.getMedioTransporte(pedido.medioTransporte); if (medio != null) { return((medio.getCostoPorKilometro() * pedido.distancia) * (1 + (paqueteria.getUtilidad() / 100))); } else { throw new Exception(paqueteria.getNombre() + " no ofrece el servicio de transporte " + pedido.medioTransporte + ", te recomendamos cotizar en otra empresa."); } } } throw new Exception("La Paquetería: " + pedido.paqueteria + " no se encuentra registrada en nuestra red de distribución."); return(0); }