]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/facturas.h
* Saco (con preprocesador) algunas cosas que no es usan para esta entrega, asi
[z.facultad/75.06/emufs.git] / emufs_gui / facturas.h
index 5919d796ec884de759999cd27b1b923c2d9151a3..3db27a6c86403ee24331d86adbb61f745947d159 100644 (file)
@@ -3,39 +3,78 @@
 #define _FACTURAS_H_
 
 #include "emufs.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 <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;
 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 emision[9];
        char vencimiento[9];
-       int numero_remito;
        char estado[3];
        char fp[3];
        char estado[3];
        char fp[3];
-       float procdoi;
        char ctacte[6];
        char cheque[19];
        char *nota;
        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 */
 } 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;
 
 typedef struct _lista_facturas_ {
-       t_Reg_Factura array[10000];
-       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;
        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);
 
 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