import ws.*;

public class p_EditProductB
{
  public WTableList Request(WServer oServer, WParamList oParamList)
  { 
    int rc;
    WTableList oTableList, oTableListRun;
    String     szProID, szName, szDesc, szTypeID, szMakeID, szCountryID, szPrice, szNote, szDel, szFileName;
    WParamList oParamListRun;
    WTable     oTableRun;
    WFile      oFile;
    WUtil      oUtil;

    oTableList    = new WTableList(oServer);
    oTableListRun = new WTableList(oServer);
    oParamListRun = new WParamList(oServer);
    oTableRun     = new WTable(oServer);
    oFile         = new WFile(oServer);
    oUtil         = new WUtil();

    // Params
    szProID     = oParamList.GetParam(0);
    szName      = oParamList.GetParam(1);
    szDesc      = oParamList.GetParam(2);
    szTypeID    = oParamList.GetParam(3);
    szMakeID    = oParamList.GetParam(4);
    szCountryID = oParamList.GetParam(5);
    szPrice     = oParamList.GetParam(6);
    szNote      = oParamList.GetParam(7);
    szDel       = oParamList.GetParam(8);


    // Edit
    oParamListRun.Clean();
    oParamListRun.CreateParam(szProID);
    oParamListRun.CreateParam(oUtil.CheckStr(szName));
    oParamListRun.CreateParam(oUtil.CheckStr(szDesc));
    oParamListRun.CreateParam(szTypeID);
    oParamListRun.CreateParam(szMakeID);
    oParamListRun.CreateParam(szCountryID);
    oParamListRun.CreateParam(oUtil.CheckDouble(szPrice));
    oParamListRun.CreateParam(oUtil.CheckStr(szNote));
    rc = oServer.Request("p_EditProduct", oParamListRun, oTableListRun);
    if (rc != 0)
      return oTableListRun;

    // DelPic
    if (szDel.compareToIgnoreCase("on") == 0) 
    {
      szFileName = szProID + ".jpg";
      oFile.DeleteFile("Demo",szFileName);
      szFileName = szProID + "w.jpg";
      oFile.DeleteFile("Demo",szFileName);
    }
    szFileName = szProID + "tmp.jpg";
    oFile.DeleteFile("Demo",szFileName);

    // Upload
    oParamListRun.Clean();
    szFileName = szProID + "tmp";
    oParamListRun.CreateParam(szFileName);
    oFile.Upload("Demo", oParamListRun);

    // Scale
    oParamListRun.Clean();
    oParamListRun.CreateParam(szProID);
    rc = oServer.Request("p_ScaleProduct", oParamListRun, oTableListRun);
    if (rc != 0)
      return oTableListRun;

    // 
    oParamListRun.Clean();
    oParamListRun.CreateParam("0");
    rc = oServer.Request("p_GetProductsB", oParamListRun, oTableListRun);
    if (rc != 0)
      return oTableListRun;      
    oTableListRun.GetTable(0, oTableRun);
    oTableList.AddTable(oTableRun);       // Table 0
    oTableListRun.GetTable(1, oTableRun);
    oTableList.AddTable(oTableRun);       // Table 1

    return oTableList; 
  }
}
