administrador.base.orm.data_format.asigna_campo_moneda - gamboamartin/administrador GitHub Wiki

asigna_campo_moneda

La función asigna_campo_moneda limpia el valor de un campo monetario en un registro dado, eliminando los símbolos de moneda y las comas. Si la validación falla, retorna un array con información del error.

Signatura

private function asigna_campo_moneda(string $campo, array $registro): array

Parámetros

$campo (string): El nombre del campo monetario que se desea limpiar.

$registro (array): El registro que contiene el campo monetario a limpiar.

Retorna

  • array: Devuelve el array del registro con el campo monetario limpio si la validación es exitosa.

  • array: Devuelve un array de error si la validación del campo o del registro falla.

Explicación Detallada

  • Eliminación de espacios en blanco:

    • La función elimina los espacios en blanco al inicio y al final del nombre del campo.
  • Verificación del campo vacío:

    • Si el nombre del campo está vacío después de eliminar los espacios en blanco, se retorna un error indicando que el campo no puede estar vacío.
  • Verificación de la existencia del campo en el registro:

    • Si el campo especificado no existe en el registro, se retorna un error indicando que el campo no existe en el registro.
  • Limpieza del valor del campo monetario:

    • Se eliminan los símbolos de dólar y las comas del valor del campo monetario en el registro.
  • Retorno exitoso:

    • Se retorna el array del registro con el campo monetario limpio.

Ejemplos

$campo = 'precio';
$registro = ['id' => 1, 'nombre' => 'Producto', 'precio' => '$1,234.56'];
$registro_limpio = $this->asigna_campo_moneda($campo, $registro);

if (is_array($registro_limpio) && isset($registro_limpio['error'])) {
    // Manejar error
    print_r($registro_limpio);
} else {
    // Usar el registro limpio
    print_r($registro_limpio);
}

Código de la Función

private function asigna_campo_moneda(string $campo, array $registro): array
    {
        $campo = trim($campo);
        if($campo === ''){
            return $this->error->error(mensaje: 'Error el campo esta vacio', data: $campo, es_final: true);
        }
        if(!isset($registro[$campo])){
            return $this->error->error(mensaje: 'Error $registro['.$campo.'] no existe',data:  $registro,
                es_final: true);
        }
        $registro[$campo] = str_replace('$', '', $registro[$campo]);
        $registro[$campo] = str_replace(',', '', $registro[$campo]);
        return $registro;
    }