#include <stdio.h>
#include <string.h>
#include <pwd.h>


#define  GOOD_FILE   "/home/tante/tesh/tesh.new.goods"
#define  USER_FILE   "/home/tante/tesh/tesh.new.user"

struct us
{
	char name[80];
	char passwd[13];
	long account;
	long limit;
	long dayaccount;
	long last_day;
	long has_paid;
};
struct gs
{
	char name[80];
	long price;
	int  quantity;
};
struct us user;
struct gs good;
FILE *uf, *gf, *ksql, *asql;


float to_euro(float dm)
{
  return dm/1.95583;
}



main()
{
  int i;
  struct passwd *pw;
  char vorn[50],nachn[50], email[100], *s;

  ksql=fopen("kunden.sql", "w");
  asql=fopen("artikel.sql", "w");
  
  uf=fopen(USER_FILE, "r+");
  gf=fopen(GOOD_FILE, "r+");

  while(fread(&user, sizeof(struct us), 1, uf))
    {
      strcpy(nachn,"");
      strcpy(vorn,"");
      strcpy(email,"");
      
      pw=getpwnam(user.name);
      if (pw!=NULL)
	{
	  printf("Assuming %s is %s\n", user.name, pw->pw_gecos);
	  s=strrchr(pw->pw_gecos, ' ');
	  strcpy(nachn, s+1); *s=0;
	  strcpy(vorn, pw->pw_gecos);
	  strcpy(email, user.name);
	  strcat(email, "@wjpserver.cs.uni-sb.de");
	  user.dayaccount=pw->pw_uid;
	}
      else
	user.dayaccount=(i++);
      fprintf(ksql,"insert into kunden values "
	     "('%s', '%s', '%s', %d, '%s', '%s', 'now', 'now', 'f', %d);\n",
	     vorn, nachn, user.name, user.dayaccount, email, user.passwd, (int)(100*to_euro(((float)user.account)*0.01)));
    }

  i=1;
  
  while (fread(&good, sizeof(struct gs), 1, gf))
    {
      fprintf(asql,"insert into artikel values ('%s', %d, 0, %d);\n",
	      good.name, i++, (int)(100*to_euro(((float)good.price)*0.01)));
    }
  
}

  
