Files
ventas_php/ajax/atributos-valores.php
nickpons666 ccfa01fa0e feat(atributos): Mejora la funcionalidad de la página de atributos
- Deshabilita la paginación para mostrar todos los atributos por defecto.
- Corrige un error de renderizado en 'atributos-valores.tpl' añadiendo etiquetas de cierre faltantes.
- Cambia el orden de los atributos a 'atributoId' en 'atributo.class.php'.
- Corrige un bug en 'atributoValor.class.php' descomentando una condición.
- Asegura que las acciones AJAX (añadir, editar, eliminar) refresquen la lista correctamente sin paginación.
2026-01-08 01:06:11 -06:00

166 lines
4.5 KiB
PHP
Executable File

<?php
include_once('../init.php');
include_once('../config.php');
include_once(DOC_ROOT.'/libraries.php');
session_start();
switch($_POST["type"]){
case 'addValor':
$atributoId = $_POST['atributoId'];
$smarty->assign('atributoId',$atributoId);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/boxes/agregar-atributo-valor-popup.tpl');
break;
case 'saveValor':
$atributoId = $_POST['atributoId'];
// Verificar atributoId recibido
error_log("=== SAVE VALOR ===");
error_log("atributoId recibido: $atributoId");
error_log("nombre recibido: " . $_POST['name']);
$atribVal->setAtributoId($atributoId);
$atribVal->setNombre($_POST['name']);
$result = $atribVal->Save();
error_log("Resultado Save: " . ($result ? 'SUCCESS ID: ' . $result : 'FAILED'));
if(!$result)
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}else
{
echo 'ok[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
echo '[#]';
echo $atributoId;
echo '[#]';
$atribVal->setAtributoId($atributoId);
// Debug directo al método EnumerateAll
error_log("=== DEBUG ENUMERATEALL ===");
error_log("atributoId: $atributoId");
error_log("empresaId: " . ($_SESSION['empresaId'] ?? 'NO_SESSION'));
error_log("Antes de EnumerateAll()");
$valores = $atribVal->EnumerateAll();
error_log("Resultado EnumerateAll(): " . print_r($valores, true));
error_log("Count: " . count($valores));
$item['valores'] = $util->EncodeResult($valores);
// Crear estructura compatible con template
$valoresForTemplate = array(
'items' => $valores,
'pages' => array() // Sin paginación para EnumerateAll
);
$smarty->assign('item', $item);
$smarty->assign('valores', $valoresForTemplate);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/atributos-valores-rows.tpl');
}
break;
case 'editValor':
$atribVal->setAtribValId($_POST['atribValId']);
$info = $atribVal->Info();
$info['nombre'] = utf8_encode($info['nombre']);
$smarty->assign('info', $info);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/boxes/editar-atributo-valor-popup.tpl');
break;
case 'saveEditValor':
$atribVal->setAtribValId($_POST['atribValId']);
$atribVal->setNombre($_POST['name']);
$info = $atribVal->Info();
$atributoId = $info['atributoId'];
if(!$atribVal->Update())
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}else
{
echo 'ok[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
echo '[#]';
echo $atributoId;
echo '[#]';
$atribVal->setAtributoId($atributoId);
$valores = $atribVal->EnumerateAll();
$item['valores'] = $util->EncodeResult($valores);
// Crear estructura compatible con template
$valoresForTemplate = array(
'items' => $valores,
'pages' => array() // Sin paginación para EnumerateAll
);
$smarty->assign('item', $item);
$smarty->assign('valores', $valoresForTemplate);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/atributos-valores-rows.tpl');
}
break;
case 'deleteValor':
$atribVal->setAtribValId($_POST['atribValId']);
$info = $atribVal->Info();
$atributoId = $info['atributoId'];
if(!$atribVal->Baja())
{
echo 'fail[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status_on_popup.tpl');
}else
{
echo 'ok[#]';
$smarty->display(DOC_ROOT.'/templates/boxes/status.tpl');
echo '[#]';
echo $atributoId;
echo '[#]';
$atribVal->setAtributoId($atributoId);
$valores = $atribVal->EnumerateAll();
$item['valores'] = $util->EncodeResult($valores);
// Crear estructura compatible con template
$valoresForTemplate = array(
'items' => $valores,
'pages' => array() // Sin paginación para EnumerateAll
);
$smarty->assign('item', $item);
$smarty->assign('valores', $valoresForTemplate);
$smarty->assign('DOC_ROOT', DOC_ROOT);
$smarty->display(DOC_ROOT.'/templates/lists/atributos-valores-rows.tpl');
}
break;
}//switch
?>