Exemplo n.º 1
0
    /// <summary>
    /// 執行按鈕
    /// </summary>
    protected void btnRun_Click(object sender, EventArgs e)
    {
        DataBind();

        if (VerifyFormData())
        {
            #region 

            CGDModel.CGDCommon BCOCommon = new CGDModel.CGDCommon();
            System.Data.Common.DbTransaction DBT = BCOCommon.OpenAndGetConnection(ConnectionDB).BeginTransaction();

            try
            {
                DataSet dataSet;
                CGDModel.ProcessResetBatchAdj BCO = new CGDModel.ProcessResetBatchAdj(ConntionDB);
                dataSet = ((DataSet)Session[PAGE_DT_01 + PageTimeStamp.Value.ToString()]);

                if (optOperation.SelectedValue == "1" || optOperation.SelectedValue == "2")
                {
                    foreach (DataRow dr in dataSet.Tables[0].Rows)
                    {
                        if (dr["item_no"].ToString().Trim() != "")
                        {
                            string[] chainsSelected = dr["chain"].ToString().Split(new Char[] { '^' });

                            foreach (string chain in chainsSelected)
                            {
                                if (chain.Trim() != "")
                                {
                                    ParameterList.Clear();

                                    ParameterList.Add(slpdStAcceptDate.Text.Trim());
                                    ParameterList.Add(txtPickBatch.Text.Trim());
                                    ParameterList.Add(dr["item_no"].ToString().Trim());
                                    ParameterList.Add(dr["period_no"].ToString().Trim());

                                    string outQty = BCO.QueryItemOutQty(ParameterList);

                                    if (outQty == "")
                                    {
                                        DBT.Rollback();
                                        ErrorMsgLabel.Text = "資料不存在於門市進貨檔,執行中止。";
                                        return;
                                    }
                                    else
                                    {
                                        ParameterList.Clear();
                                        ParameterList.Add(Convert.ToInt16(optOperation.SelectedValue));
                                        ParameterList.Add(slpdStAcceptDate.Text.Trim());
                                        ParameterList.Add(txtPickBatch.Text.Trim());
                                        ParameterList.Add(dr["item_no"].ToString().Trim());
                                        ParameterList.Add(dr["period_no"].ToString().Trim());
                                        ParameterList.Add(chain.Trim());
                                        ParameterList.Add(Session["UID"].ToString());

                                        BCO.ProcessBatchSelect(ParameterList, DBT);
                                    }
                                }
                            }
                        }
                    }
                }
                else if (optOperation.SelectedValue == "3" || optOperation.SelectedValue == "4")
                {
                    foreach (DataRow dr in dataSet.Tables[0].Rows)
                    {
                        if (dr["item_no"].ToString().Trim() != "")
                        {
                            ParameterList.Clear();

                            ParameterList.Add(slpdStAcceptDate.Text.Trim());
                            ParameterList.Add(txtPickBatch.Text.Trim());
                            ParameterList.Add(dr["item_no"].ToString().Trim());
                            ParameterList.Add(dr["period_no"].ToString().Trim());

                            string outQty = BCO.QueryItemOutQty(ParameterList);

                            if (outQty == "")
                            {
                                DBT.Rollback();
                                ErrorMsgLabel.Text = "資料不存在於門市進貨檔,執行中止。";
                                //ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "A", "alert(' " + "[門市進貨日]      = " + slpdStAcceptDate.Text.Trim() + "\\n" + " [理貨批次]          = " + txtPickBatch.Text.Trim() + "\\n" + " [品號/虛擬品號] = " + dr["item_no"].ToString().Trim() + "\\n" + " [期別]                  = " + dr["period_no"].ToString().Trim() + "\\n" + "\\n" + "之資料不存在於門市進貨檔,執行中止。 ');", true);
                                return;
                            }
                            else if ((Convert.ToInt16(outQty) > 0) && (optOperation.SelectedValue == "4"))
                            {
                                DBT.Rollback();
                                ErrorMsgLabel.Text = "此商品期別數量未刪單,不可執行恢復作業,執行中止。";
                                //ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "A", "alert(' " + "[門市進貨日]      = " + slpdStAcceptDate.Text.Trim() + "\\n" + " [理貨批次]          = " + txtPickBatch.Text.Trim() + "\\n" + " [品號/虛擬品號] = " + dr["item_no"].ToString().Trim() + "\\n" + " [期別]                  = " + dr["period_no"].ToString().Trim() + "\\n" + "\\n" + "此商品期別數量未刪單,不可執行恢復作業,執行中止。 ');", true);
                                return;
                            }
                            else if ((Convert.ToInt16(outQty) == 0) && (optOperation.SelectedValue == "3"))
                            {
                                DBT.Rollback();
                                ErrorMsgLabel.Text = "此商品期別數量已歸0,不可執行刪單作業,執行中止。";
                                //ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "A", "alert(' " + "[門市進貨日]      = " + slpdStAcceptDate.Text.Trim() + "\\n" + " [理貨批次]          = " + txtPickBatch.Text.Trim() + "\\n" + " [品號/虛擬品號] = " + dr["item_no"].ToString().Trim() + "\\n" + " [期別]                  = " + dr["period_no"].ToString().Trim() + "\\n" + "\\n" + "此商品期別數量已歸0,不可執行刪單作業,執行中止。 ');", true);
                                return;
                            }
                            else
                            {
                                ParameterList.Clear();
                                ParameterList.Add(Convert.ToInt16(optOperation.SelectedValue));
                                ParameterList.Add(slpdStAcceptDate.Text.Trim());
                                ParameterList.Add(txtPickBatch.Text.Trim());
                                ParameterList.Add(dr["item_no"].ToString().Trim());
                                ParameterList.Add(dr["period_no"].ToString().Trim());
                                ParameterList.Add(Session["UID"].ToString());

                                BCO.ProcessBatchAdj(ParameterList, DBT);
                            }
                        }
                    }
                }
                else if (optOperation.SelectedValue == "5")
                {
                    foreach (DataRow dr in dataSet.Tables[0].Rows)
                    {
                        if (dr["item_no"].ToString().Trim() != "")
                        {
                            string[] chainsSelected = dr["chain"].ToString().Split(new Char[] { '^' });

                            foreach (string chain in chainsSelected)
                            {
                                if (chain.Trim() != "")
                                {
                                    ParameterList.Clear();

                                    ParameterList.Add(slpdStAcceptDate.Text.Trim());
                                    ParameterList.Add(txtPickBatch.Text.Trim());
                                    ParameterList.Add(dr["item_no"].ToString().Trim());
                                    ParameterList.Add(dr["period_no"].ToString().Trim());

                                    string outQty = BCO.QueryItemOutQty(ParameterList);

                                    if (outQty == "")
                                    {
                                        DBT.Rollback();
                                        ErrorMsgLabel.Text = "資料不存在於門市進貨檔,執行中止。";
                                        //ScriptManager.RegisterClientScriptBlock(Page, this.GetType(), "A", "alert(' " + "[門市進貨日]      = " + slpdStAcceptDate.Text.Trim() + "\\n" + " [理貨批次]          = " + txtPickBatch.Text.Trim() + "\\n" + " [品號/虛擬品號] = " + dr["item_no"].ToString().Trim() + "\\n" + " [期別]                  = " + dr["period_no"].ToString().Trim() + "\\n" + "\\n" + "之資料不存在於門市進貨檔,執行中止。 ');", true);
                                        return;
                                    }
                                    else
                                    {
                                        ParameterList.Clear();
                                        ParameterList.Add(slpdStAcceptDate.Text.Trim());
                                        ParameterList.Add(txtPickBatch.Text.Trim());
                                        ParameterList.Add(txtModifiedPickBatch.Text);
                                        ParameterList.Add(dr["item_no"].ToString().Trim());
                                        ParameterList.Add(dr["period_no"].ToString().Trim());
                                        ParameterList.Add(chain.Trim());
                                        ParameterList.Add(Session["UID"].ToString());

                                        BCO.ProcessPickBatch(ParameterList, DBT);
                                    }
                                }
                            }
                        }
                    }
                }

                DBT.Commit();
            }
            catch (Exception ex)
            {
                DBT.Rollback();//交易失敗

                ErrorMsgLabel.Text = ex.Message;
            }
            finally { }

            #endregion

            ErrorMsgLabel.Text = "執行完畢";
        }
    }