]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/articulos.c
* Cargo los indices desde el XML
[z.facultad/75.06/emufs.git] / emufs_gui / articulos.c
index 136bf969ab77a8b9b0792776875feebfad2acc5b..a6011b1c262ec8829f995da0743c8622d0d9f3e1 100644 (file)
@@ -112,9 +112,9 @@ t_LstArticulos *art_cargar(t_Parametros *param)
                tmp->fp = emufs_crear("articulos", param->tipo_arch_art, param->tam_bloque_art, sizeof(t_Articulo));
                /* Agrego los indices */
                PERR("Voy a agregar un indice");
                tmp->fp = emufs_crear("articulos", param->tipo_arch_art, param->tam_bloque_art, sizeof(t_Articulo));
                /* Agrego los indices */
                PERR("Voy a agregar un indice");
-               emufs_agregar_indice(tmp->fp, "presentacion", IND_EXAHUSTIVO, IND_B, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), 512, 1);
-               emufs_agregar_indice(tmp->fp, "desc", IND_EXAHUSTIVO, IND_B, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), 512, 0);
-               emufs_agregar_indice(tmp->fp, "codigo", IND_PRIMARIO, IND_B_ASC, IDX_INT, 0, 512, 0);
+               emufs_agregar_indice(tmp->fp, "presentacion", IND_EXAHUSTIVO, param->ind_art[2].tipo_arbol, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), param->ind_art[2].tam_bloque, 1);
+               emufs_agregar_indice(tmp->fp, "desc", IND_EXAHUSTIVO, param->ind_art[1].tipo_arbol, IDX_STRING, STRUCT_OFFSET(un_articulo, desc), param->ind_art[1].tam_bloque, 0);
+               emufs_agregar_indice(tmp->fp, "codigo", IND_PRIMARIO, param->ind_art[0].tipo_arbol, IDX_INT, 0, param->ind_art[0].tam_bloque, 0);
                if (!tmp->fp) {
                        PERR("NO SE PUDO CREAR ARCHIVO ARTICULOS");
                        free(tmp);
                if (!tmp->fp) {
                        PERR("NO SE PUDO CREAR ARCHIVO ARTICULOS");
                        free(tmp);
@@ -446,6 +446,7 @@ int procesar_leer_articulo(t_Articulo *dst, void *src, EMUFS_REG_SIZE size, t_Ls
        char *fin, *ini;
        switch (lst->fp->tipo) {
                case T1:
        char *fin, *ini;
        switch (lst->fp->tipo) {
                case T1:
+               case T4:
                case T2:
                        ini = (char *)src;
                        /* Copio el primer campo, esto es facil :-) */
                case T2:
                        ini = (char *)src;
                        /* Copio el primer campo, esto es facil :-) */
@@ -483,6 +484,7 @@ int procesar_leer_articulo(t_Articulo *dst, void *src, EMUFS_REG_SIZE size, t_Ls
                        memcpy(dst->emin, ini, fin-ini);
 
                        break;
                        memcpy(dst->emin, ini, fin-ini);
 
                        break;
+               case T5:
                case T3:
                        memcpy(dst, src, sizeof(t_Articulo));
        }
                case T3:
                        memcpy(dst, src, sizeof(t_Articulo));
        }
@@ -498,6 +500,7 @@ void *procesar_guardar_articulo(t_Articulo *src, EMUFS_REG_SIZE *size, t_LstArti
        switch(lst->fp->tipo) {
                case T1:
                case T2:
        switch(lst->fp->tipo) {
                case T1:
                case T2:
+               case T4:
                        /* Calculo el tamaño que voy a necesitar */
                        i[0] = sizeof(unsigned int);
                        i[1] = sizeof(char)*(strlen(src->desc)+1);
                        /* Calculo el tamaño que voy a necesitar */
                        i[0] = sizeof(unsigned int);
                        i[1] = sizeof(char)*(strlen(src->desc)+1);
@@ -518,6 +521,7 @@ void *procesar_guardar_articulo(t_Articulo *src, EMUFS_REG_SIZE *size, t_LstArti
                        memcpy(tmp+i[0]+i[1]+i[2]+i[3]+i[4], src->pvu, i[5]);
                        memcpy(tmp+i[0]+i[1]+i[2]+i[3]+i[4]+i[5], src->emin, i[6]);
                break;
                        memcpy(tmp+i[0]+i[1]+i[2]+i[3]+i[4], src->pvu, i[5]);
                        memcpy(tmp+i[0]+i[1]+i[2]+i[3]+i[4]+i[5], src->emin, i[6]);
                break;
+               case T5:
                case T3:
                        /* Lleno el lugar no ocupado de los strings con *, para que el ver
                         * registro se vea bien 
                case T3:
                        /* Lleno el lugar no ocupado de los strings con *, para que el ver
                         * registro se vea bien 
@@ -719,8 +723,12 @@ void art_consultas_codigos(char *s, t_Lista *lista)
                hasta_codigo = mayor.i_clave;
        fprintf(stderr, "k.i_clave = %d  -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
        while ((k.i_clave != -1) && (k.i_clave <= hasta_codigo)) {
                hasta_codigo = mayor.i_clave;
        fprintf(stderr, "k.i_clave = %d  -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
        while ((k.i_clave != -1) && (k.i_clave <= hasta_codigo)) {
+               PERR("BUSCO ARTICULO");
                articulo = art_obtener(lst_articulos, k.i_clave, &dummy);
                articulo = art_obtener(lst_articulos, k.i_clave, &dummy);
+               PERR("LO TENGO");
                if (articulo != NULL) {
                if (articulo != NULL) {
+                       PERR("AGREGO A LA LISTA");
+                       fprintf(stderr, "%d - %s\n", articulo->numero, articulo->desc);
                        lista_agregar_fila(lista,
                                                                articulo->numero,
                                                                articulo->desc,
                        lista_agregar_fila(lista,
                                                                articulo->numero,
                                                                articulo->desc,
@@ -729,6 +737,7 @@ void art_consultas_codigos(char *s, t_Lista *lista)
                                                );
                        free(articulo);
                }
                                                );
                        free(articulo);
                }
+               PERR("OBTENGO SIGUIENTE CLAVE");
                k = idx->obtener_sig_clave(idx, k); 
                fprintf(stderr, "k.i_clave = %d  -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
        }
                k = idx->obtener_sig_clave(idx, k); 
                fprintf(stderr, "k.i_clave = %d  -- hasta_codigo = %d\n", k.i_clave, hasta_codigo);
        }