using System;
using System.Collections;
using System.Collections.Generic;
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 System.Xml.Linq;
using DSWeb.EntityDA;
using DSWeb.Models;
using JsonHelper;
using System.Xml;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using DSWeb.Authority;
using System.Data.OleDb;
namespace DSWeb.PriceCarrier
{
public partial class CrmPriceCarrierList : System.Web.UI.Page
{
CrmPriceCarrierDA CrmPriceCarrierDA = new CrmPriceCarrierDA();
RangeDA RangeDA = new RangeDA();
public string strUserID;//用户GID
public string strCompanyID;//公司GID
public string strShowName;//用户显示名
public string strDeptName;//部门名称
//grid
private string strColumnVal;
private string strType = "25";//Grid模块号
//gridEnd
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();
this.hdCompanyid.Value = strCompanyID.Trim();
}
if (Session["DEPTNAME"] != null)
{
strDeptName = Session["DEPTNAME"].ToString();
}
//
//权限可视范围
this.hdRangeV.Value = RangeDA.GetVISIBLERANGE(strUserID.Trim(), "modCrmPriceCarrierList");
this.hdRangeO.Value = RangeDA.GetOPERATERANGE(strUserID.Trim(), "modCrmPriceCarrierList");
this.hdRange.Value = "";
//if (this.hdRangeV.Value.Trim() != this.hdRangeO.Value.Trim())
//{
this.hdRange.Value = "";
if (this.hdRangeO.Value.Trim().Equals("4"))//无
{
this.imgAdd.Disabled = true;
this.imgEdit.Disabled = true;
this.imgDel.Disabled = true;
this.imgFresh.Disabled = true;
this.divexcel.Disabled = true;
this.anylinkmenu1.Disabled = true;
this.btLOCKFLAG0.Disabled = true;
this.btLOCKFLAG1.Disabled = true;
this.btLOCKFLAG2.Disabled = true;
this.btLOCKFLAG3.Disabled = true;
this.anylinkmenu2.Disabled = true;
this.ibIssue0.Disabled = true;
this.ibIssue1.Disabled = true;
this.ibIssue2.Disabled = true;
this.ibIssue3.Disabled = true;
this.import_file.Disabled = true;
btExcel2.Enabled = false;
this.btERAR.Disabled = true;
}
//}
//grid
if (!IsPostBack)
{
strUserID = strUserID.Trim();
}
if (hid_setting.Value.Trim() != "")
{
strColumnVal = hid_setting.Value.Trim();
SaveColumnSetting(strColumnVal);
hid_setting.Value = "";
}
if (hid_header.Value.Trim() != "")
{
strColumnVal = hid_header.Value.Trim();
SaveColumnSetting(strColumnVal);
hid_header.Value = "";
}
//gridEnd
}
protected void btDel_Click(object sender, EventArgs e)
{
string alt = "";
if (this.hid_id.Value.Trim() != "")
{
string[] sDel = this.hid_id.Value.Trim().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < sDel.Length; i++)
{
alt += " or GID='" + sDel[i].ToString().Trim() + "'";
}
//
alt = CrmPriceCarrierDA.GetCrmPriceCarrierDel(alt.Trim(), strUserID.Trim());//, "FCL"
if (alt != "")
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key8", "");
return;
}
else
{
return;
}
}
}
protected String getBSNO()
{
string strBSNO = Guid.NewGuid().ToString();
strBSNO = strBSNO.Replace("-", "");
strBSNO = "EBPQ" + strBSNO;
return strBSNO;
}
protected void btExcel1_Click(object sender, EventArgs e)
{
setExcelReport();
}
protected void setExcelReport()
{
StringWriter sw = new StringWriter();
string sSQL = "";
//sw.WriteLine("结算单位\t委托编号\t主提单号\t分提单号\t船名\t航次\tETD\t目的港\t揽货人\t应收RMB\t实收RMB\t应收USD\t实收USD\t余额");
sw.WriteLine(this.hdNAMES.Value.Trim());
T_ALL_DA T_ALL_DA = new T_ALL_DA();
DataSet DS = T_ALL_DA.GetAllSQL(this.hdSQL.Value.Trim());
if (DS != null)
{
foreach (DataTable myTable in DS.Tables)
{
foreach (DataRow myRow in myTable.Rows)//遍历表
{
sSQL = "";
for (int i = 0; i < myTable.Columns.Count; i++)
{
if (sSQL.Trim() != "")
{
sSQL += "\t";
}
if (myRow[i].ToString() == null || myRow[i].ToString() == "")
{
sSQL += "";
if (sSQL.Trim() == "")
{
sSQL += "\t";
}
}
else
{
sSQL += myRow[i].ToString().Trim();
}
}
sw.WriteLine(sSQL);
}
}
//
sw.Close();
switch ("MUEXCEL")
{
case "MUEXCEL":
Response.AddHeader("Content-Disposition", "attachment; filename=report.xls");
Response.ContentType = "application/ms-excel";
break;
case "MUTEXT":
Response.AddHeader("Content-Disposition", "attachment; filename=report.txt");
Response.ContentType = "application/txt";
break;
case "MUWORD":
Response.AddHeader("Content-Disposition", "attachment; filename=report.doc");
Response.ContentType = "application/ms-word";
break;
case "MUPDF":
Response.AddHeader("Content-Disposition", "attachment; filename=report.pdf");
Response.ContentType = "application/pdf";
break;
case "MUXML":
Response.AddHeader("Content-Disposition", "attachment; filename=report.xml");
Response.ContentType = "application/xml";
break;
}
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
}
}
private HttpFileCollection files;
private int fileCount;
protected void btExcel2_Click(object sender, EventArgs e)
{
string Extension = "";
string SavedName = "";
string upname = "";
string savedpath = "";
string realname = "";
string virtualname = "";
string path = "";
string OppPath = "TempFiles";
OppPath += "/";
string AbsPath = Server.MapPath(OppPath);
files = HttpContext.Current.Request.Files;
if (!Directory.Exists(Server.MapPath(OppPath)))
{
Directory.CreateDirectory(Server.MapPath(OppPath));
}
for (fileCount = 0; fileCount < files.Count; fileCount++)
{
HttpPostedFile postedFile = files[fileCount];
string fileName;
fileName = System.IO.Path.GetFileName(postedFile.FileName);
if (fileName != string.Empty)
{
Extension = System.IO.Path.GetExtension(fileName);
if (Extension != ".xls")
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key4", "");
return;
}
else
{
try
{
////取上传文件的文件名
upname = System.IO.Path.GetFileName(fileName);
//系统自动产生的日期型文件名
SavedName = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now);
////把文件保存到UploadFile文件中
//dvResult.InnerHtml += AbsPath + SavedName + upname;
postedFile.SaveAs(AbsPath + SavedName + upname);
//dvResult.InnerHtml += " true";
virtualname += OppPath + SavedName + upname + ",";
realname += upname + ",";
path = savedpath;
string strOldDb = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 5.0;Data Source=";
string sPath = AbsPath + SavedName + upname;
//dvResult.InnerHtml += strOldDb + AbsPath + SavedName + upname;
OleDbConnection OleCon = new OleDbConnection(strOldDb + AbsPath + SavedName + upname);
OleDbDataAdapter OleDAp = new OleDbDataAdapter("SELECT [FLAG],[LANE],[COUNTRY],[PORTDISCHARGE],[DESTINATION],[20GP1],[40GP1],[40HQ1],[40RH1],[45HQ1],[CARRIER],[ETD],[TT],[VIA],[SVC],[CARRIERLANE],[POC],[COMMODITY],[OWS],[EFFECTIVEDATE],[VALIDDATE],[REMARK],[20GP0],[40GP0],[40HQ0],[40RH0],[45HQ0],[PROFIT20GP1],[PROFIT40GP1],[PROFIT40HQ1],[PROFIT40RH1],[PROFIT45HQ1],[OF20GP],[OF40GP],[OF40HQ],[OF40RH],[OF45HQ],[BAF20GP],[BAF40GP],[BAF40HQ],[BAF40RH],[BAF45HQ],[CAF20GP],[CAF40GP],[CAF40HQ],[CAF40RH],[CAF45HQ],[PSS20GP],[PSS40GP],[PSS40HQ],[PSS40RH],[PSS45HQ],[GRI20GP],[GRI40GP],[GRI40HQ],[GRI40RH],[GRI45HQ],[INLAND20GP],[INLAND40GP],[INLAND40HQ],[INLAND40RH],[INLAND45HQ],[ISPS20GP],[ISPS40GP],[ISPS40HQ],[ISPS40RH],[ISPS45HQ],[SZ20GP],[SZ40GP],[SZ40HQ],[SZ40RH],[SZ45HQ],[AG20GP],[AG40GP],[AG40HQ],[AG40RH],[AG45HQ],[MODIFYTIME],[PIRICEVIAPORT],[PODLOAD],[20RS0],[20RS1],[PROFIT20RS1],[OF20RS],[BAF20RS],[CAF20RS],[PSS20RS],[GRI20RS],[INLAND20RS],[ISPS20RS],[SZ20RS],[AG20RS],[40NOR0],[40NOR1],[PROFIT40NOR1],[OF40NOR],[BAF40NOR],[CAF40NOR],[PSS40NOR],[GRI40NOR],[INLAND40NOR],[ISPS40NOR],[SZ40NOR],[AG40NOR] FROM [Sheet1$] where FLAG='Y'", OleCon);//,[20GP2],[40GP2],[40HQ2],[40RH2],[45HQ2],[20GP3],[40GP3],[40HQ3],[40RH3],[45HQ3],[PROFIT20GP2],[PROFIT40GP2],[PROFIT40HQ2],[PROFIT40RH2],[PROFIT45HQ2],[PROFIT20GP3],[PROFIT40GP3],[PROFIT40HQ3],[PROFIT40RH3],[PROFIT45HQ3],[20RS2],[20RS3],[PROFIT20RS2],[PROFIT20RS3],[40NOR2],[40NOR3],[PROFIT40NOR2],[PROFIT40NOR3]
DataSet ds = new DataSet();
OleDAp.Fill(ds);
//dvResult.InnerHtml += " true";
//this.GridView1.DataSource = ds;
//this.GridView1.DataBind();
if (ds == null)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key5", "");
}
else
{
CrmPriceCarrierDA CrmPriceCarrierDA = new CrmPriceCarrierDA();
int iResult = CrmPriceCarrierDA.InsertInfoExcel(ds, strUserID, strCompanyID);
if (iResult > 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key6", "");
}
else if (iResult < 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key7", "");
}
}
File.Delete(AbsPath + SavedName + upname);
}
catch (Exception execError)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key11", "");
throw execError;
}
}
}
}
}
#region Grid参数
private void SaveColumnSetting(string tempColumnVal)
{
JsonColumnGroupEntity jsonColumnGroupEntity = GetPostEntity(tempColumnVal);
List jsonColumnEntities = new List();
UserSettingDA userSettingDA = new UserSettingDA();
UserSettingEntity userSettingEntity = userSettingDA.GetUserSettingByUserIDType(strUserID, strType);
if (userSettingEntity.GID != null)
{
userSettingEntity.ModifiedUser = strUserID;
GridEntity gridEntity = null;
List gridColumnEntities = new List();
gridEntity = GetSettingXml(userSettingEntity.Xml);
gridEntity.PagePreCount = jsonColumnGroupEntity.ShowCount;
foreach (JsonColumnEntity jColumn in jsonColumnGroupEntity.JsonColumnEntities)
{
foreach (GridColumnEntity gColumn in gridEntity.Columns)
{
if (gColumn.Description.Equals(jColumn.col3))
{
gColumn.Description = jColumn.col3;
gColumn.Width = jColumn.col5;
gColumn.Index = jColumn.col4;
if (jColumn.col6 != -1)
{
gColumn.VisibleState = jColumn.col6;
}
//gridColumnEntities.Add(gColumn);
break;
}
}
}
//Columns
//gridEntity.Columns = gridColumnEntities;
userSettingEntity.Xml = SaveUserSetting(gridEntity).OuterXml;
int iResult = userSettingDA.UpdateUserSetting(userSettingEntity);
}
else
{
if (jsonColumnGroupEntity != null)
{
userSettingEntity = new UserSettingEntity();
userSettingEntity.GID = Guid.NewGuid().ToString();
userSettingEntity.Name = "CrmPriceCarrierListGridSetting";
userSettingEntity.Description = "运价管理Grid设置";
userSettingEntity.UserID = strUserID;
userSettingEntity.Type = 1;//type值为1表示Grid
string strRequestUrl = Request.Url.ToString();
string strUrl = strRequestUrl.Substring(0, strRequestUrl.LastIndexOf("/"));
string strPage = strRequestUrl.Substring(strRequestUrl.LastIndexOf("/") + 1, strRequestUrl.Length - strRequestUrl.LastIndexOf("/") - 1);
userSettingEntity.Url = strUrl;
userSettingEntity.Page = strPage;
userSettingEntity.CreateUser = strUserID;
GridEntity gridEntity = new GridEntity();
gridEntity.GID = userSettingEntity.GID;
gridEntity.UserID = strUserID;
gridEntity.GroupBy = "";
gridEntity.DefaultPrePageCount = 15;
gridEntity.PagePreCount = jsonColumnGroupEntity.ShowCount;
List gridColumnEntities = new List();
foreach (JsonColumnEntity column in jsonColumnGroupEntity.JsonColumnEntities)
{
GridColumnEntity gridColumnEntity = new GridColumnEntity();
if (column.col6 != -1)
{
gridColumnEntity.Name = column.col2;
gridColumnEntity.VisibleState = column.col6;
}
else
{
switch (column.col3.Trim())
{
case "锁定":
gridColumnEntity.Name = "LOCKFLAG";
break;
case "发布":
gridColumnEntity.Name = "ISISSUE";
break;
case "船公司":
gridColumnEntity.Name = "CARRIER";
break;
case "起运港":
gridColumnEntity.Name = "PODLOAD";
break;
case "卸货港":
gridColumnEntity.Name = "PORTDISCHARGE";
break;
case "目的地":
gridColumnEntity.Name = "DESTINATION";
break;
case "中转港":
gridColumnEntity.Name = "VIA";
break;
case "ETD":
gridColumnEntity.Name = "ETD";
break;
case "航程":
gridColumnEntity.Name = "TT";
break;
case "航线":
gridColumnEntity.Name = "LANE";
break;
case "20GP(成本)":
gridColumnEntity.Name = "D_20GP0";
break;
case "40GP(成本)":
gridColumnEntity.Name = "D_40GP0";
break;
case "40HQ(成本)":
gridColumnEntity.Name = "D_40HQ0";
break;
case "40RH(成本)":
gridColumnEntity.Name = "D_40RH0";
break;
case "45HQ(成本)":
gridColumnEntity.Name = "D_45HQ0";
break;
case "20GP(卖价)":
gridColumnEntity.Name = "D_20GP1";
break;
case "40GP(卖价)":
gridColumnEntity.Name = "D_40GP1";
break;
case "40HQ(卖价)":
gridColumnEntity.Name = "D_40HQ1";
break;
case "40RH(卖价)":
gridColumnEntity.Name = "D_40RH1";
break;
case "45HQ(卖价)":
gridColumnEntity.Name = "D_45HQ1";
break;
case "超重费":
gridColumnEntity.Name = "OWS";
break;
case "生效期":
gridColumnEntity.Name = "EFFECTIVEDATE";
break;
case "有效期":
gridColumnEntity.Name = "VALIDDATE";
break;
case "品名":
gridColumnEntity.Name = "COMMODITY";
break;
case "备注":
gridColumnEntity.Name = "REMARK";
break;
case "分公司":
gridColumnEntity.Name = "CORPID";
break;
}
gridColumnEntity.VisibleState = 0;
}
gridColumnEntity.Description = column.col3;
gridColumnEntity.Index = column.col4;
gridColumnEntity.Width = column.col5;
gridColumnEntities.Add(gridColumnEntity);
}
//Columns
gridEntity.Columns = gridColumnEntities;
userSettingEntity.Xml = SaveUserSetting(gridEntity).OuterXml;
int iResult = userSettingDA.InsertUserSetting(userSettingEntity);
dvSaveState.InnerHtml = iResult.ToString();
}
}
}
#region 获取列信息
///
/// 获取列信息
///
///
///
private JsonColumnGroupEntity GetPostEntity(string tempValue)
{
JsonColumnGroupEntity tempColumnGroupEntity = new JsonColumnGroupEntity();
try
{
tempColumnGroupEntity = (JsonColumnGroupEntity)JSON.Instance.ToObject(tempValue);
}
catch (Exception error)
{
throw error;
}
return tempColumnGroupEntity;
}
#endregion
private XmlDocument SaveUserSetting(GridEntity gridEntity)
{
XmlDocument xmlDoc = new XmlDocument();
XmlElement root = xmlDoc.CreateElement("user-settings");
//xmlDoc.AppendChild(root);
XmlElement xGid = xmlDoc.CreateElement("gid");
xGid.InnerText = gridEntity.GID;
root.AppendChild(xGid);
XmlElement xUserID = xmlDoc.CreateElement("userid");
xUserID.InnerText = gridEntity.UserID;
root.AppendChild(xUserID);
XmlElement xCreateTime = xmlDoc.CreateElement("create-time");
xCreateTime.InnerText = gridEntity.CreateTime.ToString();
root.AppendChild(xCreateTime);
XmlElement xColumns = xmlDoc.CreateElement("columns");
foreach (GridColumnEntity column in gridEntity.Columns)
{
XmlElement xColumn = xmlDoc.CreateElement("column");
XmlElement nName = xmlDoc.CreateElement("name");
nName.InnerText = column.Name;
xColumn.AppendChild(nName);
XmlElement nDescription = xmlDoc.CreateElement("description");
nDescription.InnerText = column.Description;
xColumn.AppendChild(nDescription);
XmlElement nIndex = xmlDoc.CreateElement("index");
nIndex.InnerText = column.Index.ToString();
xColumn.AppendChild(nIndex);
XmlElement nWidth = xmlDoc.CreateElement("width");
nWidth.InnerText = column.Width.ToString();
xColumn.AppendChild(nWidth);
XmlElement nVisible = xmlDoc.CreateElement("visible");
nVisible.InnerText = column.VisibleState.ToString();
xColumn.AppendChild(nVisible);
xColumns.AppendChild(xColumn);
}
root.AppendChild(xColumns);
XmlElement xGroupBy = xmlDoc.CreateElement("group-by");
xGroupBy.InnerText = gridEntity.GroupBy;
root.AppendChild(xGroupBy);
XmlElement xPage = xmlDoc.CreateElement("page");
XmlElement nPageDefault = xmlDoc.CreateElement("page-default");
nPageDefault.InnerText = gridEntity.DefaultPrePageCount.ToString();
xPage.AppendChild(nPageDefault);
XmlElement nPagePre = xmlDoc.CreateElement("page-pre");
nPagePre.InnerText = gridEntity.PagePreCount.ToString();
xPage.AppendChild(nPagePre);
root.AppendChild(xPage);
xmlDoc.AppendChild(root);
return xmlDoc;
}
private GridEntity GetSettingXml(string strXml)
{
XmlDocument xmlSettingDoc = new XmlDocument();
GridEntity gridEntity = new GridEntity();
try
{
xmlSettingDoc.LoadXml(strXml);
gridEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[0].InnerText.Trim();
gridEntity.UserID = xmlSettingDoc.ChildNodes[0].ChildNodes[1].InnerText.Trim();
gridEntity.CreateTime = DateTime.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[2].InnerText.Trim());
IList columnsEntities = new List();
int iColCount = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes.Count;
for (int i = 0; i < iColCount; i++)
{
GridColumnEntity columnEntity = new GridColumnEntity();
//columnEntity.GID = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[0].ToString();
columnEntity.Name = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[0].InnerText.Trim();
columnEntity.Description = xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[1].InnerText.Trim();
columnEntity.Index = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[2].InnerText.Trim());
columnEntity.Width = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[3].ChildNodes[i].ChildNodes[3].InnerText.Trim());
columnsEntities.Add(columnEntity);
}
gridEntity.Columns = columnsEntities;
gridEntity.GroupBy = xmlSettingDoc.ChildNodes[0].ChildNodes[4].InnerText.Trim();
gridEntity.DefaultPrePageCount = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[5].ChildNodes[0].InnerText.Trim());
gridEntity.PagePreCount = int.Parse(xmlSettingDoc.ChildNodes[0].ChildNodes[5].ChildNodes[1].InnerText.Trim());
}
catch (Exception error)
{
throw (error);
}
return gridEntity;
}
public enum SqlName
{
NAME = 0,
LOGTYPE = 1,
LOGTIME = 2,
LOGCONTENT = 3,
USERNAME = 4
}
#endregion
}
}