633 lines
36 KiB
C#
633 lines
36 KiB
C#
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<Business.CHECKCOMMODITY>(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<Business.CHECKCOMMODITY>(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<Business.CHECKCOMMODITY>(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<Business.CHECKCOMMODITYDETAIL>(ObjectDataSource1, GridPageEx1);
|
||
//设置UI变化
|
||
e.SetValue(GridViewEx1);
|
||
e.SetValue(GridPageEx1);
|
||
}
|
||
|
||
//翻页事件
|
||
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
|
||
{
|
||
GridViewEx1.Pagging<Business.CHECKCOMMODITYDETAIL>(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<Business.CHECKCOMMODITY>(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<Business.CHECKCOMMODITY>(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('当前仓库无未办结业务!')");
|
||
}
|
||
}
|
||
}
|
||
}
|