using BLL; using System; using System.Linq; using System.Web; namespace FineUIPro.Web.PHTGL.InvoiceManage { public partial class InvoiceOrderDetail : PageBase { public string InvoiceId { get { return (string)ViewState["InvoiceId"]; } set { ViewState["InvoiceId"] = value; } } public string Type { get { return (string)ViewState["Type"]; } set { ViewState["Type"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { InvoiceId = Request.QueryString["InvoiceId"]; Type = Request.QueryString["Type"]; if (string.IsNullOrEmpty(Type)) //用于取出Type参数的值(OA跳转) { Uri uri = new Uri(Request.UrlReferrer.ToString()); // 获取Type参数的值 Type = HttpUtility.ParseQueryString(uri.Query).Get("Type"); } Model.PHTGL_Invoice table = new Model.PHTGL_Invoice(); table.ProjectId = this.CurrUser.LoginProjectId; table.InvoiceId = InvoiceId; var invoiceModel = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(InvoiceId); var ContractModel = BLL.ContractService.GetContractById(invoiceModel.ContractId); if (invoiceModel != null) { txtProjectName.Text = ProjectService.GetProjectNameByProjectId(invoiceModel.ProjectId); txtContractNum.Text = ContractModel?.ContractNum; txtSellerName.Text = invoiceModel.SellerName; txtOrderInDate.SelectedDate = invoiceModel.OrderInDate; txtInvoiceDate.Text = invoiceModel.InvoiceDate; txtOrderCode.Text = invoiceModel.OrderCode; txtInvoiceNumber.Text = invoiceModel.InvoiceNumber; txtOrderOutDate.SelectedDate = invoiceModel.OrderOutDate; txtMaterialRequisitionUnit.Text = invoiceModel.MaterialRequisitionUnit; } BindGrid(); BindApproveData(); if (Type == "0") { Grid1.Title = "入库单列表"; PanelOrderIn.Hidden = false; } else if (Type == "1") { PanelOrderOut.Hidden = false; Grid1.Title = "出库单列表"; } if (invoiceModel.CreateUser == this.CurrUser.PersonId) //创建人 { TbCreate.Hidden = false; if (invoiceModel.State > PhtglInvoiceService.StateCreate) { Form_approve.Hidden = false; } } if (PHTGL_ApproveService.IsApprovingMan(InvoiceId, this.CurrUser.PersonId)) //判断当前人是否审批人 { TbApprove.Hidden = false; Form_approve.Hidden = false; } } } public void BindApproveData() { var approveModel = PHTGL_ApproveService.GetAllApproveData(InvoiceId, Type == "0" ? "Invoice_Input" : "Invoice_Output"); if (approveModel != null) { Grid2.DataSource = approveModel; Grid2.DataBind(); } } public void BindGrid() { var invoiceDetail = PhtglInvoicedetailService.GetPHTGL_InvoiceDetailByInvoiceId(InvoiceId); Grid1.DataSource = invoiceDetail; Grid1.DataBind(); txtSumUnitPrice.Text = invoiceDetail.Sum(p => p.UnitPrice).ToString(); txtSumTax.Text = invoiceDetail.Sum(p => p.Tax).ToString(); txtSumAmount.Text = invoiceDetail.Sum(p => p.Amount).ToString(); txtAmountInWords.Text = Funs.NumericCapitalization(invoiceDetail.Sum(p => p.Amount) ?? 0); } protected void Grid1_OnRowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "delete") { PhtglInvoicedetailService.DeletePHTGL_InvoiceDetailById(e.RowID); BindGrid(); } } protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { if (Type == "1") { Grid1.FindColumn("btnDelete").Hidden = true; } } protected string GetTaxRate(object eval) { string result = ""; if (eval != null) { decimal taxRate = Convert.ToDecimal(eval); string percentage = string.Format("{0:P0}", taxRate); result = percentage.Replace("%", ""); } return result; } protected string GetNoTaxPrice(object amount, object tax) { //获取amount-tax 的值 string result = ""; if (amount != null && tax != null) { decimal amountValue = Convert.ToDecimal(amount); decimal taxValue = Convert.ToDecimal(tax); decimal noTaxPrice = amountValue - taxValue; result = noTaxPrice.ToString(); } return result; } protected void btnSave_Click(object sender, EventArgs e) { var invoiceModel = BLL.PhtglInvoiceService.GetPHTGL_InvoiceById(InvoiceId); invoiceModel.OrderInDate = txtOrderInDate.SelectedDate; invoiceModel.OrderOutDate = txtOrderOutDate.SelectedDate; invoiceModel.OrderCode = txtOrderCode.Text; invoiceModel.MaterialRequisitionUnit = txtMaterialRequisitionUnit.Text; BLL.PhtglInvoiceService.UpdatePHTGL_Invoice(invoiceModel); ShowNotify("保存成功!", MessageBoxIcon.Success); } protected void btnEditProcess_Click(object sender, EventArgs e) { if (Type == "0") { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InvoiceOrderReviewEdit.aspx?InvoiceId={0}&&Type={1}", InvoiceId, "0", "编辑 - "))); } else if (Type == "1") { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InvoiceOrderReviewEdit.aspx?InvoiceId={0}&&Type={1}", InvoiceId, "1", "编辑 - "))); } } protected void btnAgree_Click(object sender, EventArgs e) { PhtglInvoiceService.Approve(InvoiceId, int.Parse(Type), this.CurrUser.PersonId, true, txtApproveIdea.Text); ShowNotify("审批成功!", MessageBoxIcon.Success); if (!string.IsNullOrEmpty(Request.Params["PHTUrl"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); PageContext.RegisterStartupScript("closeActiveTab();"); } else { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } } protected void btnDisgree_Click(object sender, EventArgs e) { PhtglInvoiceService.Approve(InvoiceId, int.Parse(Type), this.CurrUser.PersonId, false, txtApproveIdea.Text); ShowNotify("审批成功!", MessageBoxIcon.Success); if (!string.IsNullOrEmpty(Request.Params["PHTUrl"])) { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); PageContext.RegisterStartupScript("closeActiveTab();"); } else { PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } } } }