using System;
using CoreSavingLibrary;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using DataLibrary;
using CoreSavingLibrary.WcfCommon;
using CoreSavingLibrary.WcfKeeping;
using Sybase.DataWindow;
using System.IO;
using System.Web.Services.Protocols;
namespace Saving.Applications.keeping
{
public partial class w_sheet_kp_impexptxt : PageWebSheet, WebSheet
{
private String ls_pbl = "egat_kp_impexpdisk.pbl";
protected String postRetrieve;
protected String postExport;
protected String postImport;
private DwThDate tDw_main;
private void JspostNewClear()
{
try
{
dw_main.Reset();
dw_data.Reset();
dw_main.InsertRow(0);
dw_main.SetItemString(1, "year", Convert.ToString(state.SsWorkDate.Year + 543).Trim());
dw_main.SetItemString(1, "month", Right( "0" + state.SsWorkDate.Month.ToString().Trim(), 2));
dw_main.SetItemDateTime(1, "operate_date", state.SsWorkDate);
tDw_main.Eng2ThaiAllRow();
}
catch { }
}
public void InitJsPostBack()
{
postRetrieve = WebUtil.JsPostBack(this, "postRetrieve");
postExport = WebUtil.JsPostBack(this, "postExport");
postImport = WebUtil.JsPostBack(this, "postImport");
tDw_main = new DwThDate(dw_main, this);
tDw_main.Add("operate_date", "operate_tdate");
}
public void WebSheetLoadBegin()
{
if (!IsPostBack)
{
JspostNewClear();
}
else
{
this.RestoreContextDw(dw_main);
this.RestoreContextDw(dw_data);
}
}
public void CheckJsPostBack(string eventArg)
{
if (eventArg == "postRetrieve")
{
JsPostRetrieve();
}
else if (eventArg == "postExport")
{
JsPostExport();
}
else if (eventArg == "postImport")
{
JsPostImport();
}
}
public void SaveWebSheet()
{
}
public void WebSheetLoadEnd()
{
try
{
DwUtil.RetrieveDDDW(dw_main, "membgroup_code", ls_pbl, null);
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex);
}
dw_main.SaveDataCache();
dw_data.SaveDataCache();
}
private void JsPostRetrieve()
{
try
{
dw_data.DataWindowObject = "d_kp_impexp_data";
dw_data.Reset();
string ls_year = dw_main.GetItemString(1, "year").Trim();
string ls_month = dw_main.GetItemString(1, "month").Trim();
string ls_period = ls_year + ls_month;
string ls_mbgroup = dw_main.GetItemString(1, "membgroup_code").Trim();
DwUtil.RetrieveDataWindow(dw_data, ls_pbl, tDw_main, ls_period, ls_mbgroup);
}
catch { }
}
private void JsPostExport()
{
try
{
string ls_year = dw_main.GetItemString(1, "year").Trim();
string ls_month = dw_main.GetItemString(1, "month").Trim();
string ls_period = ls_year + ls_month;
string ls_mbgroup = dw_main.GetItemString(1, "membgroup_code").Trim();
string ls_time = dw_main.GetItemString(1, "time_no").Trim();
DateTime ldtm_operate = dw_main.GetItemDateTime(1, "operate_date");
DataStore lds_data;
lds_data = new DataStore();
lds_data.LibraryList = WebUtil.PhysicalPath + @"Saving\DataWindow\keepingmonth\" + ls_pbl;
lds_data.DataWindowObject = "d_kp_exptxt_data";
string ls_smsDesc;
decimal ldc_total = 0;
// Header
lds_data.InsertRow(0);
ls_smsDesc = "H" + ls_mbgroup + ldtm_operate.Year.ToString().Trim() + Right("0" + ldtm_operate.Month.ToString().Trim(), 2) +
Right("0" + ldtm_operate.Day.ToString().Trim(), 2) + ls_period + ls_time;
lds_data.SetItemString(1, "member_no", "HEADER00");
lds_data.SetItemString(1, "sms_desc", ls_smsDesc);
// Detail
int li_rowcount, li_row;
li_rowcount = dw_data.RowCount;
if (li_rowcount > 0)
{
string ls_memberno, ls_salaryid, ls_prename, ls_name, ls_names, ls_surname;
decimal ldc_itemPay;
for (li_row = 1; li_row <= li_rowcount; li_row++)
{
ls_smsDesc = "";
try { ls_memberno = dw_data.GetItemString(li_row, "member_no").Trim(); }
catch { ls_memberno = ""; }
try { ls_salaryid = dw_data.GetItemString(li_row, "salary_id").Trim(); }
catch { ls_salaryid = ""; }
try { ls_prename = dw_data.GetItemString(li_row, "prename_desc").Trim(); }
catch { ls_prename = ""; }
try { ls_name = dw_data.GetItemString(li_row, "memb_name").Trim(); }
catch { ls_name = ""; }
ls_names = ls_prename + ls_name;
try { ls_surname = dw_data.GetItemString(li_row, "memb_surname").Trim(); }
catch { ls_surname = ""; }
try { ldc_itemPay = dw_data.GetItemDecimal(li_row, "item_payment"); }
catch { ldc_itemPay = 0; }
ldc_total += ldc_itemPay;
lds_data.InsertRow(0);
ls_smsDesc = "D" + ls_memberno.PadRight(8, ' ') + ls_salaryid.PadRight(15, ' ') + ls_names.PadRight(60, ' ') +
ls_surname.PadRight(60, ' ') + Right( "00000000"+ ldc_itemPay.ToString("###.00").Trim(),10);
lds_data.SetItemString(li_row + 1, "member_no", ls_memberno);
lds_data.SetItemString(li_row + 1, "sms_desc", ls_smsDesc);
}
}
//Sammary
lds_data.InsertRow(0);
ls_smsDesc = "T" + Right("0000" + li_rowcount.ToString(), 5) + Right( "0000000000000"+ ldc_total.ToString("###.00"),15);
lds_data.SetItemString(li_rowcount + 2, "member_no", "SAMMARY0");
lds_data.SetItemString(li_rowcount + 2, "sms_desc", ls_smsDesc);
string ls_xml = lds_data.Describe("DataWindow.Data.XML");
ExportText(ls_xml);
}
catch { }
}
private void JsPostImport()
{
try
{
String filename = Path.GetFileName(FileUpload.PostedFile.FileName);
String save = WebUtil.PhysicalPath + "Saving\\filecommon\\" + filename + ".txt";
String err_msg = "";
// String save = "C:\\GCOOP_ALL\\EGAT\\GCOOP\\Saving\\filecommon\\Temp_Disk.txt";
FileUpload.PostedFile.SaveAs(save);
//dw_data1.Reset();
//dw_data1.ImportFile(save, FileSaveAsType.Text);
Sdt dtReceiveAmt;
decimal receive_amt = 0;
DataStore lds_data;
lds_data = new DataStore();
lds_data.LibraryList = WebUtil.PhysicalPath + @"Saving\DataWindow\keepingmonth\" + ls_pbl;
lds_data.DataWindowObject = "d_kp_imptxt_data";
lds_data.ImportFile(save, FileSaveAsType.Text);
int li_row, li_rowcount;
li_rowcount = lds_data.RowCount;
if (li_rowcount > 0)
{
string ls_mbgroup, ls_period, ls_timeno, ls_operatedate,
ls_memberno, ls_salaryid, ls_name, ls_surname,
ls_smsDesc, ls_sqlCode;
decimal ldc_itemPay, ldc_itemBal;
bool err_flag = false;
ls_mbgroup = ""; ls_period = ""; ls_timeno = ""; ls_operatedate = "";
dw_data.DataWindowObject = "d_kp_impexp_data_imp";
dw_data.Reset();
for (li_row = 1; li_row <= li_rowcount; li_row++)
{
ls_smsDesc = lds_data.GetItemString(li_row, "sms_desc").Trim();
if (ls_smsDesc.Substring(0, 1) == "H")
{
ls_mbgroup = ls_smsDesc.Substring(1, 8);
ls_operatedate = ls_smsDesc.Substring(9, 8);
ls_period = ls_smsDesc.Substring(17, 6);
ls_timeno = ls_smsDesc.Substring(23, 1);
ls_sqlCode = "Delete From KPTEMPSMS WHERE MEMBGROUP_CODE ='" + ls_mbgroup + "' and RECV_PERIOD = '" + ls_period + "' ";
WebUtil.Query(ls_sqlCode);
}
else if (ls_smsDesc.Substring(0, 1) == "D")
{
int length_str = ls_smsDesc.ToString().Length;
if (length_str != 164)
{
err_msg = err_msg + "Format ผิดพลาด : " + ls_smsDesc + "
";
err_flag = true;
continue;
}
ls_memberno = ls_smsDesc.Substring(1, 8);
ls_salaryid = ls_smsDesc.Substring(9, 15);
ls_name = ls_smsDesc.Substring(24, 60);
ls_surname = ls_smsDesc.Substring(84, 60);
ldc_itemPay = Convert.ToDecimal(ls_smsDesc.Substring(144, 10));
ldc_itemBal = Convert.ToDecimal(ls_smsDesc.Substring(154, 10));
ls_sqlCode = "INSERT INTO KPTEMPSMS( MEMBER_NO, SALARY_ID, RECV_PERIOD, TIME_NO, " +
"MEMBGROUP_CODE, OPERATE_DATE, MEMB_NAME, MEMB_SURNAME, ITEM_PAYMENT, ITEM_BALANCE ) " +
"VALUES ( '" + ls_memberno + "','" + ls_salaryid + "','" + ls_period + "','" + ls_timeno +
"','" + ls_mbgroup + "', to_date('" + ls_operatedate + "','yyyymmdd'),'" + ls_name +
"','" + ls_surname + "'," + ldc_itemPay.ToString().Trim() + "," +
ldc_itemBal.ToString().Trim() + ")";
WebUtil.Query(ls_sqlCode);
string ls_sql_kptemp = "select receive_amt from kptempreceive where member_no = '" + ls_memberno + "' and recv_period = '" + ls_period + "'";
dtReceiveAmt = WebUtil.QuerySdt(ls_sql_kptemp);
if (dtReceiveAmt.Next())
{
try
{
receive_amt = dtReceiveAmt.GetDecimal("receive_amt");
//ldc_itemBal = Convert.ToDecimal(ls_smsDesc.Substring(154, 10));
if (ldc_itemBal != receive_amt)
{
string SqlUpdate = "update kptempreceive set keeping_status = -9 where member_no = '" + ls_memberno + "' and recv_period = '" + ls_period + "'";
WebUtil.Query(SqlUpdate);
string SqlUpdate1 = "update kptempreceivedet set keepitem_status = -9 where member_no = '" + ls_memberno + "' and recv_period = '" + ls_period + "'";
WebUtil.Query(SqlUpdate1);
}
else
{
string SqlUpdate = "update kptempreceive set keeping_status = 1 where member_no = '" + ls_memberno + "' and recv_period = '" + ls_period + "'";
WebUtil.Query(SqlUpdate);
string SqlUpdate1 = "update kptempreceivedet set keeping_status = 1 where member_no = '" + ls_memberno + "' and recv_period = '" + ls_period + "'";
WebUtil.Query(SqlUpdate1);
}
}
catch { }
}
dw_data.InsertRow(0);
dw_data.SetItemString(dw_data.RowCount, "member_no", ls_memberno);
dw_data.SetItemString(dw_data.RowCount, "memb_name", ls_name);
dw_data.SetItemString(dw_data.RowCount, "memb_surname", ls_surname);
dw_data.SetItemDecimal(dw_data.RowCount, "item_payment", ldc_itemPay);
dw_data.SetItemDecimal(dw_data.RowCount, "itembal_amt", ldc_itemBal);
}
else
{
}
}
dw_data.SetSort("member_no ASC");
dw_data.Sort();
if (err_flag == false ) LtServerMessage.Text = WebUtil.CompleteMessage("นำเข้าข้อมูลเรียบร้อย");
else LtServerMessage.Text = WebUtil.ErrorMessage(err_msg);
}
}
catch(Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage("Import Error : " + ex);
}
}
#region PersonalFunction
private void ExportText(String as_xmlData)
{
try
{
DataStore lds_data;
str_rptexcel astr_rptexcel = new str_rptexcel();
astr_rptexcel.as_xmldw = as_xmlData;
if (astr_rptexcel.as_xmldw != "")
{
String xml_detail = astr_rptexcel.as_xmldw;
String ls_filename = "SMS_.txt";
String ls_path = "C:\\TEMP\\" + ls_filename;
lds_data = new DataStore();
lds_data.LibraryList = WebUtil.PhysicalPath + @"Saving\DataWindow\keepingmonth\" + ls_pbl;
lds_data.DataWindowObject = "d_kp_exptxt_data";
lds_data.ImportString(xml_detail, FileSaveAsType.Xml);
int li_rowcount = lds_data.RowCount;
int li_row;
String ls_sms = "";
StreamWriter writer = new StreamWriter(ls_path, false, System.Text.Encoding.GetEncoding(874));
for (li_row = 1; li_row <= li_rowcount; li_row++)
{
try
{
ls_sms = lds_data.GetItemString(li_row, "sms_desc").Trim();
}
catch { }
writer.WriteLine(ls_sms.Replace(Environment.NewLine, "
"));
}
writer.Close();
JspostNewClear();
string fName = @"C:\\TEMP\\" + ls_filename;
FileInfo fi = new FileInfo(fName);
long sz = fi.Length;
Response.ClearContent();
Response.ContentType = MimeType(Path.GetExtension(fName));
Response.AddHeader("Content-Disposition", string.Format("attachment; filename = {0}", System.IO.Path.GetFileName(fName)));
Response.AddHeader("Content-Length", sz.ToString("F0"));
Response.TransmitFile(fName);
Response.End();
LtServerMessage.Text = WebUtil.CompleteMessage("บันทึกข้อมูลสำเร็จ");
}
}
catch (Exception ex)
{ LtServerMessage.Text = WebUtil.ErrorMessage(ex); }
}
public static string MimeType(string Extension)
{
string mime = "application/octetstream";
if (string.IsNullOrEmpty(Extension))
return mime;
string ext = Extension.ToLower();
Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (rk != null && rk.GetValue("Content Type") != null)
mime = rk.GetValue("Content Type").ToString();
return mime;
}
private String Right(String as_string, int ai_length)
{
String ls_return;
if (ai_length <= as_string.Length)
{
int li_len = as_string.Length;
ls_return = as_string.Substring(li_len - ai_length, ai_length);
}
else ls_return = as_string;
return ls_return;
}
//private String FillString(string as_string, int ai_length)
//{
// string ls_return;
// int li_lenDiff;
// if (as_string.Length < ai_length)
// {
// li_lenDiff = ai_length - as_string.Length;
// }
// else ls_return = as_string;
// return ls_return;
//}
#endregion
}
}