de Modificar Articulo esta andando con indices, y por suerte encuentra las cosas :-)
{
INDICE *iter = primero;
{
INDICE *iter = primero;
- PERR("Agregando clave a indices");
while (iter) {
iter->agregar_entrada(iter, emufs_indice_generar_clave(iter, data), dato);
iter = iter->sig;
while (iter) {
iter->agregar_entrada(iter, emufs_indice_generar_clave(iter, data), dato);
iter = iter->sig;
CLAVE emufs_indice_generar_clave_desde_valor(INDICE *idx, char *data)
{
CLAVE k;
CLAVE emufs_indice_generar_clave_desde_valor(INDICE *idx, char *data)
{
CLAVE k;
+ if (idx == NULL) PERR("NULL INDEX!");
+
+ PERR("---- 1 ----");
switch (idx->tipo_dato) {
case IDX_FLOAT:
k.f_clave= *((float *)(data));
switch (idx->tipo_dato) {
case IDX_FLOAT:
k.f_clave= *((float *)(data));
case IDX_INT:
k.i_clave = *((int *)(data));
}
case IDX_INT:
k.i_clave = *((int *)(data));
}
void *tmp;
int error = 0;
EMUFS_REG_SIZE size;
void *tmp;
int error = 0;
EMUFS_REG_SIZE size;
+ if (lst == NULL) lst = lst_articulos;
+ if (lst == NULL) return NULL;
+
+ fprintf(stderr, "Me piden que busque en el indice el codigo=%d\n", numero);
(*id) = -1; /* XXX Ver que se hacia con esto */
art = (t_Articulo *)malloc(sizeof(t_Articulo));
/* Ya se cual tengo que retornar. Ahora veo si lo cargo desde el archivo */
error = 0;
(*id) = -1; /* XXX Ver que se hacia con esto */
art = (t_Articulo *)malloc(sizeof(t_Articulo));
/* Ya se cual tengo que retornar. Ahora veo si lo cargo desde el archivo */
error = 0;
- tmp = lst->fp->leer_registro(lst->fp, emufs_indice_generar_clave_desde_valor(lst->fp->indices, (char *)&numero), &size, &error);
-
+ PERR("Genero clave");
+ k = emufs_indice_generar_clave_desde_valor(lst->fp->indices, (char *)&numero);
+ PERR("Buscando en archivo");
+ tmp = lst->fp->leer_registro(lst->fp, k, &size, &error);
+ PERR("Lo encontre?");
if (error) {
free(art);
return NULL;
}
if (error) {
free(art);
return NULL;
}
+ printf("SI LO ENCONTRE!!!!");
if (procesar_leer_articulo(art, tmp, size, lst_articulos) != 1) {
free(art);
free(tmp);
return NULL;
}
if (procesar_leer_articulo(art, tmp, size, lst_articulos) != 1) {
free(art);
free(tmp);
return NULL;
}
+ printf("RETORNANDO el articulo procesado");
wrefresh(win);
if (s == NULL) {
wrefresh(win);
if (s == NULL) {
+ PERR("Voy a buscar con el formulario");
articulo = art_form_buscar(win, &codigo);
articulo = art_form_buscar(win, &codigo);
+ PERR("Ya lo tengo!!!!!!");
} else {
codigo = atoi(s);
/* Leo el registro directamente */
} else {
codigo = atoi(s);
/* Leo el registro directamente */
MENU_OPCION("Salir", "Salir del sistema.")
};
MENU_OPCION("Salir", "Salir del sistema.")
};
- while ((c=menu_ejecutar(mi_menu, 7, "Menu Principal"))) {
+ while ((c=menu_ejecutar(mi_menu, 7, "Menu Principal"))!=6) {
switch (c) {
case 0:
menu_articulos();
switch (c) {
case 0:
menu_articulos();