]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Saco los <> porque molestan al juntar bloques
authorRicardo Markiewicz <gazer.arg@gmail.com>
Sat, 17 Apr 2004 23:32:28 +0000 (23:32 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Sat, 17 Apr 2004 23:32:28 +0000 (23:32 +0000)
 * Ajusto Ver registro para tipo3 con muchos bloques

emufs/tipo3.c
emufs_gui/facturas.c
emufs_gui/registros.c

index c6fbd1fb1055e174d0661dcc3923d4a042cde357..60a7139c8b92cf0aa5c880809f869ea88537971c 100644 (file)
@@ -442,7 +442,7 @@ void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE
                        return NULL;
                }
                cant_bloques = emu->tam_reg / (emu->tam_bloque - sizeof(EMUFS_REG_ID))+1;
-               *size = emu->tam_bloque*cant_bloques + cant_bloques*2 - sizeof(EMUFS_REG_ID)*(cant_bloques-1);
+               *size = emu->tam_bloque*cant_bloques /*+ cant_bloques*2*/ - sizeof(EMUFS_REG_ID)*(cant_bloques-1);
                bloque = (char *)malloc(*size);
                cur = bloque;
                *pos = 0; 
@@ -456,8 +456,8 @@ void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE
                }
                memcpy(cur, tmp, emu->tam_bloque);
                cur += emu->tam_bloque;
-               memcpy(cur, "<>", 2);
-               cur += 2;
+/*             memcpy(cur, "<>", 2);
+               cur += 2;*/
                free(tmp);
                
                /* En resto de los bloques no pongo el ID porque ya esta en el primero */
@@ -470,8 +470,8 @@ void* emufs_tipo3_leer_registro_raw(EMUFS *emu, EMUFS_REG_ID ID, EMUFS_REG_SIZE
                        }
                        memcpy(cur, tmp+sizeof(EMUFS_REG_ID), emu->tam_bloque-sizeof(EMUFS_REG_ID));
                        cur += emu->tam_bloque - sizeof(EMUFS_REG_ID);
-                       memcpy(cur, "<>", 2);
-                       cur += 2;
+/*                     memcpy(cur, "<>", 2);
+                       cur += 2;*/
                        free(tmp);
                }
                (*cur) = '\0';
index 83490bc8a3e317c2319df3a6a8088d8061594c1f..f1b60aafc8f2e43521ace8bf9c922708603783fe 100644 (file)
@@ -104,6 +104,7 @@ t_Item *leer_items(xmlNode *node, int *cant, int size)
                                        count++;
                                }
                        }
+                       if (count == 10) break; /* No me entran mas items! */
                        node = node->next;
                }
        }
@@ -256,6 +257,8 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque)
                }
                free(indices);
        }
+
+       PERR("Facturas todo Ok");
        return lst_facturas;
 }
 
index 983858d7c66274e7748301100447694f0ffcf265..babea55ff39345375b86a35fb76290c30e69f4b3 100644 (file)
@@ -463,7 +463,7 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                tam_data = emu->tam_reg-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID);
        } else {
                cant_header = 1;
-               tam_data = *size - sizeof(EMUFS_REG_ID)-sizeof(unsigned int);
+               tam_data = (*size) - sizeof(EMUFS_REG_ID)-sizeof(int)*3-sizeof(float)-sizeof(EMUFS_BLOCK_ID);
        }
 
        fprintf(stderr, "Tengo %d headers\n", cant_header);
@@ -477,10 +477,12 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
        }
        tmp = ptr;
        pos_actualizada = 0;
+       (*ancho) = 0;
        while (i<cant_header) {
                /* Verifico la pos_actual para el resaltado, asi queda coherente 
                 * en el cambio de formato
                 */
+               fprintf(stderr, "%d == %d\n", tmp-ptr, *pos_actual);
                if (((tmp - ptr) == *pos_actual) && (!pos_actualizada)) {
                        (*pos_actual) = tmp1-salida;
                        pos_actualizada = 1;
@@ -512,9 +514,10 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                tmp1 += 10;
                tmp += sizeof(EMUFS_BLOCK_ID);
 
+               if (pos_actualizada == 1) {
+                       (*ancho) = 50+strlen(flotante);
+               }
                j = 0;
-               /* TODO Mostrar en pantalla los items!! */
-               fprintf(stderr, "DATA = %d\n", tam_data-10*sizeof(t_Item));
                while (j < (tam_data-10*sizeof(t_Item))) {
                        if (*tmp == '\0') {
                                if (ant == (*tmp)){
@@ -528,6 +531,8 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                        ant = (*tmp);
                        tmp++;
                        tmp1++;
+                       if (pos_actualizada == 1)
+                               (*ancho)++;
                        j++;
                }
                /* Ahora proceso los items */
@@ -536,6 +541,8 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                        sprintf(tmp1, "[%08d]", *((int *)tmp));
                        tmp1 += 10;
                        tmp += sizeof(int);
+                       if (pos_actualizada == 1)
+                               (*ancho)+=10;
                        j = 0;
                        while (j < (sizeof(t_Item)-sizeof(int))) {
                                if (*tmp == '\0') {
@@ -550,24 +557,25 @@ char *procesar_registro_factura_tipo3(EMUFS *emu, char *ptr, EMUFS_REG_SIZE *siz
                                ant = (*tmp);
                                tmp++;
                                tmp1++;
+                               if (pos_actualizada == 1)
+                                       (*ancho)++;
                                j++;
                        }
                        k++;
                }
+               if (pos_actualizada == 1)
+                       pos_actualizada = 2;
                i++;
        }
-       fprintf(stderr, "%lu =? %d\n", *size, tmp-ptr);
        free(ptr);
 
        PERR("Termine");
        if (emu->tam_bloque > emu->tam_reg) {
                (*size) = tmp1-salida;
-               (*ancho) = tam_data + 15*cant_header + cant_items*10 - cant_items*sizeof(int);
        } else {
-               (*size) = (*size)-sizeof(EMUFS_REG_ID)-sizeof(unsigned int)+21;
-               (*ancho) = (*size);
+               (*size) = tmp1-salida;
+               (*ancho) = tmp1-salida;
        }
-       memset(tmp1, '.', (*size)-(tmp1-salida)); 
        salida[*size-1] = '\0';
 
        return salida;