Creación de documentos comerciales en las tablas cialdoco/cialdocolin
Clase QcialdocoCreate
En Quartup, desde Septiembre del 2025, tenemos la nueva clase QcialdocoCreate que nos permite crear documentos y líneas de documentos, con y sin origen, de forma cómoda.
A continuación detallamos los métodos de la clase.
__construct
- Visibilidad: public
- Descripción: Constructor de la clase
- Parámetros:
soporte(string) - Tipo de documento a crearcod_serie(string) - Serie del documento a crear
- Devuelve: QcialdocoCreate - Objeto creado
insertCialdoco
- Visibilidad: public
- Descripción: Crear cabecera cialdoco y guardar el registro de la misma en $this->aCialdoco (si no hay error) En caso de que se reciba el
aCialdocoOri, se llama al métodocialdocoArrastraOrigenColsdel cialdoco para arrastrar campos de origen a destino, pero los campos $aData recibidos tienen preferencia, y machacarán siempre los campos del arrastre - Parámetros:
aData(array) - Campos del cialdoco a asignar a la cabecera, se dispara un EVENT por cada uno de ellos, y en el orden recibidoaCialdocoOri(array) = [] - Registro opcional de cialdoco origen del documento a crear
- Devuelve: string - Se retorna posible string de error o string vacía si no hay
getACialdoco
- Visibilidad: public
- Descripción: Retornar última cabecera creada
- Devuelve: array - Registro de última cabecera creada
insertCialdocolin
- Visibilidad: public
- Descripción: Crear línea cialdocolin y guardar el registro de la misma en $this->aCialdocolin (si no hay error) En caso de que se reciba el
aCialdocolinOri, se llama al métodocialdocolinArrastraOrigenColsdel cialdocolin para arrastrar campos de origen a destino, pero los campos $aData recibidos tienen preferencia, y machacarán siempre los campos del arrastre - Parámetros:
aData(array) - Campos del cialdocolin a asignar a la línea, se dispara un EVENT por cada uno de ellos, y en el orden recibidoaCialdocolinOri(array) = [] - Registro opcional de cialdocolin origen de la línea de documento a crear
- Devuelve: string - Se retorna posible string de error o string vacía si no hay
getACialdocolin
- Visibilidad: public
- Descripción: Retornar última línea creada
- Devuelve: array - Registro de última línea creada
Ejemplo de uso para un documento sin origen:
public static function ejemploSinOrigen ()
{
// creamos objeto
$soporte = 'PV';
$cod_serie = 'PED';
$oCialdocoCreate = new QcialdocoCreate($soporte, $cod_serie);
// crear cabecera sin origen
$aData = [
'cod_cuenta' => '430000001',
'fecha' => date('Y-m-d'),
];
$ko = $oCialdocoCreate->insertCialdoco($aData);
if ($ko) {
throw new RuntimeException($ko);
}
// crear línea sin origen
$aData = [
'cod_articulo' => 'ABC-123',
'cantidad' => '7.5',
'precio_mone' => '123.5',
];
$ko = $oCialdocoCreate->insertCialdocolin($aData);
if ($ko) {
throw new RuntimeException($ko);
}
}
Ejemplo de uso para un documento con origen:
public static function ejemploConOrigen ()
{
// creamos objeto
$soporte = 'AV';
$cod_serie = 'ALB';
$oCialdocoCreate = new QcialdocoCreate($soporte, $cod_serie);
// leer cabecera origen
$oCialdoco = QU_TablePool::getOTable('cialdoco');
$aInit = [
'id_cocabe' => '1234567',
];
$aCialdocoPV = $oCialdoco->sqlSelectOne($aInit);
// crear cabecera con origen
$aData = [
'fecha' => date('Y-m-d'),
'su_documento' => 'Alb-987',
];
$ko = $oCialdocoCreate->insertCialdoco($aData, $aCialdocoPV);
if ($ko) {
throw new RuntimeException($ko);
}
// leer línea origen
$oCialdocolin = QU_TablePool::getOTable('cialdocolin');
$aInit = [
'id_coline' => '3456789',
];
$aCialdocolinPV = $oCialdocolin->sqlSelectOne($aInit);
// crear línea con origen
$aData = [
'cantidad' => '7.5',
];
$ko = $oCialdocoCreate->insertCialdocolin($aData, $aCialdocolinPV);
if ($ko) {
throw new RuntimeException($ko);
}
}