#define _FACTURAS_H_
#include "emufs.h"
+#include "form.h"
+#include "common.h"
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
+#include <curses.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+
+typedef struct _t_item_ {
+ int numero;
+ char cv[9];
+ char pvu[9];
+} t_Item;
typedef struct _facturas_ {
+ /* Dejo los campos numericos al principio para mayor facilidad de parseo. */
int numero;
+ float procdoi;
+ int numero_remito;
+ int cant_items;
+ EMUFS_BLOCK_ID reg_nota;
char emision[9];
char vencimiento[9];
- int numero_remito;
char estado[3];
char fp[3];
- float procdoi;
char ctacte[6];
char cheque[19];
char *nota;
+ t_Item *items;
} t_Factura;
typedef struct _reg_factura_ {
EMUFS_REG_ID num_reg; /* numero de registro en el archivo */
EMUFS_REG_ID texto_reg; /* numero de registro donde se encuentra el texto */
unsigned int numero; /* codigo de factura */
+ struct _reg_factura_ *sig, *ant;
} t_Reg_Factura;
typedef struct _lista_facturas_ {
- t_Reg_Factura array[100];
- unsigned int cant;
+ t_Reg_Factura *primero;
EMUFS *fp; /* Filepointer al archivo donde estan los datos */
EMUFS *fp_texto; /* Filepointer al archivo donde estan los textos */
} t_LstFacturas;
-
-t_LstFacturas *fact_cargar(const char *filename);
-#endif
+/** Crea la lista de facturas desde un archivo nuevo o existente
+ *
+ * \param filename Si es NULL trata de abrir un archivo existente, si no cargar el XML pasado
+ */
+t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque);
+
+/** Elimina toda la memoria utilizada por las facturas */
+int fact_liberar(t_LstFacturas *l);
+
+/** Agregar una factura */
+void fact_agregar(char *s);
+
+/** Modificar una factura */
+void fact_modificar(char *s);
+
+/** Eliminar una factura */
+void fact_eliminar(char *s);
+
+/** Obtiene la list de facturas */
+t_LstFacturas *fact_get_lst();
+
+void fact_reformatear(int tipo, int tam_bloque, int tam_reg);
+
+#endif