using System;
using System.Data;
using System.Web.UI.WebControls;
using SuperMap.RealEstate.CoreFrameWork;
using SuperMap.RealEstate.Web.UI.WebControls;
using SuperMap.RealEstate.Web.Utility;
using Business = SuperMap.RealEstate.SendRec.Storage.Business;
using HighWayBusiness = SuperMap.RealEstate.HighWay.Storage.Business;
namespace SuperMap.RealEstate.SendRec.Modules.SearchCommodity
{
public partial class ObjectPage : BasePage
{
private double CurrPage = 0.0, CurrPagePrice = 0.00;
private string CommodityTypeString = "";
private string ShowString = "";
private const string ShowTemplate = ",当前类别合计:含税{0}元," +
"除税{1}元,当前服务区合计:含税{2}元," +
"除税{3}元,库存总数:{4}";
#region 方法 -> 页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
//初始化并加载列表
InitWebControls();
InitTitle(null);
GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1,
DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE"));
//设置回车焦点按钮
SetControlClientAction(ButtonSearch);
LblTitle.Text = LblTitle.Text + ShowString;
}
private void InitWebControls()
{
SERVERPART_ID.Clear();
ListItemEx _ListItemEx = new ListItemEx();
if (PassportInfo.UserName == "system" || PassportInfo.UserName == "admin")
{
_ListItemEx.Text = "所有服务区";
_ListItemEx.Value = "";
SERVERPART_ID.Items.Add(_ListItemEx);
}
foreach (HighWayBusiness.SERVERPART _SERVERPART in
(new HighWayBusiness.SERVERPART(Transaction)).GetPassportServerPart(PassportInfo.CityAuthority, "1000,1001"))
{
_ListItemEx = new ListItemEx();
_ListItemEx.Text = _SERVERPART.SERVERPART_NAME;
_ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString();
SERVERPART_ID.Items.Add(_ListItemEx);
}
if (Session["SERVERPART_ID"] != null && Session["SERVERPART_ID"].ToString() != "")
{
SERVERPART_ID.SelectedValue = Session["SERVERPART_ID"].ToString();
}
}
#endregion
#region 方法 -> 加载合计信息
private void InitTitle(ClientSetEventArgs e)
{
try
{
double TypeTaxCount = 0; //类型含税金额
double TypeCount = 0; //类型除税金额
double ServerTaxCount = 0; //服务区含税金额
double ServerCount = 0; //服务区除税金额
double StockCount = 0; //库存总数
Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(this.Transaction);
if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1")
{
string OutTypeString = Request["ID"].ToDecrypt();
HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true);
CommodityTypeString = OutTypeString;
DataRow dataRow = _SERVERPARTSTOCK.GetTotalDTByType(SERVERPART_ID.SelectedValue,
CommodityTypeString, OVERPLUSCOUNT.SelectedValue).Rows[0];
double.TryParse(dataRow[0].ToString(), out TypeTaxCount);
double.TryParse(dataRow[1].ToString(), out TypeCount);
}
else if (Request["ID"] == "-1")
{
DataRow dataRow = _SERVERPARTSTOCK.GetTotalDTByType(SERVERPART_ID.SelectedValue,
"", OVERPLUSCOUNT.SelectedValue).Rows[0];
double.TryParse(dataRow[0].ToString(), out TypeTaxCount);
double.TryParse(dataRow[1].ToString(), out TypeCount);
}
DataRow dataRows = _SERVERPARTSTOCK.GetTotalDTByServerPart(SERVERPART_ID.SelectedValue,
OVERPLUSCOUNT.SelectedValue).Rows[0];
double.TryParse(dataRows[0].ToString(), out ServerTaxCount);
double.TryParse(dataRows[1].ToString(), out ServerCount);
double.TryParse(dataRows[2].ToString(), out StockCount);
ShowString = string.Format(ShowTemplate, TypeTaxCount.ToString("F2"), TypeCount.ToString("F2"),
ServerTaxCount.ToString("F2"), ServerCount.ToString("F2"), StockCount.ToString("F2"));
}
catch
{
ShowString = string.Format(ShowTemplate, 0, 0, 0, 0, 0);
}
}
#endregion
#region 方法 -> 列表事件
//查询
protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e)
{
GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
e.SetValue(GridPageEx1);
InitTitle(e);
e.ExcuteClientScript("setData(\"" + LblTitle.Text + ShowString + "\")");
}
//翻页事件
protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e)
{
GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1);
//设置UI变化
e.SetValue(GridViewEx1);
InitTitle(e);
e.ExcuteClientScript("setData(\"" + LblTitle.Text + ShowString + "\")");
}
//查询SQL设置
protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e)
{
//搜索选项的搜索条件过滤
if (!string.IsNullOrEmpty(TextBox_Search.Text))
e.AddOrParams(GridViewSearch1, TextBox_Search.Text);
if (!IsPostBack && string.IsNullOrEmpty(Request["ID"]))
{
e.AddAndParams("1", 2);
}
//添加服务区选项
//if (string.IsNullOrEmpty(SERVERPART_ID.SelectedValue))
//{
// e.AddAndParams("SERVERPART_ID", 0);
//}
if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue) && SERVERPART_ID.SelectedValue != "1=1")
{
e.AddAndParams("SERVERPART_ID", SERVERPART_ID.SelectedValue);
}
else
{
e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + "SERVERPART_ID IN (" +
(new HighWayBusiness.SERVERPART(this.Transaction)).GetPassportServerPartID(this.PassportInfo.CityAuthority) + ")";
}
//添加商品类别过滤
if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1")
{
string OutTypeString = Request["ID"].ToDecrypt();
HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true);
e.SetOtherUserCustomWhereSqlString = "COMMODITYTYPE_ID in(" + OutTypeString + ")";
CommodityTypeString = OutTypeString;
}
//else
// e.AddAndParams("COMMODITYTYPE_ID", -1);
if (OVERPLUSCOUNT.SelectedValue == "1")
{
e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ?
"OVERPLUSCOUNT > 0" : " AND OVERPLUSCOUNT > 0";
}
else if (OVERPLUSCOUNT.SelectedValue == "0")
{
e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ?
"NVL(OVERPLUSCOUNT,0) = 0" : " AND NVL(OVERPLUSCOUNT,0) = 0";
}
else if (OVERPLUSCOUNT.SelectedValue == "-1")
{
e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ?
"OVERPLUSCOUNT < 0" : " AND OVERPLUSCOUNT < 0";
}
else if (OVERPLUSCOUNT.SelectedValue == "exist")
{
e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ?
"OVERPLUSCOUNT IS NOT NULL" : " AND OVERPLUSCOUNT IS NOT NULL";
}
//排序
e.AddOrderByParams(GridViewOrderBy1);
}
#endregion
#region 方法 -> 行绑定事件
protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
LblTitle.Text = "当前页金额:含税0元,除税0元";
//InitTitle(null);
}
else if (e.Row.RowType == DataControlRowType.DataRow)
{
try
{
HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction);
_COMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = e.Row.Cells[2].Text.ToEncrypt();
if (_COMMODITYTYPE.Select())
{
e.Row.Cells[2].Text = _COMMODITYTYPE.COMMODITYTYPE_NAME;
}
}
catch { }
//进货明细--领用明细
string _SERVERPARTSTOCK_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SERVERPARTSTOCK_ID"].ToEncrypt();
string _COMMODITY_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["COMMODITY_ID"].ToEncrypt();
LinkButton LinkButton_Proinst = (LinkButton)e.Row.FindControl("LinkButton_Proinst");
LinkButton LB_RunningProinst = (LinkButton)e.Row.FindControl("LB_RunningProinst");
LinkButton_Proinst.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript(
"Proinst/APPLYPROINSTList.aspx?SERVERPARTSTOCK_ID=" + _SERVERPARTSTOCK_ID + "&COMMODITY_ID=" +
_COMMODITY_ID, 1000, 600) + " return false;";
Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(this.Transaction);
_SERVERPARTSTOCK.SERVERPARTSTOCK_ID_Encrypt = _SERVERPARTSTOCK_ID;
if (_SERVERPARTSTOCK_ID != "" && _SERVERPARTSTOCK.Select())
{
e.Row.Cells[7].Text = _SERVERPARTSTOCK.ExecuteDataTable("SELECT " +
_SERVERPARTSTOCK.OVERPLUSCOUNT + @" + NVL(SUM(A.TOTAL_COUNT),0) - NVL(SUM(B.TOTAL_COUNT),0)
FROM (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE = 2000)A,
(SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE > 2000)B,
SENDREC_STORAGE.T_SERVERPARTSTOCK C
WHERE C.COMMODITY_ID = A.COMMODITY_ID(+) AND C.COMMODITY_ID = B.COMMODITY_ID(+) AND
C.COMMODITY_ID = " + _SERVERPARTSTOCK.COMMODITY_ID).Rows[0][0].ToString();
}
else if (_SERVERPARTSTOCK.ExecuteDataTable("SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING " +
"WHERE COMMODITY_ID = " + _COMMODITY_ID.ToDecrypt()).Rows.Count > 0)
{
e.Row.Cells[7].Text = _SERVERPARTSTOCK.ExecuteDataTable(@"SELECT
NVL(SUM(A.TOTAL_COUNT),0) - NVL(SUM(B.TOTAL_COUNT),0)
FROM (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE = 2000)A,
(SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE > 2000)B,
SENDREC_STORAGE.V_UNIQUECOMMODITY C
WHERE C.COMMODITY_ID = A.COMMODITY_ID(+) AND C.COMMODITY_ID = B.COMMODITY_ID(+) AND
C.COMMODITY_ID = " + _COMMODITY_ID.ToDecrypt()).Rows[0][0].ToString();
}
if (e.Row.Cells[6].Text.Replace(" ", "") != e.Row.Cells[7].Text.Replace(" ", ""))
{
if (e.Row.Cells[6].Text.Replace(" ", "") == "" && e.Row.Cells[7].Text.Replace(" ", "") == "0")
{
LB_RunningProinst.Visible = false;
}
else
{
LB_RunningProinst.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript(
"Proinst/APPLYPROINSTList.aspx?SERVERPARTSTOCK_ID=" + _SERVERPARTSTOCK_ID + "&COMMODITY_ID=" +
_COMMODITY_ID + "&type=0", 1000, 600) + " return false;";
}
}
else
{
LB_RunningProinst.Visible = false;
}
try
{
CurrPage += double.Parse(e.Row.Cells[8].Text);
CurrPagePrice += double.Parse(e.Row.Cells[9].Text);
LblTitle.Text = "当前页金额:含税" + CurrPage +
"元,除税" + CurrPagePrice + "元" + ShowString;
}
catch { }
}
}
#endregion
protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e)
{
Session["SERVERPART_ID"] = SERVERPART_ID.SelectedValue;
//刷新数据
ButtonSearch_CallBackClick(ButtonSearch, e);
}
protected void ButtonPrintBill_Click(object sender, EventArgs e)
{
if (GridViewEx1.Rows.Count == 0)
{
Alert("请先查询列表后再导出excel!");
return;
}
DataTable _DataTable = new DataTable();
_DataTable.Columns.Add("序号");
_DataTable.Columns.Add("物资类型");
_DataTable.Columns.Add("物资名称");
_DataTable.Columns.Add("物资条码");
_DataTable.Columns.Add("物资规格");
_DataTable.Columns.Add("物资进价");
_DataTable.Columns.Add("剩余库存");
_DataTable.Columns.Add("预估库存");
_DataTable.CaseSensitive = false;
int RowCount = 1;
foreach (GridViewRow _GridViewRow in GridViewEx1.Rows)
{
if (_GridViewRow.RowType == DataControlRowType.DataRow)
{
DataRow _DataRow = _DataTable.NewRow();
_DataRow["序号"] = RowCount.ToString();
_DataRow["物资类型"] = _GridViewRow.Cells[2].Text.Trim().Replace(" ", "");
_DataRow["物资名称"] = _GridViewRow.Cells[4].Text.Trim().Replace(" ", "");
_DataRow["物资条码"] = _GridViewRow.Cells[5].Text.Trim().Replace(" ", "");
_DataRow["物资规格"] = _GridViewRow.Cells[11].Text.Trim().Replace(" ", "");
_DataRow["物资进价"] = _GridViewRow.Cells[12].Text.Trim().Replace(" ", "");
_DataRow["剩余库存"] = _GridViewRow.Cells[6].Text.Trim().Replace(" ", "");
_DataRow["预估库存"] = _GridViewRow.Cells[7].Text.Trim().Replace(" ", "");
_DataTable.Rows.Add(_DataRow);
RowCount++;
}
}
HZQR.Common.ExcelHelper _ExcelHelper = new HZQR.Common.ExcelHelper();
_ExcelHelper.DataTableToExcel("库存数据导出", _DataTable, "库存数据", true);
}
}
}