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;
}