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.Text.RegularExpressions; using System.Globalization; using System.Xml; namespace DSWeb.Invoice { public partial class InvoiceMakeOutModify : System.Web.UI.Page { #region 私有信息 private string strHandle; private string strInvoiceAppGID;//开票申请GID private string strUserID;//用户GID private string strCacheName; private decimal usdToRmb; private decimal rmbToUsd; private string strSettleCurrency; private string strRename;//自定义名称 private int isShowDetail;//是否显示明细数据 值1-显示 值0-不显示 private string strOldBillNO;//原始申请业务编号 private int isCustNo;//是否显示委托编号 private int isVessel;//是否显示船名航次 private int isMblno;//是否显示提单号 private int isEtd;//是否显示开船日期 private int isPol;//是否显示起运港 private int isPod;//是否显示卸货港 private string strShowName; private string strCompanyID;//公司GID private string strDeptName;//部门名称 #endregion protected void Page_Load(object sender, EventArgs e) { #region 获取Session信息 if (Session["USERID"] != null) { strUserID = Session["USERID"].ToString(); } if (Session["SHOWNAME"] != null) { strShowName = Session["SHOWNAME"].ToString(); } if (Session["COMPANYID"] != null) { strCompanyID = Session["COMPANYID"].ToString(); } if (Session["DEPTNAME"] != null) { strDeptName = Session["DEPTNAME"].ToString(); } #endregion #region 获取Request信息 if (Request.QueryString["handle"] != null) { strHandle = Request.QueryString["handle"].ToString().ToLower().Trim(); this.h_handle.Value = strHandle; } if (Request.QueryString["id"] != null) { strInvoiceAppGID = Request.QueryString["id"].ToString(); this.h_invoiceappid.Value = strInvoiceAppGID; } if (Request.QueryString["currency"] != null) { strSettleCurrency = Request.QueryString["currency"].ToString(); int iCurrencyType = int.Parse(strSettleCurrency); this.h_currency.Value = iCurrencyType.ToString(); switch (iCurrencyType) { case 1: this.h_settlecurrency.Value = "RMB"; break; case 2: this.h_settlecurrency.Value = "USD"; break; } h_settlecurrency.Value = h_settlecurrency.Value; } if (Request.QueryString["uex"] != null) { rmbToUsd = decimal.Parse(Request.QueryString["uex"].ToString()); h_rmbtousd.Value = rmbToUsd.ToString(); } if (Request.QueryString["rex"] != null) { usdToRmb = decimal.Parse(Request.QueryString["rex"].ToString()); h_usdtormb.Value = usdToRmb.ToString(); } if (Request.QueryString["cno"] != null) { isCustNo = int.Parse(Request.QueryString["cno"].ToString()); this.h_iscustno.Value = isCustNo.ToString(); } if (Request.QueryString["vel"] != null) { isVessel = int.Parse(Request.QueryString["vel"].ToString()); this.h_isvessel.Value = isVessel.ToString(); } if (Request.QueryString["mbl"] != null) { isMblno = int.Parse(Request.QueryString["mbl"].ToString()); this.h_ismblno.Value = isMblno.ToString(); } if (Request.QueryString["etd"] != null) { isEtd = int.Parse(Request.QueryString["etd"].ToString()); this.h_isetd.Value = isEtd.ToString(); } if (Request.QueryString["pol"] != null) { isPol = int.Parse(Request.QueryString["pol"].ToString()); this.h_ispol.Value = isPol.ToString(); } if (Request.QueryString["pod"] != null) { isPod = int.Parse(Request.QueryString["pod"].ToString()); this.h_ispod.Value = isPod.ToString(); } if (Request.QueryString["rn"] != null) { strRename = UnicodeToGB(Request.QueryString["rn"].ToString()); this.h_rename.Value = strRename.Trim(); } if (Request.QueryString["detail"] != null) { isShowDetail = int.Parse(Request.QueryString["detail"].ToString()); h_isdetail.Value = isShowDetail.ToString(); } if (Request.QueryString["postsession"] != null) { strCacheName = Request.QueryString["postsession"].ToString(); h_cachename.Value = strCacheName; } // if (!IsPostBack) { if (strHandle == "directmake" && ViewState["enter"] == null) { InitBookItems();//初始发票号 InitMakeOutTime();//初始开票时间 this.txt_type.Value = "自由开票"; } else if (strHandle == "import" && ViewState["enter"] == null) { InitBookItems();//初始发票号 InitMakeOutTime();//初始开票时间 ResovlePostSessionTable(strCacheName); this.txt_type.Value = "自由开票"; } else if (strHandle == "makeout" && ViewState["enter"] == null) { InitBookItems();//初始发票号 InitMakeOutTime();//初始开票时间 this.txt_type.Value = "申请发票"; if (strInvoiceAppGID != null) { InitInvoiceApplicationInfo(strInvoiceAppGID); } } } #endregion if (h_enter.Value.Trim() == "1" && ViewState["enter"] == null && strHandle == "import" && strCacheName != null) { MakeOutImportFeeInvoice(strCacheName); } else if (h_enter.Value.Trim() == "2" && ViewState["enter"] == null && strHandle == "makeout" && strInvoiceAppGID != null) { MakeOutInvoiceApplication(strInvoiceAppGID);//开出申请发票 } else if (h_enter.Value.Trim() == "3" && ViewState["enter"] == null && strHandle == "directmake" && h_cachename.Value.Trim() != "") { MakeOutDirectInvoice(h_cachename.Value.Trim()); } #region #### //#region //if (strHandle != null) //{ // if (strHandle == "makeout" && strInvoiceAppGID != null) // { // #region 如果是发票申请开票将费用信息解析到web页面内 // if (this.h_saved.Value.Trim() == "") // { // //先获取开票申请信息 // InvoiceApplicationDA invoiceApplicationDA = new InvoiceApplicationDA(); // InvoiceApplicationEntity invoiceApplicationEntity = new InvoiceApplicationEntity(); // invoiceApplicationEntity = invoiceApplicationDA.GetInvoiceApplicationByGID(strInvoiceAppGID); // if (invoiceApplicationEntity.GID != null) // { // strOldBillNO = invoiceApplicationEntity.BillNO; // this.h_billno.Value = invoiceApplicationEntity.BillNO; // this.h_settlecurrency.Value = invoiceApplicationEntity.Currency; // if (!invoiceApplicationEntity.Currency.Trim().Equals("")) // { // this.h_currency.Value = (invoiceApplicationEntity.Currency.Trim().ToUpper().Equals("RMB") ? 1 : 2).ToString(); // } // this.txt_type.Value = "申请发票"; // //this.txt_paycustomer.Value = invoiceApplicationEntity.InvoiceCustomer; // this.txt_mblno.Value = invoiceApplicationEntity.MBLNO == null ? "" : invoiceApplicationEntity.MBLNO; // this.txt_etd.Value = invoiceApplicationEntity.ETD == DateTime.MinValue ? "" : invoiceApplicationEntity.ETD.ToString("yyyy-MM-dd hh:mm:ss"); // this.txt_pod.Value = invoiceApplicationEntity.POD == null ? "" : invoiceApplicationEntity.POD; // this.txt_pol.Value = invoiceApplicationEntity.POL == null ? "" : invoiceApplicationEntity.POL; // this.txt_custno.Value = invoiceApplicationEntity.BSNO == null ? "" : invoiceApplicationEntity.BSNO; // this.txt_mblno.Value = invoiceApplicationEntity.MBLNO == null ? "" : invoiceApplicationEntity.MBLNO; // this.txt_vesselvoyage.Value = invoiceApplicationEntity.VesselVoyage == null ? "" : invoiceApplicationEntity.VesselVoyage; // //this.h_payable.Value = invoiceApplicationEntity.InvoiceCustomer == null ? "" : invoiceApplicationEntity.InvoiceCustomer.Trim(); // this.h_customer.Value = invoiceApplicationEntity.InvoiceCustomer == null ? "" : invoiceApplicationEntity.InvoiceCustomer.Trim(); // this.txt_amountcapital.Value = invoiceApplicationEntity.AmountCapital; // this.h_capitial.Value = invoiceApplicationEntity.AmountCapital; // this.txt_total.Value = invoiceApplicationEntity.Currency.Trim().ToUpper() + " " + invoiceApplicationEntity.ApplyAmount.ToString(); // this.txt_remark.Value = invoiceApplicationEntity.Remark; // if (invoiceApplicationEntity.InvoiceNO != null) // { // this.txt_invoiceno.Value = invoiceApplicationEntity.InvoiceNO.Trim(); // } // else // { // this.txt_invoiceno.Value = ""; // } // //获取ch_fee_do表根据BILLNO获取所有费用信息详细信息 // FeeDoDA feeDoDA = new FeeDoDA(); // IList origFeeDoEntities = new List(); // IList applicationFeeDoEntities = new List(); // origFeeDoEntities = feeDoDA.GetFeeDoByBillNO(invoiceApplicationEntity.BillNO); // string strFeeItem = invoiceApplicationEntity.FeeItem; // if (!strFeeItem.Trim().Equals("")) // { // applicationFeeDoEntities = GetFeeDoXml(strFeeItem); // } // foreach (FeeDoEntity appFeeDoEntity in applicationFeeDoEntities) // { // for (int i = 0; i < origFeeDoEntities.Count; i++) // { // if (appFeeDoEntity.FeeID == origFeeDoEntities[i].FeeID) // { // appFeeDoEntity.GID = origFeeDoEntities[i].GID; // appFeeDoEntity.BSNO = origFeeDoEntities[i].BSNO; // appFeeDoEntity.CustomerName = origFeeDoEntities[i].CustomerName; // appFeeDoEntity.Currency = origFeeDoEntities[i].Currency; // } // } // } // if (applicationFeeDoEntities.Count > 0) // { // StringBuilder sourceBuilder = new StringBuilder(); // sourceBuilder.Append("{"); // sourceBuilder.Append("caches:["); // for (int i = 0; i < applicationFeeDoEntities.Count; i++) // { // if (i == 0) // { // sourceBuilder.Append("{id:\"" + applicationFeeDoEntities[i].FeeID + "\","); // } // else // { // sourceBuilder.Append(",{id:\"" + applicationFeeDoEntities[i].FeeID + "\","); // } // sourceBuilder.Append("\"type\":\"" + applicationFeeDoEntities[i].FeeType + "\","); // sourceBuilder.Append("\"bsno\":\"" + applicationFeeDoEntities[i].BSNO + "\","); // sourceBuilder.Append("\"cus\":\"" + applicationFeeDoEntities[i].CustomerName + "\","); // sourceBuilder.Append("\"fname\":\"" + applicationFeeDoEntities[i].FeeName + "\","); // sourceBuilder.Append("\"stl\":\"" + applicationFeeDoEntities[i].Amount + "\","); // string strMakeOutCurrency = ""; // if (applicationFeeDoEntities[i].Orig == 2 || applicationFeeDoEntities[i].Orig == 3) // { // strMakeOutCurrency = h_settlecurrency.Value.Trim().ToUpper(); // } // else // { // strMakeOutCurrency = applicationFeeDoEntities[i].Currency.ToUpper(); // } // sourceBuilder.Append("\"cur\":\"" + strMakeOutCurrency + "\","); // sourceBuilder.Append("\"cstl\":\"" + applicationFeeDoEntities[i].DoAmount + "\","); // sourceBuilder.Append("\"orig\":\"" + applicationFeeDoEntities[i].Orig + "\","); // sourceBuilder.Append("\"origcur\":\"" + applicationFeeDoEntities[i].OrigCurrency + "\","); // sourceBuilder.Append("\"rate\":" + applicationFeeDoEntities[i].ExchangeRate + "}"); // } // sourceBuilder.Append("]"); // sourceBuilder.Append("}"); // //缓存费用信息 // this.h_feecache.Value = sourceBuilder.ToString(); // this.btn_delete.Disabled = true; // this.btn_import.Disabled = true; // } // InvoiceBookItemEntity invoiceBookItemEntity = new InvoiceBookItemEntity(); // InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); // invoiceBookItemEntity = invoiceBookDA.GetCurrentBookItem(strCompanyID); // if (invoiceBookItemEntity != null) // { // if (invoiceBookItemEntity.GID != null) // { // this.txt_invoiceno.Value = invoiceBookItemEntity.InvoiceNum; // } // } // } // } // #endregion // } // else if (strHandle == "import") // { // this.txt_type.Value = "自由开票"; // this.ck_deleted.Disabled = true; // this.ck_isfee.Disabled = true; // this.ck_isprint.Disabled = true; // } // else if (strHandle == "directmake") // { // this.txt_type.Value = "自由开票"; // } //} //#endregion //if (!this.h_action.Value.Trim().Equals("")) //{ // int iAction = int.Parse(this.h_action.Value.Trim()); // //h_action值为1表示执行开票操作 // if (iAction == 1 && strHandle == "makeout") // { // MakeOutInvoice(strInvoiceAppGID); // } // else if (iAction == 1 && strHandle == "import") // { // //引入费用信息开票 // MakeOutImportInvoice(); // } // else if (iAction == 1 && strHandle == "directmake") // { // DirectMakeOutInvoice(); // } //} #endregion //加载下拉框 initComboTradingAgency(); Page.ClientScript.RegisterStartupScript(this.GetType(), "key0", ""); } #region 初始化发票申请信息 /// /// 初始化发票申请信息 /// /// 发票申请GID private void InitInvoiceApplicationInfo(string tempInvoiceAppGID) { InvoiceApplicationDA invoiceApplicationDA = new InvoiceApplicationDA(); InvoiceApplicationEntity invoiceApplicationEntity = new InvoiceApplicationEntity(); invoiceApplicationEntity = invoiceApplicationDA.GetInvoiceApplicationByGID(strInvoiceAppGID); if (invoiceApplicationEntity.GID != null) { strOldBillNO = invoiceApplicationEntity.BillNO; this.h_billno.Value = invoiceApplicationEntity.BillNO; this.h_settlecurrency.Value = invoiceApplicationEntity.Currency; if (!invoiceApplicationEntity.Currency.Trim().Equals("")) { this.h_currency.Value = (invoiceApplicationEntity.Currency.Trim().ToUpper().Equals("RMB") ? 1 : 2).ToString(); } this.txt_type.Value = "申请发票"; //this.txt_paycustomer.Value = invoiceApplicationEntity.InvoiceCustomer; this.txt_mblno.Value = invoiceApplicationEntity.MBLNO == null ? "" : invoiceApplicationEntity.MBLNO; this.txt_etd.Value = (invoiceApplicationEntity.ETD == DateTime.MinValue || invoiceApplicationEntity.ETD.ToString().Trim().IndexOf("1900")>-1) ? "" : invoiceApplicationEntity.ETD.ToString("yyyy-MM-dd hh:mm:ss"); this.txt_pod.Value = invoiceApplicationEntity.POD == null ? "" : invoiceApplicationEntity.POD; this.txt_pol.Value = invoiceApplicationEntity.POL == null ? "" : invoiceApplicationEntity.POL; this.txt_custno.Value = invoiceApplicationEntity.BSNO == null ? "" : invoiceApplicationEntity.BSNO; this.txt_mblno.Value = invoiceApplicationEntity.MBLNO == null ? "" : invoiceApplicationEntity.MBLNO; this.txt_vesselvoyage.Value = invoiceApplicationEntity.VesselVoyage == null ? "" : invoiceApplicationEntity.VesselVoyage; //this.h_payable.Value = invoiceApplicationEntity.InvoiceCustomer == null ? "" : invoiceApplicationEntity.InvoiceCustomer.Trim(); this.h_customer.Value = invoiceApplicationEntity.InvoiceCustomer == null ? "" : invoiceApplicationEntity.InvoiceCustomer.Trim(); this.h_customername.Value = invoiceApplicationEntity.CustomerName == null ? "" : invoiceApplicationEntity.CustomerName.Trim(); this.txt_amountcapital.Value = invoiceApplicationEntity.AmountCapital; this.h_capitial.Value = invoiceApplicationEntity.AmountCapital; this.txt_total.Value = invoiceApplicationEntity.Currency.Trim().ToUpper() + " " + invoiceApplicationEntity.ApplyAmount.ToString(); this.txt_remark.Value = invoiceApplicationEntity.Remark; //if (invoiceApplicationEntity.InvoiceNO != null) //{ // this.txt_invoiceno.Value = invoiceApplicationEntity.InvoiceNO.Trim(); //} //else //{ // this.txt_invoiceno.Value = ""; //} } } #endregion #region 引入费用开出发票 /// /// 引入费用开出发票 /// /// 缓存名称 private void MakeOutImportFeeInvoice(string tempPostSessionName) { DataTable bsnoTable = null; DataTable feeTable = null; DataTable totalTable = null; DataSet postSet = null; if (Session[tempPostSessionName] != null) { postSet = (DataSet)Session[tempPostSessionName]; } bsnoTable = (DataTable)postSet.Tables[0]; feeTable = (DataTable)postSet.Tables[1]; totalTable = (DataTable)postSet.Tables[2]; string strInvoiceGID = Guid.NewGuid().ToString(); string strCustomerName = ""; InvoiceDA invoiceDA = new InvoiceDA(); InvoiceEntity invoiceEntity = new InvoiceEntity(); if (ViewState["enter"] == null && ViewState["InvoiceAppID"] == null) { decimal totalRmb = decimal.Parse(totalTable.Rows[0]["TOTALRMB"].ToString()); decimal totalUsd = decimal.Parse(totalTable.Rows[0]["TOTALUSD"].ToString()); decimal FinalTotal = 0; if (strSettleCurrency == "1") { //人民币结算 FinalTotal = (StatisticSettleAmount(totalUsd, usdToRmb) + totalRmb); //折算汇率 invoiceEntity.Rate = totalUsd != 0 ? usdToRmb : 1; } else if (strSettleCurrency == "2") { //美元结算 FinalTotal = (StatisticSettleAmount(totalRmb, rmbToUsd) + totalUsd); //折算汇率 invoiceEntity.Rate = totalRmb != 0 ? rmbToUsd : 1; } //付费申请费用明细信息 IList feeDoEntities = new List(); for (int j = 0; j < bsnoTable.Rows.Count; j++) { for (int i = 0; i < feeTable.Rows.Count; i++) { if (i == 0) { strCustomerName = feeTable.Rows[i]["CUSTOMERNAME"].ToString(); } if (bsnoTable.Rows[j]["BSNO"].ToString().Trim() != feeTable.Rows[i]["BSNO"].ToString().Trim()) { continue; } FeeDoEntity feeDoEntity = new FeeDoEntity(); feeDoEntity.FeeID = feeTable.Rows[i]["GID"].ToString(); feeDoEntity.FeeType = int.Parse(feeTable.Rows[i]["FEETYPE"].ToString()); feeDoEntity.Currency = feeTable.Rows[i]["CURRENCY"].ToString(); feeDoEntity.Amount = decimal.Parse(feeTable.Rows[i]["AMOUNT"].ToString()); feeDoEntity.DoAmount = decimal.Parse(feeTable.Rows[i]["CTL"].ToString()); feeDoEntity.UnsettleAmount = decimal.Parse(feeTable.Rows[i]["UCTL"].ToString()); feeDoEntity.CustomerName = feeTable.Rows[i]["CUSTOMERNAME"].ToString(); feeDoEntity.FeeName = feeTable.Rows[i]["FEENAME"].ToString(); feeDoEntity.OriginalFeeName = feeTable.Rows[i]["FEENAME"].ToString(); feeDoEntity.OriginalFeeCSTL = decimal.Parse(feeTable.Rows[i]["CTL"].ToString()); feeDoEntity.BSNO = bsnoTable.Rows[j]["BSNO"].ToString(); feeDoEntity.MBLNO = bsnoTable.Rows[j]["MBLNO"].ToString(); feeDoEntity.HBLNO = bsnoTable.Rows[j]["HBLNO"].ToString(); feeDoEntity.BillNO = ""; feeDoEntity.GID = Guid.NewGuid().ToString(); feeDoEntity.Category = 7; feeDoEntity.BSType = 1; feeDoEntity.BillStatus = 2; feeDoEntity.Remark = ""; feeDoEntity.Orig = 1; feeDoEntity.OrigCurrency = feeTable.Rows[i]["CURRENCY"].ToString(); if (feeDoEntity.Currency == "USD") { feeDoEntity.ExchangeRate = usdToRmb; } else if (feeDoEntity.Currency == "RMB") { feeDoEntity.ExchangeRate = rmbToUsd; } else { feeDoEntity.ExchangeRate = 1; } feeDoEntity.CompanyID = strCompanyID; feeDoEntities.Add(feeDoEntity); } } if (h_rename.Value.Trim() != "") { FeeDoEntity feeDoEntity = new FeeDoEntity(); feeDoEntity.FeeID = Guid.NewGuid().ToString(); feeDoEntity.FeeType = 1; feeDoEntity.Currency = strSettleCurrency == "1" ? "RMB" : "USD"; string[] strMakeAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); feeDoEntity.Amount = decimal.Parse(strMakeAmount[1]); feeDoEntity.DoAmount = decimal.Parse(strMakeAmount[1]); feeDoEntity.UnsettleAmount = 0; feeDoEntity.CustomerName = feeDoEntities[feeDoEntities.Count - 1].CustomerName; feeDoEntity.FeeName = strRename; feeDoEntity.OriginalFeeName = strRename; feeDoEntity.OriginalFeeCSTL = decimal.Parse(strMakeAmount[1]); feeDoEntity.BSNO = ""; feeDoEntity.MBLNO = h_mblno.Value.Trim(); feeDoEntity.HBLNO = ""; feeDoEntity.BillNO = ""; feeDoEntity.GID = Guid.NewGuid().ToString(); feeDoEntity.Category = 7; feeDoEntity.BSType = 1; feeDoEntity.BillStatus = 2; feeDoEntity.Remark = ""; feeDoEntity.Orig = 3; feeDoEntity.OrigCurrency = strSettleCurrency == "1" ? "RMB" : "USD"; if (feeDoEntity.Currency == "USD") { feeDoEntity.ExchangeRate = usdToRmb; } else if (feeDoEntity.Currency == "RMB") { feeDoEntity.ExchangeRate = rmbToUsd; } else { feeDoEntity.ExchangeRate = 1; } feeDoEntity.CompanyID = strCompanyID; feeDoEntities.Add(feeDoEntity); } invoiceEntity.GID = strInvoiceGID; invoiceEntity.InvoiceNO = this.h_invoiceno.Value.Trim(); invoiceEntity.BillNO = ""; invoiceEntity.CustomerName = strCustomerName; invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); invoiceEntity.Bank = this.h_bank.Value.Trim(); invoiceEntity.Account = this.h_account.Value.Trim(); invoiceEntity.BSNO = this.h_custno.Value.Trim(); invoiceEntity.VesselVoyage = ""; invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); invoiceEntity.POL = this.h_pol.Value.Trim(); invoiceEntity.POD = this.h_pod.Value.Trim(); invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); invoiceEntity.FeeItem = CreateFeeDoXml(feeDoEntities).OuterXml; invoiceEntity.AmountList = ""; string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); invoiceEntity.Remark = this.txt_remark.Value.Trim(); invoiceEntity.Applicant = strUserID; invoiceEntity.ApplyTime = DateTime.Parse(this.txt_makeouttime.Value.Trim()); invoiceEntity.InvoiceType = 2; invoiceEntity.IsDelete = false; invoiceEntity.IsNeedFee = false; invoiceEntity.IsNeedPrint = false; invoiceEntity.Operator = strUserID; CompanyEntity companyEntity = new CompanyDA().GetCompanyByID(strCompanyID); invoiceEntity.LicenseCode = companyEntity.LICENSECODE != null ? companyEntity.LICENSECODE : ""; invoiceEntity.TaxCode = companyEntity.TAXCODE != null ? companyEntity.TAXCODE : ""; invoiceEntity.ExchangeRate = this.h_settlecurrency.Value.Trim().Equals("USD") ? (decimal.Parse(h_exusdtormb.Value.Trim().Equals("") ? "1" : h_exusdtormb.Value.Trim())) : (decimal.Parse(h_exrmbtousd.Value.Trim().Equals("") ? "1" : h_exrmbtousd.Value.Trim())); invoiceEntity.PrintAmount = decimal.Parse(this.h_printamount.Value.Trim().Equals("") ? "0" : this.h_printamount.Value.Trim()); invoiceEntity.PrintCaptial = this.h_printcapital.Value.Trim(); invoiceEntity.PrintTitle = this.h_rename.Value.Trim(); invoiceEntity.CompanyID = strCompanyID; int iResult = invoiceDA.InsertImportInvoice(invoiceEntity, feeDoEntities); if (iResult == 1) { ViewState["enter"] = "1";//已经保存成功 ViewState["SaveState"] = "1";//已经保存成功 ViewState["InvoiceID"] = invoiceEntity.GID;//保存发票开出主表GID Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", ""); } else if (iResult == -3) { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } else if (iResult == -4) { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } else { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } } } #endregion #region 开出发票申请 /// /// 开出发票申请 /// /// 发票申请GID private void MakeOutInvoiceApplication(string tempInvoiceAppGID) { InvoiceDA invoiceDA = new InvoiceDA(); //先获取发票申请信息 InvoiceApplicationDA invoiceApplicationDA = new InvoiceApplicationDA(); InvoiceApplicationEntity invoiceApplicationEntity = new InvoiceApplicationEntity(); invoiceApplicationEntity = invoiceApplicationDA.GetInvoiceApplicationByGID(tempInvoiceAppGID); if (invoiceApplicationEntity.GID != null) { InvoiceEntity invoiceEntity = new InvoiceEntity(); invoiceEntity.GID = Guid.NewGuid().ToString(); invoiceEntity.InvoiceNO = this.h_invoiceno.Value.Trim(); invoiceEntity.BillNO = "";//invoiceApplicationEntity.BillNO; invoiceEntity.CustomerName = invoiceApplicationEntity.CustomerName; invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); invoiceEntity.Bank = this.h_bank.Value.Trim(); invoiceEntity.Account = this.h_account.Value.Trim(); invoiceEntity.BSNO = this.h_custno.Value.Trim(); invoiceEntity.VesselVoyage = ""; invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); invoiceEntity.POL = this.h_pol.Value.Trim(); invoiceEntity.POD = this.h_pod.Value.Trim(); invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); invoiceEntity.FeeItem = invoiceApplicationEntity.FeeItem;//CreateFeeDoXml(feeDoEntities).OuterXml; invoiceEntity.AmountList = ""; //invoiceEntity.Amount = decimal.Parse(this.h_total.Value.Trim()); string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); invoiceEntity.Remark = this.txt_remark.Value.Trim(); invoiceEntity.Applicant = invoiceApplicationEntity.Applicant; invoiceEntity.ApplyTime = invoiceApplicationEntity.ApplyTime; invoiceEntity.InvoiceType = 1; invoiceEntity.IsDelete = false; invoiceEntity.IsNeedFee = false; invoiceEntity.IsNeedPrint = false; invoiceEntity.Operator = strUserID; CompanyEntity companyEntity = new CompanyDA().GetCompanyByID(strCompanyID); invoiceEntity.LicenseCode = companyEntity.LICENSECODE != null ? companyEntity.LICENSECODE : ""; invoiceEntity.TaxCode = companyEntity.TAXCODE != null ? companyEntity.TAXCODE : ""; invoiceEntity.ExchangeRate = this.h_settlecurrency.Value.Trim().Equals("USD") ? (decimal.Parse(h_exusdtormb.Value.Trim().Equals("") ? "1" : h_exusdtormb.Value.Trim())) : (decimal.Parse(h_exrmbtousd.Value.Trim().Equals("") ? "1" : h_exrmbtousd.Value.Trim())); invoiceEntity.PrintAmount = decimal.Parse(this.h_printamount.Value.Trim().Equals("") ? "0" : this.h_printamount.Value.Trim()); invoiceEntity.PrintCaptial = this.h_printcapital.Value.Trim(); invoiceEntity.PrintTitle = this.h_rename.Value.Trim(); invoiceEntity.CompanyID = strCompanyID; int iResult = invoiceDA.InsertInvoiceByApplication(invoiceEntity, tempInvoiceAppGID, invoiceApplicationEntity.BillNO); if (iResult == 1) { ViewState["enter"] = "1";//已经保存成功 ViewState["SaveState"] = "1";//已经保存成功 ViewState["InvoiceID"] = invoiceEntity.GID;//保存发票开出主表GID Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", ""); } else if (iResult == -3) { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } else if (iResult == -4) { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } else { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } } } #endregion private void MakeOutDirectInvoice(string tempCacheName) { if (Session[tempCacheName] != null) { InvoiceDA invoiceDA = new InvoiceDA(); DataTable feeTalbe = (DataTable)Session[tempCacheName]; IList feeDoEntities = new List(); for (int i = 0; i < feeTalbe.Rows.Count; i++) { FeeDoEntity feeDoEntity = new FeeDoEntity(); feeDoEntity.FeeID = feeTalbe.Rows[i]["GID"].ToString(); feeDoEntity.FeeType = 1; feeDoEntity.Currency = feeTalbe.Rows[i]["CURRENCY"].ToString().Trim().ToUpper(); feeDoEntity.Amount = decimal.Parse(feeTalbe.Rows[i]["CTL"].ToString()); feeDoEntity.DoAmount = decimal.Parse(feeTalbe.Rows[i]["CTL"].ToString()); feeDoEntity.CustomerName = h_customer.Value.Trim(); feeDoEntity.FeeName = feeTalbe.Rows[i]["FEENAME"].ToString().Trim().ToUpper(); feeDoEntity.BSNO = ""; feeDoEntity.Orig = 2; feeDoEntity.ExchangeRate = 1; feeDoEntity.MBLNO = ""; feeDoEntity.HBLNO = ""; feeDoEntity.BillNO = ""; feeDoEntity.GID = Guid.NewGuid().ToString(); feeDoEntity.Category = 7; feeDoEntity.BSType = 1; feeDoEntity.BillStatus = 2; feeDoEntity.Remark = ""; feeDoEntity.UnsettleAmount = 0; feeDoEntity.ExchangeRate = 0; feeDoEntity.OrigCurrency = ""; feeDoEntity.OriginalFeeCSTL = decimal.Parse(feeTalbe.Rows[i]["CTL"].ToString()); feeDoEntity.CompanyID = strCompanyID; feeDoEntities.Add(feeDoEntity); } InvoiceEntity invoiceEntity = new InvoiceEntity(); invoiceEntity.GID = Guid.NewGuid().ToString(); invoiceEntity.InvoiceNO = this.h_invoiceno.Value.Trim(); invoiceEntity.BillNO = ""; invoiceEntity.CustomerName = this.h_customer.Value.Trim(); invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); invoiceEntity.Bank = this.h_bank.Value.Trim(); invoiceEntity.Account = this.h_account.Value.Trim(); invoiceEntity.BSNO = this.h_custno.Value.Trim(); invoiceEntity.VesselVoyage = ""; invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); invoiceEntity.POL = this.h_pol.Value.Trim(); invoiceEntity.POD = this.h_pod.Value.Trim(); invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); invoiceEntity.FeeItem = CreateFeeDoXml(feeDoEntities).OuterXml; invoiceEntity.AmountList = ""; //invoiceEntity.Amount = decimal.Parse(this.h_total.Value.Trim()); string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); invoiceEntity.Remark = this.txt_remark.Value.Trim(); invoiceEntity.Applicant = strUserID; invoiceEntity.ApplyTime = DateTime.Parse(this.txt_makeouttime.Value.Trim()); invoiceEntity.InvoiceType = 2; invoiceEntity.IsDelete = false; invoiceEntity.IsNeedFee = false; invoiceEntity.IsNeedPrint = false; invoiceEntity.Operator = strUserID; invoiceEntity.LicenseCode = ""; invoiceEntity.TaxCode = ""; invoiceEntity.ExchangeRate = this.h_settlecurrency.Value.Trim().Equals("USD") ? (decimal.Parse(h_exusdtormb.Value.Trim().Equals("") ? "1" : h_exusdtormb.Value.Trim())) : (decimal.Parse(h_exrmbtousd.Value.Trim().Equals("") ? "1" : h_exrmbtousd.Value.Trim())); invoiceEntity.PrintAmount = decimal.Parse(this.h_printamount.Value.Trim().Equals("") ? "0" : this.h_printamount.Value.Trim()); invoiceEntity.PrintCaptial = this.h_printcapital.Value.Trim(); invoiceEntity.PrintTitle = this.h_rename.Value.Trim(); invoiceEntity.CompanyID = strCompanyID; int iResult = invoiceDA.InsertInvoiceDirect(invoiceEntity, feeDoEntities); if (iResult == 1) { ViewState["enter"] = "1";//已经保存成功 ViewState["SaveState"] = "1";//已经保存成功 ViewState["InvoiceID"] = invoiceEntity.GID;//保存发票开出主表GID Page.ClientScript.RegisterStartupScript(this.GetType(), "key1", ""); } else if (iResult == -3) { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } else if (iResult == -4) { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } else { ViewState["enter"] = "1"; ViewState.Remove("SaveState"); Page.ClientScript.RegisterStartupScript(this.GetType(), "key2", ""); } } } #region 从发票册内自动获取发票号码 /// /// 从发票册内自动获取发票号码 /// private void InitBookItems() { InvoiceBookItemEntity invoiceBookItemEntity = new InvoiceBookItemEntity(); InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); invoiceBookItemEntity = invoiceBookDA.GetCurrentBookItem(strCompanyID); if (invoiceBookItemEntity != null) { if (invoiceBookItemEntity.GID != null) { //this.txt_invoiceno.Value = invoiceBookItemEntity.InvoiceNum; this.h_invoiceno.Value = invoiceBookItemEntity.InvoiceNum; } } } #endregion #region 从服务器获取当前时间 赋值到开票日期内 /// /// 从服务器获取当前时间 赋值到开票日期内 /// private void InitMakeOutTime() { InvoiceApplicationDA tempInvoiceApplicationDA = new InvoiceApplicationDA(); DateTime currentDateTime = tempInvoiceApplicationDA.GetServerTime(); if (currentDateTime != DateTime.MinValue) { this.txt_makeouttime.Value = currentDateTime.ToString("yyyy-MM-dd"); } } #endregion ///// ///// 更新发票信息 ///// //private void UpdateInvoiceInfo() //{ // if (!this.h_feecache.Value.Trim().Equals("")) // { // string strList = this.h_feecache.Value.Trim(); // string strFilter = ""; // InvoiceDA invoiceDA = new InvoiceDA(); // InvoiceApplicationDA invoiceApplicationDA = new InvoiceApplicationDA(); // IList feeDoEntities = new List(); // string strBillNO = CreateBillNO(); // if (strList.IndexOf("[") >= 0 && strList.IndexOf("]") > 0) // { // strFilter = strList.Substring(strList.IndexOf("[") + 1, strList.IndexOf("]") - strList.IndexOf("[") - 1); // string[] strFees = strFilter.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries); // if (strFees.Length > 0) // { // for (int i = 0; i < strFees.Length; i++) // { // strFees[i] = strFees[i].ToString().Replace("{", ""); // strFees[i] = strFees[i].ToString().Replace("}", ""); // string[] strCell = strFees[i].Split(new char[] { ',' }); // if (strCell.Length > 0) // { // FeeDoEntity feeDoEntity = new FeeDoEntity(); // for (int j = 0; j < strCell.Length; j++) // { // string[] strArg = strCell[j].Split(new char[] { ':' }); // switch (strArg[0].Replace("\"", "")) // { // case "id": // feeDoEntity.FeeID = strArg[1].ToString().Replace("\"", "").Trim(); // break; // case "type": // feeDoEntity.FeeType = strArg[1].ToString().Replace("\"", "").Trim() == "" ? 3 : int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "cur": // feeDoEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); // break; // case "stl": // feeDoEntity.Amount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "cstl": // feeDoEntity.DoAmount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "ustl": // break; // case "cus": // feeDoEntity.CustomerName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "fname": // feeDoEntity.FeeName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "bsno": // feeDoEntity.BSNO = strArg[1].ToString().Replace("\"", "").Trim(); // break; // case "orig": // feeDoEntity.Orig = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // //case "origcur": // // feeDoEntity.OrigCurrency = strArg[1].ToString().Replace("\"", "").Trim().ToUpper(); // // break; // default: // break; // } // } // if (strSettleCurrency != feeDoEntity.Currency) // { // if (strSettleCurrency == "RMB") // { // feeDoEntity.ExchangeRate = usdToRmb; // } // else if (strSettleCurrency == "USD") // { // feeDoEntity.ExchangeRate = rmbToUsd; // } // } // //feeDoEntity.BSNO = ""; // feeDoEntity.MBLNO = ""; // feeDoEntity.HBLNO = ""; // //feeDoEntity.CustomerName = ""; // //feeDoEntity.FeeName = ""; // feeDoEntity.BillNO = strBillNO; // feeDoEntity.GID = Guid.NewGuid().ToString(); // feeDoEntity.Category = 7; // feeDoEntity.BSType = 1; // feeDoEntity.BillStatus = 2; // feeDoEntity.Remark = ""; // feeDoEntity.UnsettleAmount = 0; // feeDoEntity.ExchangeRate = 0; // feeDoEntity.OrigCurrency = ""; // feeDoEntities.Add(feeDoEntity); // } // } // } // InvoiceEntity invoiceEntity = new InvoiceEntity(); // //查看是否已经存在已经开票的相关申请 // invoiceEntity = invoiceDA.GetInvoiceByBillNO(strBillNO); // //如果不存在相同的发票信息,则执行开票操作 // if (invoiceEntity.GID == null) // { // invoiceEntity.GID = Guid.NewGuid().ToString(); // invoiceEntity.InvoiceNO = this.txt_invoiceno.Value.Trim(); // invoiceEntity.BillNO = strBillNO; // invoiceEntity.CustomerName = this.h_customer.Value.Trim(); // invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); // invoiceEntity.Bank = this.h_bank.Value.Trim(); // invoiceEntity.Account = this.h_account.Value.Trim(); // invoiceEntity.BSNO = this.h_custno.Value.Trim(); // invoiceEntity.VesselVoyage = ""; // invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); // invoiceEntity.POL = this.h_pol.Value.Trim(); // invoiceEntity.POD = this.h_pod.Value.Trim(); // invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); // invoiceEntity.FeeItem = CreateFeeDoXml(feeDoEntities).OuterXml; // invoiceEntity.AmountList = ""; // //invoiceEntity.Amount = decimal.Parse(this.h_total.Value.Trim()); // string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); // invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); // invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); // invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); // invoiceEntity.Remark = this.txt_remark.Value.Trim(); // invoiceEntity.Applicant = ""; // invoiceEntity.ApplyTime = DateTime.MinValue; // invoiceEntity.InvoiceType = 1; // invoiceEntity.IsDelete = false; // invoiceEntity.IsNeedFee = false; // invoiceEntity.IsNeedPrint = false; // invoiceEntity.Operator = strUserID; // invoiceEntity.LicenseCode = ""; // invoiceEntity.TaxCode = ""; // int iResult = invoiceDA.InsertInvoiceDirect(invoiceEntity, feeDoEntities); // if (iResult == 1) // { // this.txt_invoiceno.Disabled = true; // this.txt_vesselvoyage.Disabled = true; // this.txt_mblno.Disabled = true; // this.txt_etd.Disabled = true; // this.txt_pod.Disabled = true; // this.txt_pol.Disabled = true; // this.sel_account.Disabled = true; // this.sel_bank.Disabled = true; // this.sel_customer.Disabled = true; // this.btn_makeout.Disabled = true; // this.h_invoiceid.Value = invoiceEntity.GID; // //this.btn_createinvoice.Disabled = false; // } // } // } // } //} #region 手动填写开发票 /// /// 手动填写开发票 /// private void DirectMakeOutInvoice() { if (!this.h_feecache.Value.Trim().Equals("")) { string strList = this.h_feecache.Value.Trim(); string strFilter = ""; InvoiceDA invoiceDA = new InvoiceDA(); InvoiceApplicationDA invoiceApplicationDA = new InvoiceApplicationDA(); IList feeDoEntities = new List(); string strBillNO = CreateBillNO(); if (strList.IndexOf("[") >= 0 && strList.IndexOf("]") > 0) { strFilter = strList.Substring(strList.IndexOf("[") + 1, strList.IndexOf("]") - strList.IndexOf("[") - 1); string[] strFees = strFilter.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries); if (strFees.Length > 0) { for (int i = 0; i < strFees.Length; i++) { strFees[i] = strFees[i].ToString().Replace("{", ""); strFees[i] = strFees[i].ToString().Replace("}", ""); string[] strCell = strFees[i].Split(new char[] { ',' }); if (strCell.Length > 0) { FeeDoEntity feeDoEntity = new FeeDoEntity(); for (int j = 0; j < strCell.Length; j++) { string[] strArg = strCell[j].Split(new char[] { ':' }); switch (strArg[0].Replace("\"", "")) { case "id": feeDoEntity.FeeID = strArg[1].ToString().Replace("\"", "").Trim(); break; case "type": feeDoEntity.FeeType = strArg[1].ToString().Replace("\"", "").Trim() == "" ? 3 : int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cur": feeDoEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); break; case "stl": feeDoEntity.Amount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cstl": feeDoEntity.DoAmount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "ustl": break; case "cus": feeDoEntity.CustomerName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "fname": feeDoEntity.FeeName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "bsno": feeDoEntity.BSNO = strArg[1].ToString().Replace("\"", "").Trim(); break; case "orig": feeDoEntity.Orig = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; //case "origcur": // feeDoEntity.OrigCurrency = strArg[1].ToString().Replace("\"", "").Trim().ToUpper(); // break; default: break; } } if (strSettleCurrency != feeDoEntity.Currency) { if (strSettleCurrency == "RMB") { feeDoEntity.ExchangeRate = usdToRmb; } else if (strSettleCurrency == "USD") { feeDoEntity.ExchangeRate = rmbToUsd; } } //feeDoEntity.BSNO = ""; feeDoEntity.MBLNO = ""; feeDoEntity.HBLNO = ""; //feeDoEntity.CustomerName = ""; //feeDoEntity.FeeName = ""; feeDoEntity.BillNO = strBillNO; feeDoEntity.GID = Guid.NewGuid().ToString(); feeDoEntity.Category = 7; feeDoEntity.BSType = 1; feeDoEntity.BillStatus = 2; feeDoEntity.Remark = ""; feeDoEntity.UnsettleAmount = 0; feeDoEntity.ExchangeRate = 0; feeDoEntity.OrigCurrency = ""; feeDoEntities.Add(feeDoEntity); } } } InvoiceEntity invoiceEntity = new InvoiceEntity(); //查看是否已经存在已经开票的相关申请 invoiceEntity = invoiceDA.GetInvoiceByBillNO(strBillNO); //如果不存在相同的发票信息,则执行开票操作 if (invoiceEntity.GID == null) { invoiceEntity.GID = Guid.NewGuid().ToString(); invoiceEntity.InvoiceNO = this.h_invoiceno.Value.Trim(); invoiceEntity.BillNO = strBillNO; invoiceEntity.CustomerName = this.h_customer.Value.Trim(); invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); invoiceEntity.Bank = this.h_bank.Value.Trim(); invoiceEntity.Account = this.h_account.Value.Trim(); invoiceEntity.BSNO = this.h_custno.Value.Trim(); invoiceEntity.VesselVoyage = ""; invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); invoiceEntity.POL = this.h_pol.Value.Trim(); invoiceEntity.POD = this.h_pod.Value.Trim(); invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); invoiceEntity.FeeItem = CreateFeeDoXml(feeDoEntities).OuterXml; invoiceEntity.AmountList = ""; //invoiceEntity.Amount = decimal.Parse(this.h_total.Value.Trim()); string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); invoiceEntity.Remark = this.txt_remark.Value.Trim(); invoiceEntity.Applicant = strUserID; invoiceEntity.ApplyTime = DateTime.Parse(this.txt_makeouttime.Value.Trim()); invoiceEntity.InvoiceType = 1; invoiceEntity.IsDelete = false; invoiceEntity.IsNeedFee = false; invoiceEntity.IsNeedPrint = false; invoiceEntity.Operator = strUserID; invoiceEntity.LicenseCode = ""; invoiceEntity.TaxCode = ""; invoiceEntity.ExchangeRate = this.h_settlecurrency.Value.Trim().Equals("USD") ? (decimal.Parse(h_exusdtormb.Value.Trim().Equals("") ? "1" : h_exusdtormb.Value.Trim())) : (decimal.Parse(h_exrmbtousd.Value.Trim().Equals("") ? "1" : h_exrmbtousd.Value.Trim())); invoiceEntity.PrintAmount = decimal.Parse(this.h_printamount.Value.Trim().Equals("") ? "0" : this.h_printamount.Value.Trim()); invoiceEntity.PrintCaptial = this.h_printcapital.Value.Trim(); invoiceEntity.PrintTitle = this.h_rename.Value.Trim(); int iResult = invoiceDA.InsertInvoiceDirect(invoiceEntity, feeDoEntities); if (iResult == 1) { //this.txt_invoiceno.Disabled = true; this.sel_invoiceno.Disabled = true; this.txt_vesselvoyage.Disabled = true; this.txt_mblno.Disabled = true; this.txt_etd.Disabled = true; this.txt_pod.Disabled = true; this.txt_pol.Disabled = true; this.sel_account.Disabled = true; this.sel_bank.Disabled = true; this.sel_customer.Disabled = true; this.btn_makeout.Disabled = true; this.h_invoiceid.Value = invoiceEntity.GID; //this.btn_createinvoice.Disabled = false; } } } } } #endregion //#region 发票申请开出发票 ///// ///// 发票申请开出发票 ///// ///// //private void MakeOutInvoice(string tempInvoiceAppGID) //{ // if (!this.h_feecache.Value.Trim().Equals("")) // { // string strList = this.h_feecache.Value.Trim(); // string strFilter = ""; // InvoiceDA invoiceDA = new InvoiceDA(); // InvoiceApplicationDA invoiceApplicationDA = new InvoiceApplicationDA(); // InvoiceApplicationEntity invoiceApplicationEntity = new InvoiceApplicationEntity(); // invoiceApplicationEntity = invoiceApplicationDA.GetInvoiceApplicationByGID(tempInvoiceAppGID); // IList feeDoEntities = new List(); // IList feeEntities = new List(); // FeeDA feeDA = new FeeDA(); // if (strList.IndexOf("[") >= 0 && strList.IndexOf("]") > 0) // { // strFilter = strList.Substring(strList.IndexOf("[") + 1, strList.IndexOf("]") - strList.IndexOf("[") - 1); // string[] strFees = strFilter.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries); // if (strFees.Length > 0) // { // for (int i = 0; i < strFees.Length; i++) // { // strFees[i] = strFees[i].ToString().Replace("{", ""); // strFees[i] = strFees[i].ToString().Replace("}", ""); // string[] strCell = strFees[i].Split(new char[] { ',' }); // if (strCell.Length > 0) // { // FeeDoEntity feeDoEntity = new FeeDoEntity(); // for (int j = 0; j < strCell.Length; j++) // { // string[] strArg = strCell[j].Split(new char[] { ':' }); // switch (strArg[0].Replace("\"", "")) // { // case "id": // feeDoEntity.FeeID = strArg[1].ToString().Replace("\"", "").Trim(); // break; // case "type": // feeDoEntity.FeeType = strArg[1].ToString().Replace("\"", "").Trim() == "" ? 3 : int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "cur": // feeDoEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); // break; // case "stl": // feeDoEntity.Amount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "cstl": // feeDoEntity.DoAmount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "ustl": // break; // case "cus": // feeDoEntity.CustomerName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "fname": // feeDoEntity.FeeName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "bsno": // feeDoEntity.BSNO = strArg[1].ToString().Replace("\"", "").Trim(); // break; // case "orig": // feeDoEntity.Orig = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); // break; // case "origcur": // feeDoEntity.OrigCurrency = strArg[1].ToString().Replace("\"", "").Trim().ToUpper(); // break; // default: // break; // } // } // if (strSettleCurrency != feeDoEntity.Currency) // { // if (strSettleCurrency == "RMB") // { // feeDoEntity.ExchangeRate = usdToRmb; // } // else if (strSettleCurrency == "USD") // { // feeDoEntity.ExchangeRate = rmbToUsd; // } // } // //feeDoEntity.BSNO = ""; // feeDoEntity.MBLNO = ""; // feeDoEntity.HBLNO = ""; // //feeDoEntity.CustomerName = ""; // //feeDoEntity.FeeName = ""; // feeDoEntity.BillNO = invoiceApplicationEntity.BillNO; // feeDoEntity.GID = Guid.NewGuid().ToString(); // feeDoEntity.Category = 7; // feeDoEntity.BSType = 1; // feeDoEntity.BillStatus = 2; // feeDoEntity.Remark = ""; // if (feeDoEntity.Orig == 1) // { // //FeeEntity feeEntity = new FeeEntity(); // //feeEntity = feeDA.GetFeeByID(feeDoEntity.FeeID); // //feeEntities.Add(feeEntity); // feeDoEntities.Add(feeDoEntity); // } // } // } // } // } // if (invoiceApplicationEntity.GID != null) // { // InvoiceEntity invoiceEntity = new InvoiceEntity(); // //查看是否已经存在已经开票的相关申请 // invoiceEntity = invoiceDA.GetInvoiceByBillNO(invoiceApplicationEntity.BillNO); // //如果不存在相同的发票信息,则执行开票操作 // if (invoiceEntity.GID == null) // { // invoiceEntity.GID = Guid.NewGuid().ToString(); // invoiceEntity.InvoiceNO = this.txt_invoiceno.Value.Trim(); // invoiceEntity.BillNO = invoiceApplicationEntity.BillNO; // invoiceEntity.CustomerName = invoiceApplicationEntity.CustomerName; // invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); // invoiceEntity.Bank = this.h_bank.Value.Trim(); // invoiceEntity.Account = this.h_account.Value.Trim(); // invoiceEntity.BSNO = this.h_custno.Value.Trim(); // invoiceEntity.VesselVoyage = ""; // invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); // invoiceEntity.POL = this.h_pol.Value.Trim(); // invoiceEntity.POD = this.h_pod.Value.Trim(); // invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); // invoiceEntity.FeeItem = CreateFeeDoXml(feeDoEntities).OuterXml; // invoiceEntity.AmountList = ""; // //invoiceEntity.Amount = decimal.Parse(this.h_total.Value.Trim()); // string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); // invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); // invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); // invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); // invoiceEntity.Remark = this.txt_remark.Value.Trim(); // invoiceEntity.Applicant = invoiceApplicationEntity.Applicant; // invoiceEntity.ApplyTime = invoiceApplicationEntity.ApplyTime; // invoiceEntity.InvoiceType = 1; // invoiceEntity.IsDelete = false; // invoiceEntity.IsNeedFee = false; // invoiceEntity.IsNeedPrint = false; // invoiceEntity.Operator = strUserID; // CompanyEntity companyEntity = new CompanyDA().GetCompanyByID(strCompanyID); // invoiceEntity.LicenseCode = companyEntity.LICENSECODE != null ? companyEntity.LICENSECODE : ""; // invoiceEntity.TaxCode = companyEntity.TAXCODE != null ? companyEntity.TAXCODE : ""; // invoiceEntity.ExchangeRate = this.h_settlecurrency.Value.Trim().Equals("USD") ? (decimal.Parse(h_exusdtormb.Value.Trim().Equals("") ? "1" : h_exusdtormb.Value.Trim())) : (decimal.Parse(h_exrmbtousd.Value.Trim().Equals("") ? "1" : h_exrmbtousd.Value.Trim())); // invoiceEntity.PrintAmount = decimal.Parse(this.h_printamount.Value.Trim().Equals("") ? "0" : this.h_printamount.Value.Trim()); // invoiceEntity.PrintCaptial = this.h_printcapital.Value.Trim(); // invoiceEntity.PrintTitle = this.h_rename.Value.Trim(); // int iResult = invoiceDA.InsertInvoice(invoiceEntity, feeDoEntities, invoiceApplicationEntity.BillNO); // if (iResult == 1) // { // this.txt_invoiceno.Disabled = true; // this.txt_vesselvoyage.Disabled = true; // this.txt_mblno.Disabled = true; // this.txt_etd.Disabled = true; // this.txt_pod.Disabled = true; // this.txt_pol.Disabled = true; // this.sel_account.Disabled = true; // this.sel_bank.Disabled = true; // this.sel_customer.Disabled = true; // this.btn_makeout.Disabled = true; // this.h_invoiceid.Value = invoiceEntity.GID; // this.btn_createinvoice.Disabled = false; // IList messageEntities = new List(); // MessageDA messageDA = new MessageDA(); // MessageEntity messageEntity = new MessageEntity(); // messageEntity.GID = Guid.NewGuid().ToString(); // messageEntity.Name = "InvoiceAppMakeout"; // messageEntity.Description = "发票申请开出"; // messageEntity.IsRead = false; // messageEntity.ReadCount = 0; // messageEntity.MessageContent = strShowName + " 已经开出 [发票申请] 业务编号:" + invoiceApplicationEntity.BillNO + " 金额 " + this.txt_total.Value.Trim() + " "; // messageEntity.TaskID = invoiceApplicationEntity.BillNO; // messageEntity.Receiver = invoiceApplicationEntity.Applicant; // messageEntity.TaskUrl = messageEntity.TaskUrl = "invoice/invoiceapplicationlist.aspx"; // messageEntity.Type = messageDA.GetMessageType(MessageType.INVOICEAPP); // messageEntity.RecvType = 3;//审核完成类型 // messageEntities.Add(messageEntity); // if (messageEntities.Count > 0) // { // messageDA.CreateMessage(MessageType.INVOICEAPP, messageEntities); // } // //Page.ClientScript.RegisterStartupScript(this.GetType(), "key", ""); // this.h_billno.Value = invoiceEntity.BillNO; // } // } // } // } //} //#endregion #region 开出引入费用发票 /// /// 开出引入费用发票 /// private void MakeOutImportInvoice() { if (!this.h_feecache.Value.Trim().Equals("")) { string strList = this.h_feecache.Value.Trim(); string strFilter = ""; string strBillNO = CreateBillNO(); IList feeDoEntities = new List(); IList feeEntities = new List(); FeeDA feeDA = new FeeDA(); if (strList.IndexOf("[") >= 0 && strList.IndexOf("]") > 0) { strFilter = strList.Substring(strList.IndexOf("[") + 1, strList.IndexOf("]") - strList.IndexOf("[") - 1); //IList feeDoEntities = new List(); string[] strFees = strFilter.Split(new string[] { "},{" }, System.StringSplitOptions.RemoveEmptyEntries); if (strFees.Length > 0) { for (int i = 0; i < strFees.Length; i++) { strFees[i] = strFees[i].ToString().Replace("{", ""); strFees[i] = strFees[i].ToString().Replace("}", ""); string[] strCell = strFees[i].Split(new char[] { ',' }); if (strCell.Length > 0) { FeeDoEntity feeDoEntity = new FeeDoEntity(); for (int j = 0; j < strCell.Length; j++) { string[] strArg = strCell[j].Split(new char[] { ':' }); switch (strArg[0].Replace("\"", "")) { case "id": feeDoEntity.FeeID = strArg[1].ToString().Replace("\"", "").Trim(); break; case "type": feeDoEntity.FeeType = strArg[1].ToString().Replace("\"", "").Trim() == "" ? 3 : int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cur": feeDoEntity.Currency = strArg[1].ToString().Replace("\"", "").Trim(); break; case "stl": feeDoEntity.Amount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "cstl": feeDoEntity.DoAmount = decimal.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "ustl": break; case "cus": feeDoEntity.CustomerName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "fname": feeDoEntity.FeeName = UnicodeToGB(strArg[1].ToString().Replace("\"", "").Trim()); break; case "bsno": feeDoEntity.BSNO = strArg[1].ToString().Replace("\"", "").Trim(); break; case "orig": feeDoEntity.Orig = int.Parse(strArg[1].ToString().Replace("\"", "").Trim()); break; case "origcur": feeDoEntity.OrigCurrency = strArg[1].ToString().Replace("\"", "").Trim().ToUpper(); break; default: break; } } if (strSettleCurrency != feeDoEntity.Currency) { if (strSettleCurrency == "RMB") { feeDoEntity.ExchangeRate = usdToRmb; } else if (strSettleCurrency == "USD") { feeDoEntity.ExchangeRate = rmbToUsd; } } //feeDoEntity.BSNO = ""; feeDoEntity.MBLNO = ""; feeDoEntity.HBLNO = ""; //feeDoEntity.CustomerName = ""; //feeDoEntity.FeeName = ""; feeDoEntity.BillNO = strBillNO; feeDoEntity.GID = Guid.NewGuid().ToString(); feeDoEntity.Category = 7; feeDoEntity.BSType = 1; feeDoEntity.BillStatus = 2; feeDoEntity.Remark = ""; if (feeDoEntity.Orig == 1) { //FeeEntity feeEntity = new FeeEntity(); //feeEntity = feeDA.GetFeeByID(feeDoEntity.FeeID); //feeEntities.Add(feeEntity); feeDoEntities.Add(feeDoEntity); } } } } } InvoiceDA invoiceDA = new InvoiceDA(); InvoiceEntity invoiceEntity = new InvoiceEntity(); //查看是否已经存在已经开票的相关信息 invoiceEntity = invoiceDA.GetInvoiceByBillNO(strBillNO); if (invoiceEntity.GID == null) { invoiceEntity.GID = Guid.NewGuid().ToString(); invoiceEntity.InvoiceNO = this.h_invoiceno.Value.Trim(); invoiceEntity.BillNO = strBillNO; invoiceEntity.CustomerName = feeDoEntities[0].CustomerName; invoiceEntity.InvoiceCustName = this.h_customer.Value.Trim(); invoiceEntity.Bank = this.h_bank.Value.Trim(); invoiceEntity.Account = this.h_account.Value.Trim(); invoiceEntity.BSNO = this.h_custno.Value.Trim(); invoiceEntity.VesselVoyage = ""; invoiceEntity.ETD = this.h_etd.Value.Trim().Equals("") ? DateTime.MinValue : DateTime.Parse(this.h_etd.Value.Trim()); invoiceEntity.POL = this.h_pol.Value.Trim(); invoiceEntity.POD = this.h_pod.Value.Trim(); invoiceEntity.MBLNO = this.h_mblno.Value.Trim(); invoiceEntity.FeeItem = CreateFeeDoXml(feeDoEntities).OuterXml; invoiceEntity.AmountList = ""; string[] strApplyAmount = this.txt_total.Value.Trim().Split(new char[] { ' ' }); invoiceEntity.Amount = decimal.Parse(strApplyAmount[1]);//decimal.Parse(this.h_total.Value.Trim()); invoiceEntity.AmountCapital = this.h_capitial.Value.Trim(); invoiceEntity.Currency = this.h_settlecurrency.Value.Trim(); invoiceEntity.Remark = this.txt_remark.Value.Trim(); invoiceEntity.Applicant = strUserID; invoiceEntity.ApplyTime = DateTime.Parse(this.txt_makeouttime.Value.Trim()); invoiceEntity.InvoiceType = 2; invoiceEntity.IsDelete = false; invoiceEntity.IsNeedFee = false; invoiceEntity.IsNeedPrint = false; invoiceEntity.Operator = strUserID; CompanyEntity companyEntity = new CompanyDA().GetCompanyByID(strCompanyID); invoiceEntity.LicenseCode = companyEntity.LICENSECODE != null ? companyEntity.LICENSECODE : ""; invoiceEntity.TaxCode = companyEntity.TAXCODE != null ? companyEntity.TAXCODE : ""; invoiceEntity.ExchangeRate = this.h_settlecurrency.Value.Trim().Equals("USD") ? (decimal.Parse(h_exusdtormb.Value.Trim().Equals("") ? "1" : h_exusdtormb.Value.Trim())) : (decimal.Parse(h_exrmbtousd.Value.Trim().Equals("") ? "1" : h_exrmbtousd.Value.Trim())); invoiceEntity.PrintAmount = decimal.Parse(this.h_printamount.Value.Trim().Equals("") ? "0" : this.h_printamount.Value.Trim()); invoiceEntity.PrintCaptial = this.h_printcapital.Value.Trim(); invoiceEntity.PrintTitle = this.h_rename.Value.Trim(); int iResult = 0; iResult = invoiceDA.InsertImportInvoice(invoiceEntity, feeDoEntities); if (iResult == 1) { this.h_saved.Value = "1";//保存状态位 this.btn_makeout.Disabled = true; this.h_invoiceid.Value = invoiceEntity.GID; this.btn_createinvoice.Disabled = false; this.h_billno.Value = invoiceEntity.BillNO; //Page.ClientScript.RegisterStartupScript(this.GetType(), "key", ""); } } } } #endregion #region 生成开票申请编号 /// /// 生成开票申请编号 /// /// private string CreateBillNO() { int CodeLength = 4; string strSettleCode = ""; //获取分公司的票号头字符 T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); string tempBANKSHEAD = T_ALL_DA.GetStrSQL("BANKSHEAD", "SELECT TOP 1 BANKSHEAD FROM company WHERE GID='" + strCompanyID.Trim() + "'"); string strFeeType = tempBANKSHEAD+"IV"; FeeDoDA feeDoDA = new FeeDoDA(); DateTime nowDateTime = feeDoDA.getServerDateTime(); string strYear = nowDateTime.Year.ToString(); string strMonth = nowDateTime.Month.ToString().Length < 2 ? "0" + nowDateTime.Month.ToString() : nowDateTime.Month.ToString(); //string strDay = nowDateTime.Day.ToString(); string strDateTime = strYear + strMonth; string strCodePrefix = strFeeType + strDateTime; //string strSql = "SELECT TOP 1 BILLNO FROM ch_fee_invoiceapplication WHERE BILLNO LIKE '" + strFeeType + strDateTime + "%' ORDER BY BILLNO DESC"; string strSql = " SELECT TOP 1 BILLNO FROM " + " (SELECT BILLNO FROM ch_fee_invoice WHERE BILLNO LIKE '" + strFeeType + strDateTime + "%' UNION " + " SELECT BILLNO FROM ch_fee_invoiceapplication WHERE BILLNO LIKE '" + strFeeType + strDateTime + "%') as A ORDER BY BILLNO DESC"; DataTable billTable = feeDoDA.GetExcuteSql(strSql).Tables[0]; ArrayList codeArg = new ArrayList(); for (int i = 0; i < CodeLength; i++) { codeArg.Add(0); } string strCode = "";//编号 if (billTable.Rows.Count > 0) { string oldCode = billTable.Rows[0][0].ToString(); if (oldCode.IndexOf(strCodePrefix) >= 0) { oldCode = oldCode.Substring(strCodePrefix.Length, oldCode.Length - strCodePrefix.Length); if (oldCode.Length == CodeLength) { for (int i = 0; i < oldCode.Length; i++) { if (oldCode[i].ToString().IndexOf("0") == 0) { oldCode = oldCode.Remove(i, 1); i = -1; continue; } else { break; } } } } int newNum = int.Parse(oldCode); newNum = newNum + 1; string strNewNum = newNum.ToString(); int codeArgCount = codeArg.Count - 1; for (int i = strNewNum.Length - 1; i >= 0; i--) { codeArg[codeArgCount] = strNewNum[i]; codeArgCount--; } //for (int i = 0; i < strNewNum.Length; i++) //{ // codeArg[i] = strNewNum[i]; //} } else { int iOld = int.Parse(codeArg[codeArg.Count - 1].ToString()); codeArg[codeArg.Count - 1] = (iOld + 1).ToString(); } for (int i = 0; i < codeArg.Count; i++) { strCode += codeArg[i].ToString(); } strSettleCode = strFeeType + strDateTime + strCode; return strSettleCode; } #endregion #region Unicode-GB Code转换 /// /// Unicode-GB Code转换 /// /// 将Unicode编码字符转换成GB编码字符 /// GB Code字符串 public string UnicodeToGB(string text) { UnicodeEncoding unicode = new UnicodeEncoding(); text = unicode.GetString(unicode.GetBytes(Regex.Unescape(text.Trim()))); return text; } /// /// Unicode-GB Code转换 /// /// 将Unicode编码字符转换成GB编码字符 /// GB Code字符串 public string UnicodeToGB_Old(string text) { MatchCollection mc = Regex.Matches(text, "([\\w]+)|(\\\\u([\\w]{4}))"); if (mc != null && mc.Count > 0) { StringBuilder sb = new StringBuilder(); foreach (Match m2 in mc) { string v = m2.Value; if (v.IndexOf("\\") >= 0) { string word = v.Substring(2); byte[] codes = new byte[2]; int code = Convert.ToInt32(word.Substring(0, 2), 16); int code2 = Convert.ToInt32(word.Substring(2), 16); codes[0] = (byte)code2; codes[1] = (byte)code; sb.Append(Encoding.Unicode.GetString(codes)); } else { sb.Append(v); } } return sb.ToString(); } else { return text; } } #endregion #region 读取FeeItem费用明细数据 /// /// 读取FeeItem费用明细数据 /// /// XML字符串 /// 返回实体类FeeDoEntity private IList GetFeeDoXml(string strXml) { XmlDocument xmlFeeDoDoc = new XmlDocument(); IList feeDoEntities = new List(); 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; } #endregion #region 创建FeeItem的XML信息 /// /// 创建FeeItem的XML信息 /// /// FeeDoEntity实体类信息 /// 返回XML字符串 private XmlDocument CreateFeeDoXml(IList tempFeeDoEntities) { XmlDocument xmlDoc = new XmlDocument(); XmlElement root = xmlDoc.CreateElement("fees"); //xmlDoc.AppendChild(root); XmlElement xItems = xmlDoc.CreateElement("it"); foreach (FeeDoEntity feeDoEntity in tempFeeDoEntities) { XmlElement xDo = xmlDoc.CreateElement("do"); XmlElement xGid = xmlDoc.CreateElement("g"); xGid.InnerText = feeDoEntity.FeeID; xDo.AppendChild(xGid); XmlElement xFeeName = xmlDoc.CreateElement("n"); xFeeName.InnerText = feeDoEntity.FeeName; xDo.AppendChild(xFeeName); XmlElement xPrice = xmlDoc.CreateElement("p"); xPrice.InnerText = feeDoEntity.DoAmount.ToString(); xDo.AppendChild(xPrice); XmlElement xCategory = xmlDoc.CreateElement("c");//type值1表示应收费用 xCategory.InnerText = feeDoEntity.Category.ToString(); xDo.AppendChild(xCategory); XmlElement xType = xmlDoc.CreateElement("t");//type值1表示应收费用 xType.InnerText = feeDoEntity.FeeType.ToString(); xDo.AppendChild(xType); XmlElement xOrig = xmlDoc.CreateElement("o");//值1-原值 值2-手动添加费用 值3-自定义费用 xOrig.InnerText = feeDoEntity.Orig.ToString(); xDo.AppendChild(xOrig); xItems.AppendChild(xDo); } root.AppendChild(xItems); xmlDoc.AppendChild(root); return xmlDoc; } #endregion #region 获取缓存付费结算合计信息 /// /// 获取缓存付费结算合计信息 /// /// 缓存名称 private void ResovlePostSessionTable(string tempPostSessionName) { DataTable bsnoTable = null; DataTable feeTable = null; DataTable totalTable = null; DataSet postSet = null; if (Session[tempPostSessionName] != null) { postSet = (DataSet)Session[tempPostSessionName]; } bsnoTable = (DataTable)postSet.Tables[0]; feeTable = (DataTable)postSet.Tables[1]; totalTable = (DataTable)postSet.Tables[2]; int i = 0; while (i < 1) { string strBSNO = bsnoTable.Rows[i]["BSNO"].ToString(); InvoiceDA invoiceDA = new InvoiceDA(); DataTable sourceTable; //string strSql = "SELECT BSNO,VESSEL+' '+VOYNO as VESSELVOYAGE,MBLNO,CASE WHEN ETD IS NULL THEN '' ELSE ETD END AS ETD,PORTLOAD,PORTDISCHARGE,CUSTNO FROM op_seae WHERE BSNO = '" + strBSNO + "'"; //2013-02-05 修改 string strSql = "SELECT BSNO,VESSEL+' '+VOYNO as VESSELVOYAGE,MBLNO,CASE WHEN ETD IS NULL THEN '' ELSE ETD END AS ETD,PORTLOAD,PORTDISCHARGE,CUSTNO FROM VW_Settlement WHERE BSNO = '" + strBSNO + "'"; sourceTable = invoiceDA.GetExcuteSql(strSql).Tables[0]; if (isCustNo == 1) this.txt_custno.Value = sourceTable.Rows[0]["CUSTNO"].ToString(); if (isVessel == 1) this.txt_vesselvoyage.Value = sourceTable.Rows[0]["VESSELVOYAGE"].ToString(); if (isMblno == 1) this.txt_mblno.Value = sourceTable.Rows[0]["MBLNO"].ToString(); if (isEtd == 1) this.txt_etd.Value = (sourceTable.Rows[0]["ETD"].ToString() == "1900-1-1 0:00:00") ? "" : sourceTable.Rows[0]["ETD"].ToString(); if (isPol == 1) this.txt_pol.Value = sourceTable.Rows[0]["PORTLOAD"].ToString(); if (isPod == 1) this.txt_pod.Value = sourceTable.Rows[0]["PORTDISCHARGE"].ToString(); i++; } h_customername.Value = feeTable.Rows[0]["CUSTOMERNAME"].ToString(); } #endregion #region 不同币别金额换算 /// /// 不同币别金额换算 /// /// 原币别金额 /// 汇率 /// 返回折算后的金额 private decimal StatisticSettleAmount(decimal tempOrigAmount, decimal tempRate) { decimal result = 0; result = decimal.Parse(C1Round((double.Parse((tempOrigAmount * tempRate).ToString())), 2).ToString()); return result; } #endregion #region 金额四舍五入 /// /// 金额四舍五入 /// /// 金额值 /// 小数点后位数 /// 返回Double型四舍五入金额 public double C1Round(double value, int digit) { double vt = Math.Pow(10, digit); double vx = value * vt; vx += 0.5; return (Math.Floor(vx) / vt); } #endregion } }