cant_items = 0;
}
tmp->fp = emufs_crear("facturas", param->tipo_arch_fact, param->tam_bloque_fact, sizeof(t_Factura)-sizeof(char *)-sizeof(t_Item*)+cant_items*sizeof(t_Item));
- emufs_agregar_indice(tmp->fp, "emision", IND_EXAHUSTIVO, IND_B, IDX_STRING, STRUCT_OFFSET(factura, emision), 512);
- emufs_agregar_indice(tmp->fp, "numero", IND_PRIMARIO, IND_B, IDX_INT, 0, 512);
+ emufs_agregar_indice(tmp->fp, "emision", IND_EXAHUSTIVO, param->ind_fac[1].tipo_arbol, IDX_STRING, STRUCT_OFFSET(factura, emision), param->ind_fac[1].tam_bloque, 0);
+ emufs_agregar_indice(tmp->fp, "numero", IND_PRIMARIO, param->ind_fac[0].tipo_arbol, IDX_INT, 0, param->ind_fac[0].tam_bloque, 0);
tmp->fp_texto = emufs_crear("notas", param->tipo_arch_nota, param->tam_bloque_nota, 100);
for (node=inicio ; node ; node = node->next) {
if (node->type == XML_ELEMENT_NODE) {
t_Factura *fact;
EMUFS_REG_ID id;
CLAVE k;
+ INDICE_DATO dummy;
win = newwin(LINES-4, COLS-2, 2, 1);
box(win, 0, 0);
}
k = emufs_indice_generar_clave_desde_valor(lst_facturas->fp->indices, (char *)(&fact->numero));
- lst_facturas->fp->borrar_registro(lst_facturas->fp, k);
+ lst_facturas->fp->borrar_registro(lst_facturas->fp, k, dummy);
k.i_clave = fact->reg_nota;
- lst_facturas->fp_texto->borrar_registro(lst_facturas->fp_texto, k);
+ lst_facturas->fp_texto->borrar_registro(lst_facturas->fp_texto, k, dummy);
if (fact->items) free(fact->items);
if (fact->nota) free(fact->nota);
entrada = procesar_guardar_factura(fact, lst_facturas, &size);
if (entrada) {
CLAVE k;
+ INDICE_DATO dummy;
k = emufs_indice_generar_clave_desde_valor(lst_facturas->fp->indices, (char *)&fact->numero);
- lst_facturas->fp->modificar_registro(lst_facturas->fp, k, entrada, size, &error);
+ lst_facturas->fp->modificar_registro(lst_facturas->fp, k, entrada, size, &error, dummy);
k.i_clave = id_texto;
- id_texto = lst_facturas->fp_texto->modificar_registro(lst_facturas->fp_texto, k, fact->nota, strlen(fact->nota)+1, &error);
+ id_texto = lst_facturas->fp_texto->modificar_registro(lst_facturas->fp_texto, k, fact->nota, strlen(fact->nota)+1, &error, dummy);
free(entrada);
}
switch (lst->fp->tipo) {
case T1:
case T2:
+ case T4:
/* Calculo el tamaƱo que voy a necesitar */
i[0] = sizeof(int);
i[1] = sizeof(float);
memcpy(tmp+i[0]+i[1]+i[2]+i[3]+i[4]+i[5]+i[6]+i[7]+i[8]+i[9]+i[10], f->items, i[11]);
break;
case T3:
+ case T5:
(*size) = sizeof(t_Factura)-sizeof(char *)-sizeof(t_Item *) + f->cant_items*sizeof(t_Item);
tmp = (char *)malloc(*size);
if (tmp == NULL) return NULL;
switch (lst->fp->tipo) {
case T1:
case T2:
+ case T4:
ini = (char *)src;
/* Copio los campos numericos, muy facil:-) */
memcpy(&dst->numero, ini, sizeof(int));
return 0;
break;
case T3:
+ case T5:
/* Se que tengo 10 items */
/* TODO : Ver porque leer_registro_tipo3 tira mal el size */
size = lst->fp->tam_reg;