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

totales_rs

La función totales_rs se utiliza para calcular los totales de varios campos especificados en un conjunto de registros.

Signatura

private function totales_rs(array $columnas_totales, array $new_array): stdClass|array

Parámetros

  • $columnas_totales: (array) Un arreglo de nombres de campos para los cuales se calcularán los totales.
  • $new_array: (array) Un arreglo de registros sobre el cual se calcularán los totales.

Retorna

  • array|stdClass: Un objeto stdClass que contiene los totales de los campos especificados.

Explicación Detallada

Inicia proporcionando un arreglo de nombres de campos ($columnas_totales) para los cuales deseas calcular los totales y un conjunto de registros ($new_array) sobre los cuales realizar los cálculos.

Inicializa un objeto stdClass llamado $totales_rs que contendrá los totales acumulados.

Itera sobre cada campo especificado en $columnas_totales.

Verifica que el nombre del campo no esté vacío.

Llama a la función total_rs_campo para calcular el total del campo actual en el conjunto de registros y actualizar $totales_rs.

Verifica si hay errores al calcular el total del campo.

Retorna el objeto $totales_rs con los totales de los campos especificados.

Ejemplos

<?php
// Definición de Parámetros
$columnas_totales = ["cantidad", "precio"];
$new_array = [
    ["cantidad" => 10, "precio" => 20],
    ["cantidad" => 15, "precio" => 25],
    ["cantidad" => 20, "precio" => 30]
];

// Llamada a la Función
$resultado = totales_rs($columnas_totales, $new_array);

// Verificación del Resultado
foreach ($columnas_totales as $campo) {
    echo "Total para el campo '$campo': " . $resultado->$campo . "\n";
}

//Total para el campo 'cantidad': 45
//Total para el campo 'precio': 75


Código de la Función

private function totales_rs(array $columnas_totales, array $new_array): stdClass|array
    {
        $totales_rs = new stdClass();
        foreach ($columnas_totales as $campo){
            $campo = trim($campo);
            if($campo === ''){
                return $this->error->error(mensaje: 'Error campo esta vacio',data: $campo, es_final: true);
            }

            $totales_rs = $this->total_rs_campo(campo: $campo,new_array:  $new_array,totales_rs:  $totales_rs);
            if(errores::$error){
                return $this->error->error(mensaje: 'Error acumular total',data: $totales_rs);
            }
        }
        return $totales_rs;

    }