[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/Fabian-Martinez-Rincon/Orientacion-a-Objetos1)
[![GitHub stars](https://img.shields.io/github/stars/Fabian-Martinez-Rincon/Orientacion-a-Objetos1)](https://github.com/Fabian-Martinez-Rincon/Orientacion-a-Objetos1/stargazers/)
[![GitHub repo size in bytes](https://img.shields.io/github/repo-size/Fabian-Martinez-Rincon/Orientacion-a-Objetos1)](https://github.com/Fabian-Martinez-Rincon/Orientacion-a-Objetos1)
</div>
- Instalar Eclipse
- Todas las autoEvaluaciones
- 1️⃣ Ejercicio 1 WallPost
- 2️⃣ Ejercicio 2 Balanza Electrónica
- 3️⃣ Ejercicio 3 Presupuestos y 3 Bis: Balanza mejorada
- 4️⃣ Ejercicio 4 Figuras y cuerpos
- 5️⃣ Ejercicio 5 Genealogía salvaje
- 6️⃣ Ejercicio 6 Red de Alumbrado
- 7️⃣ Ejercicio 7 Method lookup con Empleados
- 8️⃣ Ejercicio 8 Distribuidora Eléctrica
- 9️⃣ Ejercicio 9 Cuenta con ganchos
- 1️⃣0️⃣ Ejercicio 10 Job Scheduler
- 1️⃣1️⃣ Ejercicio 11 El Inversor
- 1️⃣2️⃣ Ejercicio 12 Volumen y superficie de sólidos
- 1️⃣3️⃣ Ejercicio 13 Cliente de correo con adjuntos
- 1️⃣4️⃣ Ejercicio 14 Intervalo de tiempo
- 1️⃣5️⃣ Ejercicio 15 Alquiler de propiedades
- 1️⃣6️⃣ Ejercicio 16 Políticas de cancelación
- 1️⃣7️⃣ Ejercicio 17 Facturación de llamadas
- 1️⃣8️⃣ Ejercicio 18 Liquidación de haberes
- 1️⃣9️⃣ Ejercicio 19 Mercado de Objetos
- 2️⃣0️⃣ Ejercicio 20 Farolas con focos
Contenido del APREF
La profe dijo que supuestamente cambiaron la forma de evaluar y que ahora no vamos tener un parcial normal sino que va a ser un codigo con errores y nosotros vamos a tener que corregir segun las euristicas dadas.
Mercado Libre
Enunciado
![Pedidos de compra](/Orientacion-a-Objetos1/apref/MercadoOnLine.png)Resolución
Sistema
```java public class Sistema{ } ```Usuario
Producto
UML
Pedidos de Compra
Enunciado
![Veterinaria](/apref/Pedidos%20de%20compra.png)Veterinariua
Enunciado
![MercadoOnLine](/Orientacion-a-Objetos1/apref/Veterinaria.png)Parcial Cursada
Una distribuidora brinda la posibilidad de registrar los pedidos de compra de sus clientes. Cada cliente puede realizar pedidos en los cuales se especifican los productos deseados, incluyendo las cantidades necesarias.
El sistema debe permitir
- Registrar Cliente: Dado el nombre y e-mail, se crea y retorna el cliente con la fecha actual, como fecha de alta.
- Registrar producto nacional Dado el nombre, el costo unitario y descripción, se registra y retorna el producto.
- Registrar producto importado Dado el nombre, el costo unitario, descripción y el país de origen, se registra el producto y se retorna.
- Registrar un pedido para un cliente: Dado un cliente se registra un pedido nuevo con la fecha actual como fecha de pedido y se lo retorna.
- Agregar un item para un pedido: Dado un pedido y un producto junto con la cantidad necesaria del mismo, se registra el ítem en el pedido.
- Calcular la cantidad total solicitada de un producto: Dado un producto, determinar la cantidad todal de unidades solicitadas de ese producto, calculada como la suma de las cantidades pedidas de dicho producto en todos los pedidos registrados para todos los clientes.
- Calcular el costo total de los pedidos de un cliente en un período Dado un cliente, una fecha de inicio y una fecha de fin, se debe calcular el costo que tiene por sus pedidos realizados en dicho período, según la siguiente especificación:
- Cada pedido tiene como costo, la suma de los costos totales de sus items.
- El costo total de cada item se calcula multiplicando el costo unitario del producto por la cantidad y sumando el impuesto.
- El impuesto se calcula a partir de las siguientes reglas:
- Si el producto es nacional el impuesto depende de la cantidad pedida. Hasta 10 unidades, se debe pagar el 5% del costo unitario. En caso contrario se exceptúa del pago de impuesto.
- Si el producto es importado, el impuesto varía de acuerdo al país de origen y la cantidad de unidades. Si el pais pertenece al Mercosur (Brazil, Paraguay o Uruguay) y son más de 50 unidades, corresponde pagar 8%. De lo contrario, el impuesto es 21%.
- Retornar los clientes del “top 5” de los últimos 30 dias: se deben retornar los 5 clientes con mayor costo total en pedidos realizados en los últimos 30 dias.
Su tarea es diseñar y programar en Java lo que sea necesario para ofreceer la funcionalidad antes descrita. Se espera que entregue lo siguiente:
1)
Diseño de su solución en un diagrama de clases UML.2)
Implementación en Java de la funcionalidad requerida3)
Diseño de los casos de Prueba: Enfocándose en la funcionalidad que permite “calcular el costo total de los pedidos de un cliente en un periodo” (es decir, todos los métodos de todas las clases involucradas en conseguir esa funcionalidad), determine y enumero qué métodos, de qué clases, testear y con qué casos de prueba para cada método (teniendo en cuenta los conceptos de valores borded y particiones equivalentes)- Ejemplo: Clase CajaAhorro - Metodo Extraer(monto:double)
- Casos de prueba identificados: saldo igual al monto, saldo menor al monto y saldo mayor al monto.
4)
Un ejemplo de código Java necesario para realizar el sistema, registrar un producto nacional, registrar un cliente, agregarle un pedido al cliente con un item para ese producto.
Tenga en cuenta que los 4 items anteriores son requeridos para aprobar