Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
- * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
- */
- package com.mycompany.fabricadesillas;
- /**
- *
- * @author ianto
- */
- import java.util.*;
- public class Proceso {
- private List<Orden> ordenesEnProceso = new ArrayList<>();
- private List<Orden> ordenesTerminadas = new ArrayList<>(); // Lista de órdenes terminadas
- public void iniciarProceso(Orden orden, Inventario inventario) {
- boolean materialesDisponibles = inventario.verificarDisponibilidadMateriales(orden);
- if (materialesDisponibles) {
- // Crear un mapa para realizar un seguimiento de la cantidad necesaria de cada material
- Map<String, Integer> cantidadNecesariaMateriales = new HashMap<>();
- // Inicializar el mapa con valores iniciales de 0
- cantidadNecesariaMateriales.put("Pino", 0);
- cantidadNecesariaMateriales.put("Cedro", 0);
- cantidadNecesariaMateriales.put("Caoba", 0);
- cantidadNecesariaMateriales.put("Clavos", 0);
- cantidadNecesariaMateriales.put("Barniz", 0);
- // Calcular la cantidad necesaria de cada material
- for (int i = 0; i < orden.getTiposSillas().length; i++) {
- String tipoSilla = orden.getTiposSillas()[i];
- int cantidadSillas = orden.getCantidades()[i];
- if (tipoSilla.equalsIgnoreCase("Pino")) {
- cantidadNecesariaMateriales.put("Pino", cantidadNecesariaMateriales.get("Pino") + 2 * cantidadSillas);
- cantidadNecesariaMateriales.put("Clavos", cantidadNecesariaMateriales.get("Clavos") + 20 * cantidadSillas);
- cantidadNecesariaMateriales.put("Barniz", cantidadNecesariaMateriales.get("Barniz") + cantidadSillas);
- } else if (tipoSilla.equalsIgnoreCase("Cedro")) {
- cantidadNecesariaMateriales.put("Cedro", cantidadNecesariaMateriales.get("Cedro") + 2 * cantidadSillas);
- cantidadNecesariaMateriales.put("Clavos", cantidadNecesariaMateriales.get("Clavos") + 20 * cantidadSillas);
- cantidadNecesariaMateriales.put("Barniz", cantidadNecesariaMateriales.get("Barniz") + cantidadSillas);
- } else if (tipoSilla.equalsIgnoreCase("Caoba")) {
- cantidadNecesariaMateriales.put("Caoba", cantidadNecesariaMateriales.get("Caoba") + 2 * cantidadSillas);
- cantidadNecesariaMateriales.put("Clavos", cantidadNecesariaMateriales.get("Clavos") + 20 * cantidadSillas);
- cantidadNecesariaMateriales.put("Barniz", cantidadNecesariaMateriales.get("Barniz") + cantidadSillas);
- }
- }
- ordenesEnProceso.add(orden);
- // Restar la cantidad necesaria de cada material del inventario
- for (Material material : inventario.getMateriales()) {
- String codigo = material.getCodigo();
- int cantidadNecesaria = cantidadNecesariaMateriales.getOrDefault(codigo, 0);
- material.restarCantidad(cantidadNecesaria);
- }
- System.out.println("La orden " + orden.getNumeroOrden() + " se encuentra en proceso de producción");
- } else {
- System.out.println("No cuentas con los materiales necesarios para iniciar el proceso");
- }
- }
- public void verOrdenesEnProceso(){
- if (ordenesEnProceso.isEmpty()) {
- System.out.println("No hay órdenes en proceso.");
- } else {
- System.out.println("Órdenes en proceso:");
- for (Orden orden : ordenesEnProceso) {
- System.out.println(orden.toString());
- }
- }
- }
- public void terminarProceso(){
- Scanner entrada = new Scanner(System.in);
- // Mostrar las órdenes en proceso
- verOrdenesEnProceso();
- // Solicitar al usuario que ingrese el número de orden que desea terminar
- System.out.println("Ingrese el número de orden que desea terminar:");
- String numeroOrden = entrada.nextLine();
- // Buscar la orden en proceso correspondiente al número de orden ingresado
- Orden ordenTerminada = null;
- for (Orden orden : ordenesEnProceso) {
- if (orden.getNumeroOrden().equals(numeroOrden)) {
- ordenTerminada = orden;
- break;
- }
- }
- if (ordenTerminada != null) {
- // Eliminar la orden de la lista de órdenes en proceso
- ordenesEnProceso.remove(ordenTerminada);
- // Agregar la orden a la lista de órdenes terminadas
- ordenesTerminadas.add(ordenTerminada);
- System.out.println("La orden " + numeroOrden + " ha sido movida a productos terminados.");
- } else {
- System.out.println("No se encontró una orden en proceso con el número de orden ingresado.");
- }
- }
- public void verOrdenesTerminadas(){
- if (ordenesTerminadas.isEmpty()) {
- System.out.println("No hay órdenes terminadas.");
- } else {
- System.out.println("Órdenes Terminadas:");
- for (Orden orden : ordenesTerminadas) {
- System.out.println(orden.toString());
- }
- }
- }
- public void Entregar() {
- Scanner entrada = new Scanner(System.in);
- // Mostrar las órdenes terminadas
- verOrdenesTerminadas();
- // Solicitar al usuario que ingrese el número de a entregar
- System.out.println("Ingrese el número de orden que desea entregar:");
- String numeroOrden = entrada.nextLine();
- // Buscar la orden en productos terminados correspondiente al número de orden ingresado
- Orden ordenEntregada = null;
- for (Orden orden : ordenesTerminadas) {
- if (orden.getNumeroOrden().equals(numeroOrden)) {
- ordenEntregada = orden;
- break;
- }
- }
- if (ordenEntregada != null) {
- // Eliminar la orden de la lista de órdenes terminadas
- ordenesTerminadas.remove(ordenEntregada);
- // Obtener el NIT y el nombre del cliente
- String nitCliente = ordenEntregada.getNitCliente();
- String nombreCliente = ordenEntregada.getNombreCliente();
- System.out.println("La orden de compra " + numeroOrden + " fue entregada y facturada al cliente " + nitCliente + " " + nombreCliente);
- } else {
- System.out.println("No se encontró una orden de compra en productos terminados con el número de orden ingresado.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement