From 47632f8f1b760f3538651edad104e595c73f8e63 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Sat, 17 Apr 2004 20:46:01 +0000 Subject: [PATCH] * Se agrega generador de facturas. Primero hay que correr el generador de articulos que deja un archivo txt con datos que se van a usar. Las notas son sacadas de un archivo llamado nota.txt. Faltan un par de campos. Los subo en 5 minutos. Los datos cumplen con la relacion de % pedidos en el enunciado. --- emufs_gui/articulos.xml | 2000 ++++++++++++++-------------- emufs_gui/genera_art/Makefile | 4 +- emufs_gui/genera_art/genera_art.c | 19 +- emufs_gui/genera_art/genera_fact.c | 116 ++ emufs_gui/genera_art/notas.txt | 5 + 5 files changed, 1139 insertions(+), 1005 deletions(-) create mode 100644 emufs_gui/genera_art/genera_fact.c create mode 100644 emufs_gui/genera_art/notas.txt diff --git a/emufs_gui/articulos.xml b/emufs_gui/articulos.xml index 1196e73..290b2a6 100644 --- a/emufs_gui/articulos.xml +++ b/emufs_gui/articulos.xml @@ -1,1004 +1,1004 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/emufs_gui/genera_art/Makefile b/emufs_gui/genera_art/Makefile index ac1e177..7e217c1 100644 --- a/emufs_gui/genera_art/Makefile +++ b/emufs_gui/genera_art/Makefile @@ -3,9 +3,11 @@ LDFLAGS= -lmenu -lncurses -lxml2 OBJ= genera_art.o dict.o common.o -all: genera_art +all: genera_art genera_fact genera_art: $(OBJ) +genera_fact: common.o genera_fact.o dict.o + clean: @$(RM) -vf *.o gui diff --git a/emufs_gui/genera_art/genera_art.c b/emufs_gui/genera_art/genera_art.c index 16df70d..a0ebb8e 100644 --- a/emufs_gui/genera_art/genera_art.c +++ b/emufs_gui/genera_art/genera_art.c @@ -10,11 +10,12 @@ int main(int argc, char *argv[]) { - int i, total; + int i, total, num; + float pvu; t_Dict *productos; t_Dict *marcas; t_Dict *presentacion; - FILE *fp; + FILE *fp, *fp1; if (argc != 3) { printf("Modo de uso :\n"); @@ -29,6 +30,12 @@ int main(int argc, char *argv[]) printf("No se pudo crear %s\n", argv[1]); return 1; } + fp1 = fopen("articulos.txt", "wt"); + if (fp1 == NULL) { + printf("Imposible generar salida\n"); + fclose(fp); + return 1; + } productos = dict_crear("productos.txt"); marcas = dict_crear("marcas.txt"); @@ -39,12 +46,16 @@ int main(int argc, char *argv[]) fprintf(fp, "\n"); for(i=0; i\n", al_azar(1, 1000)); + /* Ahora dejo para las facturas */ + fprintf(fp1, "%d %.2f\n", num, pvu); } fprintf(fp, "\n"); fclose(fp); diff --git a/emufs_gui/genera_art/genera_fact.c b/emufs_gui/genera_art/genera_fact.c new file mode 100644 index 0000000..6086566 --- /dev/null +++ b/emufs_gui/genera_art/genera_fact.c @@ -0,0 +1,116 @@ + +#include "dict.h" + +void separar_string(char *s, int *numero, float *precio) +{ + /* Bueno el ' ' y reemplazo por \0 */ + int pos, len; + len = strlen(s); + pos = 0; + while ((s[pos] != '\0') && (s[pos] != ' ')) pos++; + if (pos == len) { + *numero = 0; + *precio = 0.0f; + } + s[pos] = '\0'; + *numero = atoi(s); + *precio = atof(s+pos+1); + + /* Dejo todo como esta! */ + s[pos] = ' '; +} + +int main(int argc, char *argv[]) +{ + t_Dict *articulos; + t_Dict *notas; + FILE *fp; + int numero, i,j, cant_items, CANT; + float precio; + int co, cr, ch; + char *s; + + if (argc != 3) { + printf("Modo de uso :\n"); + printf("\t#> %s salida.xml \n", argv[0]); + return 1; + } + + CANT = atoi(argv[2]); + + co = cr = ch = 0; + + if ((fp=fopen(argv[1], "rt")) == NULL) { + printf("No se pudo generar archivo de salida.\n"); + return 1; + } + + articulos = dict_crear("articulos.txt"); + if (articulos == NULL) { + printf("No se encontro registro de articulos (articulos.txt). Es posible que deba correr generar_art primero."); + return 1; + } + notas = dict_crear("notas.txt"); + + fprintf(fp, "\n"); + fprintf(fp, "\n"); + for(i=0; i\n"); + fprintf(fp, "\t\t%s\n", dict_get_al_azar(notas)); + /* Veo cuantos items necesita esta factura */ + if (i < CANT) { + cant_items = al_azar(2, 5); + } + if (i < CANT*0.6) { + cant_items = 1; + } + if (i < CANT*0.3) { + cant_items = al_azar(6, 10); + } + if (i < CANT*0.1) { + cant_items = al_azar(10, 15); + } + for(j=0; j\n", numero, al_azar(1, 10), precio); + } + fprintf(fp, "\t\n"); + } + fprintf(fp, "\t\n"); + + dict_destruir(articulos); + dict_destruir(notas); + return 0; +} + diff --git a/emufs_gui/genera_art/notas.txt b/emufs_gui/genera_art/notas.txt new file mode 100644 index 0000000..40ce2b8 --- /dev/null +++ b/emufs_gui/genera_art/notas.txt @@ -0,0 +1,5 @@ +Una nota +dos notas +algo que poner +se le da una regadera de regalo porque es un buen cliente y lo apreciamos mucho +no es cliente habitual y se lo ve muy sospechoso. No esta robando :-( -- 2.43.0