administrador.base.orm._result.totales_rs_acumula.21.23.0 - gamboamartin/administrador GitHub Wiki

totales_rs_acumula

La función totales_rs_acumula se utiliza para acumular totales para un campo específico dentro de un conjunto de registros. Es útil cuando se necesita calcular totales o sumas de valores en un arreglo de datos.

Signatura

private function totales_rs_acumula(string $campo, array $new_array, stdClass $totales_rs): array|stdClass

Parámetros

  • $campo: El nombre del campo para el cual se acumularán los totales.
  • $new_array: Un arreglo de registros para los cuales se acumularán los totales.
  • $totales_rs: Un objeto stdClass que contiene los totales acumulados hasta el momento.

Retorna

  • array|stdClass: Retorna un objeto stdClass que contiene los totales acumulados actualizados.

Explicación Detallada

Inicia proporcionando el nombre del campo ($campo) para el cual deseas calcular los totales, el conjunto de registros ($new_array) en el que deseas realizar los cálculos y un objeto stdClass ($totales_rs) que contendrá los totales acumulados.

Verifica que el nombre del campo no esté vacío y que el conjunto de registros sea un arreglo válido.

Por cada registro en el arreglo $new_array, realiza los siguientes pasos:

  • Verifica que el registro sea un arreglo válido.
  • Valida el campo proporcionado para acumular los totales.
  • Acumula el valor del campo en el objeto $totales_rs.
  • Retorna el objeto $totales_rs con los totales acumulados actualizados.

Ejemplos

$campo = "cantidad";
$new_array = [
    ["cantidad" => 10],
    ["cantidad" => 15],
    ["cantidad" => 20]
];
$totales_rs = new stdClass();

$resultado = totales_rs_acumula($campo, $new_array, $totales_rs);

echo "Total acumulado para el campo 'cantidad': " . $resultado->$campo;

//Total acumulado para el campo 'cantidad': 45

$campo = "precio";
$new_array = [
    ["precio" => 25.50],
    ["precio" => 30.75],
    ["precio" => 15.25]
];
$totales_rs = new stdClass();

$resultado = totales_rs_acumula($campo, $new_array, $totales_rs);

echo "Total acumulado para el campo 'precio': " . $resultado->$campo;

//Total acumulado para el campo 'precio': 71.50


Código de la Función

private function totales_rs_acumula(string $campo, array $new_array, stdClass $totales_rs): array|stdClass
    {
        $campo = trim($campo);
        if($campo === ''){
            return $this->error->error(mensaje: 'Error campo esta vacio',data: $campo, es_final: true);
        }
        foreach ($new_array as $row){
            if(!is_array($row)){
                return $this->error->error(mensaje: 'Error row debe ser un array',data: $row, es_final: true);
            }
            $valida = $this->valida_totales(campo: $campo, row: $row);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error al validar row',data: $valida);
            }
            $totales_rs = $this->total_rs_acumula(campo: $campo,row:  $row,totales_rs:  $totales_rs);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error acumular total',data: $totales_rs);
            }
        }
        return $totales_rs;

    }