using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using DataLibrary;
using System.Data;
using System.Diagnostics;
using System.Security;
using System.Net.Mail;
using System.Text;
using System.Net;
using System.Collections.Specialized;
using CoreSavingLibrary;
namespace Saving.Applications.admin
{
public partial class w_sheet_sms : PageWebSheet, WebSheet
{
public string SMS_LON_STAT_DATA = "", SMS_DEP_STAT_DATA = "";
public void WebSheetLoadBegin()
{
if (!IsPostBack)
{
String datasource = state.SsConnectionString;// "Data Source=rac/gcoop;Persist Security Info=True;User ID=ifsct;Password=ifsct;Unicode=True;";
datasource = (Request["d"] != null) ? Request["d"] : datasource;
if (this.TbConnectionString.Text == null || TbConnectionString.Text.Trim() == "")
{
TbConnectionString.Text = datasource;
}
this.Txb_send_date.Text = DateTime.Now.ToString("yyyyMMdd", WebUtil.EN);
LbServerMessage.Text = "";
GridView1.DataSource = null;
GridView1.DataBind();
GridView1.DataSource = null;
GridView1.DataBind();
string sql = "";
try
{
sql = @"CREATE TABLE SMSCONFIG (
SENDER_NUMBER VARCHAR2(20) NOT NULL
,SENDER_CODE VARCHAR2(30) NOT NULL
, PHONENETWORK VARCHAR2(30) NOT NULL
, ENABLE_FLAG NUMBER(1,0) DEFAULT 1 NOT NULL
, USER_NAME VARCHAR2(20) NOT NULL
, USER_PWD VARCHAR2(20) NOT NULL
, URL VARCHAR2(150) NULL
, URL_PARAMS VARCHAR2(255) NULL) ";
WebUtil.Query(sql);
sql = @"ALTER TABLE SMSCONFIG ADD ( CONSTRAINT smsconfig_pk PRIMARY KEY ( SENDER_NUMBER,SENDER_CODE, PHONENETWORK ))";
WebUtil.Query(sql);
sql = @"insert into SMSCONFIG (SENDER_NUMBER,SENDER_CODE, PHONENETWORK, ENABLE_FLAG, USER_NAME, USER_PWD, URL, URL_PARAMS)
values('TEST','COOP','DTAC','1','ISOCARE','PASSWORD','http://corpsms.dtac.co.th/servlet/com.iess.socket.SmsCorplink','&RefNo={0}&Sender={1}&Msn={2}&Sno={3}&MsgType=H&Msg={4}&Encoding=25&User={5}&Password={6}')";
WebUtil.Query(sql);
}
catch { }
try
{
sql = @"CREATE TABLE SMSPATTERNCONFIG (
SMS_TRANS_CODE VARCHAR2(10) NOT NULL
, SMS_TRANS_DESC VARCHAR2(50) NOT NULL
, SMS_PATTERN VARCHAR2(500) NOT NULL
, FROM_SYSTEM VARCHAR2(500) NOT NULL
, ENABLE_FLAG NUMBER(1,0) DEFAULT 1 NOT NULL
, SMS_TRANS_SQL VARCHAR2(500) NOT NULL
)";
WebUtil.Query(sql);
sql = @"ALTER TABLE SMSPATTERNCONFIG ADD ( CONSTRAINT smspatternconfig_pk PRIMARY KEY ( SMS_TRANS_CODE, FROM_SYSTEM ))";
WebUtil.Query(sql);
}
catch { }
try
{
sql = @"insert into SMSPATTERNCONFIG (SMS_TRANS_CODE,SMS_TRANS_DESC, SMS_PATTERN, FROM_SYSTEM, ENABLE_FLAG , SMS_TRANS_SQL)
values('L01','อนุมัติจ่ายเงินกู้','''อนุมัติจ่ายเงินกู้ ''||loanapprove_amt_str||'' บ.รับสุทธิ ''||payoutnet_amt_str||'' บ.วันที่ ''||slip_date_str','LON','1','SMS_PATTERN_L01 where to_char(send_date,''yyyyMMdd'')=?')";
WebUtil.Query(sql);
sql = @"insert into SMSPATTERNCONFIG (SMS_TRANS_CODE,SMS_TRANS_DESC, SMS_PATTERN, FROM_SYSTEM, ENABLE_FLAG , SMS_TRANS_SQL)
values('L02','สัญญาเงินกู้','''สัญญาเงินกู้ ''||loancontract_no||'' ได้รับการอนุมัติแล้ว ''||loanapprove_amt_str||'' บ.วันที่ ''||loanapprove_date_str','LON','1','SMS_PATTERN_L02 where to_char(send_date,''yyyyMMdd'')=?')";
WebUtil.Query(sql);
sql = @"insert into SMSPATTERNCONFIG (SMS_TRANS_CODE,SMS_TRANS_DESC, SMS_PATTERN, FROM_SYSTEM, ENABLE_FLAG , SMS_TRANS_SQL)
values('D01','รับฝากเงิน','''รับฝากเงิน ''||deptslip_amt_str||'' บ.เข้าบัญชีเลขที่ ''||deptaccount_no||'' วันที่ ''||deptslip_date_str','DEP','1','SMS_PATTERN_D01 where to_char(send_date,''yyyyMMdd'')=?')";
WebUtil.Query(sql);
sql = @"insert into SMSPATTERNCONFIG (SMS_TRANS_CODE,SMS_TRANS_DESC, SMS_PATTERN, FROM_SYSTEM, ENABLE_FLAG , SMS_TRANS_SQL)
values('D02','ถอนเงินฝาก','''ถอนเงินฝาก ''||deptslip_amt_str||'' บ.บัญชีเลขที่ ''||deptaccount_no||'' วันที่ ''||deptslip_date_str','DEP','1','SMS_PATTERN_D02 where to_char(send_date,''yyyyMMdd'')=?')";
WebUtil.Query(sql);
}
catch { }
try
{
sql = @"CREATE TABLE SMSTRANSACTION (
REF_NO VARCHAR2(100) NOT NULL
, SEQ_NO NUMBER(6,0) NOT NULL
, MEMBER_NO VARCHAR2(10) NOT NULL
, TELEPHONE_NUMBER VARCHAR2(20) NOT NULL
, MESSAGE_TEXT VARCHAR2(255) NOT NULL
, CREATE_DATE DATE NOT NULL
, SEND_DATE DATE NOT NULL
, MESSAGE_STATUS NUMBER(1,0) DEFAULT 1 NOT NULL
, FROM_SYSTEM VARCHAR2(10)
, SMS_TRANS_CODE VARCHAR2(10)
, POST_FLAG NUMBER(1,0) DEFAULT 1 NOT NULL) ";
WebUtil.Query(sql);
sql = @"ALTER TABLE SMSTRANSACTION ADD ( CONSTRAINT SMSTRANSACTION_PK PRIMARY KEY ( REF_NO, SEQ_NO ))";
WebUtil.Query(sql);
}
catch { }
try
{
sql = @"ALTER TABLE SMSTRANSACTION ADD(SEND_STATUS_MSG VARCHAR2(255)) ";
WebUtil.Query(sql);
}
catch { }
try
{
sql = @"create or replace view SMS_PATTERN_L01 as
select q.* from (
select l.loancontract_no as loancontract_no
,sl.slip_date as send_date
,sl.slip_date as slip_date
,to_char(sl.slip_date,'dd/MM/')||(to_number(to_char(sl.slip_date,'yyyy'))+543) as slip_date_str
,l.member_no as member_no
,replace(NVL(m.addr_mobilephone,m.addr_phone),'-') as phone_number
,l.loanapprove_amt as loanapprove_amt,replace(to_char(l.loanapprove_amt,'999,999,990.00'),' ','') as loanapprove_amt_str
,sl.payoutnet_amt as payoutnet_amt,replace(to_char(sl.payoutnet_amt,'999,999,990.00'),' ','') as payoutnet_amt_str
from slslippayout sl ,lncontmaster l ,mbmembmaster m
where
l.loancontract_no = sl.loancontract_no and
m.member_no = l.member_no and
sl.payoutnet_amt > 0 and
l.contract_status = 1
) q where q.phone_number is not null and length(q.phone_number) = 10
order by member_no asc ";
WebUtil.Query(sql);
sql = @"create or replace view SMS_PATTERN_L02 as
select q.* from (
select l.loancontract_no as loancontract_no
,l.loanapprove_date as send_date
,l.loanapprove_date as loanapprove_date
,to_char(l.loanapprove_date,'dd/MM/')||(to_number(to_char(l.loanapprove_date,'yyyy'))+543) as loanapprove_date_str
,l.member_no as member_no
,replace(NVL(m.addr_mobilephone,m.addr_phone),'-') as phone_number
,l.loanapprove_amt as loanapprove_amt,replace(to_char(l.loanapprove_amt,'999,999,990.00'),' ','') as loanapprove_amt_str
from lncontmaster l ,mbmembmaster m
where
m.member_no = l.member_no and
l.contract_status = 1
) q where q.phone_number is not null and length(q.phone_number) = 10
order by member_no asc ";
WebUtil.Query(sql);
sql = @"create or replace view SMS_PATTERN_D01 as
select q.* from (
select d.deptaccount_no
,d.deptslip_date as send_date
,d.deptslip_date as deptslip_date
,to_char(d.deptslip_date,'dd/MM/')||to_char(to_number(to_char(d.deptslip_date,'yyyy'))+543) as deptslip_date_str
,dm.member_no as member_no
,replace(NVL(m.addr_mobilephone,m.addr_phone),'-') as phone_number
,d.deptslip_amt ,replace(to_char(d.deptslip_amt,'999,999,990.00'),' ','') as deptslip_amt_str
,dc.recppaytype_desc
from dpdeptslip d , dpucfrecppaytype dc , dpdeptmaster dm ,mbmembmaster m
where
d.deptaccount_no = dm.deptaccount_no and
dc.recppaytype_code =d.recppaytype_code and
m.member_no = dm.member_no and
dc.recppaytype_flag >0
) q where q.phone_number is not null and length(q.phone_number) = 10
order by member_no asc ";
WebUtil.Query(sql);
sql = @"create or replace view SMS_PATTERN_D02 as
select q.* from (
select d.deptaccount_no
,d.deptslip_date as send_date
,d.deptslip_date as deptslip_date
,to_char(d.deptslip_date,'dd/MM/')||to_char(to_number(to_char(d.deptslip_date,'yyyy'))+543) as deptslip_date_str
,dm.member_no as member_no
,replace(NVL(m.addr_mobilephone,m.addr_phone),'-') as phone_number
,d.deptslip_amt ,replace(to_char(d.deptslip_amt,'999,999,990.00'),' ','') as deptslip_amt_str
,dc.recppaytype_desc
from dpdeptslip d , dpucfrecppaytype dc , dpdeptmaster dm ,mbmembmaster m
where
d.deptaccount_no = dm.deptaccount_no and
dc.recppaytype_code =d.recppaytype_code and
m.member_no = dm.member_no and
dc.recppaytype_flag <0
) q where q.phone_number is not null and length(q.phone_number) = 10
order by member_no asc ";
WebUtil.Query(sql);
}
catch { }
try
{
WebUtil.Query("create or replace view v_current_login as select USERNAME,application,CREATE_TIME,LAST_TRY from ssotoken order by LAST_TRY desc ");
WebUtil.Query("create or replace view v_SMSTRANSACTION_FLAG_8 as select REF_NO,SEQ_NO as SQ,MEMBER_NO as MNO,TELEPHONE_NUMBER as NO ,MESSAGE_TEXT as SMS,CREATE_DATE as C,SEND_DATE as S,MESSAGE_STATUS as MS,FROM_SYSTEM as SC,SMS_TRANS_CODE as code,POST_FLAG as flag from SMSTRANSACTION where post_flag=8 order by REF_NO ASC,SEQ_NO ASC");
WebUtil.Query("create or replace view v_SMSTRANSACTION_FLAG_0 as select REF_NO,SEQ_NO as SQ,MEMBER_NO as MNO,TELEPHONE_NUMBER as NO ,MESSAGE_TEXT as SMS,CREATE_DATE as C,SEND_DATE as S,MESSAGE_STATUS as MS,FROM_SYSTEM as SC,SMS_TRANS_CODE as code,POST_FLAG as flag from SMSTRANSACTION where post_flag=0 order by REF_NO ASC,SEQ_NO ASC");
WebUtil.Query("create or replace view v_SMSTRANSACTION_FLAG_1 as select REF_NO,SEQ_NO as SQ,MEMBER_NO as MNO,TELEPHONE_NUMBER as NO ,MESSAGE_TEXT as SMS,CREATE_DATE as C,SEND_DATE as S,MESSAGE_STATUS as MS,FROM_SYSTEM as SC,SMS_TRANS_CODE as code,POST_FLAG as flag from SMSTRANSACTION where post_flag=1 order by REF_NO ASC,SEQ_NO ASC");
WebUtil.Query("create or replace view v_SMSTRANSACTION_FLAG_F as select REF_NO,SEQ_NO as SQ,MEMBER_NO as MNO,TELEPHONE_NUMBER as NO ,MESSAGE_TEXT as SMS,CREATE_DATE as C,SEND_DATE as S,MESSAGE_STATUS as MS,FROM_SYSTEM as SC,SMS_TRANS_CODE as code,POST_FLAG as flag from SMSTRANSACTION where post_flag=-9 order by REF_NO ASC,SEQ_NO ASC");
}
catch { }
try
{
sql = @"create or replace view smstransaction_dep_sum_mmyyyy as
select CNT_01||', '||CNT_02||', '||CNT_03||', '||CNT_04||', '||CNT_05||', '||CNT_06||', '
||CNT_07||', '||CNT_08||', '||CNT_09||', '||CNT_10||', '||CNT_11||', '||CNT_12||', ' as CNT from (
select
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='01' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_01 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='02' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_02 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='03' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_03 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='04' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_04 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='05' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_05 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='06' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_06 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='07' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_07 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='08' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_08 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='09' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_09 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='10' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_10 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='11' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_11 ,
(select count(*) from smstransaction where from_system='DEP' and to_char(send_date,'mm') ='12' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_12
from dual ) ";
WebUtil.Query(sql);
sql = @"create or replace view smstransaction_lon_sum_mmyyyy as
select CNT_01||', '||CNT_02||', '||CNT_03||', '||CNT_04||', '||CNT_05||', '||CNT_06||', '
||CNT_07||', '||CNT_08||', '||CNT_09||', '||CNT_10||', '||CNT_11||', '||CNT_12||', ' as CNT from (
select
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='01' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_01 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='02' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_02 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='03' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_03 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='04' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_04 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='05' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_05 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='06' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_06 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='07' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_07 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='08' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_08 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='09' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_09 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='10' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_10 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='11' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_11 ,
(select count(*) from smstransaction where from_system='LON' and to_char(send_date,'mm') ='12' and to_char(send_date,'yyyy')= to_char(sysdate,'yyyy') ) as CNT_12
from dual ) ";
WebUtil.Query(sql);
}
catch { }
}
else
{
}
try
{
string connectionString = TbConnectionString.Text;
Sta ta = new Sta(connectionString);
string sql = "select * from smstransaction_lon_sum_mmyyyy ";
Sdt dt = ta.Query(sql);
if (dt.Next()) {
this.SMS_LON_STAT_DATA = dt.GetString("CNT");
}
sql = "select * from smstransaction_dep_sum_mmyyyy ";
dt = ta.Query(sql);
if (dt.Next())
{
this.SMS_DEP_STAT_DATA = dt.GetString("CNT");
}
ta.Close();
}
catch { }
}
public void InitJsPostBack()
{
}
public void CheckJsPostBack(string eventArg)
{
switch (eventArg)
{
case "jsSearch":
break;
}
}
public string ExecuteCmd(string Arguments, string user, string password, string domain)
{
return ExecuteCommand("cmd", Arguments, user, password, domain);
}
public string ExecuteCommand(string command, string Arguments, string user, string password, string domain)
{
string output = null;
Process p = new Process();
ProcessStartInfo s = new ProcessStartInfo();
if (domain != null || domain != "") s.Domain = domain;
if (user != null || user != "") s.UserName = user;
if (password != null || password != "")
{
s.Password = new SecureString();
char[] passwords = password.ToCharArray();
for (int i = 0; i < password.Length; i++)
{
s.Password.AppendChar(passwords[i]);
}
}
s.FileName = command;
s.UseShellExecute = false;
s.RedirectStandardOutput = true;
s.RedirectStandardError = true;
s.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
if (Arguments != null && Arguments != "") s.Arguments = "/C \"" + Arguments+"\"";
p.StartInfo = s;
p.EnableRaisingEvents = true;
try
{
p.Start();
while (!p.HasExited)
{
System.Threading.Thread.Sleep(1000);
}
//check to see what the exit code was
if (p.ExitCode != 0)
{
output = "Exitcode: " + p.ExitCode + " - Err1: " + p.StandardError + " - Executor: " + System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();
}
else
{
output = "Command Result: " + p.StandardOutput.ReadToEnd();
}
}
catch (Exception ex)
{ output += ex.Message; }
return output;
}
public void SaveWebSheet()
{
}
public void WebSheetLoadEnd()
{
}
protected void Page_Load(object sender, EventArgs e)
{
}
public static int sendGMail(string fromAddress, string fromPassword, string[] toAddress, string subject, string body)
{
//กรณีผู้ส่งเป็น gmail ต้อง Set lesssecure = on ที่ Link https://www.google.com/settings/security/lesssecureapps
return sendMail(fromAddress, fromPassword, toAddress, subject, body, "smtp.gmail.com", 587);
}
public static int sendMail(string fromAddress, string fromPassword, string[] toAddress, string subject, string body, string host, int port)
{
string your_id = fromAddress;
string your_password = fromPassword;
try
{
SmtpClient client = new SmtpClient
{
Host = host,
Port = port,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new System.Net.NetworkCredential(your_id, your_password),
Timeout = 10000,
};
MailMessage mm = new MailMessage();
mm.From = new MailAddress(your_id);
for (int i = 0; i < toAddress.Length; i++)
{
mm.To.Add(toAddress[i]);
}
mm.BodyEncoding = UTF8Encoding.UTF8;
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
mm.IsBodyHtml = true;
//mm. = MailFormat.Html;
mm.Subject = subject;
mm.Body = body;
client.Send(mm);
Console.WriteLine("Email Sent");
return 1;
}
catch (Exception e)
{
Console.WriteLine("Could not end email\n\n" + e.ToString());
return -1;
}
}
protected void Btn_Retreive_Click(object sender, EventArgs e)
{
this.TbSQL.Text = this.DropDownList1.SelectedValue;
LbServerMessage.Text = "";
LbOutput.Text = "";
string connectionString = TbConnectionString.Text;
Sta ta = new Sta(connectionString);
// ta.Transection();
try
{
string sql = TbSQL.Text.Trim();
if (sql.ToLower().IndexOf("select") >= 0)
{
DataTable dt = ta.QueryDataTable(sql);
if (dt != null)
{
GridView1.DataSource = dt;
GridView1.DataBind();
LbServerMessage.Text = DateTime.Now + " ข้อมูล = " + dt.Rows.Count + " row";
LbServerMessage.ForeColor = Color.Green;
}
else
{
LbServerMessage.Text = DateTime.Now + " ไม่พบข้อมูล";
LbServerMessage.ForeColor = Color.Red;
}
}
else if (sql.ToUpper().IndexOf("GETDATASMS") >= 0)
{
sql = "select * from SMSPATTERNCONFIG where enable_flag=1";
Sdt dt = ta.Query(sql);
string msg = "";
while (dt.Next())
{
string SMS_TRANS_CODE=dt.GetString("SMS_TRANS_CODE");
string SMS_TRANS_SQL = dt.GetString("SMS_TRANS_SQL");
string SMS_PATTERN = dt.GetString("SMS_PATTERN");
string FROM_SYSTEM = dt.GetString("FROM_SYSTEM");
string curDate = DateTime.Now.ToString("yyyyMMdd");
string send_date = this.Txb_send_date.Text.Trim();
try
{
sql = "select ss.* , length(SMS) as sms_len from ( select s.*," + SMS_PATTERN + " as SMS from ( select * from " + SMS_TRANS_SQL + " ) s ) ss ";
if (send_date.Length <= 0) send_date = curDate;
sql = sql.Replace("?", "'" + send_date + "'");
msg += "
" + SMS_TRANS_CODE;
Sdt dt_ = ta.Query(sql);
string REF_NO = DateTime.Now.Ticks.ToString().Substring(0,15), MEMBER_NO = "", TELEPHONE_NUMBER = "", MESSAGE_TEXT = "";
Decimal SEQ_NO = 0;
msg+=" ข้อมูล "+dt_.Rows.Count;
while(dt_.Next()){
++SEQ_NO;
MESSAGE_TEXT=dt_.GetString("SMS");
TELEPHONE_NUMBER = dt_.GetString("phone_number");
MEMBER_NO = dt_.GetString("MEMBER_NO");
sql = "insert into SMSTRANSACTION (REF_NO,SEQ_NO,MEMBER_NO,TELEPHONE_NUMBER,MESSAGE_TEXT,CREATE_DATE,SEND_DATE,MESSAGE_STATUS,FROM_SYSTEM,SMS_TRANS_CODE,POST_FLAG)values";
sql += "('" + REF_NO + "','" + SEQ_NO + "','" + MEMBER_NO + "','" + TELEPHONE_NUMBER + "','" + MESSAGE_TEXT + "',sysdate,to_date('" + send_date + "','yyyyMMdd'),0,'" + FROM_SYSTEM + "','" + SMS_TRANS_CODE + "',8)";
ta.Exe(sql);
}
}
catch { }
}
LbServerMessage.Text = DateTime.Now + " ทำรายการสำเร็จ " + msg;
LbServerMessage.ForeColor = Color.Green;
}
else if (sql.ToUpper().IndexOf("GETCONFIRMSMS") >= 0)
{
try
{
string RefNo = DateTime.Now.Ticks.ToString();
string Sender_code = "";
Decimal seq_no = 0;
string Sender_number = "";
string Target_number = "";
string Url = "";
string User = "";
string Password = "";
sql = "select * from SMSCONFIG where enable_flag=1";
Sdt dt = ta.Query(sql);
if (dt.Next())
{
Sender_code = dt.GetString("SENDER_CODE");
Sender_number = dt.GetString("SENDER_NUMBER");
Url = dt.GetString("URL");
User = dt.GetString("USER_NAME");
Password = dt.GetString("USER_PWD");
sql = "select * from SMSTRANSACTION where post_flag=8 order by REF_NO asc,seq_no asc";
dt = ta.Query(sql);
if (dt != null)
{
for (int i = 0; dt.Next(); i++)
{
RefNo = dt.GetString("REF_NO");
seq_no = dt.GetDecimal("seq_no");
Target_number = dt.GetString("TELEPHONE_NUMBER");
sql = "update SMSTRANSACTION set post_flag=0,send_date=sysdate where REF_NO='" + RefNo + "' and seq_no='" + seq_no + "' and post_flag=8";
ta.Exe(sql);
}
LbServerMessage.Text = "ประมวลยืนยันรายการรอส่ง SMS " + DateTime.Now + " ข้อมูล = " + dt.Rows.Count + " row";
LbServerMessage.ForeColor = Color.Green;
}
else
{
LbServerMessage.Text = "ประมวลยืนยันรายการรอส่ง SMS " + DateTime.Now + " ไม่พบข้อมูล";
LbServerMessage.ForeColor = Color.Red;
}
//ta.Commit();
ta.Close();
}
}
catch (Exception ex)
{
try
{
ta.RollBack();
}
catch { }
ta.Close();
LbServerMessage.Text = ex.Message;
LbServerMessage.ForeColor = Color.Red;
}
}
else
{
ta.Exe(sql);
LbServerMessage.Text = DateTime.Now + " ทำรายการสำเร็จ";
LbServerMessage.ForeColor = Color.Green;
}
// ta.Commit();
ta.Close();
}
catch (Exception ex)
{
try
{
ta.RollBack();
}
catch { }
ta.Close();
LbServerMessage.Text = ex.Message;
LbServerMessage.ForeColor = Color.Red;
}
}
private string convertToUTF8(string strFrom)
{
byte[] bytSrc;
byte[] bytDestination;
string strTo = String.Empty;
bytSrc = Encoding.ASCII.GetBytes(strFrom);
bytDestination = Encoding.Convert(Encoding.ASCII, Encoding.UTF8, bytSrc);
strTo = Encoding.UTF8.GetString(bytDestination);
return strTo;
}
protected void Btn_Send_Click(object sender, EventArgs e)
{
WebUtil.StartSMSBuilder(state.SsConnectionIndex);
string connectionString = TbConnectionString.Text;
Sta ta = new Sta(connectionString);
//ta.Transection();
try
{
string RefNo = DateTime.Now.Ticks.ToString();
string Sender_code = "";
Decimal seq_no =0;
string Sender_number = "";
string Target_number = "";
string Url = "";
string User = "";
string Password = "";
string send_status = "false";
string sql = "select * from SMSCONFIG where enable_flag=1";
Sdt dt = ta.Query(sql);
if (dt.Next())
{
Sender_code = dt.GetString("SENDER_CODE");
Sender_number = dt.GetString("SENDER_NUMBER");
Url = dt.GetString("URL");
User = dt.GetString("USER_NAME");
Password = dt.GetString("USER_PWD");
sql = "select * from SMSTRANSACTION where post_flag=0 order by REF_NO asc,seq_no asc";
dt = ta.Query(sql);
if (dt != null)
{
for (int i = 0; dt.Next();i++ )
{
RefNo=dt.GetString("REF_NO");
seq_no = dt.GetDecimal("seq_no");
Target_number = dt.GetString("TELEPHONE_NUMBER");
//DTAC http://dtacsmsapi4.dtac.co.th/servlet/com.iess.socket.SmsCorplink
//&RefNo={0}&Sender={1}&Msn={2}&Sno={3}&MsgType=H&Msg={4}&Encoding=25&User={5}&Password={6}
String Parameters = "";
NameValueCollection values = new NameValueCollection();
values["RefNo"] = RefNo;
Parameters += "&RefNo=" + values["RefNo"];
values["Sender"] = Sender_code;
Parameters += "&Sender=" + values["Sender"];
//values["Msn"] = Sender_number;
//Parameters += "&Msn=" +values["Msn"];
values["Msn"] = Target_number;
Parameters += "&Msn=" + values["Msn"];
//values["Sno"] = Target_number;
//Parameters += "&Sno=" + values["Sno"];
values["MsgType"] = "T";
Parameters += "&MsgType=" + values["MsgType"];
values["Msg"] = dt.GetString("MESSAGE_TEXT");
Parameters += "&Msg=" + values["Msg"];
//values["Encoding"] = "25";
//Parameters += "&Encoding=" + values["Encoding"];
values["User"] = User;
Parameters += "&User=" + values["User"];
values["Password"] = Password;
Parameters += "&Password=" + values["Password"];
//send_status=this.sendSMS(Url, values);
//send_status = this.HttpPost(Url, Parameters);
//List cmdList = new List();
//string batchfilename = values["RefNo"] + values["User"] + values["Msn"] + ".bat";
//String java_sendsms = "java sendsms " + values["User"] + " " + values["Password"] + " " + values["Sender"] + " " + values["Msn"] + " " + values["RefNo"] + " " + values["Msg"] + "";
//System.Environment.SetEnvironmentVariable("CLASSPATH", "D:\\GCOOP_ALL\\CORE\\GCOOP\\Saving\\Applications\\admin\\;D:\\GCOOP_ALL\\CORE\\GCOOP\\iReport\\ReportBuilderCORE\\dist\\lib\\ojdbc6.jar;%CLASSPATH%");
//cmdList.Add("D:");
//cmdList.Add("SET CLASSPATH=D:\\GCOOP_ALL\\CORE\\GCOOP\\Saving\\Applications\\admin\\");
//cmdList.Add(java_sendsms);
//WebUtil.RunCommand(cmdList, batchfilename);
//try { System.Diagnostics.Process.Start(java_sendsms); }
//catch { }
//send_status = "success";
/*
sql = "update SMSTRANSACTION set message_status=" + (send_status.ToLower().IndexOf("success") >= 0 ? 1 : -1) + ",post_flag=1,send_date=sysdate where REF_NO='" + RefNo + "' and seq_no='" + seq_no + "'";
ta.Exe(sql);
try
{
sql = "update SMSTRANSACTION set send_status_msg='" + send_status + "' where REF_NO='" + RefNo + "' and seq_no='" + seq_no + "'";
ta.Exe(sql);
}
catch { }
*/
}
LbServerMessageSender.Text = "ประมวลส่ง SMS "+DateTime.Now + " ข้อมูล = " + dt.Rows.Count + " row
กรุณากลับไปตรวจสอบสถานะการส่ง SMS อีกครั้งหากพบว่ารอนานเกิน 1 นาทีแล้วรายการยังไม่ถูกประมวลส่ง ให้ประมวลส่ง SMS อีกครั้ง";
LbServerMessageSender.ForeColor = Color.Green;
}
else
{
LbServerMessageSender.Text = "ประมวลส่ง SMS " + DateTime.Now + " ไม่พบข้อมูล";
LbServerMessageSender.ForeColor = Color.Red;
}
//ta.Commit();
ta.Close();
}
}
catch (Exception ex)
{
try
{
ta.RollBack();
}
catch { }
ta.Close();
LbServerMessage.Text = ex.Message;
LbServerMessage.ForeColor = Color.Red;
}
}
public string HttpPost(string URI, string Parameters)
{
System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
//req.Proxy = new System.Net.WebProxy(ProxyString, true);
//Add these, as we're doing a POST
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
//We need to count how many bytes we're sending.
//Post'ed Faked Forms should be name=value&
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(Parameters);
req.ContentLength = bytes.Length;
System.IO.Stream os = req.GetRequestStream();
os.Write(bytes, 0, bytes.Length); //Push it out there
os.Close();
System.Net.WebResponse resp = req.GetResponse();
if (resp == null) return null;
System.IO.StreamReader sr =
new System.IO.StreamReader(resp.GetResponseStream());
return sr.ReadToEnd().Trim();
}
public String sendSMS(String url,NameValueCollection values)
{
bool status = false;
String responseString = "false";
try
{
var client = new WebClient();
//var values = new NameValueCollection();
//values["thing1"] = "hello";
//values["thing2"] = "world";
var response = client.UploadValues(url, values);
responseString = Encoding.Default.GetString(response);
//status = true;
}
catch {
//status = false;
}
return responseString;
}
protected void Btn_Cancel_Click(object sender, EventArgs e)
{
string connectionString = TbConnectionString.Text;
Sta ta = new Sta(connectionString);
//ta.Transection();
try
{
string RefNo = DateTime.Now.Ticks.ToString();
string Sender_code = "";
Decimal seq_no = 0;
string Sender_number = "";
string Target_number = "";
string Url = "";
string User = "";
string Password = "";
bool send_status = false;
string sql = "select * from SMSCONFIG where enable_flag=1";
Sdt dt = ta.Query(sql);
if (dt.Next())
{
Sender_code = dt.GetString("SENDER_CODE");
Sender_number = dt.GetString("SENDER_NUMBER");
Url = dt.GetString("URL");
User = dt.GetString("USER_NAME");
Password = dt.GetString("USER_PWD");
sql = "select * from SMSTRANSACTION where post_flag=0 order by REF_NO asc,seq_no asc";
dt = ta.Query(sql);
if (dt != null)
{
for (int i = 0; dt.Next(); i++)
{
RefNo = dt.GetString("REF_NO");
seq_no = dt.GetDecimal("seq_no");
Target_number = dt.GetString("TELEPHONE_NUMBER");
//DTAC http://corpsms.dtac.co.th/servlet/com.iess.socket.SmsCorplink
//&RefNo={0}&Sender={1}&Msn={2}&Sno={3}&MsgType=H&Msg={4}&Encoding=25&User={5}&Password={6}
NameValueCollection values = new NameValueCollection();
values["RefNo"] = RefNo;
values["Sender"] = Sender_code;
values["Msn"] = Sender_number;
values["Sno"] = Target_number;
values["MsgType"] = "H";
values["Msg"] = dt.GetString("MESSAGE_TEXT");
values["Encoding"] = "25";
values["User"] = User;
values["Password"] = Password;
//send_status = this.sendSMS(Url, values);
sql = "update SMSTRANSACTION set post_flag=-9,send_date=sysdate where REF_NO='" + RefNo + "' and seq_no='" + seq_no + "'";
ta.Exe(sql);
}
LbServerMessage.Text = "ประมวลยกเลิกรายการรอส่ง SMS " + DateTime.Now + " ข้อมูล = " + dt.Rows.Count + " row";
LbServerMessage.ForeColor = Color.Green;
}
else
{
LbServerMessage.Text = "ประมวลยกเลิกรายการรอส่ง SMS " + DateTime.Now + " ไม่พบข้อมูล";
LbServerMessage.ForeColor = Color.Red;
}
//ta.Commit();
ta.Close();
}
}
catch (Exception ex)
{
try
{
ta.RollBack();
}
catch { }
ta.Close();
LbServerMessage.Text = ex.Message;
LbServerMessage.ForeColor = Color.Red;
}
}
protected void Btn_Reset_Trans_Click(object sender, EventArgs e)
{
try
{
string connectionString = TbConnectionString.Text;
Sta ta = new Sta(connectionString);
string sql = "delete from smstransaction ";
ta.Query(sql);
ta.Close();
LbServerMessage.Text = "ประมวลล้างรายการ SMS " + DateTime.Now + " สำเร็จ";
LbServerMessage.ForeColor = Color.Green;
}
catch {
LbServerMessage.Text = "ประมวลล้างรายการ SMS " + DateTime.Now + " ไม่สำเร็จ";
LbServerMessage.ForeColor = Color.Red;
}
}
}
}