ClientContact.aspx.cs
上传用户:xuming1973
上传日期:2014-02-27
资源大小:17511k
文件大小:19k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.IO;
  11. using System.Web.UI.WebControls;
  12. using System.Web.UI.HtmlControls;
  13. using UDS.Components;
  14. namespace UDS.SubModule.CM
  15. {
  16. /// <summary>
  17. /// ClientContact 的摘要说明。
  18. /// </summary>
  19. public class ClientContact : System.Web.UI.Page
  20. {
  21. #region 控件声明
  22. protected UDS.Inc.ControlClientContactHistory ControlClientContactHistory1;
  23. protected System.Web.UI.WebControls.Literal ltl_ClientShortName;
  24. protected System.Web.UI.WebControls.DropDownList ddl_bargainprognosis;
  25. protected System.Web.UI.WebControls.CheckBox cbx_travel;
  26. protected System.Web.UI.WebControls.CheckBox cbx_food;
  27. protected System.Web.UI.WebControls.CheckBox cbx_gift;
  28. protected System.Web.UI.WebControls.CheckBox cbx_out;
  29. protected System.Web.UI.WebControls.TextBox tbx_nextcontacttime;
  30. protected System.Web.UI.WebControls.Button btn_OK;
  31. protected System.Web.UI.WebControls.Label lbl_Message;
  32. protected System.Web.UI.WebControls.Literal ltl_Birthday;
  33. protected System.Web.UI.WebControls.Literal ltl_sellphase;
  34. protected System.Web.UI.WebControls.Literal ltl_fee;
  35. #endregion
  36. protected int clientid;
  37. protected System.Web.UI.WebControls.Panel pnl_clientselect;
  38. protected System.Web.UI.WebControls.Literal ltl_ClientName;
  39. protected System.Web.UI.WebControls.DropDownList ddl_ClientName;
  40. protected System.Web.UI.WebControls.TextBox tbx_quicksearch;
  41. protected System.Web.UI.WebControls.Button btn_search;
  42. protected System.Web.UI.WebControls.Literal ltl_UpdateTime;
  43. protected System.Web.UI.WebControls.TextBox tbx_contacttime;
  44. protected System.Web.UI.WebControls.Literal ltl_ContactTimes;
  45. protected System.Web.UI.WebControls.Label lbl_BargainPrognosis;
  46. protected System.Web.UI.WebControls.DropDownList ddl_SellMan;
  47. protected System.Web.UI.WebControls.Literal ltl_AddMan;
  48. protected System.Web.UI.WebControls.ListBox lbx_Cooperater;
  49. protected System.Web.UI.WebControls.Button btn_in;
  50. protected System.Web.UI.WebControls.Button btn_out;
  51. protected System.Web.UI.WebControls.ListBox lbx_Staff;
  52. protected System.Web.UI.WebControls.ListBox lbx_Linkman;
  53. protected System.Web.UI.WebControls.Button btn_inlinkman;
  54. protected System.Web.UI.WebControls.Button btn_outlinkman;
  55. protected System.Web.UI.WebControls.ListBox lbx_ClientLinkman;
  56. protected System.Web.UI.WebControls.TextBox tbx_contactaim;
  57. protected System.Web.UI.WebControls.TextBox tbx_sellmoney;
  58. protected System.Web.UI.WebControls.RangeValidator RangeValidator3;
  59. protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
  60. protected System.Web.UI.WebControls.CheckBox cbx_telephone;
  61. protected System.Web.UI.WebControls.CheckBox cbx_fax;
  62. protected System.Web.UI.WebControls.CheckBox cbx_email;
  63. protected System.Web.UI.WebControls.CheckBox cbx_mail;
  64. protected System.Web.UI.WebControls.CheckBox cbx_meeting;
  65. protected System.Web.UI.WebControls.CheckBox cbx_interview;
  66. protected System.Web.UI.WebControls.CheckBox cbx_callin;
  67. protected System.Web.UI.WebControls.CheckBox cbx_sms;
  68. protected System.Web.UI.WebControls.CheckBox cbx_trace;
  69. protected System.Web.UI.WebControls.CheckBox cbx_boot;
  70. protected System.Web.UI.WebControls.CheckBox cbx_commend;
  71. protected System.Web.UI.WebControls.CheckBox cbx_requirement;
  72. protected System.Web.UI.WebControls.CheckBox cbx_submit;
  73. protected System.Web.UI.WebControls.CheckBox cbx_negotiate;
  74. protected System.Web.UI.WebControls.CheckBox cbx_actualize;
  75. protected System.Web.UI.WebControls.CheckBox cbx_traceservice;
  76. protected System.Web.UI.WebControls.CheckBox cbx_last;
  77. protected System.Web.UI.WebControls.RadioButton rbtn_trace;
  78. protected System.Web.UI.WebControls.RadioButton rbtn_boot;
  79. protected System.Web.UI.WebControls.RadioButton rbtn_commend;
  80. protected System.Web.UI.WebControls.RadioButton rbtn_requirement;
  81. protected System.Web.UI.WebControls.RadioButton rbtn_submit;
  82. protected System.Web.UI.WebControls.RadioButton rbtn_negotiate;
  83. protected System.Web.UI.WebControls.RadioButton rbtn_actualize;
  84. protected System.Web.UI.WebControls.RadioButton rbtn_traceservice;
  85. protected System.Web.UI.WebControls.RadioButton rbtn_last;
  86. protected System.Web.UI.WebControls.TextBox tbx_thisfee;
  87. protected System.Web.UI.WebControls.RangeValidator RangeValidator2;
  88. protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
  89. protected System.Web.UI.WebControls.TextBox tbx_contactcontent;
  90. protected System.Web.UI.WebControls.TextBox tbx_nextcontactaim;
  91. protected System.Web.UI.HtmlControls.HtmlInputFile File1;
  92. protected System.Web.UI.HtmlControls.HtmlInputFile File2;
  93. protected System.Web.UI.HtmlControls.HtmlInputFile File3;
  94. private int contactid = 0;
  95. private void Page_Load(object sender, System.EventArgs e)
  96. {
  97. // 在此处放置用户代码以初始化页面
  98. UDS.Components.CM cm = new UDS.Components.CM();
  99. SqlDataReader dr = null;
  100. if(!Page.IsPostBack)
  101. {
  102. tbx_contacttime.Text = DateTime.Now.ToShortDateString();
  103. tbx_nextcontacttime.Text = DateTime.Now.AddDays(1).ToShortDateString();
  104. clientid = Int32.Parse((Request.QueryString["ClientID"]==null)||(Request.QueryString["ClientID"]=="")?"-1":Request.QueryString["ClientID"].ToString());
  105. pnl_clientselect.Visible = true;
  106. //绑定客户列表
  107. dr = cm.GetMyClients(Int32.Parse(Request.Cookies["UserID"].Value));
  108. ddl_ClientName.DataSource = dr;
  109. ddl_ClientName.DataValueField = "id";
  110. ddl_ClientName.DataTextField = "name";
  111. ddl_ClientName.DataBind();
  112. dr.Close();
  113. if(clientid!=-1)
  114. {
  115. if(ddl_ClientName.Items.Count!=0)
  116. {
  117. foreach(ListItem li in ddl_ClientName.Items)
  118. {
  119. if(li.Value==clientid.ToString())
  120. {
  121. li.Selected = true;
  122. }
  123. else
  124. {
  125. li.Selected = false;
  126. }
  127. }
  128. ViewState["ClientID"] = clientid;
  129. }
  130. //显示销售人员
  131. UDS.Components.ClientInfo client = cm.GetClientAllInfo(clientid);
  132. UDS.Components.Staff staff = new UDS.Components.Staff();
  133. SqlDataReader dr_staff = staff.GetStaffInfo(client.AddManID);
  134. while(dr_staff.Read())
  135. {
  136. ltl_AddMan.Text = dr_staff["realname"].ToString();
  137. }
  138. dr_staff.Close();
  139. }
  140. else
  141. {
  142. if(ddl_ClientName.Items.Count!=0)
  143. {
  144. clientid = Int32.Parse(ddl_ClientName.Items[0].Value);
  145. ViewState["ClientID"] = clientid;
  146. }
  147. else
  148. {
  149. ViewState["ClientID"] = clientid;
  150. }
  151. }
  152. DisplayClientInfo();
  153. BindData();
  154. ViewState["ContactID"] = contactid.ToString();
  155. }
  156. else
  157. {
  158. clientid = Int32.Parse(ViewState["ClientID"].ToString());
  159. contactid = Int32.Parse(ViewState["ContactID"].ToString());
  160. }
  161. tbx_contacttime.Attributes["onfocus"] = "setday(this)";
  162. tbx_nextcontacttime.Attributes["onfocus"] = "setday(this)";
  163. }
  164. private void BindData()
  165. {
  166. string staffids = "";
  167. UDS.Components.Staff staff = new UDS.Components.Staff();
  168. //绑定该客户的联系人
  169. UDS.Components.Database db = new UDS.Components.Database();
  170. SqlDataReader dr_ClientLinkman = null;
  171. SqlParameter[] prams = {
  172.    db.MakeInParam("@clientid",SqlDbType.Int,4,clientid)
  173.    };
  174. db.RunProc("sp_CM_GetAllLinkmanFromClient",prams,out dr_ClientLinkman);
  175. lbx_ClientLinkman.DataSource = dr_ClientLinkman;
  176. lbx_ClientLinkman.DataTextField = "Name";
  177. lbx_ClientLinkman.DataValueField = "id";
  178. lbx_ClientLinkman.DataBind();
  179. dr_ClientLinkman.Close();
  180. //绑定协同人员候选列表
  181. SqlDataReader dr_staff = null;
  182. for(int i=0;i<lbx_Cooperater.Items.Count;i++)
  183. {
  184. staffids += lbx_Cooperater.Items[i].Value + ",";
  185. }
  186. if(staffids.Length!=0)
  187. staffids = staffids.Substring(0,staffids.Length-1);
  188. dr_staff = staff.GetRemainStaff(staffids);
  189. lbx_Staff.DataSource = dr_staff;
  190. lbx_Staff.DataTextField = "realname";
  191. lbx_Staff.DataValueField = "staff_id";
  192. lbx_Staff.DataBind();
  193. dr_staff.Close();
  194. ControlClientContactHistory1.ClientID = clientid;
  195. ControlClientContactHistory1.BindData();
  196. }
  197. /// <summary>
  198. /// 显示客户信息
  199. /// </summary>
  200. private void DisplayClientInfo()
  201. {
  202. UDS.Components.CM cm = new UDS.Components.CM();
  203. //得到客户信息
  204. SqlDataReader dr_client = cm.GetClientInfo(clientid);
  205. while(dr_client.Read())
  206. {
  207. ltl_ClientName.Text = dr_client["Name"].ToString();
  208. ltl_ClientShortName.Text = dr_client["ShortName"].ToString();
  209. ltl_ContactTimes.Text = dr_client["ContactTimes"].ToString();
  210. ltl_Birthday.Text = dr_client["Birthday"].ToString();
  211. ltl_UpdateTime.Text = dr_client["UpdateTime"].ToString();
  212. ltl_fee.Text = dr_client["Fee"].ToString();
  213. lbl_BargainPrognosis.Text = dr_client["BargainPrognosis"].ToString();
  214. ltl_sellphase.Text = GetCurStatus(dr_client["sellphase"].ToString());
  215. }
  216. dr_client.Close();
  217. }
  218. private string GetCurStatus(string curstatus)
  219. {
  220. switch(curstatus.Split(',')[0])
  221. {
  222. case "trace":
  223. return ("跟踪");
  224. case "boot":
  225. return ("启动");
  226. case "commend":
  227. return ("产品推荐");
  228. case "requirement":
  229. return ("需求定义");
  230. case "submit":
  231. return ("方案提交");
  232. case "negotiate":
  233. return ("商务谈判");
  234. case "actualize":
  235. return ("项目实施");
  236. case "traceservice":
  237. return ("跟踪服务");
  238. case "last":
  239. return ("收尾款");
  240. }
  241. return("");
  242. }
  243. #region Web Form Designer generated code
  244. override protected void OnInit(EventArgs e)
  245. {
  246. //
  247. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  248. //
  249. InitializeComponent();
  250. base.OnInit(e);
  251. }
  252. /// <summary>
  253. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  254. /// 此方法的内容。
  255. /// </summary>
  256. private void InitializeComponent()
  257. {    
  258. this.ddl_ClientName.SelectedIndexChanged += new System.EventHandler(this.ddl_ClientName_SelectedIndexChanged);
  259. this.btn_in.Click += new System.EventHandler(this.btn_in_Click);
  260. this.btn_out.Click += new System.EventHandler(this.btn_out_Click);
  261. this.btn_inlinkman.Click += new System.EventHandler(this.btn_inlinkman_Click);
  262. this.btn_outlinkman.Click += new System.EventHandler(this.btn_outlinkman_Click);
  263. this.btn_OK.Click += new System.EventHandler(this.btn_OK_Click);
  264. this.Load += new System.EventHandler(this.Page_Load);
  265. }
  266. #endregion
  267. private void btn_OK_Click(object sender, System.EventArgs e)
  268. {
  269. UDS.Components.CM cm = new UDS.Components.CM();
  270. UDS.Components.Contact contact = new UDS.Components.Contact();
  271. UDS.Components.ClientInfo client = cm.GetClientAllInfo(clientid);
  272. //添加协同人员
  273. foreach(ListItem lt in lbx_Cooperater.Items)
  274. {
  275. UDS.Components.Cooperater cooperater = new UDS.Components.Cooperater();
  276. cooperater.StaffID = Int32.Parse(lt.Value);
  277. contact.AddCooperater(cooperater);
  278. }
  279. //添加联系人员
  280. foreach(ListItem lt in lbx_Linkman.Items)
  281. {
  282. UDS.Components.Linkman linkman = new UDS.Components.Linkman();
  283. linkman.ID = Int32.Parse(lt.Value);
  284. contact.AddLinkman(linkman);
  285. }
  286. contact.ID = contactid;
  287. #region 填充contact
  288. contact.UpdateTime = DateTime.Now;
  289. contact.ContactTimes = Int32.Parse(ltl_ContactTimes.Text);
  290. contact.StaffID = client.AddManID;
  291. contact.ContactTime = DateTime.Parse(tbx_contacttime.Text);
  292. contact.ClientID = clientid;
  293. contact.ContactAim = tbx_contactaim.Text;
  294. contact.SellMoney = tbx_sellmoney.Text;
  295. contact.BargainPrognosis = ddl_bargainprognosis.SelectedItem.Value;
  296. if(cbx_telephone.Checked) contact.ContactType += ContactType.telephone.ToString() + ",";
  297. if(cbx_fax.Checked) contact.ContactType += ContactType.fax.ToString() + ",";
  298. if(cbx_email.Checked) contact.ContactType += ContactType.email.ToString() + ",";
  299. if(cbx_mail.Checked) contact.ContactType += ContactType.mail.ToString() + ",";
  300. if(cbx_sms.Checked) contact.ContactType += ContactType.sms.ToString() + ",";
  301. if(cbx_callin.Checked) contact.ContactType += ContactType.interview.ToString() + ",";
  302. if(cbx_meeting.Checked) contact.ContactType += ContactType.meeting.ToString() + ",";
  303. if(rbtn_trace.Checked) contact.ContactStatus += ContactStat.trace.ToString() + ",";
  304. if(rbtn_boot.Checked) contact.ContactStatus += ContactStat.boot.ToString() + ",";
  305. if(rbtn_commend.Checked) contact.ContactStatus += ContactStat.commend.ToString() + ",";
  306. if(rbtn_requirement.Checked) contact.ContactStatus += ContactStat.requirement.ToString() + ",";
  307. if(rbtn_submit.Checked) contact.ContactStatus += ContactStat.submit.ToString() + ",";
  308. if(rbtn_negotiate.Checked) contact.ContactStatus += ContactStat.negotiate.ToString() + ",";
  309. if(rbtn_actualize.Checked) contact.ContactStatus += ContactStat.actualize.ToString() + ",";
  310. if(rbtn_traceservice.Checked) contact.ContactStatus += ContactStat.traceservice.ToString() + ",";
  311. if(rbtn_last.Checked) contact.ContactStatus += ContactStat.last.ToString() + ",";
  312. contact.ThisFee = float.Parse(tbx_thisfee.Text);
  313. if(cbx_travel.Checked) contact.FeeUsed += ContactFeeUsed.travel.ToString() + ",";
  314. if(cbx_food.Checked)  contact.FeeUsed += ContactFeeUsed.food.ToString() + ",";
  315. if(cbx_gift.Checked) contact.FeeUsed += ContactFeeUsed.gift.ToString() + ",";
  316. if(cbx_out.Checked) contact.FeeUsed += ContactFeeUsed.outer.ToString() + ",";
  317. contact.ContactContent = tbx_contactcontent.Text;
  318. contact.NextContactAim = tbx_nextcontactaim.Text;
  319. contact.NextContactTime = DateTime.Parse(tbx_nextcontacttime.Text);
  320. #endregion
  321. //如果contactid==0则插入操作,否则修改
  322. if(contactid==0)
  323. {
  324. contact.ContactTimes++;
  325. contact.ID = cm.AddContact(contact);
  326. contactid = contact.ID;
  327. ViewState["ContactID"] = contact.ID.ToString();
  328. Response.Write("<script>alert('添加成功!');close();opener.document.location.href=opener.document.location.href</script>");
  329. }
  330. else
  331. {
  332. cm.UpdateContact(contact);
  333. Response.Write("<script>alert('修改成功!');close();</script>");
  334. }
  335. //修改client信息
  336. client.BargainPrognosis = contact.BargainPrognosis;
  337. client.ContactTimes = contact.ContactTimes;
  338. client.CurStatus = contact.ContactStatus;
  339. client.SellPhase = contact.ContactStatus;
  340. client.Fee += contact.ThisFee;
  341. client.UpdateTime = contact.UpdateTime;
  342. client.ContactTime = contact.ContactTime;
  343. client.NextContactTime = DateTime.Parse(tbx_nextcontacttime.Text);
  344. if(client.FirstContactTime==DateTime.Parse("1900-1-1")) client.FirstContactTime = contact.ContactTime; 
  345. cm.UpdateClient(client);
  346. DisplayClientInfo();
  347. //上传附件
  348. UploadAtt();
  349. ControlClientContactHistory1.ClientID = clientid;
  350. ControlClientContactHistory1.BindData();
  351. }
  352. private void btn_search_Click(object sender, System.EventArgs e)
  353. {
  354. string sqlstr = "";
  355. string id = "";
  356. UDS.Components.Database db = new UDS.Components.Database();
  357. SqlDataReader dr = null;
  358. sqlstr = "select top 1 id from UDS_CM_ClientInfo WHERE name like '%" + tbx_quicksearch.Text.Replace("'","''") + "%' and AddmanID="+Request.Cookies["UserID"].Value;
  359. SqlParameter[] prams = {
  360. db.MakeInParam("@SQL",SqlDbType.NText,5000,sqlstr)    
  361. };
  362. db.RunProc("sp_RunSQL",prams,out dr);
  363. while(dr.Read())
  364. {
  365. id = dr["id"].ToString();
  366. }
  367. dr.Close();
  368. if(id!="")
  369. {
  370. foreach(ListItem lt in ddl_ClientName.Items)
  371. {
  372. if(lt.Value==id)
  373. {
  374. lt.Selected = true;
  375. }
  376. else
  377. {
  378. lt.Selected = false;
  379. }
  380. }
  381. clientid = Int32.Parse(id);
  382. DisplayClientInfo();
  383. BindData();
  384. }
  385. }
  386. private void ddl_ClientName_SelectedIndexChanged(object sender, System.EventArgs e)
  387. {
  388. clientid = Int32.Parse(ddl_ClientName.SelectedItem.Value);
  389. ViewState["ClientID"] = clientid;
  390. lbx_Cooperater.Items.Clear();
  391. lbx_Linkman.Items.Clear();
  392. DisplayClientInfo();
  393. BindData();
  394. }
  395. /// <summary>
  396. /// 上载文件
  397. /// </summary>
  398. private void UploadAtt()
  399. {
  400. HtmlForm FrmCompose   = (HtmlForm)this.Page.FindControl("ClientContact");
  401. UDS.Components.CM cm = new UDS.Components.CM();
  402. string FileName = "";
  403. string Extension = "";
  404. string SavedName = "";
  405. try
  406. {
  407. if(Directory.Exists(Server.MapPath(".")+"\Attachment"))
  408. {
  409. for (int i=0;i<FrmCompose.Controls.Count;i++)
  410. {
  411. if(FrmCompose.Controls [i].GetType().ToString()=="System.Web.UI.HtmlControls.HtmlInputFile")
  412. {
  413. HtmlInputFile hif = ((HtmlInputFile)(FrmCompose.Controls[i]));
  414. if(hif.PostedFile.FileName.Trim()!="")
  415. {
  416. FileName = System.IO .Path.GetFileName(hif.PostedFile.FileName);
  417. Extension = System.IO.Path.GetExtension(hif.PostedFile.FileName);
  418. SavedName = cm.InsertFile(FileName,"contact",contactid,Extension).ToString();
  419. hif.PostedFile.SaveAs(Server.MapPath(".")+"\Attachment\"+SavedName+Extension );
  420. }
  421. hif=null;
  422. }
  423. }
  424. }
  425. else
  426. {   
  427. Directory.CreateDirectory(Server.MapPath(".")+"\Attachment");
  428. UploadAtt();
  429. }
  430. }
  431. catch(Exception ioex)
  432. {
  433. UDS.Components.Error.Log(ioex.ToString());
  434. Server.Transfer("../Error.aspx");
  435. }
  436. }
  437. private void rbtn_trace_CheckedChanged(object sender, System.EventArgs e)
  438. {
  439. }
  440. private void btn_in_Click(object sender, System.EventArgs e)
  441. {
  442. ArrayList selecteditem = new ArrayList();
  443. foreach(ListItem lt in lbx_Staff.Items)
  444. {
  445. if(lt.Selected)
  446. {
  447. lbx_Cooperater.Items.Add(lt);
  448. selecteditem.Add(lt);
  449. }
  450. }
  451. for(int i=0;i<selecteditem.Count;i++)
  452. {
  453. lbx_Staff.Items.Remove((ListItem)selecteditem[i]);
  454. }
  455. BindData();
  456. }
  457. private void btn_out_Click(object sender, System.EventArgs e)
  458. {
  459. ArrayList selecteditem = new ArrayList();
  460. foreach(ListItem lt in lbx_Cooperater.Items)
  461. {
  462. if(lt.Selected)
  463. {
  464. lbx_Staff.Items.Add(lt);
  465. selecteditem.Add(lt);
  466. }
  467. }
  468. for(int i=0;i<selecteditem.Count;i++)
  469. {
  470. lbx_Cooperater.Items.Remove((ListItem)selecteditem[i]);
  471. }
  472. BindData();
  473. }
  474. private void btn_inlinkman_Click(object sender, System.EventArgs e)
  475. {
  476. ArrayList selecteditem = new ArrayList();
  477. foreach(ListItem lt in lbx_ClientLinkman.Items)
  478. {
  479. if(lt.Selected)
  480. {
  481. lbx_Linkman.Items.Add(lt);
  482. selecteditem.Add(lt);
  483. }
  484. }
  485. for(int i=0;i<selecteditem.Count;i++)
  486. {
  487. lbx_ClientLinkman.Items.Remove((ListItem)selecteditem[i]);
  488. }
  489. //BindData();
  490. }
  491. private void btn_outlinkman_Click(object sender, System.EventArgs e)
  492. {
  493. ArrayList selecteditem = new ArrayList();
  494. foreach(ListItem lt in lbx_Linkman.Items)
  495. {
  496. if(lt.Selected)
  497. {
  498. lbx_ClientLinkman.Items.Add(lt);
  499. selecteditem.Add(lt);
  500. }
  501. }
  502. for(int i=0;i<selecteditem.Count;i++)
  503. {
  504. lbx_Linkman.Items.Remove((ListItem)selecteditem[i]);
  505. }
  506. //BindData();
  507. }
  508. }
  509. }