PageRenderTime 24ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/S0 - Source Code/CA.WorkFlow/CA.WorkFlow.UI/_Layouts/CA/WorkFlows/StoreSampling/EditForm.aspx.cs

https://github.com/zhoutaomtv/ca
C# | 246 lines | 198 code | 29 blank | 19 comment | 13 complexity | 2f96c8049973dd192abf24b1f23785e5 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using CA.SharePoint;
  8. using Microsoft.SharePoint;
  9. using QuickFlow.Core;
  10. using CodeArt.SharePoint.CamlQuery;
  11. using System.Data;
  12. using CA.WorkFlow.UI.Code;
  13. using Microsoft.SharePoint.WebControls;
  14. namespace CA.WorkFlow.UI.StoreSampling
  15. {
  16. public partial class EditForm : CAWorkFlowPage
  17. {
  18. protected void Page_Load(object sender, EventArgs e)
  19. {
  20. this.actions.OnClientClick += "return CheckIsCancel(this.value);";
  21. this.actions.ActionExecuting += new EventHandler<QuickFlow.UI.Controls.ActionEventArgs>(actions_ActionExecuting);
  22. this.actions.ActionExecuted += new EventHandler<EventArgs>(actions_ActionExecuted);
  23. this.btnSave.Click += new EventHandler(btnSave_Click);
  24. if (WorkflowContext.ContextInitialized)
  25. {
  26. switch (WorkflowContext.Current.Task.Step)
  27. {
  28. case "BuyerApprove":
  29. btnSave.Visible = false;
  30. this.ControlMode = SPControlMode.Display;
  31. break;
  32. case "StoreManagerApprove":
  33. btnSave.Visible = false;
  34. this.ControlMode = SPControlMode.Display;
  35. break;
  36. case "AreaManagerApprove":
  37. btnSave.Visible = false;
  38. this.ControlMode = SPControlMode.Display;
  39. break;
  40. case "BSSHeadApprove":
  41. btnSave.Visible = false;
  42. this.ControlMode = SPControlMode.Display;
  43. break;
  44. case "BSSTeamApprove":
  45. btnSave.Visible = false;
  46. this.ControlMode = SPControlMode.Display;
  47. break;
  48. case "FinanceConfirm":
  49. btnSave.Visible = false;
  50. this.ControlMode = SPControlMode.Display;
  51. break;
  52. case "StoreAdminSubmit":
  53. PanelComm.Visible = false;
  54. break;
  55. }
  56. }
  57. }
  58. void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e)
  59. {
  60. WorkflowContext curContext = WorkflowContext.Current;
  61. WorkflowDataFields fields = curContext.DataFields;
  62. fields["Status"] = "In Progress";
  63. switch (curContext.Task.Step)
  64. {
  65. case "BuyerApprove":
  66. fields["Approvers"] = WorkFlowUtil.GetApproversValue();
  67. break;
  68. case "StoreManagerApprove":
  69. fields["Approvers"] = WorkFlowUtil.GetApproversValue();
  70. break;
  71. case "AreaManagerApprove":
  72. fields["Approvers"] = WorkFlowUtil.GetApproversValue();
  73. break;
  74. case "BSSHeadApprove":
  75. fields["Approvers"] = WorkFlowUtil.GetApproversValue();
  76. break;
  77. case "BSSTeamApprove":
  78. if(e.Action=="Approve")
  79. {
  80. if (string.IsNullOrEmpty(((DropDownList)DataForm1.FindControl("ddlCostCenter")).SelectedValue)&&string.IsNullOrEmpty(DataForm1.TextBoxCostCenter))
  81. {
  82. e.Cancel = true;
  83. ScriptManager.RegisterStartupScript(this, this.GetType(), "msg", "alert('Please supply a cost center.');", true);
  84. DataForm1.PickedBy = new SPFieldLookupValue(SPContext.Current.ListItem["Picked by"] + "").LookupValue;
  85. ((CADateTimeControl)DataForm1.FindControl("CADateTime1")).Enabled = false;
  86. return;
  87. }
  88. if (string.IsNullOrEmpty(((DropDownList)DataForm1.FindControl("ddlCostCenter")).SelectedValue))
  89. {
  90. fields["Cost Center"] = DataForm1.TextBoxCostCenter;
  91. }
  92. else
  93. {
  94. fields["Cost Center"] = ((DropDownList)DataForm1.FindControl("ddlCostCenter")).SelectedValue;
  95. }
  96. }
  97. fields["Approvers"] = WorkFlowUtil.GetApproversValue();
  98. break;
  99. case "FinanceConfirm":
  100. // if (e.Action == "Approve")
  101. if(e.Action=="Confirm")
  102. {
  103. fields["Status"] = "Completed";
  104. fields["Completed Date"] = System.DateTime.Now.ToShortDateString();
  105. }
  106. fields["Approvers"] = WorkFlowUtil.GetApproversValue();
  107. break;
  108. case "StoreAdminSubmit":
  109. if (e.Action.Equals("End", StringComparison.CurrentCultureIgnoreCase))
  110. {
  111. WorkflowContext.Current.DataFields["Status"] = "Cancelled";
  112. return;
  113. }
  114. string msg = DataForm1.Validate();
  115. if (!string.IsNullOrEmpty(msg))
  116. {
  117. DisplayMessage(msg);
  118. e.Cancel = true;
  119. return;
  120. }
  121. string passTo = DataForm1.PickedBy;
  122. fields["Store Number"] = ((DropDownList)DataForm1.FindControl("ddlStoreNumber")).SelectedValue; //((TextBox)DataForm1.FindControl("txtStoreNumber")).Text;
  123. fields["Cost Center"] = string.Empty;
  124. fields["Issued to"] = ((DropDownList)DataForm1.FindControl("ddlIssuedTo")).SelectedValue;
  125. if (!string.IsNullOrEmpty(passTo))
  126. {
  127. fields["Picked by"] = EnsureUser(passTo);
  128. }
  129. //fields["Comments"] = ((TextBox)DataForm1.FindControl("txtComments")).Text;
  130. fields["FileName"] = DataForm1.Submit();
  131. curContext.UpdateWorkflowVariable("Buyer", passTo);
  132. break;
  133. }
  134. }
  135. void actions_ActionExecuted(object sender, EventArgs e)
  136. {
  137. Response.Redirect("/WorkFlowCenter/Lists/Tasks/MyItems.aspx");
  138. }
  139. void btnSave_Click(object sender, EventArgs e)
  140. {
  141. SaveForm();
  142. //base.Back();
  143. Response.Redirect("/WorkFlowCenter/Lists/Tasks/MyItems.aspx");
  144. }
  145. void SaveForm()
  146. {
  147. if (WorkflowContext.Current.Task.Step == "StoreAdminSubmit")
  148. {
  149. string passTo = DataForm1.PickedBy;
  150. SPListItem item = SPContext.Current.ListItem;
  151. item["Store Number"] = ((DropDownList)DataForm1.FindControl("ddlStoreNumber")).SelectedValue; //((TextBox)DataForm1.FindControl("txtStoreNumber")).Text;
  152. item["Cost Center"] = string.Empty;
  153. item["Issued to"] = ((DropDownList)DataForm1.FindControl("ddlIssuedTo")).SelectedValue;
  154. item["Actual Quantity"] = ((TextBox)DataForm1.FindControl("txtActualQuantity")).Text;
  155. if (!string.IsNullOrEmpty(passTo))
  156. {
  157. item["Picked by"] = EnsureUser(passTo);
  158. }
  159. item["Picked Time"] = ((CADateTimeControl)DataForm1.FindControl("CADateTime1")).SelectedDate.ToShortDateString();
  160. item["FileName"] = DataForm1.Submit();
  161. try
  162. {
  163. using (SPSite site = new SPSite(SPContext.Current.Site.ID))
  164. {
  165. using (SPWeb web = site.OpenWeb(SPContext.Current.Site.RootWeb.ID))
  166. {
  167. item.Web.AllowUnsafeUpdates = true;
  168. item.Update();
  169. item.Web.AllowUnsafeUpdates = false;
  170. }
  171. }
  172. }
  173. catch (Exception ex)
  174. {
  175. Response.Write("An error occured while updating the items");
  176. }
  177. //item.Web.AllowUnsafeUpdates = true;
  178. //item.Update();
  179. }
  180. }
  181. void PushToReport()
  182. {
  183. //WorkflowContext curContext = WorkflowContext.Current;
  184. //WorkflowDataFields fields = curContext.DataFields;
  185. ISharePointService sps = ServiceFactory.GetSharePointService(true);
  186. SPList list = sps.GetList(CAWorkFlowConstants.WorkFlowListName.StoreSamplingReport);
  187. //foreach (DataRow row in DataForm1)
  188. //{
  189. // SPListItem item = list.Items.Add();
  190. // //item["WorkflowNumber"] = fields["WorkflowNumber"];
  191. // //item["Store Number"] = fields["Store Number"];
  192. // item["WorkflowNumber"] = DataForm1.WorkflowNumber;
  193. // item["Store Number"] = DataForm1.StoreNumber;
  194. // item["Actual Quantity"] = row["ActualQuantity"];
  195. // item["Picked"] = row["Picked"];
  196. // item.Web.AllowUnsafeUpdates = true;
  197. // item.Update();
  198. //}
  199. }
  200. public static SPUser EnsureUser(string strUser)
  201. {
  202. SPUser user = null;
  203. SPSecurity.RunWithElevatedPrivileges(delegate()
  204. {
  205. using (SPSite site = new SPSite(SPContext.Current.Site.ID))
  206. {
  207. using (SPWeb web = site.OpenWeb(SPContext.Current.Site.RootWeb.ID))
  208. {
  209. user = web.EnsureUser(strUser);
  210. }
  211. }
  212. }
  213. );
  214. return user;
  215. }
  216. }
  217. }