package cc.glsn.v15.housefund; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.sql.ResultSet; import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Scanner; import java.util.StringTokenizer; import cc.glsn.v15.SQLConnection; public class DataImport { /** * @param args * @throws FileNotFoundException * @throws SQLException * @throws ParseException */ public static void main(String[] args) throws FileNotFoundException, SQLException, ParseException { //new DataImport(); } public DataImport() throws FileNotFoundException, SQLException, ParseException { ArrayList Names=new ArrayList(); Names.add("alex"); Names.add("allen"); Names.add("andrew"); Names.add("joe"); Names.add("jeff"); Names.add("paul"); SQLConnection SC=Globals.getSQL(); SimpleDateFormat sdf=new SimpleDateFormat("d-MMM-yyyy"); SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd"); if (1==1) { File F=new File("C:/clash/cc/glsn/housefund/import-expense.txt"); Scanner Scan=new Scanner(new FileInputStream(F)); while(Scan.hasNextLine()) { StringTokenizer stok=new StringTokenizer(Scan.nextLine(),"\t"); String title=stok.nextToken(); String catagory=stok.nextToken(); String datestr=stok.nextToken(); Date date=sdf.parse(datestr); double total=-1.0*parseDollarStr(stok.nextToken()); String hitbank=stok.nextToken(); ArrayList Amts=new ArrayList(); for(int i=0; i<6; i++) { String ss=""; while (!ss.contains("$")) { ss=stok.nextToken(); } Amts.add(parseDollarStr(ss)*-1.0); } System.out.println(title + " " + total + " " + Amts); { int stat=0; int th=0; double stated=parseDollarStr(hitbank); if (stated==0.0) stat=3; if (stated==1.0) stat=2; if (catagory.equals("Rent")) th=1; String state="insert into transaction (date,amount,title,catagory,status,totalhidden) values ('" + sdf2.format(date) + "'," + total + ",'" + title +"','" + catagory + "'," + stat + "," + th+ ")"; System.out.println(state); SC.doStatement( state ); } ResultSet R=SC.doSingleQuery("select * from transaction order by id desc limit 1"); R.first(); int TransID=R.getInt("id"); for(int i=0; i<6; i++) { if (Amts.get(i)!=0.0) { String statement="insert into distro (transid,person,value) values (" + TransID + ",'" + Names.get(i) + "'," + Amts.get(i) + ")"; System.out.println(statement); SC.doStatement(statement); } } } } for(String person : Names) { File PF=new File("C:/clash/cc/glsn/housefund/import-" + person + ".txt"); Scanner Scan=new Scanner(new FileInputStream(PF)); while(Scan.hasNextLine()) { StringTokenizer stok=new StringTokenizer(Scan.nextLine(),"\t"); double amt=parseDollarStr(stok.nextToken()); String datestr=stok.nextToken(); Date date=sdf.parse(datestr); String note=stok.nextToken(); note=note.replace("'",""); double dstat=parseDollarStr(stok.nextToken()); int status=0; if (dstat==0.0) status=3; if (dstat==1.0) status=2; //System.out.println(person + ": " + amt + " " + note + " " + status); { String statement="insert into transaction (date,amount,title,catagory,status,totalhidden) values ('" + sdf2.format(date) + "'," + amt + ",'" + note + "','Deposit'," + status + ",0)"; System.out.println(statement); SC.doStatement(statement); } ResultSet R=SC.doSingleQuery("select * from transaction order by id desc limit 1"); R.first(); int TransID=R.getInt("id"); { String statement="insert into distro (transid,person,value) values (" + TransID + ",'" + person + "'," + amt + ")"; System.out.println(statement); SC.doStatement(statement); } } } } double parseDollarStr(String str) { str=str.replace("$",""); double mult=1.0; if (str.contains("(")) mult=-1.0; { char Q=40; StringBuilder SB=new StringBuilder(); SB.append(Q); str=str.replace(SB.toString(),""); } { char Q=41; StringBuilder SB=new StringBuilder(); SB.append(Q); str=str.replace(SB.toString(),""); } str=str.replace(" ",""); str=str.replace(",",""); //System.out.println("." + str +"."); if (str.equals("-")) return 0.0; return new Double(str).doubleValue()*mult; } }