using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Business = SuperMap.RealEstate.SendRec.Storage.Business; using StorageHighWay = SuperMap.RealEstate.HighWay.Storage.Business; using HZQR.Common; namespace SuperMap.RealEstate.SendRec.Modules.CheckCommodity { public partial class GZGTDefault : UI.BasePage { #region 页面 -> 页面绑定 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; //载入数据 ButtonDelete.Enabled = CHECKCOMMODITY1.LoadData(); ButtonPrintBill.Enabled = ButtonreFlash.Enabled = ButtonSave_Data.Enabled = ButtonNew.Enabled = ButtonDelete.Enabled; //InitWebControls(); //商品类别 COMMODITYTYPE_NAME.Clear(); this.COMMODITYTYPE_NAME.Items.Clear(); this.COMMODITYTYPE_NAME.Items.Add(new ListItemEx { Value = "1=1", Text = "全部类别" }); (new StorageHighWay.COMMODITYTYPE(this.Transaction)).BindingDropDownList( COMMODITYTYPE_NAME.Items, "", false, false, false, false, false, PassportInfo.ProvinceCode.TryParseToInt()); //初始化并加载列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, StorageHighWay.CommonHelper.GetDictionary(Transaction, "SERVERPART_ID", "SELECT SERVERPART_ID,SERVERPART_NAME FROM HIGHWAY_STORAGE.T_SERVERPART")); //工具条按钮事件 GridViewEx1.SetOpenControl(ButtonHisCheckCommodity, "CHECKCOMMODITYList.aspx?SENDREC_TYPE=" + Request["SENDREC_TYPE"], 800, 600); if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"])) { COMMODITYTYPE_NAME.Visible = false; } //设置删除提示 SetControlConfirm(ButtonDelete, "您确认删除该记录,删除后将无法恢复数据?"); //SetControlConfirm(ButtonPrintBill, "您确认是否打印盘存表,打印后将重新生成盘存数据?"); SetControlConfirm(ButtonNew, "您确认是否完成盘存?"); //设置按钮状态 SetControlClientAction(ButtonDelete, false, true, true); SetControlClientAction(ButtonSave); //设置回车焦点按钮 SetControlClientAction(ButtonSearch); //注册遮罩式窗口关闭脚本 } #endregion #region 方法- > 页面List绑定 protected void ButtonSave_Click(object sender, EventArgs e) { try { string _whereSql = ""; string _whereSql2 = ""; if (!string.IsNullOrEmpty(Request["SENDREC_TYPE"])) { _whereSql = " AND DEPARTMENT_ID = " + Request["SENDREC_TYPE"]; _whereSql2 = " AND CHECK_TYPE = " + Request["SENDREC_TYPE"]; } else { _whereSql = " AND NVL(DEPARTMENT_ID,0) != 9990"; _whereSql2 = " AND CHECK_TYPE != 9990 "; } string AlertString = string.Empty; foreach (Business.APPLYPROINST _APPLYPROINST in (new Business.APPLYPROINST(this.Transaction)).FillCollection( "WHERE APPLYPROINST_TYPE > 1000 AND FINISHDATE IS NULL AND SERVERPART_ID = " + CHECKCOMMODITY1.SERVERPART_ID.SelectedValue + " AND APPLYPROINST_DATE <= TO_DATE('" + CHECKCOMMODITY1.CHECKDATE.Text + "','YYYY-MM-DD HH24:MI:SS')" + _whereSql)) { AlertString += AlertString == "" ? _APPLYPROINST.APPLYPROINST_CODE : "," + _APPLYPROINST.APPLYPROINST_CODE; } if (AlertString != "") { Alert("申请编号为" + AlertString + "的业务未审结,请点击【未办结业务查询】查看,审结后进行盘存!"); return; } if (DateTime.Parse(CHECKCOMMODITY1.CHECKDATE.Text) < DateTime.Now.AddMonths(-1) && CHECKCOMMODITY1.CurrObject.GetCount("WHERE CHECKDATE > TO_DATE('" + CHECKCOMMODITY1.CHECKDATE.Text + "','YYYY-MM-DD HH24:MI:SS') AND SERVERPART_ID = " + CHECKCOMMODITY1.SERVERPART_ID.SelectedValue + _whereSql) > 0) { Alert("不允许重新盘存1个月之前的数据!"); return; } //刷新类型 bool _RefreshType = ButtonDelete.Enabled; //保存数据 foreach (Business.CHECKCOMMODITY _CHECKCOMMODITY in new Business.CHECKCOMMODITY(this.Transaction).FillCollection( "WHERE SERVERPART_ID = " + CHECKCOMMODITY1.SERVERPART_ID.SelectedValue + " AND CHECKDATE > TO_DATE('" + CHECKCOMMODITY1.CHECKDATE.Text + "','YYYY-MM-DD HH24:MI:SS') AND CHECK_STATE = 1" + _whereSql2)) { _CHECKCOMMODITY.ExecuteNonQuery(@"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET OPERATE_STATE = 1000 WHERE OPERATE_STATE = 8000 AND EXISTS(SELECT 1 FROM SENDREC_STORAGE.T_CHECKCOMMODITYDETAIL B WHERE A.SERVERPARTSTOCK_ID = B.SERVERPARTSTOCK_ID AND CHECKCOMMODITY_ID = " + _CHECKCOMMODITY.CHECKCOMMODITY_ID + ")", null); _CHECKCOMMODITY.ExecuteNonQuery("DELETE FROM SENDREC_STORAGE.T_CHECKCOMMODITYDETAIL WHERE CHECKCOMMODITY_ID = " + _CHECKCOMMODITY.CHECKCOMMODITY_ID, null); _CHECKCOMMODITY.Delete(); } foreach (Business.CHECKCOMMODITY _CHECKCOMMODITY in new Business.CHECKCOMMODITY(this.Transaction).FillCollection( "WHERE SERVERPART_ID = " + CHECKCOMMODITY1.SERVERPART_ID.SelectedValue + " AND TO_CHAR(CHECKDATE,'YYYYMMDD') = '" + DateTime.Parse(CHECKCOMMODITY1.CHECKDATE.Text).ToString("yyyyMMdd") + "' AND CHECK_STATE = 1" + _whereSql2)) { _CHECKCOMMODITY.ExecuteNonQuery(@"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET OPERATE_STATE = 1000 WHERE OPERATE_STATE = 8000 AND EXISTS(SELECT 1 FROM SENDREC_STORAGE.T_CHECKCOMMODITYDETAIL B WHERE A.SERVERPARTSTOCK_ID = B.SERVERPARTSTOCK_ID AND CHECKCOMMODITY_ID = " + _CHECKCOMMODITY.CHECKCOMMODITY_ID + ")", null); _CHECKCOMMODITY.ExecuteNonQuery("DELETE FROM SENDREC_STORAGE.T_CHECKCOMMODITYDETAIL WHERE CHECKCOMMODITY_ID = " + _CHECKCOMMODITY.CHECKCOMMODITY_ID, null); _CHECKCOMMODITY.Delete(); } ButtonDelete.Enabled = CHECKCOMMODITY1.Save(); ButtonPrintBill.Enabled = ButtonreFlash.Enabled = ButtonSave_Data.Enabled = ButtonNew.Enabled = true; //刷新弹出页列表 RefreshOpenerGridPage(_RefreshType ? RefreshGridPageType.Update : RefreshGridPageType.Insert); //提示信息 if (ButtonDelete.Enabled) { string OutTypeString = ""; //if (COMMODITYTYPE_NAME.SelectedValue != "1=1") //{ // OutTypeString = COMMODITYTYPE_NAME.SelectedValue; // //HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); // new HighWay.Storage.Business.COMMODITYTYPE(Transaction).GetSubCommodityType(ref OutTypeString, OutTypeString, "", true); // OutTypeString = "COMMODITY_TYPE in(" + OutTypeString + ")"; //} //1.插入数据 2.打印对应的表单 Business.CHECKCOMMODITYDETAIL _CHECKCOMMODITYDETAIL = new Business.CHECKCOMMODITYDETAIL(this.Transaction); _CHECKCOMMODITYDETAIL.InsertIntoFromStock(CHECKCOMMODITY1.SERVERPART_ID.SelectedValue, CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text, CHECKCOMMODITY1.CHECKDATE.Text, OutTypeString, Request["SENDREC_TYPE"]); //刷新对应的列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, StorageHighWay.CommonHelper.GetDictionary(Transaction, "SERVERPART_ID", "SELECT SERVERPART_ID,SERVERPART_NAME FROM HIGHWAY_STORAGE.T_SERVERPART")); Alert("保存成功!", 3); } } catch (Exception ex) { //回滚事务 Transaction.Rollback(); //记录日志 ErrorLogHelper.Write(ex); #if DEBUG Alert("保存失败!可能的原因:\n" + ex.Message); #else Alert("保存失败!"); #endif } } protected void ButtonDelete_Click(object sender, EventArgs e) { try { //删除数据 ButtonDelete.Enabled = !CHECKCOMMODITY1.Delete(); //(CHECKCOMMODITY1.FindControl("CHECKPERSON") as TextBoxEx).Text = PassportInfo.Name; //(CHECKCOMMODITY1.FindControl("PASSPORT_ID") as TextBoxEx).Text = PassportInfo.ID.ToString(); //(CHECKCOMMODITY1.FindControl("CHECK_STATE") as TextBoxEx).Text = "0"; //刷新弹出页列表 RefreshOpenerGridPage(RefreshGridPageType.Delete); //提示信息 Alert("删除成功!", 3); GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, StorageHighWay.CommonHelper.GetDictionary(Transaction, "SERVERPART_ID", "select SERVERPART_ID,SERVERPART_NAME FROM HIGHWAY_STORAGE.T_SERVERPART")); CHECKCOMMODITY1.LoadData(); } catch (Exception ex) { //回滚事务 Transaction.Rollback(); //记录日志 ErrorLogHelper.Write(ex); #if DEBUG Alert("删除失败!可能的原因:\n" + ex.Message); #else Alert("删除失败!"); #endif } } #endregion #region 方法 -> 页面page绑定 //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); } //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); } //查询SQL设置 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); if (CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text != "") { e.AddAndParams("CHECKCOMMODITY_ID", CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text); } else { e.SetOtherUserCustomWhereSqlString = "1!=1"; } if (COMMODITYTYPE_NAME.SelectedValue != "1=1") { string OutTypeString = COMMODITYTYPE_NAME.SelectedValue; //HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); new HighWay.Storage.Business.COMMODITYTYPE(Transaction).GetSubCommodityType(ref OutTypeString, OutTypeString, "", true); e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + "COMMODITY_TYPE in(" + OutTypeString + ")"; } //且搜索条件 //e.AddAndParams(字段名, 值); //或搜索条件 //e.AddOrParams(字段名, 值); //排序 e.AddOrderByParams("COMMODITYTYPE_CODE,COMMODITY_CODE", false); } #endregion #region 方法 -> 行绑定 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string SQLString = ""; if (CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text != "") { SQLString = "CHECKCOMMODITY_ID = " + CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text; } else { SQLString = "1!=1"; } if (COMMODITYTYPE_NAME.SelectedValue != "1=1") { string OutTypeString = COMMODITYTYPE_NAME.SelectedValue; //HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); new HighWay.Storage.Business.COMMODITYTYPE(Transaction).GetSubCommodityType(ref OutTypeString, OutTypeString, "", true); SQLString += (SQLString == "" ? "" : " AND ") + "COMMODITY_TYPE in(" + OutTypeString + ")"; } DataTable dt = (new Business.CHECKCOMMODITY(this.Transaction)).ExecuteDataTable(@"SELECT NVL(SUM(OVERPLUSCOUNT),0), NVL(SUM(LASTPRICE * OVERPLUSCOUNT),0) FROM SENDREC_STORAGE.V_SERVERPARTSTOCKDETAIL WHERE " + SQLString); NumberSpanText.InnerText = dt.Rows[0][0].ToString(); PriceSpanText.InnerText = dt.Rows[0][1].ToString(); } if (e.Row.RowType == DataControlRowType.DataRow) { string _COMMODITY_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["COMMODITY_ID"].ToEncrypt(); string _NEW_CHECKDESC = GridViewEx1.DataKeys[e.Row.RowIndex].Values["NEW_CHECKDESC"].ToString(); string _NEW_OVERPLUSCOUNT = GridViewEx1.DataKeys[e.Row.RowIndex].Values["NEW_OVERPLUSCOUNT"].ToString(); //e.Row.Attributes["onclick"] = GridViewEx1.GetOpenPopDialogClientScript( // "/SendRec/Modules/CheckCommodity/Proinst/APPLYPROINSTList.aspx?COMMODITY_ID=" + _COMMODITY_ID + // "&StartDay=" + (CHECKCOMMODITY1.FindControl("PRECHECKDATE") as TextBoxEx).Text.Trim().ToEncrypt() + // "&EndDay=" + CHECKCOMMODITY1.CHECKDATE.Text.Trim().ToEncrypt() + "&SENDREC_TYPE=" + Request["SENDREC_TYPE"]); TextBoxEx _COMMODITY_Count_TextBoxEx = e.Row.Cells[e.Row.Cells.Count - 2].FindControl("COMMODITY_Count") as TextBoxEx; _COMMODITY_Count_TextBoxEx.Text = _NEW_OVERPLUSCOUNT; TextBoxEx _COMMODITY_Reason_TextBoxEx = e.Row.Cells[e.Row.Cells.Count - 1].FindControl("COMMODITY_Reason") as TextBoxEx; _COMMODITY_Reason_TextBoxEx.Text = _NEW_CHECKDESC; try { if (e.Row.Cells[e.Row.Cells.Count - 3].Text == "0") { e.Row.Cells[e.Row.Cells.Count - 3].Text = (double.Parse(e.Row.Cells[5].Text) * double.Parse(e.Row.Cells[6].Text)).ToString(); } } catch { } } } #endregion #region 方法 -> 打印盘存表 protected void ButtonPrintBill_Click(object sender, EventArgs e) { //判断对应的有没有保存 CurrObject.CHECKCOMMODITY_ID string OutTypeString = ""; if (CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text == null || CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text == "") { Alert("请先保存对应的盘点信息"); return; } if (COMMODITYTYPE_NAME.SelectedValue != "1=1") { OutTypeString = COMMODITYTYPE_NAME.SelectedValue; //HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); new HighWay.Storage.Business.COMMODITYTYPE(Transaction).GetSubCommodityType(ref OutTypeString, OutTypeString, "", true); OutTypeString = "COMMODITY_TYPE in(" + OutTypeString + ")"; } //1.插入数据 2.打印对应的表单 Business.CHECKCOMMODITYDETAIL _CHECKCOMMODITYDETAIL = new Business.CHECKCOMMODITYDETAIL(this.Transaction); //_CHECKCOMMODITYDETAIL.InsertIntoFromStock(CHECKCOMMODITY1.SERVERPART_ID.SelectedValue, // CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text, CHECKCOMMODITY1.CHECKDATE.Text, OutTypeString); DataTable _dt = _CHECKCOMMODITYDETAIL.GetCheckCommodityStockTable(CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text, OutTypeString); ExcelHelper _ExcelHelper = new ExcelHelper(); _ExcelHelper.DataTableToExcel("盘存商品数据导出", _dt, "盘存数据", true); } #endregion #region 方法 -> 保存数据 protected void ButtonSave_Data_Click(object sender, EventArgs e) { //判断对应的有没有保存 CurrObject.CHECKCOMMODITY_ID if (CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text == null || CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text == "") { Alert("请先保存对应的盘点信息"); return; } foreach (GridViewRow _GVR in GridViewEx1.Rows) { if (_GVR.RowType == DataControlRowType.DataRow) { try { //采购数量 PURCHASECOUNT_TextBoxEx TextBoxEx _COMMODITY_Count_TextBoxEx = _GVR.FindControl("COMMODITY_Count") as TextBoxEx; //单位 Unit_DropDownListEx TextBoxEx _COMMODITY_Reason_TextBoxEx = _GVR.FindControl("COMMODITY_Reason") as TextBoxEx; string _CHECKCOMMODITYDETAIL_ID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["CHECKCOMMODITYDETAIL_ID"].ToString(); string _SERVERPARTSTOCK_ID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["SERVERPARTSTOCK_ID"].ToString(); string _COMMODITY_ID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["COMMODITY_ID"].ToString(); double.TryParse(_GVR.Cells[5].Text,out double OVERPLUSCOUNT); Business.TEMPCHECKCOMMODITYDETAIL _TEMPCHECKCOMMODITYDETAIL = new Business.TEMPCHECKCOMMODITYDETAIL(this.Transaction); _TEMPCHECKCOMMODITYDETAIL.AddSearchParameter("CHECKCOMMODITYDETAIL_ID", _CHECKCOMMODITYDETAIL_ID); if (_TEMPCHECKCOMMODITYDETAIL.Search()) { if (_COMMODITY_Count_TextBoxEx.Text == "") { _TEMPCHECKCOMMODITYDETAIL.OVERPLUSCOUNT = null; } else { _TEMPCHECKCOMMODITYDETAIL.OVERPLUSCOUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text); } _TEMPCHECKCOMMODITYDETAIL.CHECKDESC = _COMMODITY_Reason_TextBoxEx.Text; _TEMPCHECKCOMMODITYDETAIL.LOSSPROFIT_COUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text) - OVERPLUSCOUNT; _TEMPCHECKCOMMODITYDETAIL.Update(); } else { _TEMPCHECKCOMMODITYDETAIL.ResetProperty(); _TEMPCHECKCOMMODITYDETAIL.CHECKCOMMODITYDETAIL_ID = int.Parse(_CHECKCOMMODITYDETAIL_ID); _TEMPCHECKCOMMODITYDETAIL.OVERPLUSCOUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text); _TEMPCHECKCOMMODITYDETAIL.CHECKDESC = _COMMODITY_Reason_TextBoxEx.Text; _TEMPCHECKCOMMODITYDETAIL.COMMODITY_ID = int.Parse(_COMMODITY_ID); _TEMPCHECKCOMMODITYDETAIL.CHECKCOMMODITY_ID = int.Parse(CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text); _TEMPCHECKCOMMODITYDETAIL.SERVERPARTSTOCK_ID = int.Parse(_SERVERPARTSTOCK_ID); _TEMPCHECKCOMMODITYDETAIL.LOSSPROFIT_COUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text) - OVERPLUSCOUNT; _TEMPCHECKCOMMODITYDETAIL.Insert(); } } catch { } } } Alert("保存成功!"); } #endregion #region 方法 -> 确定盘存 protected void ButtonNew_Click(object sender, EventArgs e) { HideClientMask("正在完成盘存..."); //更新盘存状态 Business.CHECKCOMMODITY _CHECKCOMMODITY = new Business.CHECKCOMMODITY(this.Transaction); if (_CHECKCOMMODITY.ExecuteDataTable("SELECT 1 FROM SENDREC_STORAGE.T_CHECKSTOCK WHERE CHECKCOMMODITY_ID = " + CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text).Rows.Count == 0 || new Business.CHECKCOMMODITYDETAIL(Transaction).GetCount( "WHERE CHECKCOMMODITY_ID = " + CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text + " AND ((CURINCOUNT IS NULL OR CUROUTCOUNT IS NULL OR CURBACKCOUNT IS NULL))") > 0) { Alert("盘存数据正在生成中,请稍后再试!"); return; } _CHECKCOMMODITY.CHECKCOMMODITY_ID = int.Parse(CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text); if (_CHECKCOMMODITY.Select()) { _CHECKCOMMODITY.CHECK_STATE = 1; _CHECKCOMMODITY.Update(); foreach (GridViewRow _GVR in GridViewEx1.Rows) { if (_GVR.RowType == DataControlRowType.DataRow) { try { //采购数量 PURCHASECOUNT_TextBoxEx TextBoxEx _COMMODITY_Count_TextBoxEx = _GVR.FindControl("COMMODITY_Count") as TextBoxEx; //单位 Unit_DropDownListEx TextBoxEx _COMMODITY_Reason_TextBoxEx = _GVR.FindControl("COMMODITY_Reason") as TextBoxEx; string _CHECKCOMMODITYDETAIL_ID = GridViewEx1.DataKeys[_GVR.RowIndex].Values["CHECKCOMMODITYDETAIL_ID"].ToString(); double.TryParse(_GVR.Cells[5].Text, out double OVERPLUSCOUNT); Business.CHECKCOMMODITYDETAIL _CHECKCOMMODITYDETAIL = new Business.CHECKCOMMODITYDETAIL(this.Transaction); _CHECKCOMMODITYDETAIL.AddSearchParameter("CHECKCOMMODITYDETAIL_ID", _CHECKCOMMODITYDETAIL_ID); if (_CHECKCOMMODITYDETAIL.Search()) { double NotaxPrice = (_CHECKCOMMODITYDETAIL.LASTAMOUNT_NOTAX.Value / _CHECKCOMMODITYDETAIL.LASTCOUNT.Value).Round(2); double taxPrice = (_CHECKCOMMODITYDETAIL.LASTAMOUNT.Value / _CHECKCOMMODITYDETAIL.LASTCOUNT.Value).Round(2); if (!string.IsNullOrEmpty(_COMMODITY_Count_TextBoxEx.Text)) { _CHECKCOMMODITYDETAIL.LASTCOUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text); _CHECKCOMMODITYDETAIL.LASTAMOUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text) * taxPrice; _CHECKCOMMODITYDETAIL.LASTAMOUNT_NOTAX = double.Parse(_COMMODITY_Count_TextBoxEx.Text) * NotaxPrice; } _CHECKCOMMODITYDETAIL.CHECKDESC = _COMMODITY_Reason_TextBoxEx.Text; _CHECKCOMMODITYDETAIL.LOSSPROFIT_COUNT = double.Parse(_COMMODITY_Count_TextBoxEx.Text) - OVERPLUSCOUNT; _CHECKCOMMODITYDETAIL.LOSSPROFIT_AMOUNT = _CHECKCOMMODITYDETAIL.LOSSPROFIT_COUNT.Value * NotaxPrice; _CHECKCOMMODITYDETAIL.LOSSPROFIT_TAXAMOUNT = _CHECKCOMMODITYDETAIL.LOSSPROFIT_COUNT.Value * taxPrice; _CHECKCOMMODITYDETAIL.Update(); } } catch { } } } foreach (Business.CHECKCOMMODITYDETAIL _CHECKCOMMODITYDETAIL in (new Business.CHECKCOMMODITYDETAIL( _CHECKCOMMODITY).FillCollection("where CHECKCOMMODITY_ID = " + CHECKCOMMODITY1.CHECKCOMMODITY_ID.Text))) { //当数据为空的情况下,不更新对应的数据 if (_CHECKCOMMODITYDETAIL.OVERPLUSCOUNT == null) { continue; } //更新对应的库存 1.更新库存-添加库存 2.删除对应的临时 3.插入对应的盘存表 using (Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(_CHECKCOMMODITY)) { _SERVERPARTSTOCK.SERVERPARTSTOCK_ID = _CHECKCOMMODITYDETAIL.SERVERPARTSTOCK_ID; if (_SERVERPARTSTOCK.Select()) { _SERVERPARTSTOCK.OVERPLUSCOUNT = _CHECKCOMMODITYDETAIL.LASTCOUNT; _SERVERPARTSTOCK.SUPPORT_PRICE = _CHECKCOMMODITYDETAIL.LASTAMOUNT; _SERVERPARTSTOCK.TOTAL_PRICE = _CHECKCOMMODITYDETAIL.LASTAMOUNT_NOTAX; _SERVERPARTSTOCK.Update(); } } } //校准库存 string UpdateSql = ""; UpdateSql = string.Format(@"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET (OVERPLUSCOUNT,SUPPORT_PRICE,TOTAL_PRICE) = ( SELECT NVL(A.OVERPLUSCOUNT,0) + NVL(CURIN_COUNT,0) - NVL(CUROUT_COUNT,0) - NVL(CURBACK_COUNT,0), NVL(A.SUPPORT_PRICE,0) + NVL(CURIN_TAXAMOUNT,0) - NVL(CUROUT_TAXAMOUNT,0) - NVL(CURBACK_TAXAMOUNT,0), NVL(A.TOTAL_PRICE,0) + NVL(CURIN_AMOUNT,0) - NVL(CUROUT_AMOUNT,0) - NVL(CURBACK_AMOUNT,0) FROM SENDREC_STORAGE.T_CHECKSTOCK B WHERE A.SERVERPARTSTOCK_ID = B.SERVERPARTSTOCK_ID AND B.CHECKCOMMODITY_ID = {0}) WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND EXISTS (SELECT 1 FROM SENDREC_STORAGE.T_CHECKSTOCK B WHERE A.SERVERPARTSTOCK_ID = B.SERVERPARTSTOCK_ID AND B.CHECKCOMMODITY_ID = {0})", _CHECKCOMMODITY.CHECKCOMMODITY_ID); _CHECKCOMMODITY.ExecuteNonQuery(UpdateSql, null); /*//增加入库数量及金额 if (_CHECKCOMMODITY.ExecuteDataTable(@"SELECT 1 FROM SENDREC_STORAGE.V_PROINSTCOMMODITY B WHERE EXISTS(SELECT 1 FROM SENDREC_STORAGE.T_SERVERPARTSTOCK A WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND A.COMMODITY_ID = B.COMMODITY_ID AND A.SERVERPART_ID = B.SERVERPART_ID) AND B.FINISHDATE > TO_DATE('" + _CHECKCOMMODITY.CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPART_ID = " + _CHECKCOMMODITY.SERVERPART_ID).Rows.Count > 0) { UpdateSql = string.Format(@"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET (OVERPLUSCOUNT,SUPPORT_PRICE,TOTAL_PRICE) = ( SELECT NVL(A.OVERPLUSCOUNT,0) + NVL(SUM(B.TOTAL_COUNT),0), NVL(A.SUPPORT_PRICE,0) + NVL(SUM(B.TOTALPRICE),0), NVL(A.TOTAL_PRICE,0) + NVL(SUM(B.TOTAL_PRICE),0) FROM SENDREC_STORAGE.V_PROINSTCOMMODITY B WHERE A.COMMODITY_ID = B.COMMODITY_ID AND A.SERVERPART_ID = B.SERVERPART_ID AND B.SERVERPART_ID = {0} AND B.FINISHDATE > {1}) WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND EXISTS (SELECT 1 FROM SENDREC_STORAGE.V_PROINSTCOMMODITY C WHERE A.COMMODITY_ID = C.COMMODITY_ID AND A.SERVERPART_ID = C.SERVERPART_ID AND C.FINISHDATE > {1}) AND A.SERVERPART_ID = {0}", _CHECKCOMMODITY.SERVERPART_ID, "TO_DATE('" + _CHECKCOMMODITY.CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')"); _CHECKCOMMODITY.ExecuteNonQuery(UpdateSql, null); } //扣除出库数量及金额 if (_CHECKCOMMODITY.ExecuteDataTable(@"SELECT 1 FROM SENDREC_STORAGE.V_PROINSTCOMMODITYOUT B WHERE EXISTS(SELECT 1 FROM SENDREC_STORAGE.T_SERVERPARTSTOCK A WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND A.COMMODITY_ID = B.COMMODITY_ID AND A.SERVERPART_ID = B.SERVERPART_ID) AND B.FINISHDATE > TO_DATE('" + _CHECKCOMMODITY.CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPART_ID = " + _CHECKCOMMODITY.SERVERPART_ID).Rows.Count > 0) { UpdateSql = string.Format(@"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET (OVERPLUSCOUNT,SUPPORT_PRICE,TOTAL_PRICE) = ( SELECT NVL(A.OVERPLUSCOUNT,0) - NVL(SUM(B.TOTAL_COUNT),0), NVL(A.SUPPORT_PRICE,0) - NVL(SUM(B.TOTALPRICE),0), NVL(A.TOTAL_PRICE,0) - NVL(SUM(B.TOTAL_PRICE),0) FROM SENDREC_STORAGE.V_PROINSTCOMMODITYOUT B WHERE A.COMMODITY_ID = B.COMMODITY_ID AND A.SERVERPART_ID = B.SERVERPART_ID AND B.SERVERPART_ID = {0} AND B.FINISHDATE > {1}) WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND EXISTS (SELECT 1 FROM SENDREC_STORAGE.V_PROINSTCOMMODITYOUT C WHERE A.COMMODITY_ID = C.COMMODITY_ID AND A.SERVERPART_ID = C.SERVERPART_ID AND C.FINISHDATE > {1}) AND A.SERVERPART_ID = {0}", _CHECKCOMMODITY.SERVERPART_ID, "TO_DATE('" + _CHECKCOMMODITY.CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')"); _CHECKCOMMODITY.ExecuteNonQuery(UpdateSql, null); } //扣除退货数量及金额 if (_CHECKCOMMODITY.ExecuteDataTable(@"SELECT 1 FROM SENDREC_STORAGE.V_BACKCOMMODITY B WHERE EXISTS(SELECT 1 FROM SENDREC_STORAGE.T_SERVERPARTSTOCK A WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND A.COMMODITY_ID = B.COMMODITY_ID AND A.SERVERPART_ID = B.SERVERPART_ID) AND B.APPLYPROINST_DATE > TO_DATE('" + _CHECKCOMMODITY.CHECKDATE + "','YYYY/MM/DD HH24:MI:SS') AND SERVERPART_ID = " + _CHECKCOMMODITY.SERVERPART_ID).Rows.Count > 0) { UpdateSql = string.Format(@"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET (OVERPLUSCOUNT,SUPPORT_PRICE,TOTAL_PRICE) = ( SELECT NVL(A.OVERPLUSCOUNT,0) - NVL(SUM(B.TOTAL_COUNT),0), NVL(A.SUPPORT_PRICE,0) - NVL(SUM(B.TOTAL_PRICE),0), NVL(A.TOTAL_PRICE,0) - NVL(SUM(B.TOTAL_NOTAXPRICE),0) FROM SENDREC_STORAGE.V_BACKCOMMODITY B WHERE A.COMMODITY_ID = B.COMMODITY_ID AND A.SERVERPART_ID = B.SERVERPART_ID AND B.SERVERPART_ID = {0} AND B.APPLYPROINST_DATE > {1}) WHERE NVL(A.OPERATE_STATE,0) <> 8000 AND EXISTS (SELECT 1 FROM SENDREC_STORAGE.V_BACKCOMMODITY C WHERE A.COMMODITY_ID = C.COMMODITY_ID AND A.SERVERPART_ID = C.SERVERPART_ID AND C.APPLYPROINST_DATE > {1}) AND A.SERVERPART_ID = {0}", _CHECKCOMMODITY.SERVERPART_ID, "TO_DATE('" + _CHECKCOMMODITY.CHECKDATE + "','YYYY/MM/DD HH24:MI:SS')"); _CHECKCOMMODITY.ExecuteNonQuery(UpdateSql, null); }*/ //若当日盘存,则剔除无效库存 if (_CHECKCOMMODITY.CHECKDATE.Value.Date == DateTime.Now.Date) { UpdateSql = @"UPDATE SENDREC_STORAGE.T_SERVERPARTSTOCK A SET A.OPERATE_STATE = 8000 WHERE NVL(OVERPLUSCOUNT,0) = 0 AND NVL(SUPPORT_PRICE,0) = 0 AND NVL(TOTAL_PRICE,0) = 0 AND NVL(A.OPERATE_STATE,1000) <> 8000 AND SERVERPART_ID = " + _CHECKCOMMODITY.SERVERPART_ID; _CHECKCOMMODITY.ExecuteNonQuery(UpdateSql, null); } } //清空数据 _CHECKCOMMODITY.ResetProperty(); _CHECKCOMMODITY.PASSPORT_ID = PassportInfo.ID; _CHECKCOMMODITY.CHECKPERSON = PassportInfo.Name; CHECKCOMMODITY1.CurrObject.CopyFrom(_CHECKCOMMODITY); CHECKCOMMODITY1.BindObjectToControl(); ButtonDelete.Enabled = false; ButtonPrintBill.Enabled = ButtonreFlash.Enabled = ButtonSave_Data.Enabled = ButtonNew.Enabled = ButtonDelete.Enabled; //重新绑定数据 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, StorageHighWay.CommonHelper.GetDictionary(Transaction, "SERVERPART_ID", "SELECT SERVERPART_ID,SERVERPART_NAME FROM HIGHWAY_STORAGE.T_SERVERPART")); CHECKCOMMODITY1.LoadData(); Alert("盘存完成!!"); } #endregion #region 方法 -> 刷新列表 protected void ButtonreFlash_Click(object sender, EventArgs e) { //刷新列表 GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1); } #endregion protected void Btnbusiness_CallBackClick(object sender, ClientSetEventArgs e) { string AlertString = string.Empty; foreach (Business.APPLYPROINST _APPLYPROINST in (new Business.APPLYPROINST(this.Transaction)).FillCollection( "WHERE APPLYPROINST_TYPE > 1000 AND FINISHDATE IS NULL AND APPLYPROINST_DATE <= TO_DATE('" + CHECKCOMMODITY1.CHECKDATE.Text + "','YYYY-MM-DD HH24:MI:SS') AND SERVERPART_ID = " + CHECKCOMMODITY1.SERVERPART_ID.SelectedValue)) { AlertString += AlertString == "" ? (_APPLYPROINST.APPLYPROINST_CODE) : ("','" + _APPLYPROINST.APPLYPROINST_CODE); } if (AlertString != "") { e.ClientScript = this.GetOpenPopDialogClientScript("/SendRec/Modules/PrintBill/Default.aspx?APPLYPROINST_CODE=" + AlertString.ToEncrypt() + "&SENDREC_TYPE=" + Request["SENDREC_TYPE"], "Default", 1200, 800, true, false, true); e.ExcuteClientScript(e.ClientScript); return; } else { e.ExcuteClientScript("alert('当前仓库无未办结业务!')"); } } } }