fix(formularios): pre-fill fecha_hoy and edad in ver_formulario_enviado
- Modo editar: fecha_hoy → type=date prefilled with today; edad → type=number prefilled from paciente.fecha_nacimiento - Modo vista: if no saved value, fecha_hoy shows today's date; edad calculates from DOB instead of skipping Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
f09fcd5b4e
commit
05c7230eda
@@ -642,15 +642,31 @@ function esc2(mixed $v): string {
|
||||
</select>
|
||||
</div>
|
||||
<?php continue; endif;
|
||||
// texto, numero, fecha, hora, y cualquier otro → input
|
||||
// Calculados: pre-llenar si no tienen valor aún
|
||||
if ($tipo === 'fecha_hoy' && $prefill === '') {
|
||||
$prefill = date('Y-m-d');
|
||||
}
|
||||
if ($tipo === 'edad' && $prefill === '') {
|
||||
$fnac = $paciente['fecha_nacimiento'] ?? '';
|
||||
if ($fnac) {
|
||||
$hoy = new DateTime();
|
||||
$bday = new DateTime($fnac);
|
||||
$prefill = (string)$hoy->diff($bday)->y;
|
||||
}
|
||||
}
|
||||
// texto, numero, fecha, hora, y calculados → input
|
||||
$inputType = match($tipo) {
|
||||
'numero' => 'number', 'fecha' => 'date', 'hora' => 'time', default => 'text'
|
||||
'numero', 'edad' => 'number',
|
||||
'fecha', 'fecha_hoy' => 'date',
|
||||
'hora' => 'time',
|
||||
default => 'text'
|
||||
};
|
||||
?>
|
||||
<div class="campo-edit">
|
||||
<label><?= $label ?></label>
|
||||
<input type="<?= $inputType ?>" class="form-control form-control-sm"
|
||||
name="<?= esc2($cid) ?>" value="<?= esc2($prefill) ?>"<?= $req ?>>
|
||||
name="<?= esc2($cid) ?>" value="<?= esc2($prefill) ?>"<?= $req ?>
|
||||
<?= in_array($tipo, ['edad']) ? 'min="0" max="120"' : '' ?>>
|
||||
</div>
|
||||
<?php continue;
|
||||
endif; // modoEditar
|
||||
@@ -659,6 +675,16 @@ function esc2(mixed $v): string {
|
||||
if ($tipo === 'linked') {
|
||||
$lk = $campo['linked_key'] ?? '';
|
||||
$valor = $paciente[$lk] ?? $todos[$cid] ?? null;
|
||||
} elseif ($tipo === 'fecha_hoy') {
|
||||
$valor = $todos[$cid] ?? date('Y-m-d');
|
||||
} elseif ($tipo === 'edad') {
|
||||
$valor = $todos[$cid] ?? '';
|
||||
if ($valor === '') {
|
||||
$fnac = $paciente['fecha_nacimiento'] ?? '';
|
||||
if ($fnac) {
|
||||
$valor = (string)(new DateTime())->diff(new DateTime($fnac))->y;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$valor = $todos[$cid] ?? null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user