You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
D7QUANTAI/DSWeb/Shipping/SeaeOrderInfoGridSource.asp...

282 lines
11 KiB
C#

10 months ago
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.Shipping
{
public partial class SeaeOrderInfoGridSource : System.Web.UI.Page
{
private string strReadXmlType = "";//读取xml串方式 "init"-初始化获取所有账户信息;"add"-添加新的账户信息;"delete"-删除账户信息;"exist"查看是否有与委托相关账户
private int iShowCount;//每页显示数据量
private string strORDNO;//委托编号
private string strCTN_ID;//委托编号
//delete
private string strCrmSeaeorderctnGid;//账户信息GID
private string strHandle;//账户操作说明
private const int iResult = -99;//参数错误
protected void Page_Load(object sender, EventArgs e)
{
#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["ORDNO"] != null)
{
strORDNO = Request.QueryString["ORDNO"].ToString();
}
if (Request.QueryString["CTN_ID"] != null)
{
strCTN_ID = Request.QueryString["CTN_ID"].ToString();
}
#endregion
//
if (!strReadXmlType.Equals(""))
{
if (strReadXmlType.Equals("delete") || strReadXmlType.Equals("recover"))
{
strCrmSeaeorderctnGid = (String)Request.QueryString["CTN_ID"] as String;
strHandle = (String)Request.QueryString["read"] as String;
if (strCrmSeaeorderctnGid == null || strHandle == null)
{
Response.Write(iResult);
}
else
{
string strQuery = DoExcute(strCrmSeaeorderctnGid, strHandle);
Response.Write(strQuery);
}
}
else
{
string strOutputXml = "";
strOutputXml = GetCells(iShowCount, strReadXmlType);
//输出XML字符串
Response.ContentType = "text/xml";
strOutputXml.Replace("&", "&");
Response.Write(strOutputXml);
}
}
else
{
//访问参数不正确
Response.ContentType = "text/xml";
Response.Write("-2");
}
}
/// <summary>
/// 根据用户提交的
/// </summary>
/// <param name="tempGid">账户GID</param>
/// <param name="tempHandle">操作类型 delete删除单条账户</param>
/// <returns>值1-删除成功;值-1 -删除操作异常 值-2 -回滚失败 值-3 -未获取相关账户信息</returns>
private string DoExcute(string tempGid, string tempHandle)
{
string strVal = "";
CrmSeaeorderctnDA CrmSeaeorderctnDA = new CrmSeaeorderctnDA();
//操作类型为删除
if (tempHandle == "delete")
{
int iResult = 0;
//先判断当前要删除的账户是否存在
if (!tempGid.Trim().Equals(""))
{
CrmSeaeorderctnEntity CrmSeaeorderctnEntity = new CrmSeaeorderctnEntity();
CrmSeaeorderctnEntity = CrmSeaeorderctnDA.GetCrmSeaeorderctnByID(tempGid);
if (CrmSeaeorderctnEntity.CTN_ID != null)
{
iResult = CrmSeaeorderctnDA.DeleteCrmSeaeorderctnByGid(CrmSeaeorderctnEntity.CTN_ID);
}
else
{
iResult = -3; //未获取相关账户信息
}
}
strVal = iResult.ToString();
}
if (tempHandle == "recover")
{
if (!tempGid.Trim().Equals(""))
{
CrmSeaeorderctnEntity CrmSeaeorderctnEntity = new CrmSeaeorderctnEntity();
CrmSeaeorderctnEntity = CrmSeaeorderctnDA.GetCrmSeaeorderctnByID(tempGid);
if (CrmSeaeorderctnEntity != null)
{
StringBuilder CrmSeaeorderctnBuilder = new StringBuilder();
CrmSeaeorderctnBuilder.Append(CrmSeaeorderctnEntity.CTN_ID + ",");
CrmSeaeorderctnBuilder.Append(CrmSeaeorderctnEntity.CTNALL + ",");
CrmSeaeorderctnBuilder.Append(CrmSeaeorderctnEntity.CTNNUM + ",");
CrmSeaeorderctnBuilder.Append(CrmSeaeorderctnEntity.REMARK);
strVal = CrmSeaeorderctnBuilder.ToString();
}
else
{
strVal = "-3";
}
}
else
{
strVal = "-3";
}
}
return strVal;
}
/// <summary>
/// 获取账户信息
/// </summary>
/// <returns></returns>
private string GetCells(int iShowCount, string readXmlType)
{
CrmSeaeorderctnEntity CrmSeaeorderctnEntity = new CrmSeaeorderctnEntity();
CrmSeaeorderctnDA CrmSeaeorderctnDA = new CrmSeaeorderctnDA();
CrmSeaeorderctnEntity existCrmSeaeorderctnEntity = new CrmSeaeorderctnEntity();
existCrmSeaeorderctnEntity = CrmSeaeorderctnDA.GetCrmSeaeorderctnByLINKIDAndType(strORDNO);
if (existCrmSeaeorderctnEntity != null && !strReadXmlType.Equals("exist"))
{
//获取所有账户信息,用做Grid显示
DataTable CrmSeaeorderctnTable = new DataTable();
//初始化
string strInitSql = " SELECT CTN_ID,CTNALL,CTNNUM,REMARK FROM crm_seaeorderctn WHERE ORDNO = '" + strORDNO + "' ORDER BY ORDNO";
CrmSeaeorderctnTable = getStatusNameTable(CrmSeaeorderctnDA.GetExcuteSql(strInitSql).Tables[0]);
//编排字符串 xml串
StringBuilder dataBuilder = new StringBuilder();
dataBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
dataBuilder.Append("<rows>");
int iCount = CrmSeaeorderctnTable.Rows.Count;
for (int i = 0; i < iCount; i++)
{
int jCount = CrmSeaeorderctnTable.Columns.Count;
dataBuilder.Append("<row id=\"" + CrmSeaeorderctnTable.Rows[i]["CTN_ID"].ToString() + "\">");
for (int j = 1; j < jCount; j++)
{
switch (j)
{
case 1:
//dataBuilder.Append("<cell>" + CrmSeaeorderctnTable.Rows[i][j].ToString() + "</cell>");
dataBuilder.Append(GetCodeCtn(CrmSeaeorderctnTable.Rows[i][j].ToString()));
break;
case 2:
dataBuilder.Append("<cell>" + CrmSeaeorderctnTable.Rows[i][j].ToString() + "</cell>");
break;
case 3:
dataBuilder.Append("<cell>" + CrmSeaeorderctnTable.Rows[i][j].ToString() + "</cell>");
break;
}
}
dataBuilder.Append("</row>");
}
dataBuilder.Append("</rows>");
return dataBuilder.ToString();
}
else if (existCrmSeaeorderctnEntity != null && strReadXmlType.Equals("exist"))
{
return "1";//存在账户
}
else if (existCrmSeaeorderctnEntity == null && strReadXmlType.Equals("add"))
{
StringBuilder dataBuilder = new StringBuilder();
dataBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
dataBuilder.Append("<rows>");
dataBuilder.Append("<row id=\"" + Guid.NewGuid().ToString() + "\">");
//dataBuilder.Append("<cell></cell>");
dataBuilder.Append(GetCodeCtn(""));
dataBuilder.Append("<cell></cell>");
dataBuilder.Append("<cell></cell>");
dataBuilder.Append("</row>");
dataBuilder.Append("</rows>");
return dataBuilder.ToString();
}
else
{
return "-3";//没有相关的账户
}
}
/// <summary>
/// 将数据集表中账户状态CrmSeaeorderctnStatus和应收应付类型CrmSeaeorderctnType的数字状态位转换成文字
/// </summary>
/// <param name="tempTable">原数据源DataTable</param>
/// <returns>返回新数据源DataTable</returns>
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;
}
/// <summary>
/// 获取集装箱下拉列表
/// </summary>
public string GetCodeCtn(string strCodeCtn)
{
StringBuilder resultBuilder = new StringBuilder();
T_ALL_DA T_ALL_DA = new T_ALL_DA();
DataSet ds = T_ALL_DA.GetTCodeCtn();
resultBuilder.Append("<cell xmlcontent=\"1\">" + strCodeCtn);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
if (!ds.Tables[0].Rows[i]["CTNID"].ToString().Trim().Equals(""))
{
resultBuilder.Append("<option value=\"" + ds.Tables[0].Rows[i]["CTN"].ToString() + "\">" + ds.Tables[0].Rows[i]["CTN"].ToString() + "</option>");
}
}
resultBuilder.Append("</cell>");
return resultBuilder.ToString();
}
}
}