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.

177 lines
8.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
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;
using System.Xml;
namespace DSWeb.Invoice
{
public partial class InvoiceMakeOutEdit : System.Web.UI.Page
{
private string strInvoiceGID;//已开发票GID
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["id"] != null)
{
strInvoiceGID = Request.QueryString["id"].ToString();
h_invoiceid.Value = strInvoiceGID;
}
if (strInvoiceGID != null)
{
GetInvoiceInfo(strInvoiceGID);
InvoiceDA invoiceDA = new InvoiceDA();
//string strSql = " (SELECT BSNO,CASE WHEN BSSTATUS = 1 THEN '锁定' ELSE '未锁定' END as BSSTATUS,MBLNO,HBLNO,CUSTNO,INPUTBY,CREATETIME "
// + " FROM op_seae WHERE BSNO IN (SELECT DISTINCT B.BSNO FROM ch_fee_invoice as A INNER JOIN ch_fee_do as B ON A.BILLNO = B.BILLNO WHERE A.GID = '" + strInvoiceGID + "'))";
//strSql += " UNION ALL ";
//strSql += " (SELECT BSNO,CASE WHEN BSSTATUS = 1 THEN '锁定' ELSE '未锁定' END as BSSTATUS,MBLNO,HBLNO,CUSTNO,INPUTBY,CREATETIME "
// + " FROM op_seai WHERE BSNO IN (SELECT DISTINCT B.BSNO FROM ch_fee_invoice as A INNER JOIN ch_fee_do as B ON A.BILLNO = B.BILLNO WHERE A.GID = '" + strInvoiceGID + "'))";
//2013-02-05 修改
string strSql = " (SELECT BSNO,CASE WHEN BSSTATUS = 1 THEN '锁定' ELSE '未锁定' END as BSSTATUS,MBLNO,HBLNO,CUSTNO,INPUTBY,CREATETIME "
+ " FROM VW_Settlement WHERE BSNO IN (SELECT DISTINCT B.BSNO FROM ch_fee_invoice as A INNER JOIN ch_fee_do as B ON A.BILLNO = B.BILLNO WHERE A.GID = '" + strInvoiceGID + "'))";
DataTable sourceTable = new DataTable();
sourceTable = invoiceDA.GetExcuteSql(strSql).Tables[0];
StringBuilder sourceBuilder = new StringBuilder();
sourceBuilder.Append("{");
sourceBuilder.Append("opinfo:[");
string strBuilder = "";
for (int i = 0; i < sourceTable.Rows.Count; i++)
{
sourceBuilder.Append("{bsno:\"" + sourceTable.Rows[i][0].ToString() + "\",");
sourceBuilder.Append("\"bsstatus\":\"" + sourceTable.Rows[i][1].ToString() + "\",");
sourceBuilder.Append("\"mblno\":\"" + sourceTable.Rows[i][2].ToString() + "\",");
//string strETD = "";
//if (!sourceTable.Rows[i][3].ToString().Trim().Equals(""))
//{
// strETD = DateTime.Parse(sourceTable.Rows[i][3].ToString()).ToString("yyyy-MM-dd");
//}
//sourceBuilder.Append("\"etd\":\"" + strETD + "\",");
sourceBuilder.Append("\"hblno\":\"" + sourceTable.Rows[i][3].ToString() + "\",");
sourceBuilder.Append("\"custno\":\"" + sourceTable.Rows[i][4].ToString() + "\",");
sourceBuilder.Append("\"inputby\":\"" + sourceTable.Rows[i][5].ToString() + "\",");
sourceBuilder.Append("\"ctime\":\"" + sourceTable.Rows[i][6].ToString() + "\"},");
}
InvoiceEntity invoiceEntity = new InvoiceEntity();
invoiceEntity = invoiceDA.GetInvoiceByGID(strInvoiceGID);
IList<FeeDoEntity> feeDoEntities = new List<FeeDoEntity>();
if (invoiceEntity != null)
{
if (invoiceEntity.GID != null)
{
UserDA userDA = new UserDA();
UserEntity userEntity = new UserEntity();
userEntity = userDA.GetUserAllByID(invoiceEntity.Operator);
feeDoEntities = GetFeeDoXml(invoiceEntity.FeeItem);
if (invoiceEntity.FeeItem.Trim() != "")
{
foreach (FeeDoEntity feeDoEntity in feeDoEntities)
{
if (feeDoEntity.Orig == 2)
{
sourceBuilder.Append("{bsno:\"handmakeout\",");
sourceBuilder.Append("\"bsstatus\":\"直开票\",");
sourceBuilder.Append("\"mblno\":\"\",");
sourceBuilder.Append("\"hblno\":\"\",");
sourceBuilder.Append("\"custno\":\"\",");
sourceBuilder.Append("\"inputby\":\"" + userEntity.ShowName + "\",");
sourceBuilder.Append("\"ctime\":\"" + invoiceEntity.InvoiceMakeTime + "\"}");
sourceBuilder.Append(",");
break;
}
}
}
}
}
if (sourceBuilder.ToString().Trim().EndsWith(","))
{
strBuilder = sourceBuilder.ToString().Trim().Substring(0, sourceBuilder.ToString().Trim().Length - 1);
}
StringBuilder endBuilder = new StringBuilder();
endBuilder.Append(strBuilder);
endBuilder.Append("]");
endBuilder.Append("}");
this.h_opcache.Value = endBuilder.ToString();
}
}
private void GetInvoiceInfo(string tempInvoiceGID)
{
InvoiceEntity invoiceEntity = new InvoiceDA().GetInvoiceByGID(tempInvoiceGID);
if (invoiceEntity.GID != null)
{
this.txt_invoiceno.Value = invoiceEntity.InvoiceNO;
this.txt_custno.Value = invoiceEntity.CustomerName;
this.txt_vesselvoyage.Value = invoiceEntity.VesselVoyage;
this.txt_makeouttime.Value = invoiceEntity.InvoiceMakeTime.ToString("yyyy-MM-dd hh:mm:ss");
this.txt_custno.Value = invoiceEntity.BSNO;
//this.txt_mblno.Value = invoiceEntity.
this.txt_pod.Value = invoiceEntity.POD;
this.txt_pol.Value = invoiceEntity.POL;
this.h_account.Value = invoiceEntity.Account;
this.h_bank.Value = invoiceEntity.Bank;
this.h_currency.Value = invoiceEntity.Currency;
this.h_invoicecus.Value = invoiceEntity.InvoiceCustName;
this.ck_isfee.Checked = invoiceEntity.IsDelete;
this.ck_isfee.Checked = invoiceEntity.IsNeedFee;
this.ck_isprint.Checked = invoiceEntity.IsNeedPrint;
this.h_billno.Value = invoiceEntity.BillNO;
}
}
private IList<FeeDoEntity> GetFeeDoXml(string strXml)
{
XmlDocument xmlFeeDoDoc = new XmlDocument();
IList<FeeDoEntity> feeDoEntities = new List<FeeDoEntity>();
try
{
xmlFeeDoDoc.LoadXml(strXml);
for (int i = 0; i < xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes.Count; i++)
{
FeeDoEntity feeDoEntity = new FeeDoEntity();
feeDoEntity.FeeID = xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes[i].ChildNodes[0].InnerText.Trim();
feeDoEntity.FeeName = xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes[i].ChildNodes[1].InnerText.Trim();
feeDoEntity.DoAmount = decimal.Parse(xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes[i].ChildNodes[2].InnerText.Trim());
feeDoEntity.Category = int.Parse(xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes[i].ChildNodes[3].InnerText.Trim());
feeDoEntity.FeeType = int.Parse(xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes[i].ChildNodes[4].InnerText.Trim());
feeDoEntity.Orig = int.Parse(xmlFeeDoDoc.ChildNodes[0].ChildNodes[0].ChildNodes[i].ChildNodes[5].InnerText.Trim());
feeDoEntities.Add(feeDoEntity);
}
}
catch (Exception error)
{
throw (error);
}
return feeDoEntities;
}
}
}