2025-03-27 15:05:14 +08:00

633 lines
36 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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('当前仓库无未办结业务!')");
}
}
}
}