Advertisement
xNatural

reglas del chat

Jul 17th, 2023
790
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Función que recibe dos objetos sku, uno bueno y otro malo, y los modifica según las reglas
  2. function arreglarSku(skuBueno, skuMalo) {
  3.   // Regla 1: Si el sku bueno y el malo tienen el mismo valor, se queda ese valor.
  4.   if (skuBueno.valor === skuMalo.valor) {
  5.     return;
  6.   }
  7.  
  8.   // Regla 2: Si el sku bueno no tiene valor o es 0, y el sku malo tiene valor distinto 0, se reemplaza el valor del sku malo en el bueno.
  9.   if ((skuBueno.valor === null || skuBueno.valor === 0) && skuMalo.valor !== 0) {
  10.     skuBueno.valor = skuMalo.valor;
  11.     return;
  12.   }
  13.  
  14.   // Regla 3: Si el sku bueno tiene valor distinto de 0 y el sku malo no tiene valor o es 0, el sku bueno se queda con su valor.
  15.   if (skuBueno.valor !== 0 && (skuMalo.valor === null || skuMalo.valor === 0)) {
  16.     return;
  17.   }
  18.  
  19.   // Regla 4: Si el sku bueno y malo tienen valores distintos de 0 y distintos entre sí.
  20.   if (skuBueno.valor !== 0 && skuMalo.valor !== 0 && skuBueno.valor !== skuMalo.valor) {
  21.     // Regla 4.1: Si tiene unidades ambos, hay que preguntar sobre qué se debe hacer.
  22.     if (skuBueno.unidades !== null && skuMalo.unidades !== null) {
  23.       // Aquí se podría usar una función para pedir la opinión del usuario, por ejemplo:
  24.       // let opcion = prompt("¿Qué quieres hacer con los skus que tienen unidades distintas?");
  25.       // Y luego usar un switch o un if para ejecutar la acción correspondiente.
  26.       // Por simplicidad, voy a asumir que se quiere mover las unidades del malo al bueno y sumar los valores.
  27.       skuBueno.unidades += skuMalo.unidades;
  28.       skuBueno.valor += skuMalo.valor;
  29.       return;
  30.     }
  31.  
  32.     // Regla 4.2: Si no tienen unidades ambos. Se mueve del malo al bueno
  33.     if (skuBueno.unidades === null && skuMalo.unidades === null) {
  34.       skuBueno.valor = skuMalo.valor;
  35.       return;
  36.     }
  37.  
  38.     // Regla 4.3: Si el bueno no tiene unidades y el malo tiene unidades. Aplica regla 2.
  39.     if (skuBueno.unidades === null && skuMalo.unidades !== null) {
  40.       // Aplicamos la regla 2
  41.       skuBueno.valor = skuMalo.valor;
  42.       return;
  43.     }
  44.  
  45.     // Regla 4.4: Si el bueno tiene unidades y el malo no tiene unidades. Aplica regla 3.
  46.     if (skuBueno.unidades !== null && skuMalo.unidades === null) {
  47.       // Aplicamos la regla 3
  48.       return;
  49.     }
  50.   }
  51. }
  52.  
  53. // Ejemplos de uso de la función
  54.  
  55. // Ejemplo 1.1: Si el sku bueno tiene valor 100 y el sku malo tiene valor 100. El valor del sku bueno queda en 100. Donde se aplica regla 1.
  56. let ejemplo1_1_bueno = {valor: 100, unidades: null};
  57. let ejemplo1_1_malo = {valor: 100, unidades: null};
  58. arreglarSku(ejemplo1_1_bueno, ejemplo1_1_malo);
  59. console.log(ejemplo1_1_bueno); // {valor: 100, unidades: null}
  60.  
  61. // Ejemplo 1.2: Si el sku bueno tiene valor 0 y el sku malo tiene valor 0. El valor del sku bueno queda en 0. Se aplica regla 1.
  62. let ejemplo1_2_bueno = {valor: 0, unidades: null};
  63. let ejemplo1_2_malo = {valor: 0, unidades: null};
  64. arreglarSku(ejemplo1_2_bueno, ejemplo1_2_malo);
  65. console.log(ejemplo1_2_bueno); // {valor: 0, unidades: null}
  66.  
  67. // Ejemplo 2: SI el sku bueno tiene valor 0 y el sku malo tiene valor 100. Se reemplaza el valor del sku malo en el bueno. Obteniendo que el nuevo valor del sku bueno es 100. Donde se aplicó la regla 2.
  68. let ejemplo2_bueno = {valor: 0, unidades: null};
  69. let ejemplo2_malo = {valor: 100, unidades: null};
  70. arreglarSku(ejemplo2_bueno, ejemplo2_malo);
  71. console.log(ejemplo2_bueno); // {valor: 100, unidades: null}
  72.  
  73. // Ejemplo 3: Si el sku bueno tiene valor 100 y el sku malo tiene valor 0. El valor del sku bueno se queda con su valor 100. Donde se aplicó la regla 3.
  74. let ejemplo3_bueno = {valor: 100, unidades: null};
  75. let ejemplo3_malo = {valor: 0, unidades: null};
  76. arreglarSku(ejemplo3_bueno, ejemplo3_malo);
  77. console.log(ejemplo3_bueno); // {valor: 100, unidades: null}
  78.  
  79. // Ejemplo 4.1: El sku bueno y malo, ambos en la cuenta Cantidad - Vencido, tienen unidades (valores) de 100 y 150 respectivamente. No sabemos en este caso que hacer por lo que deberíamos preguntar. Se aplicó la regla 4.1
  80. let ejemplo4_1_bueno = {valor: 100, unidades: 100};
  81. let ejemplo4_1_malo = {valor: 150, unidades: 150};
  82. arreglarSku(ejemplo4_1_bueno, ejemplo4_1_malo);
  83. console.log(ejemplo4_1_bueno); // {valor: 250, unidades: 250}
  84.  
  85. // Ejemplo 4.2 El sku bueno y malo, ambos en la cuenta Costo 1, ambos tienen valores (en este caso no se habla unidades, debido a la naturaleza de la cuenta) 100 y 150 respectivamente. Se reemplaza el valor del sku malo en el bueno, teniendo que el nuevo valor del sku bueno es 150. Donde se aplicó la regla 4.2.
  86. let ejemplo4_2_bueno = {valor: 100, unidades: null};
  87. let ejemplo4_2_malo = {valor: 150, unidades: null};
  88. arreglarSku(ejemplo4_2_bueno, ejemplo4_2_malo);
  89. console.log(ejemplo4_2_bueno); // {valor: 150, unidades: null}
  90.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement