# control/desembarque/pendientes - [pendientes]

## 🧾 **Descripción**

Este servicio retorna la lista de **órdenes de servicio (OSE)** que **aún tienen paquetes pendientes por desembarcar** en una unidad específica (`cap_id`).  
Combina información de embarques, desembarques, órdenes de servicio, detalles de OS, atributos, terminales y datos de personas.

Permite aplicar **filtro por número de guía** y soporta **paginación**.

Es un servicio crítico para la vista de **desembarques pendientes**.

---

# 🚀 **Endpoint**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-post-%2Fpendientes"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`POST /pendientes`</div></div>---

# 📥 **Request Body**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22cap_id%22%3A-%22number%22"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"cap_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"pagina"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"guia"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string (opcional)"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### Parámetros

<div class="_tableContainer_1rjym_1" id="bkmrk-campo-tipo-obligator"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1084" data-start="807"><thead data-end="851" data-start="807"><tr data-end="851" data-start="807"><th data-col-size="sm" data-end="815" data-start="807">Campo</th><th data-col-size="sm" data-end="822" data-start="815">Tipo</th><th data-col-size="sm" data-end="836" data-start="822">Obligatorio</th><th data-col-size="sm" data-end="851" data-start="836">Descripción</th></tr></thead><tbody data-end="1084" data-start="897"><tr data-end="962" data-start="897"><td data-col-size="sm" data-end="906" data-start="897">cap\_id</td><td data-col-size="sm" data-end="915" data-start="906">number</td><td data-col-size="sm" data-end="922" data-start="915">✔ Sí</td><td data-col-size="sm" data-end="962" data-start="922">ID de la unidad de carga programada.</td></tr><tr data-end="1018" data-start="963"><td data-col-size="sm" data-end="972" data-start="963">pagina</td><td data-col-size="sm" data-end="981" data-start="972">number</td><td data-col-size="sm" data-end="988" data-start="981">✔ Sí</td><td data-col-size="sm" data-end="1018" data-start="988">Número de página a listar.</td></tr><tr data-end="1084" data-start="1019"><td data-col-size="sm" data-end="1026" data-start="1019">guia</td><td data-col-size="sm" data-end="1035" data-start="1026">string</td><td data-col-size="sm" data-end="1042" data-start="1035">✘ No</td><td data-col-size="sm" data-end="1084" data-start="1042">Filtra por número de guía del cliente.</td></tr></tbody></table>

</div></div>---

# 🔐 **Seguridad**

Requiere autenticación estándar usada en los endpoints del backend (middleware Laravel).  
No se valida explícitamente dentro del método.

---

# 🧠 **Flujo del Servicio (resumen real)**

### 1. Validación inicial

- `cap_id` es obligatorio.
- Define paginación con `limit = 15`.

---

### 2. Obtener embarques asociados al `cap_id`

Consulta tabla `emp_embarque_historial`:

- Se filtra por:
    
    
    - estado activo (`status = 1`)
    - paquete habilitado (`emb_estado_paquete = 1`)
    - carg\_id igual al cap\_id

Si no hay embarques:  
**“Aún no se ha embarcado nada en esta unidad.”**

Se arma:

- Lista de OSE (`ose_ids`)
- Información del embarque por OSE:
    
    
    - estado de guía
    - cantidad de paquetes embarcados
    - cantidad total de paquetes

---

### 3. Obtener desembarques del mismo `cap_id`

Consulta tabla `emp_desembarque_historial` similares filtros:

Se arma:

- Lista de desembarques por OSE:
    
    
    - estado de guía
    - paquetes desembarcados
    - total de paquetes

---

### 4. Obtener órdenes de servicio relacionadas

Consulta:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-select-%28varios-campo"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-keyword">SELECT</span> (varios campos)<span class="hljs-keyword">FROM</span> emp_ordenservicio<span class="hljs-keyword">WHERE</span> ose_id <span class="hljs-keyword">IN</span> (ose_ids)<span class="hljs-keyword">AND</span> (opcional) ose_nroguiacliente = guia<span class="hljs-keyword">OFFSET</span> (pagina - <span class="hljs-number">1</span>) * <span class="hljs-number">15</span><span class="hljs-keyword">LIMIT</span> <span class="hljs-number">15</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>Si no encuentra OS → **“No ha embarcado nada aun”**

---

### 5. Obtener terminales (origen y destino)

Convierte IDs a:

- nombre
- alias (para construir la ruta)

---

### 6. Obtener detalle de OS

Consulta `emp_os_detalle`:

Agrupa por:

- OSE
- Tipo

Construye por OSE:

- contenido: `"cantidad tipo"`
- cantidad total sumada

---

### 7. Obtener atributos de tipo de pago

Convierte `tipo_pago` → abreviatura usando tabla `emp_atributos`.

---

### 8. Integrar datos (núcleo del servicio)

Por cada OS:

- Si existe desembarque:
    
    
    - Calcula paquetes pendientes = total – desembarcados
    - Marca guía como `"GUIA EMBARCADA"` o `"SIN GUIA"`
- Si no existe desembarque:
    
    
    - Paquetes pendientes = total del detalle
- Si cantidad pendiente es `0` → se omite del resultado final.
- Se construye:
    
    
    - contenido
    - cantidad total
    - cantidad pendiente
    - ruta origen → destino
    - nombre de terminales

Si después de filtrar no hay OS pendientes:  
→ **“No hay desembarques pendientes”**

---

### 9. Obtener nombres de remitentes

Consulta `emp_persona` usando los DNIs encontrados:

Reemplaza el DNI por nombre completo.

---

### ✔ 10. Respuesta Final

Devuelve toda la data procesada.

---

# 📤 **Response 200 – Ejemplo**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22success%22%3A-true%2C-%22"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"success"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"message"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Lista de ordenes"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"data"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span>    <span class="hljs-punctuation">{</span>      <span class="hljs-attr">"ose_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">202525</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"fecha"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"2025-02-15 10:30:00"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"monto"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">45.50</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"guia"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"GUIA-882233"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"remitente"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Carlos Gómez"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"destinatario"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Empresa ABC"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"tipo_pago"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"CR"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"origen"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"LIMA"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"destino"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"AREQUIPA"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"ruta"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"LIM - AQP"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"cap_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">33112</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"contenido"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"10 CAJA, 2 SOBRE"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"cant_paq"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">5</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"cant_total"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">12</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"desembarque_guia"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"SIN GUIA"</span><span class="hljs-punctuation">,</span>      <span class="hljs-attr">"usuario"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"jperez"</span>    <span class="hljs-punctuation">}</span>  <span class="hljs-punctuation">]</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

# ❗ **Posibles Errores**

### 1. No envía `cap_id`

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22success%22%3A-false%2C-"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"success"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"message"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Es obligatorio enviar un cap_id"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### 2. No hay embarques

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22success%22%3A-false%2C--1"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"success"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"message"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"Aun nó se ha embarcado nada en esta unidad."</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### 3. No hay órdenes

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22success%22%3A-false%2C--2"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"success"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"message"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"No ha embarcado nada aun"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### 4. No hay desembarques pendientes

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22success%22%3A-false%2C--3"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"success"</span><span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">false</span></span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"message"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"No hay desembarques pendientes"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

# 📚 **Schemas (estructuras usadas)**

### **emp\_embarque\_historial**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22emb_ose_id%22%3A-%22num"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"emb_ose_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"emb_estado_guia"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"emb_cant_paquetes_embarcados"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"emb_cant_paquetes_total"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### **emp\_desembarque\_historial**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22des_ose_id%22%3A-%22num"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"des_ose_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"des_estado_guia"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"des_cant_paquetes_desembarcados"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"des_cant_paquetes_total"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### **emp\_ordenservicio**

Campos usados:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22ose_id%22%3A-%22number%22"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"ose_id"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_fhpreferenciapartida"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"datetime"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_nroguiacliente"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_remiteempresa"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_destinaempresa"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_servpagotipo"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_termorigenatencion"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_termdestinoentrega"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"ose_estadoPago"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### **emp\_os\_detalle**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22osd_osid%22%3A-%22numbe"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"osd_osid"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"osd_tipopreciomanual"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"cantidad"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"number"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### **emp\_atributos**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22valor%22%3A-%22string%22%2C"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"valor"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"abreviatura"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>### **emp\_persona**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%22documento%22%3A-%22stri"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`<span class="hljs-punctuation">{</span>  <span class="hljs-attr">"documento"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">,</span>  <span class="hljs-attr">"nombre"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"string"</span><span class="hljs-punctuation">}</span>`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>---

# 🗃 **Lógica en pseudo-código**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-if-%21cap_id--%3E-error-"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs"><table border="1" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 99.881%;"></col></colgroup><tbody><tr><td>`if !cap_id -> errorembarques = SELECT embarques WHERE cap_id = inputif empty -> errordesembarques = SELECT desembarques WHERE cap_id = inputose_ids = embarques.ose_idordenes = SELECT OS WHERE ose_id in ose_ids FILTER guia IF EXISTS PAGINACIONif empty -> errordetalles = SELECT SUM(cantidad), tipo FROM emp_os_detalle WHERE ose_id in ose_ids GROUP BY ose_id,tipoatributos = SELECT mapa tipo_pago -> abreviaturaterminales = SELECT terminal_id -> nombre, aliasbuild lista:    para cada OS:        calcular paquetes pendientes        si 0 → excluir        traducir tipo_pago        generar ruta origen/destino        agregar contenido y totalesif lista vacía -> “No hay desembarques pendientes”buscar nombres remitente en emp_personareturn lista final`</td></tr></tbody></table>

</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>