administrador.base.orm._result.total_rs_acumula.21.22.0 - gamboamartin/administrador GitHub Wiki
total_rs_acumula
Esta función privada se utiliza para acumular valores de un campo específico en un objeto stdClass
de totales.
Signatura
private function total_rs_acumula(string $campo, array $row, stdClass $totales_rs): stdClass|array
Parámetros
$campo
(string): El nombre del campo del cual se acumularán los valores.$row
(array): El arreglo que contiene los datos del registro actual.$totales_rs
(stdClass): El objetostdClass
que contiene los totales acumulados.
Retorna
- Tipo:
stdClass|array
- Descripción: Devuelve el objeto
stdClass
actualizado con los totales acumulados. Si hay algún error en la validación de los datos, devuelve un arreglo con información detallada sobre el error.
Explicación Detallada
Validación del campo en el registro: Se verifica si el campo especificado existe en el registro y si su valor es numérico. Si hay algún error en la validación, se devuelve un mensaje de error.
Acumulación de totales: Se agrega el valor del campo al total acumulado en el objeto stdClass de totales. Si el campo no existe en el objeto de totales, se inicializa con un valor de cero antes de agregar el valor del campo.
Retorno de resultado: Se devuelve el objeto stdClass actualizado con los totales acumulados. Si hubo un error en la validación de los datos, se devuelve un arreglo con información detallada sobre el error, incluyendo el mensaje de error.
Ejemplos
// Ejemplo: Acumular totales de un campo
$campo = 'total';
$row = array(
'total' => 100,
// Otros campos...
);
$totales_rs = new stdClass();
$resultado = total_rs_acumula($campo, $row, $totales_rs);
if (is_object($resultado)) {
echo "Totales actualizados: ";
print_r($resultado);
} else {
echo "Error: " . $resultado['mensaje'];
}
Código de la Función
private function total_rs_acumula(string $campo, array $row, stdClass $totales_rs): stdClass|array
{
$valida = $this->valida_totales(campo: $campo, row: $row);
if(errores::$error){
return $this->error->error(mensaje: 'Error al validar row',data: $valida);
}
if(!isset($totales_rs->$campo)){
$totales_rs->$campo = 0;
}
$totales_rs->$campo += $row[$campo];
return $totales_rs;
}