#ifndef _FACTURAS_H_ #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> #include "gui.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]; char estado[3]; char fp[3]; 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 *primero; EMUFS *fp; /* Filepointer al archivo donde estan los datos */ EMUFS *fp_texto; /* Filepointer al archivo donde estan los textos */ } t_LstFacturas; /** 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(t_Parametros *param); /** 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, int nota_tipo, int nota_tam_bloque, int nota_tam_registro); void fact_consultas(char *s); int fact_exportar_xml(const char *filename); #endif