Endpoint de creación de documentos comerciales de recepciones de compras en las tablas cialdoco/cialdocolin

Disponemos de una vista editable que nos permite crear documentos y líneas de documentos, con origen, usable como endpoint de la API. Esta vista es:


Campos del Endpoint

Campo Tipo SQL Descripción Valores
SECCIÓN: ORIGEN
set_document_ori TINYINT Cómo asignar doc origen 0: No procede
1: id_cocabe_ori
2: soporte_ori / anyo_ori / cod_serie_ori / numero_ori
3: cod_cuenta_ori / su_documento_ori / [fecha_ori]
id_cocabe_ori BIGINT Doc Id origen
soporte_ori CHAR(2) Tipo origen PC: Pedido de compra
anyo_ori SMALLINT Año doc origen
cod_serie_ori CHAR(3) Serie doc origen
numero_ori INT Número doc origen
cod_cuenta_ori CHAR(12) Cuenta origen
su_documento_ori VARCHAR(250) Su doc origen Identificador del pedido de la cuenta
fecha_ori DATE Fecha doc origen
set_linea_ori TINYINT Cómo asignar línea origen 0: No procede
1: id_coline_ori
2: linea_ori
3: cod_articulo_ori / id_maescombarti_ori / cod_und_emb_ori
id_coline_ori BIGINT Línea Id origen
linea_ori INT Línea origen
estado_ori CHAR(1) Estado origen P: Pendiente
D: Detenido
T: Traspasado
cod_articulo_ori CHAR(30) Producto origen
id_maescombart_ori INT Nº Combinación origen
cantidad_ori DECIMAL Cantidad origen
cod_und_emb_ori CHAR(3) Embalaje origen
cant_emb_ori DECIMAL Cant. embalajes origen
num_lote_ori INT Nº Lote origen
cod_almacen_ori CHAR(3) Almacén origen
cod_ubicacion_ori CHAR(15) Ubicación origen
observaciones_ori TEXT Observaciones origen
SECCIÓN: DESTINO
set_document_des TINYINT Cómo asignar doc destino 0: No procede
1: id_cocabe_des
2: soporte_des / anyo_des / cod_serie_des / numero_des
3: cod_cuenta_des / su_documento_des / [fecha_des]
soporte_des CHAR(2) Tipo doc destino AC: Albarán de compra
FC: Factura de compra
id_cocabe_des BIGINT Doc Id destino
anyo_des SMALLINT Año destino
cod_serie_des CHAR(3) Serie destino
numero_des INT Número doc destino
cod_cuenta_des CHAR(12) Cuenta destino
su_documento_des VARCHAR(250) Su documento destino
fecha_des DATE Fecha doc destino
set_linea_des TINYINT Cómo asignar línea destino 0: No procede
1: id_coline_des
2: linea_des
3: cod_articulo_des / id_maescombarti_des / cod_und_emb_des / [cod_almacen_des] / [cod_ubicacion_des]
id_coline_des BIGINT Línea Id destino
linea_des INT Línea destino
estado_des CHAR(1) Estado destino P: Pendiente
D: Detenido
T: Traspasado
cod_articulo_des CHAR(30) Referencia Producto destino Si se omite, se usará el mixed_articulo_des
id_maescombart_des INT Nº Combinación destino
mixed_articulo_des CHAR(30) Identificador de Producto destino Puede ser cualquiera de los códigos de productos: código principal, código secundario, código de barras de producto, código de barras de producto/embalaje, y código de producto/cuenta
cantidad_des DECIMAL Cantidad destino
cod_und_emb_des CHAR(3) Embalaje destino Si no se recibe este dato, y el mixed_articulo_des es un código de producto/embalaje, se usará el embalaje de este último
cant_emb_des DECIMAL Cant. embalajes destino Si se omite, y se encuentra embalaje, se calcula según este último
num_lote_des INT Nº Lote destino Si se omite, y también se omite el campo lista_lotes_des, y el producto es de lotes, se creará un lote automático
lista_lotes_des TEXT Lista lotes destino Formato compacto para informar de los lotes que componen las unidades cantidad_des de la forma: Lote1∗Cantidad1∗FechaCaducidad1∗FechaFabricacion1 + Lote2∗Cantidad2∗FechaCaducidad2∗FechaFabricacion2 + ...
cod_almacen_des CHAR(3) Almacén destino Si se omite, se asigna valor automático
cod_ubicacion_des CHAR(15) Ubicación destino Si se omite, se asigna valor automático
observaciones_des TEXT Observaciones destino

Usos del Endpoint

Este endpoint admite creaciones (create) y borrados (delete), pero no modificaciones (update).


Ejemplo de Uso en Creación

Ejemplo de uso del endpoint para crear/actualizar un albarán y crear/actualizar una línea del mismo.

Este ejemplo muestra una configuración recomendada donde se identifica el origen por IDs directos y el destino por referencias de negocio.

1. Configuración del ORIGEN

Se utiliza la identificación por ID interno para asegurar precisión absoluta en la extracción.

Campo Valor Observación / Recomendación
set_document_ori 1 Recomendado (1 o 2). Usamos 1 por simplicidad.
id_cocabe_ori xxx ID único de la cabecera del documento.
set_linea_ori 1 Recomendado (1 o 2). Usamos 1 por simplicidad.
id_coline_ori xxx ID único de la línea del documento.

2. Configuración del DESTINO

Se utiliza la identificación por lógica de negocio para buscar o crear el documento y la línea.

Campo Valor Observación / Recomendación
set_document_des 3 Recomendado. Busca el documento destino por:
Cuenta / Su-documento / [Fecha].
cod_cuenta_des xxx Código de la cuenta contable/cliente.
su_documento_des xxx Referencia externa del documento.
fecha_des xxx Fecha del documento destino.
set_linea_des 3 Recomendado. Busca la línea (por si ya existe) por:
Articulo / Combinación / Embalaje / [Almacén] / [Ubicación].
cod_articulo_des xxx Código del producto.
id_maescombart_des xxx ID de la combinación (talla/color/etc).
mixed_articulo_des xxx Referencia mixta del producto.
cantidad_des xxx Cantidad a traspasar/asignar.
cod_und_emb_des xxx Unidad de embalaje.
cant_emb_des xxx Cantidad en formato embalaje.
num_lote_des xxx Número de lote asignado.
lista_lotes_des xxx Listado detallado de lotes (si aplica).
observaciones_des xxx Notas adicionales para la línea de destino.

Tip de implementación: Al usar el valor 3 en los campos set_document_des, estás permitiendo que el sistema sea "inteligente": si el documento ya existe (coincide cuenta y número), añadirá la línea a ese documento en lugar de crear uno nuevo. Si la línea ya existe, incrementará las cantidades y actualizará.


Ejemplo de Uso en Borrado

Ejemplo de uso del endpoint para borrar una línea del documento destino.

Campo Valor Observación / Recomendación
id_coline_des xxx ID único de la línea del documento.

Si el id_coline_des no correspondiera a una línea de Albarán de compra, se retornaría error