Ejemplo n.º 1
0
        /// <summary>
        /// 得到Repeater里的数据
        /// </summary>
        /// <param name="sWorkflowNumber"></param>
        /// <returns></returns>
        public DataTable GetResultDt(string sWorkflowNumber)
        {
            DataTable dt = new DataTable();
            Common comm = new Common();
            dt = comm.CreateData();
            StringBuilder sbErrorInfo = new StringBuilder();
            bool isAllocation= !IsNeedApprove();
            foreach (RepeaterItem item in RepeaterPOData.Items)
            {
                Label LabelTitle = item.FindControl("LabelTitle") as Label;
                Label LabePAD = item.FindControl("LabePAD") as Label;
                Label LabelSAD = item.FindControl("LabelSAD") as Label;
                Label LabelOMU = item.FindControl("LabelOMU") as Label;
                Label LabelQty = item.FindControl("LabelQty") as Label;
                HiddenField HiddenFieldISSuccess = item.FindControl("HiddenFieldISSuccess") as HiddenField;
                DropDownList DDLType = item.FindControl("DDLType") as DropDownList;
                HiddenField HiddenFieldIsPADSuccess = item.FindControl("HiddenFieldIsPADSuccess") as HiddenField;
                CADateTimeControl CADateTimePAD = item.FindControl("CADateTimePAD") as CADateTimeControl;
                Label LabelIsAllocated = item.FindControl("LabelIsAllocated") as Label;

                string sPONO = LabelTitle.Text.Trim();
                if (CADateTimePAD.IsDateEmpty)
                {
                    sbErrorInfo.Append("New PAD can not be empty for PO No:");
                    sbErrorInfo.Append(sPONO);
                    sbErrorInfo.Append("\\n");
                    continue;
                }

                DateTime dtPAD = DateTime.Now;
                if (!DateTime.TryParse(LabePAD.Text, out dtPAD))
                {
                    sbErrorInfo.Append("PAD error for PO No:");
                    sbErrorInfo.Append(sPONO);
                    sbErrorInfo.Append("\\n");
                    continue;
                }

                DateTime dtSAD = DateTime.Now;
                if (!DateTime.TryParse(LabelSAD.Text, out dtSAD))
                {
                    sbErrorInfo.Append("PAD error for PO No:");
                    sbErrorInfo.Append(sPONO);
                    sbErrorInfo.Append("\\n");
                    continue;
                }

                TimeSpan tsPAD = DateTime.Parse(dtPAD.ToString()) - DateTime.Now;
                if (tsPAD.Days < 7 && !isAllocation)
                {
                    sbErrorInfo.Append("PO type change is only allowed 7 days before the PAD for PO No:");
                    sbErrorInfo.Append(sPONO);
                    sbErrorInfo.Append("\\n");
                    continue;
                }
                string sAllocated = LabelIsAllocated.Text;
                if (sAllocated.Equals("Y", StringComparison.InvariantCultureIgnoreCase))
                {
                    sbErrorInfo.Append(sPONO);
                    sbErrorInfo.Append(" can not be allocated!");
                    sbErrorInfo.Append("\\n");
                    continue;
                }

                //CADateTimePAD
                DataRow dr = dt.NewRow();
                dr["Title"] = sPONO;
                dr["WorkflowNumber"] = sWorkflowNumber;
                dr["PAD"] = dtPAD.ToShortDateString();
                dr["SAD"] = dtSAD.ToShortDateString();// LabelSAD.Text.Trim();
                dr["OMU"] = LabelOMU.Text.Trim();
                dr["Qty"] = LabelQty.Text.Trim();
                dr["IsSuccess"] = HiddenFieldISSuccess.Value.Trim();
                dr["NewTypeValue"] = DDLType.SelectedValue;
                dr["NewType"] = DDLType.SelectedItem.Text.Trim();
                dr["IsPADSuccess"] = HiddenFieldIsPADSuccess.Value;
                dr["NewPAD"] = CADateTimePAD.SelectedDate.ToShortDateString();
                dr["IsAllocated"] = sAllocated;
                //LabelIsAllocated
                dt.Rows.Add(dr);
            }
            if (sbErrorInfo.Length > 0)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", string.Format("<script>alert('{0}')</script>", sbErrorInfo.ToString()));
                return null;
            }
            else
            {
                return dt;
            }
        }