using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using DSWeb.Models;
using DSWeb.EntityDA;
using System.Text;
namespace DSWeb.SeaiInfo
{
public partial class ImportReceiptListGridSource : System.Web.UI.Page
{
private string strReadXmlType = "";//读取xml串方式 "init"-初始化获取所有账户信息;"add"-添加新的账户信息;"delete"-删除账户信息;"exist"查看是否有与委托相关账户
private int iShowCount;//每页显示数据量
private string strBSNO;//委托编号/账户信息GID
private string strGID;//委托编号/账户信息GID
//delete
private string strHandle;//账户操作说明
private const int iResult = -99;//参数错误
T_ALL_DA T_ALL_DA = new T_ALL_DA();
private string strRange = String.Empty;//权限可视范围
RangeDA RangeDA = new RangeDA();
public string strUserID;//用户GID
public string strCompanyID;//公司GID
public string strShowName;//用户显示名
public string strDeptName;//部门名称
protected void Page_Load(object sender, EventArgs e)
{
if (Session["USERID"] != null)
{
strUserID = Session["USERID"].ToString().Trim();
}
else
{
Server.Transfer("~/Error/FriendError.aspx");
return;
//strUserID = "";
}
if (Session["SHOWNAME"] != null)
{
strShowName = Session["SHOWNAME"].ToString();
}
if (Session["COMPANYID"] != null)
{
strCompanyID = Session["COMPANYID"].ToString();
}
if (Session["DEPTNAME"] != null)
{
strDeptName = Session["DEPTNAME"].ToString();
}
//
#region 判断参数是否正确
if (Request.QueryString["read"] != null)
{
strReadXmlType = Request.QueryString["read"].ToString().Trim();
}
if (Request.QueryString["showcount"] != null)
{
iShowCount = int.Parse(Request.QueryString["showcount"].ToString());
}
if (Request.QueryString["BSNO"] != null)
{
strBSNO = Request.QueryString["BSNO"].ToString();
}
if (Request.QueryString["gid"] != null)
{
strGID = Request.QueryString["gid"].ToString();
}
#endregion
#region 权限可视范围
strRange = RangeDA.GetVISIBLERANGE(strUserID.Trim(), "modSeaImportList");
if (strRange.Trim().Equals("0"))//全部
{
strRange = "";
}
else if (strRange.Trim().Equals("1"))//分公司
{
strRange = " and BSNO in(" + RangeDA.GetSeaImportListCompany(strUserID.Trim()) + ")";
}
else if (strRange.Trim().Equals("2"))//部门
{
strRange = " and BSNO in(" + RangeDA.GetSeaImportListDEPT(strUserID.Trim()) + ")";
}
else if (strRange.Trim().Equals("3"))//个人
{
strRange = " and BSNO in(" + RangeDA.GetSeaImportListPerson(strUserID.Trim()) + ")";
}
else if (strRange.Trim().Equals("4"))//无
{
strRange = " and 1<0";
}
else//空
{
strRange = " and 1<0";
}
#endregion
//
if (!strReadXmlType.Equals(""))
{
if (strReadXmlType.Equals("delete") || strReadXmlType.Equals("recover"))
{
strHandle = (String)Request.QueryString["read"] as String;
if (strGID == null || strHandle == null)
{
Response.Write(iResult);
}
else
{
string strQuery = DoExcute(strGID, strHandle);
Response.Write(strQuery);
}
}
else if (strReadXmlType.Equals("addrq"))
{
string rq = T_ALL_DA.GetStrSQL("rq", "select rq=getdate()");
if (rq.Trim() != "")
{
int irq = rq.IndexOf(" ");
rq = rq.Substring(0, irq);
rq = rq.Replace("-", "/");
}
Response.Write(rq);
return;
}
else if (strReadXmlType.Equals("addname"))
{
Response.Write(strShowName);
return;
}
else
{
string strXml = GetCells(iShowCount, strReadXmlType);
//输出XML字符串
Response.ContentType = "text/xml";
strXml.Replace("&", "&");
Response.Write(strXml);
}
}
else
{
//访问参数不正确
Response.ContentType = "text/xml";
Response.Write("-2");
}
}
///
/// 根据用户提交的
///
/// 账户GID
/// 操作类型 delete删除单条账户
/// 值1-删除成功;值-1 -删除操作异常 值-2 -回滚失败 值-3 -未获取相关账户信息
private string DoExcute(string tempGid, string tempHandle)
{
string strVal = "";
ImportReceiptListDA ImportReceiptListDA = new ImportReceiptListDA();
//操作类型为删除
if (tempHandle == "delete")
{
int iResult = 0;
//先判断当前要删除的账户是否存在
if (!tempGid.Trim().Equals(""))
{
ImportReceiptListEntity ImportReceiptListEntity = new ImportReceiptListEntity();
ImportReceiptListEntity = ImportReceiptListDA.GetModel(int.Parse(strGID));
//if (ImportReceiptListEntity.id != null)
//{
iResult = ImportReceiptListDA.Delete(ImportReceiptListEntity.id);
//}
//else
//{
// iResult = -3; //未获取相关账户信息
//}
}
strVal = iResult.ToString();
}
if (tempHandle == "recover")
{
if (!tempGid.Trim().Equals(""))
{
ImportReceiptListEntity ImportReceiptListEntity = new ImportReceiptListEntity();
ImportReceiptListEntity = ImportReceiptListDA.GetModel(int.Parse(strGID));
if (ImportReceiptListEntity != null)
{
StringBuilder StrBuilder = new StringBuilder();
StrBuilder.Append(ImportReceiptListEntity.id + ",");//自增序列号
StrBuilder.Append(ImportReceiptListEntity.RECEIPTTYPE + ",");//单据类型
StrBuilder.Append(ImportReceiptListEntity.ReceiptNo + ",");//单据编号
StrBuilder.Append(ImportReceiptListEntity.RECEIPTSTATE + ",");//单据状态
StrBuilder.Append(ImportReceiptListEntity.Send_date + ",");//发出时间
StrBuilder.Append(ImportReceiptListEntity.receive_date + ",");//收到时间
StrBuilder.Append(ImportReceiptListEntity.trancer + ",");//快递公司
StrBuilder.Append(ImportReceiptListEntity.trancNo + ",");//快递单号
StrBuilder.Append(ImportReceiptListEntity.remark + ",");//备注
StrBuilder.Append(ImportReceiptListEntity.MODIFIEDUSER + ",");//录入人
StrBuilder.Append(ImportReceiptListEntity.MODIFIEDTIME);//录入时间
strVal = StrBuilder.ToString();
}
else
{
strVal = "-3";
}
}
else
{
strVal = "-3";
}
}
return strVal;
}
///
/// 获取账户信息
///
///
private string GetCells(int iShowCount, string readXmlType)
{
ImportReceiptListEntity ImportReceiptListEntity = new ImportReceiptListEntity();
ImportReceiptListDA ImportReceiptListDA = new ImportReceiptListDA();
ImportReceiptListEntity existImportReceiptListEntity = new ImportReceiptListEntity();
existImportReceiptListEntity = ImportReceiptListDA.GetModel(strBSNO);
if (existImportReceiptListEntity != null && !strReadXmlType.Equals("exist"))
{
//获取所有账户信息,用做Grid显示
DataTable DTable = new DataTable();
//初始化
string strSql = " SELECT [Id],RECEIPTTYPE,Receiptno,RECEIPTSTATE,Send_date,Receive_date,Trancer,TrancNo,remark,MODIFIEDUSER=(SELECT top 1 SHOWNAME from [user] where GID=Import_receipt.MODIFIEDUSER),MODIFIEDTIME FROM Import_receipt WHERE BSNO = '" + strBSNO + "' " + strRange + " ORDER BY [Id] ASC";
DTable = getStatusNameTable(ImportReceiptListDA.GetExcuteSql(strSql).Tables[0]);
//编排字符串 xml串
StringBuilder dataBuilder = new StringBuilder();
dataBuilder.Append("");
dataBuilder.Append("");
int iCount = DTable.Rows.Count;
for (int i = 0; i < iCount; i++)
{
int jCount = DTable.Columns.Count;
dataBuilder.Append("");
for (int j = 1; j < jCount; j++)
{
switch (j)
{
case 1://单据类型
string xl = GetRECEIPTTYPE(DTable.Rows[i][j].ToString().Trim());
if (xl != "")
{
dataBuilder.Append(xl);
}
else
{
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
}
break;
case 2://单据编号
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
break;
case 3://单据状态
xl = GetRECEIPTSTATE(DTable.Rows[i][j].ToString().Trim());
if (xl != "")
{
dataBuilder.Append(xl);
}
else
{
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
}
break;
case 4://发出时间
string rq = DTable.Rows[i][j].ToString();
if (rq.Trim() != "")
{
int irq = rq.IndexOf(" ");
rq = rq.Substring(0, irq);
rq = rq.Replace("-", "/");
}
dataBuilder.Append("" + rq + " | ");
break;
case 5://收到时间
rq = DTable.Rows[i][j].ToString();
if (rq.Trim() != "")
{
int irq = rq.IndexOf(" ");
rq = rq.Substring(0, irq);
rq = rq.Replace("-", "/");
}
dataBuilder.Append("" + rq + " | ");
break;
case 6://快递公司
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
break;
case 7://快递单号
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
break;
case 8://备注
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
break;
case 9://录入人
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
break;
case 10://录入时间
dataBuilder.Append("" + DTable.Rows[i][j].ToString() + " | ");
break;
}
}
dataBuilder.Append("
");
}
dataBuilder.Append("");
return dataBuilder.ToString();
}
else if (existImportReceiptListEntity != null && strReadXmlType.Equals("exist"))
{
return "1";//存在账户
}
else if (existImportReceiptListEntity == null && strReadXmlType.Equals("add"))
{
StringBuilder dataBuilder = new StringBuilder();
dataBuilder.Append("");
dataBuilder.Append("");
dataBuilder.Append("");
//单据类型
string strcb = GetRECEIPTTYPE("");
if (strcb.Trim() == "")
{
dataBuilder.Append(" | ");
}
else
{
dataBuilder.Append(strcb);
}
//单据编号
dataBuilder.Append(" | ");
//单据状态
strcb = GetRECEIPTSTATE("");
if (strcb.Trim() == "")
{
dataBuilder.Append(" | ");
}
else
{
dataBuilder.Append(strcb);
}
//发出时间
dataBuilder.Append(" | ");
//收到时间
dataBuilder.Append(" | ");
//快递公司
dataBuilder.Append(" | ");
//快递单号
dataBuilder.Append(" | ");
//备注
dataBuilder.Append(" | ");
//录入人
dataBuilder.Append("" + strShowName + " | ");
//录入时间
string rq = T_ALL_DA.GetStrSQL("rq", "select rq=getdate()");
//if (rq.Trim() != "")
//{
// int irq = rq.IndexOf(" ");
// rq = rq.Substring(0, irq);
// rq = rq.Replace("-", "/");
//}
dataBuilder.Append("" + rq + " | ");
dataBuilder.Append("
");
dataBuilder.Append("");
return dataBuilder.ToString();
}
else
{
return "-3";//没有相关的账户
}
}
///
/// 获取 单据类型 下拉列表
///
/// 当前信息值
///
public string GetRECEIPTTYPE(string strValue)
{
DataSet ds = T_ALL_DA.GetAllSQL("select * from crm_key_code where [KEYTYPE]='单据类型'");// and BSNO = '" + strBSNO + "'
if (ds != null)
{
StringBuilder clientBuilder = new StringBuilder();
clientBuilder.Append("" + strValue);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (!ds.Tables[0].Rows[i]["KEYVALUE"].ToString().Trim().Equals(""))
{
clientBuilder.Append("");
}
}
clientBuilder.Append(" | ");
return clientBuilder.ToString();
}
else
{
return "";
}
}
///
/// 获取 单据状态 下拉列表
///
/// 当前信息值
///
public string GetRECEIPTSTATE(string strValue)
{
DataSet ds = T_ALL_DA.GetAllSQL("select * from crm_key_code where [KEYTYPE]='单据状态'");
if (ds != null)
{
StringBuilder clientBuilder = new StringBuilder();
clientBuilder.Append("" + strValue);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (!ds.Tables[0].Rows[i]["KEYVALUE"].ToString().Trim().Equals(""))
{
clientBuilder.Append("");
}
}
clientBuilder.Append(" | ");
return clientBuilder.ToString();
}
else
{
return "";
}
}
///
/// 将数据集表中账户状态OpStatusListStatus和应收应付类型OpStatusListType的数字状态位转换成文字
///
/// 原数据源DataTable
/// 返回新数据源DataTable
private DataTable getStatusNameTable(DataTable tempTable)
{
DataTable sourceTable = tempTable;
DataTable cloneTable = new DataTable();
int iSwitch = 0;
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
if (iSwitch == 0)
{
for (int j = 0; j < sourceTable.Columns.Count; j++)
{
DataColumn newColumn = new DataColumn();
newColumn.ColumnName = sourceTable.Columns[j].ColumnName;
newColumn.DataType = sourceTable.Columns[j].DataType;
cloneTable.Columns.Add(newColumn);
}
iSwitch = 1;
}
DataRow cloneRow = cloneTable.NewRow();
for (int k = 0; k < sourceTable.Columns.Count; k++)
{
cloneRow[sourceTable.Columns[k].ColumnName] = sourceTable.Rows[i][k];
}
cloneTable.Rows.Add(cloneRow);
}
return cloneTable;
}
}
}