Ir al contenido principal

control/grupo/carguero/agregar - [agregarCarguero]

Path: /var/www/html/qaservicesapp/app/Http/Controllers/ShalomControl/GrupoController.php

🧾 Descripción

Agrega un carguero (cap_id) a un grupo de cargueros de desembarque (grp_id).
El servicio valida que:

  • Exista el grupo.

  • El grupo tenga su lista de cargueros almacenados en formato JSON.

  • El carguero no esté ya incluido en el grupo.

  • Luego actualiza la tabla agregando el carguero al listado.

Este servicio modifica directamente la tabla:

emp_grupo_cargueros_desembarque


🚀 Endpoint


POST /agregar-carguero

📥 Request Body

{ "grp_id": "number", "cap_id": "number" }

Parámetros requeridos

Campo Tipo Obligatorio Descripción
grp_id number ID del grupo de cargueros de desembarque.
cap_id number ID del carguero a agregar.

🔐 Seguridad

Protegido por autenticación del sistema (middleware).
El servicio no valida permisos dentro de la función.


🧠 Flujo del Servicio (resumen real)

  1. Validación inicial de parámetros

    • Si falta grp_id → retorna error.

    • Si falta cap_id → retorna error.

  2. Obtiene información del grupo


    SELECT grupo FROM emp_grupo_cargueros_desembarque WHERE id = grp_id
    • Si no existe → error “Grupo no encontrado”.

  3. Decodifica el campo grupo

    • Si el campo grupo tiene JSON → se convierte en array.

    • Si está vacío → se crea array vacío.

  4. Verifica si el carguero ya está en el grupo

    • Si cap_id ya existe → error “El carguero ya se encuentra en el grupo”.

  5. Agrega el nuevo carguero al grupo

    • Inserta cap_id dentro del array.

    • Convierte el array nuevamente a JSON.

  6. Actualiza la BD


    UPDATE emp_grupo_cargueros_desembarque SET grupo = json_encode(arreglo_actualizado) WHERE id = grp_id

  7. Retorna éxito


    "Carguero agregado al grupo"

📤 Response 200 – Ejemplo

{ "success": true, "message": "Carguero agregado al grupo" }

Posibles Errores

1. Falta grp_id

{ "success": false, "message": "Falta cap_id" }

(El mensaje es incorrecto en el código, pero lo dejamos tal cual está implementado.)


2. Falta cap_id

{ "success": false, "message": "Falta cap_id" }

3. Grupo no existe

{ "success": false, "message": "Grupo no encontrado" }

4. Carguero repetido

{ "success": false, "message": "El carguero ya se encuentra en el grupo" }

📚 Schemas (estructuras usadas)

Tabla: emp_grupo_cargueros_desembarque

{ "id": "number", "grupo": "string(JSON array of cap_id)" }

Ejemplo del campo grupo["123", "245", "300"]


🗃 Lógica en pseudo-código

if !grp_id -> error("Falta cap_id") if !cap_id -> error("Falta cap_id") grupo = SELECT grupo FROM tabla WHERE id = grp_id if !grupo -> error("Grupo no encontrado") grupos = decode(grupo.grupo) OR [] if cap_id in grupos: error("El carguero ya se encuentra en el grupo") grupos.append(cap_id) UPDATE tabla SET grupo = encode(grupos) WHERE id = grp_id success("Carguero agregado al grupo")