]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - emufs_gui/generar_archivos/genera_art.c
* Agrego recorrido por los indices de factura
[z.facultad/75.06/emufs.git] / emufs_gui / generar_archivos / genera_art.c
1
2 /* Genera un XML con articulos */
3
4 #include <stdio.h>
5 #include <time.h>
6 #include <stdlib.h>
7
8 #include "dict.h"
9 #include "common.h"
10
11 int main(int argc, char *argv[])
12 {
13         int i, total, num;
14         float pvu;
15         t_Dict *productos;
16         t_Dict *marcas;
17         t_Dict *presentacion;
18         FILE *fp, *fp1;
19
20         if (argc != 3) {
21                 printf("Modo de uso :\n");
22                 printf("\t#> %s salida.xml <cantidad de items a generar>\n", argv[0]);
23                 return 1;
24         }
25         
26         total = atoi(argv[2]);
27         
28         fp = fopen(argv[1], "wt");
29         if (fp == NULL) {
30                 printf("No se pudo crear %s\n", argv[1]);
31                 return 1;
32         }
33         fp1 = fopen("articulos.txt", "wt");
34         if (fp1 == NULL) {
35                 printf("Imposible generar salida\n");
36                 fclose(fp);
37                 return 1;
38         }
39         
40         productos = dict_crear("productos.txt");
41         marcas = dict_crear("marcas.txt");
42         presentacion = dict_crear("presentacion.txt");
43
44         srand(time(NULL));
45         fprintf(fp, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n\n");
46         fprintf(fp, "<ARTICULOS>\n");
47         for(i=0; i<total; i++) {
48                 fprintf(fp, "\t<ARTICULO ");
49                 num = i+1; /*al_azar(1, 99999999);*/
50                 fprintf(fp, "NroArtículo=\"%08d\" ", num);
51                 fprintf(fp, "Descripción=\"%s %s\" ", dict_get_al_azar(productos), dict_get_al_azar(marcas));
52                 fprintf(fp, "Presentación=\"%s\" ", dict_get_al_azar(presentacion));
53                 fprintf(fp, "Existencia=\"%d\" ", al_azar(1, 1000));
54                 pvu = (al_azar(1, 1000) / (float)al_azar(1, 765)) * al_azar(1, 10);
55                 if (pvu > 100) pvu /= 2.0f;
56                 fprintf(fp, "PVU=\"%.2f\" ", pvu);
57                 fprintf(fp, "Emín=\"%d\" />\n", al_azar(1, 1000));
58                 /* Ahora dejo para las facturas */
59                 fprintf(fp1, "%d %.2f\n", num, pvu);
60         }
61         fprintf(fp, "</ARTICULOS>\n");
62         fclose(fp);
63
64         dict_destruir(productos);
65         dict_destruir(marcas);
66         dict_destruir(presentacion);
67         return 0;
68 }
69
70