+ todo++;
+ }
+
+ if (strcmp(estado, "Todos") == 0) todo = 2;
+
+ if (todo == 2) {
+ /* Debo utilizar un ord, externo!! */
+ FILE *fp;
+ /* Creo el archivo a ordenar */
+ fp = fopen("tmp_ord.xxx", "w");
+ while (k_menor.i_clave != -1) {
+ t_Factura fact;
+ int error, cant, i;
+ char *leo;
+ t_OrdExt_Data ord;
+ EMUFS_REG_SIZE size;
+ INDICE_DATO *datos;
+ CLAVE k1;
+ datos = idx->buscar_entradas(idx, k_menor, &cant);
+ for(i=0; i<cant; i++) {
+ error = 1;
+ k1.i_clave = datos[i].id;
+ leo = lst_facturas->fp->leer_registro(lst_facturas->fp, k1, &size, &error);
+ if (leo != NULL) {
+ procesar_leer_factura(&fact, leo, size, lst_facturas);
+ free(leo);
+ ord.numero = fact.numero;
+ strcpy(ord.emision, fact.emision);
+ strcpy(ord.estado, fact.estado);
+ strcpy(ord.fp, fact.fp);
+ ord.importe = get_importe_factura(fact.items, fact.cant_items, fact.procdoi);
+ fwrite(&ord, sizeof(t_OrdExt_Data), 1, fp);
+ }
+ }
+ if (datos) free(datos);
+ if (fact.items) free(fact.items);
+ k_menor = idx->obtener_sig_clave(idx, k_menor);
+ }
+ fclose(fp);
+ /* Mando a ordenar */
+ extsort("tmp_ord.xxx", 4096, sizeof(t_OrdExt_Data), comparar_externo);