469 lines
20 KiB
C#
469 lines
20 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Xml;
|
|
using System.Web;
|
|
using System.Web.UI.WebControls;
|
|
using SuperMap.RealEstate.ServiceModel;
|
|
using SuperMap.RealEstate.Utility;
|
|
using SuperMap.RealEstate.Web.UI;
|
|
using SuperMap.RealEstate.Web.UI.WebControls;
|
|
using SuperMap.RealEstate.CoreFrameWork;
|
|
using SuperMap.RealEstate.Contract.Running.Business;
|
|
using Business = SuperMap.RealEstate.Contract.Storage.Business;
|
|
using HCC = HZQR.Common.Common;
|
|
using HZQR.Common;
|
|
|
|
namespace SuperMap.RealEstate.Contract.Compents.ContractExit
|
|
{
|
|
public partial class PrintContractBill : UserControl
|
|
{
|
|
CONTRACTPROINST _CONTRACTPROINST = null;
|
|
|
|
#region ViewState
|
|
string XslPath = @"/PrintReport/Contract/ContractBill/ContractBill.xslt";
|
|
private string ReportXmlPath
|
|
{
|
|
get
|
|
{
|
|
return ViewState["ContractBillXmlPath"] == null ? "" : (string)ViewState["ContractBillXmlPath"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["ContractBillXmlPath"] = value;
|
|
}
|
|
}
|
|
private string ReportXslPath
|
|
{
|
|
get
|
|
{
|
|
return ViewState["ContractBillXslPath"] == null ? XslPath : (string)ViewState["ContractBillXslPath"];
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (IsPostBack) return;
|
|
|
|
if (new ATTACHMENT(Transaction).GetCount("WHERE TABLE_NAME = 'T_CONTRACTPROINST' AND TABLE_ID =" +
|
|
_CONTRACTPROINST.CONTRACTPROINST_ID) > 0)
|
|
{
|
|
fidATACH.Visible = true;
|
|
}
|
|
else
|
|
{
|
|
fidATACH.Visible = false;
|
|
}
|
|
ShowImgList();
|
|
}
|
|
|
|
#region 初始加载
|
|
public override bool LoadData()
|
|
{
|
|
string _FileName = "ContractBill_" + Guid.NewGuid().ToString() + ".xml";
|
|
if (_CONTRACTPROINST != null)
|
|
{
|
|
_FileName = "ContractBill_" + (string.IsNullOrEmpty(_CONTRACTPROINST.ACCEPT_CODE) ?
|
|
Guid.NewGuid().ToString() : _CONTRACTPROINST.ACCEPT_CODE) + ".xml";
|
|
}
|
|
|
|
CreateDocumentInit(_FileName);
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region CreateDocumentInit 创建文档
|
|
private void CreateDocumentInit(String File_Name)
|
|
{
|
|
ReportXmlPath = File_Name;
|
|
|
|
if (!Directory.Exists(EnvironmentHelper.Temp + "Contract\\"))
|
|
{
|
|
Directory.CreateDirectory(EnvironmentHelper.Temp + "Contract\\");
|
|
}
|
|
|
|
if (File.Exists(EnvironmentHelper.Temp + "Contract\\" + File_Name))
|
|
{
|
|
File.Delete(EnvironmentHelper.Temp + "Contract\\" + File_Name);
|
|
}
|
|
|
|
using (FileStream _FileStream = new FileStream(EnvironmentHelper.Temp + "Contract\\" + File_Name, FileMode.OpenOrCreate))
|
|
{
|
|
using (StreamWriter _StreamWriter = new StreamWriter(_FileStream))
|
|
{
|
|
_StreamWriter.Write(CreateXmlBill());
|
|
//Page.Alert("CreateXmlBill:\r\n" + CreateXmlBill());
|
|
_StreamWriter.Close();
|
|
InitXml();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 组件加载扩展 LoadDataEx
|
|
/// <summary>
|
|
/// 组件加载扩展
|
|
/// </summary>
|
|
/// <param name="ClientSet">脚本</param>
|
|
/// <returns></returns>
|
|
public override bool LoadDataEx(ClientSetEventArgs ClientSet)
|
|
{
|
|
string _FileName = "ContractBill_" + (string.IsNullOrEmpty(_CONTRACTPROINST.ACCEPT_CODE) ?
|
|
Guid.NewGuid().ToString() : _CONTRACTPROINST.ACCEPT_CODE) + ".xml";
|
|
//报表解析
|
|
CreateDocumentInit(_FileName);
|
|
string _Document = CONTRACTPROINST.Transform(_FileName, ReportXslPath);
|
|
//执行前端重置
|
|
ClientSet.ExcuteClientScript("$('#" + ApproveBillManagement_Report.ClientID + "').html('" + _Document + "');");
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 创建文档
|
|
private string CreateXmlBill()
|
|
{
|
|
string StartDate = string.Empty;
|
|
string EndDate = string.Empty;
|
|
XmlDocument _XmlDocument = new XmlDocument();
|
|
|
|
#region 文档头
|
|
XmlDeclaration _XmlDeclaration = _XmlDocument.CreateXmlDeclaration("1.0", "utf-8", "yes");
|
|
_XmlDocument.AppendChild(_XmlDeclaration);
|
|
XmlProcessingInstruction _XmlProcessingInstruction = _XmlDocument.CreateProcessingInstruction(
|
|
"xml-stylesheet", " type='text/xsl' href='" + XslPath + "'");
|
|
_XmlDocument.AppendChild(_XmlProcessingInstruction);
|
|
XmlElement _XmlElement = null;
|
|
_XmlElement = _XmlDocument.CreateElement("QRWL");
|
|
XmlElement _ChildXmlElement = null;
|
|
XmlElement _CChildXmlElement = null;
|
|
XmlElement _ChildChildXmlElement = null;
|
|
_XmlDocument.AppendChild(_XmlElement);
|
|
#endregion
|
|
|
|
#region 枚举
|
|
Dictionary<string, string> _Dictionary = new Dictionary<string, string>();
|
|
#endregion
|
|
|
|
GetProInst(_XmlDocument, _XmlElement, _Dictionary, true);
|
|
|
|
_ChildXmlElement = _XmlDocument.CreateElement("ACCEPT_TYPE");
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
_ChildXmlElement.InnerText = _CONTRACTPROINST.ProInst.Operation_Type_BaseValue.ToString();
|
|
//业务详细信息
|
|
DataTable _DataTable = getDataTableByType(_CONTRACTPROINST.ProInst.Operation_Type_BaseValue.Value,
|
|
_CONTRACTPROINST.CONTRACTPROINST_ID.Value, Transaction);
|
|
|
|
_ChildXmlElement = _XmlDocument.CreateElement("DEPT_NAME");
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
_ChildXmlElement.InnerText = _CONTRACTPROINST.DEPT_NAME;
|
|
|
|
_ChildXmlElement = _XmlDocument.CreateElement("ContractPROINST_DESC");
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
_ChildXmlElement.InnerText = _CONTRACTPROINST.CONTRACTPROINST_DESC;
|
|
|
|
_ChildXmlElement = _XmlDocument.CreateElement("ACCEPT_CODE");
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
_ChildXmlElement.InnerText = _CONTRACTPROINST.ACCEPT_CODE;
|
|
|
|
//审批信息
|
|
DataTable _StorageAPPROVED = new APPROVED(Transaction).ExecuteDataTable(string.Format(
|
|
@"SELECT
|
|
APPROVED_TYPE,APPROVED_INFO,APPROVED_STAFFID,APPROVED_STAFF,APPROVEDTYPE,
|
|
APPROVED_MARK,APPROVED_NAME,APPROVED_DESC,MAX(APPROVED_DATE) AS APPROVED_DATE
|
|
FROM
|
|
CONTRACT_STORAGE.V_APPROVED_ALL
|
|
WHERE
|
|
TABLE_NAME = 'T_CONTRACTPROINST' AND TABLE_ID = {0}
|
|
GROUP BY
|
|
APPROVED_TYPE,APPROVED_INFO,APPROVED_STAFFID,APPROVED_STAFF,APPROVEDTYPE,
|
|
APPROVED_MARK,APPROVED_NAME,APPROVED_DESC
|
|
ORDER BY APPROVEDTYPE,APPROVED_DATE", _CONTRACTPROINST.CONTRACTPROINST_ID));
|
|
|
|
#region 获取审批信息节点
|
|
if (_StorageAPPROVED.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow _row in _StorageAPPROVED.Rows)
|
|
{
|
|
_ChildXmlElement = _XmlDocument.CreateElement("APPROVEINFO");
|
|
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
foreach (DataColumn _DataColumn in _StorageAPPROVED.Columns)
|
|
{
|
|
_CChildXmlElement = _XmlDocument.CreateElement(_DataColumn.ColumnName);
|
|
_ChildXmlElement.AppendChild(_CChildXmlElement);
|
|
if (_DataColumn.ColumnName == "APPROVED_DATE")
|
|
{
|
|
_CChildXmlElement.InnerText = HCC.Common.TranslateDateTime(_row[_DataColumn.ColumnName].ToString());
|
|
}
|
|
else
|
|
{
|
|
_CChildXmlElement.InnerText = _row[_DataColumn.ColumnName].ToString().Replace("意见", " ");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取业务详情节点
|
|
if (_DataTable.Rows.Count > 0)
|
|
{
|
|
foreach (DataColumn _DataColumn in _DataTable.Columns)
|
|
{
|
|
_ChildXmlElement = _XmlDocument.CreateElement(_DataColumn.ColumnName);
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
try
|
|
{
|
|
switch (_DataColumn.ColumnName)
|
|
{
|
|
case "BORROWING_AMOUNT_CAP":
|
|
case "TOTALAMOUNT_CAP":
|
|
case "AMOUNT_CAP":
|
|
string strColumnValue = _DataTable.Rows[0][_DataColumn.ColumnName].ToString();
|
|
if (!string.IsNullOrWhiteSpace(strColumnValue) && !strColumnValue.EndsWith("整"))
|
|
{
|
|
strColumnValue += "整";
|
|
}
|
|
_ChildXmlElement.InnerText = strColumnValue;
|
|
break;
|
|
case "BORROWING_AMOUNT_LOWER":
|
|
case "TOTALAMOUNT_LOWER":
|
|
try
|
|
{
|
|
_ChildXmlElement.InnerText = _DataTable.Rows[0][_DataColumn.ColumnName].TryParseToDouble().ToString("0.00");
|
|
}
|
|
catch
|
|
{
|
|
_ChildXmlElement.InnerText = _DataTable.Rows[0][_DataColumn.ColumnName].ToString();
|
|
}
|
|
break;
|
|
case "PAY_METHOD":
|
|
switch (_DataTable.Rows[0][_DataColumn.ColumnName].ToString())
|
|
{
|
|
case "1":
|
|
_ChildXmlElement.InnerText = "现金";
|
|
break;
|
|
case "2":
|
|
_ChildXmlElement.InnerText = "转账";
|
|
break;
|
|
}
|
|
break;
|
|
case "BORROWER_DATE":
|
|
case "DEPOSITREFUND_DATE":
|
|
case "RECEIPT_DATE":
|
|
_ChildXmlElement.InnerText = _DataTable.Rows[0][_DataColumn.ColumnName
|
|
].TryParseToDateTime().Value.ToLongDateString();
|
|
break;
|
|
default:
|
|
_ChildXmlElement.InnerText = _DataTable.Rows[0][_DataColumn.ColumnName].ToString();
|
|
break;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
_ChildXmlElement.InnerText = _DataTable.Rows[0][_DataColumn.ColumnName].ToString();
|
|
}
|
|
}
|
|
|
|
#region 根据类型创建节点
|
|
switch (_CONTRACTPROINST.ProInst.Operation_Type_BaseValue.Value)
|
|
{
|
|
case 310020:
|
|
#region 合同退场审批流程
|
|
DataTable dtExpense = new CONTRACTEXITEXPENSE(Transaction).FillDataTable(
|
|
"WHERE CONTRACTPROINST_ID = " + _CONTRACTPROINST.CONTRACTPROINST_ID);
|
|
foreach (DataRow drExpense in dtExpense.Select("EXPENSE_TYPE = 1000", "CONTRACTEXITEXPENSE_ID"))
|
|
{
|
|
//创建新节点
|
|
_ChildXmlElement = _XmlDocument.CreateElement("RentCollection");
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
|
|
foreach (DataColumn _DataColumn in dtExpense.Columns)
|
|
{
|
|
_CChildXmlElement = _XmlDocument.CreateElement(_DataColumn.ColumnName);
|
|
_ChildXmlElement.AppendChild(_CChildXmlElement);
|
|
switch (_DataColumn.ColumnName)
|
|
{
|
|
case "EXPENSE_STARTDATE":
|
|
case "EXPENSE_ENDDATE":
|
|
_CChildXmlElement.InnerText = HCC.Common.TranslateDateTime(
|
|
drExpense[_DataColumn.ColumnName].ToString()).Split(' ')[0];
|
|
break;
|
|
default:
|
|
_CChildXmlElement.InnerText = drExpense[_DataColumn.ColumnName].ToString();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach (DataRow drExpense in dtExpense.Select("EXPENSE_TYPE = 2000", "CONTRACTEXITEXPENSE_ID"))
|
|
{
|
|
//创建新节点
|
|
_ChildXmlElement = _XmlDocument.CreateElement("PropertyCollection");
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
|
|
foreach (DataColumn _DataColumn in dtExpense.Columns)
|
|
{
|
|
_CChildXmlElement = _XmlDocument.CreateElement(_DataColumn.ColumnName);
|
|
_ChildXmlElement.AppendChild(_CChildXmlElement);
|
|
switch (_DataColumn.ColumnName)
|
|
{
|
|
case "EXPENSE_STARTDATE":
|
|
case "EXPENSE_ENDDATE":
|
|
_CChildXmlElement.InnerText = HCC.Common.TranslateDateTime(
|
|
drExpense[_DataColumn.ColumnName].ToString()).Split(' ')[0];
|
|
break;
|
|
default:
|
|
_CChildXmlElement.InnerText = drExpense[_DataColumn.ColumnName].ToString();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
#endregion
|
|
}
|
|
#endregion
|
|
|
|
return _XmlDocument.InnerXml;
|
|
}
|
|
#endregion
|
|
|
|
#region 根据类型获取数据
|
|
public static DataTable getDataTableByType(int ACCEPT_TYPE, int CONTRACTPROINST_ID, Transaction Transaction)
|
|
{
|
|
DataTable _DataTable = new DataTable();
|
|
switch (ACCEPT_TYPE)
|
|
{
|
|
case 310020:
|
|
_DataTable = new CONTRACTEXIT(Transaction).FillDataTable(
|
|
"WHERE CONTRACTPROINST_ID = " + CONTRACTPROINST_ID);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return _DataTable;
|
|
}
|
|
#endregion
|
|
|
|
#region 流程信息
|
|
private void GetProInst(XmlDocument _XmlDocument, XmlElement _XmlElement,
|
|
Dictionary<string, string> _Dictionary, bool isChildNodes = false)
|
|
{
|
|
XmlElement _ChildXmlElement = _XmlDocument.CreateElement("ProInst");
|
|
if (isChildNodes)
|
|
{
|
|
_XmlElement.AppendChild(_ChildXmlElement);
|
|
}
|
|
else
|
|
{
|
|
_XmlDocument.DocumentElement.AppendChild(_ChildXmlElement);
|
|
}
|
|
_CONTRACTPROINST.CreateXmlNode(_CONTRACTPROINST.ProInst, _XmlDocument, _ChildXmlElement, _Dictionary);
|
|
}
|
|
#endregion
|
|
|
|
protected override void OnInit(EventArgs e)
|
|
{
|
|
base.OnInit(e);
|
|
Common.PageHelper.CreateHeaderStyle(Page);
|
|
_CONTRACTPROINST = Running.Business.CONTRACTPROINST.CreateInstance(Page);
|
|
this.ButtonVisible = false;
|
|
LoadData();
|
|
//InitXml();
|
|
}
|
|
|
|
private void InitXml()
|
|
{
|
|
//Page.Alert("ReportXmlPath:\r\n" + ReportXmlPath);
|
|
if (!string.IsNullOrEmpty(ReportXmlPath))
|
|
{
|
|
Xml1.TransformSource = ReportXslPath;
|
|
Xml1.DocumentSource = "/Temporary/Temp/Contract/" + ReportXmlPath;
|
|
}
|
|
}
|
|
|
|
protected void CallBackButton_Print_CallBackClick(object sender, ClientSetEventArgs e)
|
|
{
|
|
e.ClientScript = Page.GetOpenPopDialogClientScript("/Contract/Common/ReportDefault.aspx?ReportXmlPath=" +
|
|
ReportXmlPath + "&ReportXslPath=" + ReportXslPath + "&ContractPROINST_ID=" +
|
|
_CONTRACTPROINST.CONTRACTPROINST_ID_Encrypt, "PrintDefault", 1200, 800, true, false, true);
|
|
}
|
|
|
|
protected void Button_Reflash_Click(object sender, EventArgs e)
|
|
{
|
|
LoadData();
|
|
}
|
|
|
|
public override bool Save(bool AutoBindData = true)
|
|
{
|
|
LoadData();
|
|
//InitXml();
|
|
return true;
|
|
}
|
|
|
|
public override bool SaveEx(ClientSetEventArgs ClientSet)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
#region 显示附件列表
|
|
public void ShowImgList()
|
|
{
|
|
if (_CONTRACTPROINST != null)
|
|
{
|
|
DataTable datable = new Running.Business.ATTACHMENT(this.Transaction).FillDataTable(
|
|
"WHERE TABLE_NAME = 'T_CONTRACTPROINST' AND TABLE_ID =" + _CONTRACTPROINST.CONTRACTPROINST_ID);
|
|
|
|
repATACH.DataSource = datable;
|
|
repATACH.DataBind();
|
|
}
|
|
}
|
|
|
|
protected void LinkButton_Click(object sender, EventArgs e)
|
|
{
|
|
LinkButton LinkButton = sender as LinkButton;
|
|
//下载内容
|
|
Running.Business.ATTACHMENT _ATTACHMENT = new Running.Business.ATTACHMENT(this.Transaction);
|
|
_ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"];
|
|
if (_ATTACHMENT.Select())
|
|
{
|
|
string uploadPath = HttpContext.Current.Server.MapPath("~"+ _ATTACHMENT.ATTACHMENT_PATH);
|
|
string FileName = System.Web.HttpUtility.UrlEncode(_ATTACHMENT.ATTACHMENT_NAME, System.Text.Encoding.UTF8);
|
|
|
|
System.IO.MemoryStream ms = new System.IO.MemoryStream();
|
|
HttpContext.Current.Response.Clear();
|
|
HttpContext.Current.Response.Buffer = true;
|
|
HttpContext.Current.Response.Charset = "utf-8";
|
|
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文
|
|
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format(
|
|
"attachment; filename=" + FileName, DateTime.Now.ToString("yyyyMMddHHmmssfff")));
|
|
HttpContext.Current.Response.BinaryWrite(System.IO.File.ReadAllBytes(uploadPath));
|
|
HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
|
|
HttpContext.Current.Response.End();
|
|
ms.Close();
|
|
ms.Dispose();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
protected void repATACH_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
|
{
|
|
if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item ||
|
|
e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem ||
|
|
e.Item.ItemType == System.Web.UI.WebControls.ListItemType.SelectedItem)
|
|
{
|
|
DataRowView rowv = (DataRowView)e.Item.DataItem;
|
|
LinkButton LinkButton = e.Item.FindControl("LinkButton") as LinkButton;
|
|
LinkButton.ToolTip = rowv["ATTACHMENT_NAME"].ToString();
|
|
LinkButton.Text = "<span ><img width=\"32px\" height=\"32px\" src='/Finance/Resources/v1_0/Images/4950_old-versions.png' />" +
|
|
(LinkButton.ToolTip.Length > 30 ? LinkButton.ToolTip.Substring(0, 25) + "..." : LinkButton.ToolTip) + "</span>";
|
|
LinkButton.Attributes["base-code"] = rowv["ATTACHMENT_ID"].ToEncrypt();
|
|
}
|
|
}
|
|
}
|
|
} |