Exemplo n.º 1
0
    //當門市修改時,要更新商品的進貨數和退貨數
    private void GV_QtyRefresh()
    {
        if (DiffData.Rows.Count > 0)
        {
            MaintainStoreTransfer bco = new MaintainStoreTransfer(ConnectionDB);
            IDataReader dr;
            for (int i = 0; i < DiffData.Rows.Count; i++)
            {
                dr = bco.GetInvInfo(txtStore.Text, DiffData.Rows[i]["Item"].ToString(), DiffData.Rows[i]["Period"].ToString());
                string stAcceptQty, backwardQty = "";
                if (!dr.Read())
                {
                    DiffData.Rows[i]["PSS_ST_ACCEPT_QTY"] = "0";
                    DiffData.Rows[i]["PSS_BACKWARD_QTY"] = "0";
                }
                else
                {
                    DiffData.Rows[i]["PSS_ST_ACCEPT_QTY"] = dr["ST_ACCEPT_QTY"].ToString();
                    DiffData.Rows[i]["PSS_BACKWARD_QTY"] = dr["BACKWARD_QTY"].ToString();
                }
                dr.Close();

            }
            DiffData.AcceptChanges();
            GridView1.DataSource = DiffData;
            GridView1.DataBind();
            UpdatePanel1.Update();
        }
    }
Exemplo n.º 2
0
    protected void DoAddDetail()
    {
        try
        {
            txtCheckQty.Text = txtAdjQty.Text;
            MaintainStoreTransfer bco = new MaintainStoreTransfer(ConnectionDB);
            DataTable dtPriceInfo = null;

            //依第一筆商品明細,取得 稅別、群分類、是否檔期、票期
            //並更新對應欄位的值
            ArrayList parameterList = new ArrayList();
            parameterList.Add(Session.SessionID);
            parameterList.Add(txtStore.Text);
            parameterList.Add(txtItem.Text);
            parameterList.Add(txtPeriod.Text);
            parameterList.Add(Convert.ToDateTime(txtSignDate.Text).ToString("yyyyMMdd"));

            if (int.Parse(ddlIOType.Text) == 24)
                parameterList.Add(31);
            else if (int.Parse(ddlIOType.Text) == 25)
                parameterList.Add(33);
            else
                parameterList.Add(int.Parse(ddlIOType.Text));

            dtPriceInfo = bco.GetPriceInfoList_PROMOTE(true, parameterList);

            if (dtPriceInfo.Rows[0]["PriceDiscountKind"].ToString() == "0")
            {
                ErrorMsgLabel.Text = dtPriceInfo.Rows[0]["MESSAGE"].ToString();
                return;
            }

            if (GridView1.Rows.Count == 0)
            {
                string taxType, rootNo, isSchedule;
                rootNo = dtPriceInfo.Rows[0]["RootNo"].ToString();
                taxType = dtPriceInfo.Rows[0]["TaxType"].ToString();
                int i = int.Parse(dtPriceInfo.Rows[0]["PriceDiscountKind"].ToString());
                isSchedule = i >= 64 ? "1" : "0";
                InvoiceDateRange = dtPriceInfo.Rows[0]["ChargeDate"].ToString();
                SLP_COL_DAYS.Text = InvoiceDateRange;
                rblTaxType.Text = taxType;
                txtRootNo.Text = rootNo;
                rblIsSchedule.Text = isSchedule;
                ItemKey = rootNo + taxType + isSchedule + InvoiceDateRange;

                slpPROMOTE_ID.Text = dtPriceInfo.Rows[0]["PROMOTE_ID"].ToString();

            }
            else
            {
                if (RowMode == RowEditMode.Add)
                {
                    int i = int.Parse(dtPriceInfo.Rows[0]["PriceDiscountKind"].ToString());
                    string isSchedule = i >= 64 ? "1" : "0";
                    if (dtPriceInfo.Rows[0]["RootNo"].ToString() +
                        dtPriceInfo.Rows[0]["TaxType"].ToString() +
                        isSchedule +
                        dtPriceInfo.Rows[0]["ChargeDate"].ToString() != ItemKey)
                    {
                        ErrorMsgLabel.Text = "稅別、群分類、是否檔期或票期不同無法新增";
                        return;
                    }
                    if (slpPROMOTE_ID.Text.Trim() != dtPriceInfo.Rows[0]["PROMOTE_ID"].ToString().Trim())
                    {
                        ErrorMsgLabel.Text = "檔期編號不同無法新增";
                        return;
                    }
                }
            }

            //3.4 記錄在暫存的TABLE內,待按下新增時才會存到資料庫
            //itemName, stAcceptQty, backwardQty, listDisRate, listPrice, retailPrice
            //品名 進貨數 退貨數 牌價折扣率 牌價 零售價
            MaintainCodeFile BCO = new MaintainCodeFile(ConnectionDB);
            ArrayList parameters = new ArrayList();
            DataTable dt = null;

            switch (RowMode)
            {
                case RowEditMode.Add:
                    MaintainSKU sku = new MaintainSKU(ConnectionDB);
                    ArrayList list = new ArrayList();
                    list.Add(txtItem.Text);
                    DataTable dtItem = sku.QuerySKUByCode(list);
                    string itemName = dtItem.Rows[0]["ITEM_NAME"].ToString();
                    IDataReader dr = bco.GetInvInfo(txtStore.Text, txtItem.Text, txtPeriod.Text);
                    string stAcceptQty, backwardQty = "";
                    if (!dr.Read())
                    {
                        stAcceptQty = "0";
                        backwardQty = "0";
                    }
                    else
                    {
                        stAcceptQty = dr["ST_ACCEPT_QTY"].ToString();
                        backwardQty = dr["BACKWARD_QTY"].ToString();
                    }
                    dr.Close();

                    string listDisRate, listPrice, retailPrice, srcCostPrice, priceDiscountKind;
                    listDisRate = dtPriceInfo.Rows[0]["LISTDISRATE"].ToString();
                    listPrice = dtPriceInfo.Rows[0]["LISTPRICE"].ToString();
                    retailPrice = dtPriceInfo.Rows[0]["SRC_RETAILPRICE"].ToString();
                    srcCostPrice = dtPriceInfo.Rows[0]["SRC_COSTPRICE"].ToString();
                    priceDiscountKind = dtPriceInfo.Rows[0]["PRICEDISCOUNTKIND"].ToString();

                    DataRow row = DiffData.NewRow();
                    row["Item"] = txtItem.Text;
                    row["ITEM_NAME"] = itemName;
                    row["Period"] = txtPeriod.Text;
                    row["PSS_ST_ACCEPT_QTY"] = stAcceptQty;
                    row["PSS_BACKWARD_QTY"] = backwardQty;
                    row["DIFF_QTY"] = txtAdjQty.Text;
                    if (txtCheckQty.Text.Length > 0)
                    {
                        row["CHECK_QTY"] = txtCheckQty.Text;
                    }
                    else
                    {
                        row["CHECK_QTY"] = System.DBNull.Value;
                    }
                    row["Cost"] = srcCostPrice;
                    row["Cost_Dis_Rate"] = decimal.Parse(listDisRate);
                    row["Cost_Dis"] = decimal.Parse(listPrice);
                    row["Price"] = decimal.Parse(retailPrice);
                    row["PDKIND"] = int.Parse(priceDiscountKind);
                    if (txtReason.Text.Length > 0)
                    {
                        row["CHECK_REASON"] = txtReason.Text;
                    }
                    else
                    {
                        row["CHECK_REASON"] = System.DBNull.Value;
                    }
                    parameters.Add("1"); /* 1是原因判斷的Category */
                    parameters.Add(txtReason.Text);
                    dt = BCO.QueryLineSwitch(MaintainCodeFile.QueryType.SLP,
                                             parameters
                                            );
                    row["EXPLAIN"] = dt.Rows[0]["EXPLAIN"].ToString();
                    DiffData.Rows.Add(row);
                    break;

                case RowEditMode.Edit:
                    DataRow[] dra = DiffData.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));

                    parameters.Add("1"); /* 1是原因判斷的Category */
                    parameters.Add(txtReason.Text);
                    dt = BCO.QueryLineSwitch(MaintainCodeFile.QueryType.SLP,
                                             parameters
                                            );
                    if (txtReason.Text.Length > 0)
                    {
                        dra[0]["CHECK_REASON"] = txtReason.Text;
                    }
                    else
                    {
                        dra[0]["CHECK_REASON"] = System.DBNull.Value;
                    }

                    dra[0]["EXPLAIN"] = dt.Rows[0]["EXPLAIN"].ToString();
                    dra[0]["DIFF_QTY"] = txtAdjQty.Text;

                    if (txtCheckQty.Text.Length > 0)
                    {
                        dra[0]["CHECK_QTY"] = txtCheckQty.Text;
                    }
                    else
                    {
                        dra[0]["CHECK_QTY"] = System.DBNull.Value;
                    }
                    break;
            }

            GridView1.DataSource = DiffData;
            GridView1.DataBind();

            txtItem.Text = txtPeriod.Text = txtAdjQty.Text = txtCheckQty.Text = txtReason.Text = "";
            pnlAddDiffItem1.Visible = false;
            btnAddDiffItem.Visible = true;
        }
        catch (Exception ex)
        {
            WaringLogProcess(ex.Message);
            this.ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0];  //直接取第一個
        }
        finally { Finally_Function(); }
    }
Exemplo n.º 3
0
    //新增明細
    protected void DoAddDetail()
    {
        try
        {
            if (string.IsNullOrEmpty(txtStore.Text) || string.IsNullOrEmpty(slpTransferDate.Text)
                || string.IsNullOrEmpty(txtTransferNo.Text) || string.IsNullOrEmpty(this.ddlIOType.Text))
            {
                ErrorMsgLabel.Text = "店號、調撥類別、調撥日期、憑證單號需有值";
                return;
            }

            if (RowMode == RowEditMode.Add)
            {
                DataRow[] dra1 = TransferItem.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));
                if (dra1.Length > 0)
                {
                    ErrorMsgLabel.Text = "店號及期別不能重複";
                    return;
                }
            }

            MaintainStoreTransfer bco = new MaintainStoreTransfer(ConnectionDB);
            DataTable dtPriceInfo = null;

            ArrayList parameterList = new ArrayList();
            parameterList.Add(Session.SessionID);
            parameterList.Add(txtStore.Text);
            parameterList.Add(txtItem.Text);
            parameterList.Add(txtPeriod.Text);
            parameterList.Add(Convert.ToDateTime(slpTransferDate.Text).ToString("yyyyMMdd"));

            if (int.Parse(ddlIOType.Text) == 24)
                parameterList.Add(41);
            else if (int.Parse(ddlIOType.Text) == 25)
                parameterList.Add(42);
            else
                parameterList.Add(int.Parse(ddlIOType.Text));

            dtPriceInfo = bco.GetPriceInfoList_PROMOTE(true, parameterList);

            if (dtPriceInfo.Rows[0]["PriceDiscountKind"].ToString() == "0")
            {
                ErrorMsgLabel.Text = dtPriceInfo.Rows[0]["MESSAGE"].ToString();
                return;
            }

            if (GridView1.Rows.Count == 0)
            {
                //依第一筆商品明細,取得 稅別、群分類、是否檔期、票期
                //並更新對應欄位的值
                string taxType, rootNo, isSchedule;
                rootNo = dtPriceInfo.Rows[0]["RootNo"].ToString();
                taxType = dtPriceInfo.Rows[0]["TaxType"].ToString();
                int i = int.Parse(dtPriceInfo.Rows[0]["PriceDiscountKind"].ToString());
                isSchedule = i >= 64 ? "1" : "0";
                InvoiceDateRange = dtPriceInfo.Rows[0]["ChargeDate"].ToString();
                SLP_COL_DAYS.Text = InvoiceDateRange;
                rblTaxType.Text = taxType;
                txtRootNo.Text = rootNo;
                txtIsSchedule.Text = (isSchedule == "1" ? "檔期" : "非檔期");
                ItemKey = rootNo + taxType + isSchedule + InvoiceDateRange;
                slpPROMOTE_ID.Text = dtPriceInfo.Rows[0]["PROMOTE_ID"].ToString();
            }
            else
            {
                if (RowMode == RowEditMode.Add)
                {
                    int i = int.Parse(dtPriceInfo.Rows[0]["PriceDiscountKind"].ToString());
                    string isSchedule = i >= 64 ? "1" : "0";
                    if (dtPriceInfo.Rows[0]["RootNo"].ToString() +
                        dtPriceInfo.Rows[0]["TaxType"].ToString() +
                        isSchedule +
                        dtPriceInfo.Rows[0]["ChargeDate"].ToString() != ItemKey)
                    {
                        ErrorMsgLabel.Text = "稅別、群分類、是否檔期或票期不同無法新增";
                        return;
                    }
                    if (slpPROMOTE_ID.Text.Trim() != dtPriceInfo.Rows[0]["PROMOTE_ID"].ToString().Trim())
                    {
                        ErrorMsgLabel.Text = "檔期編號不同無法新增";
                        return;
                    }
                }
            }

            //3.4 記錄在暫存的TABLE內,待按下新增時才會存到資料庫
            //itemName, stAcceptQty, backwardQty, listDisRate, listPrice, retailPrice
            //品名 進貨數 退貨數 牌價折扣率 牌價 零售價
            switch (RowMode)
            {
                case RowEditMode.Add:
                    MaintainSKU sku = new MaintainSKU(ConnectionDB);
                    ArrayList list = new ArrayList();
                    list.Add(txtItem.Text);
                    DataTable dtItem = sku.QuerySKUByCode(list);
                    string itemName = dtItem.Rows[0]["ITEM_NAME"].ToString();
                    IDataReader dr = bco.GetInvInfo(txtStore.Text, txtItem.Text, txtPeriod.Text);
                    string stAcceptQty, backwardQty = "";
                    if (!dr.Read())
                    {
                        stAcceptQty = "0";
                        backwardQty = "0";
                    }
                    else
                    {
                        stAcceptQty = dr["ST_ACCEPT_QTY"].ToString();
                        backwardQty = dr["BACKWARD_QTY"].ToString();
                    }
                    dr.Close();

                    string listDisRate, listPrice, retailPrice, srcCostPrice, priceDiscountKind;
                    listDisRate = dtPriceInfo.Rows[0]["LISTDISRATE"].ToString();
                    listPrice = dtPriceInfo.Rows[0]["LISTPRICE"].ToString();
                    retailPrice = dtPriceInfo.Rows[0]["SRC_RETAILPRICE"].ToString();
                    srcCostPrice = dtPriceInfo.Rows[0]["SRC_COSTPRICE"].ToString();
                    priceDiscountKind = dtPriceInfo.Rows[0]["PRICEDISCOUNTKIND"].ToString();

                    DataRow row = TransferItem.NewRow();
                    row["Item"] = txtItem.Text;
                    row["Name"] = itemName;
                    row["Period"] = txtPeriod.Text;
                    row["ST_Accept_Qty"] = stAcceptQty;
                    row["Backward_Qty"] = backwardQty;
                    row["Adj_Qty"] = (ddlIOType.Text == "25" ? -1 : 1) * Convert.ToDecimal(txtAdjQty.Text);
                    row["Cost"] = srcCostPrice;
                    row["Cost_Dis_Rate"] = decimal.Parse(listDisRate);
                    row["Cost_Dis"] = decimal.Parse(listPrice);
                    row["Price"] = decimal.Parse(retailPrice);
                    row["PriceDiscountKind"] = int.Parse(priceDiscountKind);
                    TransferItem.Rows.Add(row);
                    break;

                case RowEditMode.Edit:
                    DataRow[] dra = TransferItem.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));

                    dra[0]["Adj_Qty"] = (ddlIOType.Text == "25" ? -1 : 1) * Convert.ToDecimal(txtAdjQty.Text);
                    break;
            }

            GridView1.DataSource = TransferItem;
            GridView1.DataBind();

            txtItem.Text = txtPeriod.Text = txtAdjQty.Text = "";
            pnlAddTransferItem1.Visible = false;
            btnAddTransferItem.Visible = true;
            ddlIOType.Enabled = false;
            ddlIOType.CssClass = "readtxtbox";
        }
        catch (Exception ex)
        {
            WaringLogProcess(ex.Message);
            this.ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0];  //直接取第一個
        }
        finally { Finally_Function(); }
    }
Exemplo n.º 4
0
    protected void btnAddDetail_Click(object sender, EventArgs e)
    {
        try
        {
            DataRow[] dra2;
            string strYN = "N";
            MaintainStoreTransfer bco = new MaintainStoreTransfer(ConnectionDB);
            txtCheckQty.Text = txtAdjQty.Text;

            if (string.IsNullOrEmpty(txtStore.Text) || string.IsNullOrEmpty(txtSignDate.Text)
                || string.IsNullOrEmpty(txtStBackNo.Text) || string.IsNullOrEmpty(txtBusDate.Text)
                || string.IsNullOrEmpty(ddlIOType.Text))
            {
                ErrorMsgLabel.Text = "店號、簽收日期、補帳日期、憑證單號、單據類型需有值";
                return;
            }

            if (DateTime.ParseExact(txtSignDate.Text, "yyyy/MM/dd", System.Globalization.CultureInfo.InvariantCulture) > DateTime.Now)
            {
                ErrorMsgLabel.Text = "簽收日期不可大於系統日期";
                return;
            }

            if (DateTime.ParseExact(txtBusDate.Text, "yyyy/MM/dd", System.Globalization.CultureInfo.InvariantCulture) > DateTime.Now)
            {
                ErrorMsgLabel.Text = "補帳日期不可大於系統日期";
                return;
            }

            if (RowMode == RowEditMode.Add)
            {
                DataRow[] dra1 = DiffData.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));
                if (dra1.Length > 0)
                {
                    ErrorMsgLabel.Text = "品號及期別不能重複";
                    return;
                }

                if (txtReason.Text == "A21")
                {
                    MaintainStoreDiff bco1 = new MaintainStoreDiff(ConnectionDB);
                    ArrayList parameterList = new ArrayList();
                    parameterList.Add(txtItem.Text);
                    DataTable dt1 = bco1.DoCHECK_A21ITEM(parameterList);
                    if (dt1.Rows[0]["CNT"].ToString() == "0")
                    {
                        ErrorMsgLabel.Text = "此商品非A21所可使用的品號,無法新增。若要增加A21可用品項,請由代號碼Z9新增";
                        return;
                    }
                }
            }

            if (txtReason.Text.Length > 0)
            {
                if (txtReason.Text.Substring(0, 1) == "A")
                {
                    if (txtReason.Text == "A20" || txtReason.Text == "A21" || txtReason.Text == "A22" || txtReason.Text == "A23")
                    {
                        dra2 = DiffData.Select("CHECK_REASON not in ('A20','A21','A22','A23')");
                        if (dra2.Length > 0)
                        {
                            ErrorMsgLabel.Text = "調整原因分類需相同";
                            return;
                        }
                    }
                    else
                    {
                        dra2 = DiffData.Select("CHECK_REASON in ('A20','A21','A22','A23')");
                        if (dra2.Length > 0)
                        {
                            ErrorMsgLabel.Text = "調整原因分類需相同";
                            return;
                        }
                    }
                }
            }

            switch (RowMode)
            {
                case RowEditMode.Add:

                    if (txtCheckQty.Text.Length > 0 && txtReason.Text.Length > 0)
                    {
                        if (txtReason.Text.Substring(0, 1) == "A" && Convert.ToDecimal(txtCheckQty.Text) < 0)
                        {
                            IDataReader dr = bco.GetInvInfo(txtStore.Text, txtItem.Text, txtPeriod.Text);
                            if (!dr.Read())
                            {
                                dr.Close();
                                strYN = "Y";
                            }
                            else
                            {
                                if (Convert.ToDecimal(dr["ST_ACCEPT_QTY"]) < -1 * Convert.ToDecimal(txtCheckQty.Text) + Convert.ToDecimal(dr["BACKWARD_QTY"]))
                                {
                                    strYN = "Y";
                                }
                            }
                        }
                    }

                    break;

                case RowEditMode.Edit:
                    DataRow[] dra = DiffData.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));

                    if (txtCheckQty.Text.Length > 0 && txtReason.Text.Length > 0)
                    {
                        if (txtReason.Text.Substring(0, 1) == "A" && Convert.ToDecimal(txtCheckQty.Text) < 0)
                        {
                            if (Convert.ToDecimal(dra[0]["PSS_ST_ACCEPT_QTY"]) < -1 * Convert.ToDecimal(txtCheckQty.Text) + Convert.ToDecimal(dra[0]["PSS_BACKWARD_QTY"]))
                            {
                                strYN = "Y";
                            }
                        }
                    }
                    break;
            }

            if (strYN == "Y")
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "if (confirm('進貨數<退貨數,是否仍要建立?')){this.disabled=true;__doPostBack('DoAddDetail','');}", true);
            }
            else
            {
                DoAddDetail();
            }

        }
        catch (Exception ex)
        {
            WaringLogProcess(ex.Message);
            this.ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0];  //直接取第一個
        }
        finally { Finally_Function(); }
    }
Exemplo n.º 5
0
    protected void btnAddDetail_Click(object sender, EventArgs e)
    {
        try
        {
            string strYN = "N";
            MaintainStoreTransfer bco = new MaintainStoreTransfer(ConnectionDB);
            if (string.IsNullOrEmpty(txtStore.Text) || string.IsNullOrEmpty(slpTransferDate.Text)
                || string.IsNullOrEmpty(txtTransferNo.Text) || string.IsNullOrEmpty(this.ddlIOType.Text))
            {
                ErrorMsgLabel.Text = "店號、調撥類別、調撥日期、憑證單號需有值";
                return;
            }

            if (RowMode == RowEditMode.Add)
            {
                DataRow[] dra1 = TransferItem.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));
                if (dra1.Length > 0)
                {
                    ErrorMsgLabel.Text = "店號及期別不能重複";
                    return;
                }
            }

            switch (RowMode)
            {
                case RowEditMode.Add:

                    if (ddlIOType.Text == "25")//調出
                    {
                        IDataReader dr = bco.GetInvInfo(txtStore.Text, txtItem.Text, txtPeriod.Text);
                        if (!dr.Read())
                        {
                            dr.Close();
                            strYN = "Y";
                        }
                        else
                        {
                            if (Convert.ToDecimal(dr["ST_ACCEPT_QTY"]) < Convert.ToDecimal(txtAdjQty.Text) + Convert.ToDecimal(dr["BACKWARD_QTY"]))
                            {
                                strYN = "Y";
                            }
                        }
                    }
                    break;

                case RowEditMode.Edit:
                    DataRow[] dra = TransferItem.Select(string.Format("Item = '{0}' AND Period = '{1}'", txtItem.Text, txtPeriod.Text));

                    if (ddlIOType.Text == "25")//調出
                    {
                        if (Convert.ToDecimal(dra[0]["ST_ACCEPT_QTY"]) < Convert.ToDecimal(txtAdjQty.Text) + Convert.ToDecimal(dra[0]["BACKWARD_QTY"]))
                        {
                            strYN = "Y";
                        }
                    }
                    break;
            }

            if (strYN == "Y")
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "if (confirm('進貨數<退貨數,是否仍要建立?')){this.disabled=true;__doPostBack('DoAddDetail','');}", true);
            }
            else
            {
                DoAddDetail();
            }
        }
        catch (Exception ex)
        {
            WaringLogProcess(ex.Message);
            this.ErrorMsgLabel.Text = ex.Message.Split(Environment.NewLine.Replace(Environment.NewLine, "~").ToCharArray())[0];  //直接取第一個
        }
        finally { Finally_Function(); }
    }