#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;
+
+/* Dejo los campos numericos al principio para mayor facilidad de parseo. */
typedef struct _facturas_ {
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 *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);
+
+
+/** 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, int tipo_nota, int bloque_nota);
+
+/** Elimina toda la memoria utilizada por las facturas */
int fact_liberar(t_LstFacturas *l);
-#endif
+/** 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, int nota_tipo, int nota_tam_bloque, int nota_tam_registro);
+
+void fact_consultas(char *s);
+
+int fact_exportar_xml(const char *filename);
+
+#endif