/*
* Servlet.java
*
* Created on August 9, 2012, 5:38 PM
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.lang.*;
import java.util.*;
import java.util.regex.*;
/**
*
* @author PETER STARR
* @version
*/
public class StartServlet extends HttpServlet {
/** Initializes the servlet.
*/
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
/** Destroys the servlet
*/
public void destroy() {
}
/** Processes requests for both HTTP GET and POST methods.
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out.println("");
HttpSession LedSession = request.getSession(true);
if (LedSession.getAttribute("LedSessionID")==null) {
out.println(LedMethods.TimeOut());
out.close();
}
Pattern ptrn = Pattern.compile(":");
int j,i, FormPtr, DBOK, ptr, isfy, JnlCtr;
DBOK=1;
String x,ledname,ledfy,lastfy,ledperd,ledtaxid,ledfystruct,HiCatByClass,FileName,PerdEndDate,FormFieldName,GotNewJnlData, Listln;
String JnlCode, JnlDefFldName, JnlDef, WkServletName, ErrMsg, TableName, SQLStmt, NewJnlSetError, SelectPerds, DataPath;
String PathDelim, FormFieldValue, RepeatDay;
String origfy = (String)LedSession.getAttribute("ledfy");
String LedInfoFileName = (String)LedSession.getAttribute("LedInfoFileName");
//ledid=(String)LedSession.getAttribute("ledid"); //------SHOULD NOT BE PASSED ANY MORE IN "INDEX.HTML ANYMORE
//-------------------------------------------------------LED ID WAS EMBEDDED IN LEDPARMS.JAVA -----
RepeatDay="";
ErrMsg="";
Listln="";
GotNewJnlData="N";
NewJnlSetError="`";
String FN[] = new String[1];
String FV[] = new String[1];
String[][] NewJnlData = new String[7][75];
for (i = 0; i < NewJnlData[0].length; i++) { //----Initialize NewJnlData array------
for (j = 0; j < NewJnlData.length; j++) {
NewJnlData[j][i]="";
}
}
List jnldescList = new ArrayList();
List jnldefList = new ArrayList();
List wkList = new ArrayList();
List HTMLList = new ArrayList();
List JnlList = new ArrayList();
List EditMenuHTML=new ArrayList();
List BankList=new ArrayList();
LedSession.setAttribute("JnlList",JnlList);
x="";
String LedInfoFieldNames[] = (String[])LedSession.getAttribute("LedInfoFieldNames");
String LedInfoFieldValues[] = new String[LedInfoFieldNames.length];
Enumeration paramNames = request.getParameterNames(); //Build Lists of form field names and values------
while(paramNames.hasMoreElements()) {
FormFieldName=(String)paramNames.nextElement();
FormFieldValue = request.getParameterValues(FormFieldName)[0];
ptr=MethLib.locate(LedInfoFieldNames, FormFieldName);
LedInfoFieldValues[ptr]=FormFieldValue;
}
DataPath = LedParms.getDataPath();
PathDelim=(String)LedSession.getAttribute("PathDelim");
ledfy=MethLib.GetFldValue("fy", LedInfoFieldNames, LedInfoFieldValues); //---get fy from Form
//----Verify existance of Data Base Tramsaction Table--------
TableName=LedMethods.bldtrntblname("",ledfy);
x=LedSQL.VerifyTable(TableName);
if (!(x.equals("OK"))) {
out.println("
Data Base Transaction Table for Fiscal Year " + ledfy + " does not exist
");
DBOK=0;
}
//----Verify existance of Data Base Ledger Table--------
TableName=LedMethods.bldledtblname("", ledfy);
x=LedSQL.VerifyTable(TableName);
if (!(x.equals("OK"))) {
out.println("
Data Base Ledger Table for Fiscal Year " + ledfy + " does not exist.
");
DBOK=0;
}
if (DBOK==1) {
//----Update Led Info Text File-------------
try {
PrintStream LedInfoData = MethLib.create(DataPath + LedInfoFileName);
for (i = 0; i < LedInfoFieldNames.length; i++) {
LedInfoData.println(LedInfoFieldNames[i] + "|" + LedInfoFieldValues[i]);
}
LedInfoData.close();
}
catch (FileNotFoundException e) {
out.println("Cannot create " + DataPath + LedInfoFileName);
}
}
//-------------------------------------------------------------
ledname=MethLib.GetFldValue("name", LedInfoFieldNames, LedInfoFieldValues);
i = -1+Integer.parseInt(ledfy);
lastfy=MethLib.convertInteger(i);
ledtaxid=MethLib.GetFldValue("taxid", LedInfoFieldNames, LedInfoFieldValues);
ledperd=MethLib.GetFldValue("perd", LedInfoFieldNames, LedInfoFieldValues);
ledfystruct=MethLib.GetFldValue("fystruct", LedInfoFieldNames, LedInfoFieldValues);
SelectPerds=MethLib.SelectOption(ledfystruct, ledperd);
HiCatByClass=MethLib.GetFldValue("classes", LedInfoFieldNames, LedInfoFieldValues);
JnlCtr=1;
ptr=-1;
//-----Build jnldescList AND jnldefs arrrays from LedInfo ArraYS---------------------------
while (ptr==-1){
JnlCode = MethLib.convertInteger(JnlCtr);
JnlDefFldName=JnlCode+"jdesc";
JnlDef=JnlCode+":";
x=MethLib.GetFldValue(JnlDefFldName, LedInfoFieldNames, LedInfoFieldValues);
if (x==null) {
x="";
}
ptr=x.indexOf("Invalid"); //----Invalid Field Name means the end-------
if (ptr>-1) {
break;
}
jnldescList.add(x);
x=JnlCode+"sign";
x=MethLib.GetFldValue(x, LedInfoFieldNames, LedInfoFieldValues);
JnlDef=JnlDef+x+":";
x=JnlCode+"post";
x=MethLib.GetFldValue(x, LedInfoFieldNames, LedInfoFieldValues);
JnlDef=JnlDef+x;
jnldefList.add(JnlDef);
JnlCtr=JnlCtr+1;
}
String jnldefs[] = new String[jnldefList.size()];
jnldefList.toArray(jnldefs);
String JnlDescs[] = new String[jnldescList.size()];
jnldescList.toArray(JnlDescs);
/*
jnldefs[0]="P:"+MethLib.GetFldValue("psign", LedInfoFieldNames, LedInfoFieldValues)+":"+MethLib.GetFldValue("ppost", LedInfoFieldNames, LedInfoFieldValues);
jnldefs[1]="R:"+MethLib.GetFldValue("rsign", LedInfoFieldNames, LedInfoFieldValues)+":"+MethLib.GetFldValue("rpost", LedInfoFieldNames, LedInfoFieldValues);
jnldefs[2]="D:"+MethLib.GetFldValue("dsign", LedInfoFieldNames, LedInfoFieldValues)+":"+MethLib.GetFldValue("dpost", LedInfoFieldNames, LedInfoFieldValues);
jnldefs[3]="J:"+MethLib.GetFldValue("jsign", LedInfoFieldNames, LedInfoFieldValues)+":"+MethLib.GetFldValue("jpost", LedInfoFieldNames, LedInfoFieldValues);
*/
LedSession.setAttribute("JnlDescs", JnlDescs);
LedSession.setAttribute("ledname", ledname);
LedSession.setAttribute("ledfy", ledfy);
LedSession.setAttribute("ledtaxid", ledtaxid);
LedSession.setAttribute("ledperd", ledperd);
LedSession.setAttribute("ledfystruct", ledfystruct);
LedSession.setAttribute("HiCatByClass", HiCatByClass);
LedSession.setAttribute("jnldefs", jnldefs);
LedSession.setAttribute("NewJnlData", NewJnlData);
LedSession.setAttribute("NewJnlSetError", NewJnlSetError);
LedSession.setAttribute("GotNewJnlData", GotNewJnlData);
LedSession.setAttribute("RepeatDay", RepeatDay);
LedSession.setAttribute("BankList", BankList);
x="AN:AM:DS:RF:DY";
String AddJnlFCodes[] = ptrn.split(x); //----Form Field Codes for Screen to add journal entries---------
LedSession.setAttribute("AddJnlFCodes", AddJnlFCodes);
x="ACCTNO:AMOUNT:DESCRIPTION:SOURCE:DAY"; //----Translate New Jnl Form Field Codes to Jnl Field Names------
String[] FcodeToFnames= ptrn.split(x);
LedSession.setAttribute("FcodeToFnames",FcodeToFnames );
x=LedMethods.PerdDate(ledfystruct, ledperd, ledfy, "");
isfy=LedMethods.isfy(ledfystruct);
String PerdDateArray[] = ptrn.split(x);
LedSession.setAttribute("PerdDateArray", PerdDateArray);
//------Month Day, Year-------------------------
PerdEndDate=PerdDateArray[0] + " " + PerdDateArray[1] + ", " + PerdDateArray[2];
PerdEndDate=PerdEndDate.toUpperCase();
//----------------Build Menu Web Page--------------------------------------------
x=LedMethods.BldListFromTextFile("menu.txt",wkList);
if (!(x.equals("OK"))) {
DBOK=0;
ErrMsg=x;
}
if (DBOK==1) {
out.println("
LEDGER SYSTEM MENU");
out.println(" " + ledname + " (" + ledtaxid + ")");
if (isfy==1) { //----FISCAL YEAR---
out.println(" FOR FISCAL YEAR " + lastfy + " - " + ledfy + "");
}
else { //----CALENDAR YEAR---
out.println(" FOR CALENDAR YEAR " + ledfy + "");
}
out.println(" PERIOD ENDING " + PerdEndDate);
EditMenuHTML.add("
LEDGER SYSTEM MENU");
EditMenuHTML.add(" " + ledname + " (" + ledtaxid + ")");
if (isfy==1) { //----FISCAL YEAR---
EditMenuHTML.add(" FOR FISCAL YEAR " + lastfy + " - " + ledfy + "");
}
else { //----CALENDAR YEAR---
EditMenuHTML.add(" FOR CALENDAR YEAR " + ledfy + "");
}
//------------------------------------------------------------------------
EditMenuHTML.add(" PERIOD ENDING " + PerdEndDate);
FN[0]="endday";
FV[0]=PerdDateArray[1];
//-----------Verify Existance of tables for previous fiscaL YEAR------------------------
TableName=LedMethods.bldtrntblname("", ledfy);
x=LedSQL.VerifyTable(TableName);
if (!(x.equals("OK"))) {
out.println("
Transaction Table for " + lastfy + " does not exist
");
EditMenuHTML.add("
Transaction Table for " + lastfy + " does not exist
");
}
TableName=LedMethods.bldledtblname("", ledfy);
x=LedSQL.VerifyTable(TableName);
if (!(x.equals("OK"))) {
out.println("