X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/ac4e74bc3235c3ced324ee54e9f788307a1e5eed..7c4ffe61bc88d99fe6dd9da2c07c1a5de559b833:/emufs_gui/facturas.c?ds=sidebyside diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index 8cd9267..254e35e 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -97,8 +97,10 @@ t_Item *leer_items(xmlNode *node, int *cant, int size) prop = xml_get_prop(node, "NroArtículo"); tmp[count-1].numero = atoi(prop); xmlFree(prop); - strcpy(tmp[count-1].cv, prop = xml_get_prop(node, "CV")); xmlFree(prop); - strcpy(tmp[count-1].pvu, prop = xml_get_prop(node, "PVU")); xmlFree(prop); + strncpy(tmp[count-1].cv, prop = xml_get_prop(node, "CV"), 8); xmlFree(prop); + tmp[count-1].cv[8] = '\0'; + strncpy(tmp[count-1].pvu, prop = xml_get_prop(node, "PVU"), 8); xmlFree(prop); + tmp[count-1].pvu[8] = '\0'; } } node = node->next; @@ -118,8 +120,10 @@ t_Item *leer_items(xmlNode *node, int *cant, int size) prop = xml_get_prop(node, "NroArtículo"); tmp[count].numero = atoi(prop); xmlFree(prop); - strcpy(tmp[count].cv, prop = xml_get_prop(node, "CV")); xmlFree(prop); - strcpy(tmp[count].pvu, prop = xml_get_prop(node, "PVU")); xmlFree(prop); + strncpy(tmp[count].cv, prop = xml_get_prop(node, "CV"), 8); xmlFree(prop); + tmp[count-1].cv[8] = '\0'; + strncpy(tmp[count].pvu, prop = xml_get_prop(node, "PVU"), 8); xmlFree(prop); + tmp[count-1].pvu[8] = '\0'; count++; } } @@ -155,7 +159,7 @@ char *leer_nota(xmlNode *node) } -t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) +t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque, int tipo_nota, int bloque_nota) { xmlDocPtr document; xmlNode *node, *inicio; @@ -205,7 +209,11 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) cant_items = 0; } tmp->fp = emufs_crear("facturas", tipo-1, tam_bloque, sizeof(t_Factura)-sizeof(char *)-sizeof(t_Item*)+cant_items*sizeof(t_Item)); - tmp->fp_texto = emufs_crear("notas", T2, 100, 0); +#ifdef DEBUG + fprintf(stderr, "Facturas : Tipo=%d Tam Bloque = %d\n", tipo-1, tam_bloque); + fprintf(stderr, "Notas : Tipo=%d Tam Bloque = %d\n", tipo_nota-1, bloque_nota); +#endif + tmp->fp_texto = emufs_crear("notas", tipo_nota-1, bloque_nota, 100); for (node=inicio ; node ; node = node->next) { if (node->type == XML_ELEMENT_NODE) { if (strcmp(node->name, "FACTURA") == 0) { @@ -868,3 +876,45 @@ void fact_reformatear(int tipo, int tam_bloque, int tam_reg, int nota_tipo, int PERR("==== TERMINE ====\n"); } +int fact_exportar_xml(const char *filename) +{ + int j; + t_Reg_Factura *nodo; + t_Factura *fact; + EMUFS_REG_ID id, id1; + FILE *fp; + + if (lst_facturas->primero == NULL) return 0; + + nodo = lst_facturas->primero; + + if (!(fp = fopen(filename, "wt"))) return 0; + + fprintf(fp, "\n"); + fprintf(fp, "\n"); + while (nodo) { + fact = fact_buscar(lst_facturas, nodo->numero, &id, &id1); + fprintf(fp, "\tnumero); + fprintf(fp, "FechaEmisión=\"%s\" ", fact->emision); + fprintf(fp, "FechaVto=\"%s\" ", fact->vencimiento); + fprintf(fp, "NroRemito=\"%08d\" ", fact->numero_remito); + fprintf(fp, "FP=\"%s\" ", fact->fp); + fprintf(fp, "Estado=\"%s\" ", fact->estado); + fprintf(fp, "NroCheque=\"%s\" ", fact->cheque); + fprintf(fp, "PorcDoI=\"%.2f\" ", fact->procdoi); + fprintf(fp, "NroCtaCte=\"%s\" ", fact->ctacte); + fprintf(fp, ">\n"); + fprintf(fp, "\t\t%s\n", fact->nota); + for(j=0; jcant_items; j++) { + if (fact->items[j].numero != 0) + fprintf(fp, "\t\t\n", fact->items[j].numero, fact->items[j].cv, fact->items[j].pvu); + } + fprintf(fp, "\t\n"); + nodo = nodo->sig; + } + fprintf(fp, "\t\n"); + + fclose(fp); + return 1; +} +