//當門市修改時,要更新商品的進貨數和退貨數 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(); } }
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(); } }
//新增明細 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(); } }
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(); } }
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(); } }