Advertisement
robeeeert

procesos

Sep 3rd, 2023
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.78 KB | None | 0 0
  1. /*
  2.  * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
  3.  * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
  4.  */
  5. package com.mycompany.fabricadesillas;
  6.  
  7. /**
  8.  *
  9.  * @author ianto
  10.  */
  11. import java.util.*;
  12. public class Proceso {
  13.     private List<Orden> ordenesEnProceso = new ArrayList<>();
  14.     private List<Orden> ordenesTerminadas = new ArrayList<>(); // Lista de órdenes terminadas
  15.     public void iniciarProceso(Orden orden, Inventario inventario) {
  16.         boolean materialesDisponibles = inventario.verificarDisponibilidadMateriales(orden);
  17.         if (materialesDisponibles) {
  18.             // Crear un mapa para realizar un seguimiento de la cantidad necesaria de cada material
  19.             Map<String, Integer> cantidadNecesariaMateriales = new HashMap<>();
  20.  
  21.             // Inicializar el mapa con valores iniciales de 0
  22.             cantidadNecesariaMateriales.put("Pino", 0);
  23.             cantidadNecesariaMateriales.put("Cedro", 0);
  24.             cantidadNecesariaMateriales.put("Caoba", 0);
  25.             cantidadNecesariaMateriales.put("Clavos", 0);
  26.             cantidadNecesariaMateriales.put("Barniz", 0);
  27.  
  28.             // Calcular la cantidad necesaria de cada material
  29.             for (int i = 0; i < orden.getTiposSillas().length; i++) {
  30.                 String tipoSilla = orden.getTiposSillas()[i];
  31.                 int cantidadSillas = orden.getCantidades()[i];
  32.  
  33.                 if (tipoSilla.equalsIgnoreCase("Pino")) {
  34.                     cantidadNecesariaMateriales.put("Pino", cantidadNecesariaMateriales.get("Pino") + 2 * cantidadSillas);
  35.                     cantidadNecesariaMateriales.put("Clavos", cantidadNecesariaMateriales.get("Clavos") + 20 * cantidadSillas);
  36.                     cantidadNecesariaMateriales.put("Barniz", cantidadNecesariaMateriales.get("Barniz") + cantidadSillas);
  37.                 } else if (tipoSilla.equalsIgnoreCase("Cedro")) {
  38.                     cantidadNecesariaMateriales.put("Cedro", cantidadNecesariaMateriales.get("Cedro") + 2 * cantidadSillas);
  39.                     cantidadNecesariaMateriales.put("Clavos", cantidadNecesariaMateriales.get("Clavos") + 20 * cantidadSillas);
  40.                     cantidadNecesariaMateriales.put("Barniz", cantidadNecesariaMateriales.get("Barniz") + cantidadSillas);
  41.                 } else if (tipoSilla.equalsIgnoreCase("Caoba")) {
  42.                     cantidadNecesariaMateriales.put("Caoba", cantidadNecesariaMateriales.get("Caoba") + 2 * cantidadSillas);
  43.                     cantidadNecesariaMateriales.put("Clavos", cantidadNecesariaMateriales.get("Clavos") + 20 * cantidadSillas);
  44.                     cantidadNecesariaMateriales.put("Barniz", cantidadNecesariaMateriales.get("Barniz") + cantidadSillas);
  45.                 }
  46.             }
  47.             ordenesEnProceso.add(orden);
  48.  
  49.             // Restar la cantidad necesaria de cada material del inventario
  50.             for (Material material : inventario.getMateriales()) {
  51.                 String codigo = material.getCodigo();
  52.                 int cantidadNecesaria = cantidadNecesariaMateriales.getOrDefault(codigo, 0);
  53.                 material.restarCantidad(cantidadNecesaria);
  54.             }
  55.  
  56.             System.out.println("La orden " + orden.getNumeroOrden() + " se encuentra en proceso de producción");
  57.         } else {
  58.             System.out.println("No cuentas con los materiales necesarios para iniciar el proceso");
  59.         }
  60.     }
  61.     public void verOrdenesEnProceso(){
  62.         if (ordenesEnProceso.isEmpty()) {
  63.             System.out.println("No hay órdenes en proceso.");
  64.         } else {
  65.             System.out.println("Órdenes en proceso:");
  66.             for (Orden orden : ordenesEnProceso) {
  67.                 System.out.println(orden.toString());
  68.             }
  69.         }
  70.     }
  71.     public void terminarProceso(){
  72.         Scanner entrada = new Scanner(System.in);
  73.        
  74.         // Mostrar las órdenes en proceso
  75.         verOrdenesEnProceso();
  76.        
  77.         // Solicitar al usuario que ingrese el número de orden que desea terminar
  78.         System.out.println("Ingrese el número de orden que desea terminar:");
  79.         String numeroOrden = entrada.nextLine();
  80.        
  81.         // Buscar la orden en proceso correspondiente al número de orden ingresado
  82.         Orden ordenTerminada = null;
  83.         for (Orden orden : ordenesEnProceso) {
  84.             if (orden.getNumeroOrden().equals(numeroOrden)) {
  85.                 ordenTerminada = orden;
  86.                 break;
  87.             }
  88.         }
  89.        
  90.         if (ordenTerminada != null) {
  91.             // Eliminar la orden de la lista de órdenes en proceso
  92.             ordenesEnProceso.remove(ordenTerminada);
  93.            
  94.             // Agregar la orden a la lista de órdenes terminadas
  95.             ordenesTerminadas.add(ordenTerminada);
  96.            
  97.             System.out.println("La orden " + numeroOrden + " ha sido movida a productos terminados.");
  98.         } else {
  99.             System.out.println("No se encontró una orden en proceso con el número de orden ingresado.");
  100.         }
  101.     }
  102.    
  103.     public void verOrdenesTerminadas(){
  104.         if (ordenesTerminadas.isEmpty()) {
  105.             System.out.println("No hay órdenes terminadas.");
  106.         } else {
  107.             System.out.println("Órdenes Terminadas:");
  108.             for (Orden orden : ordenesTerminadas) {
  109.                 System.out.println(orden.toString());
  110.             }
  111.         }
  112.     }
  113.     public void Entregar() {
  114.         Scanner entrada = new Scanner(System.in);
  115.  
  116.         // Mostrar las órdenes terminadas
  117.         verOrdenesTerminadas();
  118.  
  119.         // Solicitar al usuario que ingrese el número de   a entregar
  120.         System.out.println("Ingrese el número de orden que desea entregar:");
  121.         String numeroOrden = entrada.nextLine();
  122.  
  123.         // Buscar la orden en productos terminados correspondiente al número de orden ingresado
  124.         Orden ordenEntregada = null;
  125.         for (Orden orden : ordenesTerminadas) {
  126.             if (orden.getNumeroOrden().equals(numeroOrden)) {
  127.                 ordenEntregada = orden;
  128.                 break;
  129.             }
  130.         }
  131.  
  132.         if (ordenEntregada != null) {
  133.             // Eliminar la orden de la lista de órdenes terminadas
  134.             ordenesTerminadas.remove(ordenEntregada);
  135.  
  136.             // Obtener el NIT y el nombre del cliente
  137.             String nitCliente = ordenEntregada.getNitCliente();
  138.             String nombreCliente = ordenEntregada.getNombreCliente();
  139.  
  140.             System.out.println("La orden de compra " + numeroOrden + " fue entregada y facturada al cliente " + nitCliente + " " + nombreCliente);
  141.         } else {
  142.             System.out.println("No se encontró una orden de compra en productos terminados con el número de orden ingresado.");
  143.         }
  144.     }
  145.  
  146.      
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement