protected void btnSaveData_Click(object sender, System.EventArgs e) { try { SASalaryBooksItem sASalaryBooksItem = new SASalaryBooksItem(); if (this.hfldType.Value.Trim() == "add") { sASalaryBooksItem = this.GetModel(null); this.saBooksItemService.Add(sASalaryBooksItem); } else { sASalaryBooksItem = this.saBooksItemService.GetById(this.hfldCheckedId.Value.Trim()); sASalaryBooksItem = this.GetModel(sASalaryBooksItem); this.saBooksItemService.Update(sASalaryBooksItem); } this.BindGV(); base.RegisterShow("系统提示", "保存成功!"); this.txtDefaultValue.Text = "0.000"; } catch { base.RegisterShow("系统提示", "保存失败!"); } }
private decimal GetTaxrateDeduct(string saItemCode, int level) { SASalaryItem saItem = ( from sis in this.saItemService where sis.Code == "Taxable" select sis).FirstOrDefault <SASalaryItem>(); SASalaryBooksItem sASalaryBooksItem = ( from sbi in this.saBooksItemService where sbi.BooksId == this.ddlSaBooks.SelectedValue && sbi.ItemId == saItem.Id select sbi).FirstOrDefault <SASalaryBooksItem>(); decimal taxrateDeduct; if (sASalaryBooksItem != null) { if (sASalaryBooksItem.IsFormula) { if (!string.IsNullOrEmpty(sASalaryBooksItem.Formula)) { string expression = this.RepalceFormula(sASalaryBooksItem.Formula, --level); decimal value = 0m; try { value = CalculatorHelper.Calc(expression); } catch (System.Exception ex) { if (ex.Message == "计算错误") { value = 0m; } } taxrateDeduct = this.GetTaxrateDeduct(value, saItemCode); } else { taxrateDeduct = this.GetTaxrateDeduct(0m, saItemCode); } } else { decimal value2 = (!sASalaryBooksItem.DefaultValue.HasValue) ? 0m : sASalaryBooksItem.DefaultValue.Value; taxrateDeduct = this.GetTaxrateDeduct(value2, saItemCode); } } else { taxrateDeduct = this.GetTaxrateDeduct(0m, saItemCode); } return(taxrateDeduct); }
protected string ConvertFormula(string formula) { string[] array = formula.Split(new char[] { '[' }); System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>(); string[] array2 = array; for (int i = 0; i < array2.Length; i++) { string text = array2[i]; if (text.Contains(']')) { string item = text.Substring(0, text.IndexOf(']')); if (!list.Contains(item)) { list.Add(item); } } } System.Collections.Generic.List <SaBooksItem> list2 = new System.Collections.Generic.List <SaBooksItem>(); SASalaryItemService sASalaryItemService = new SASalaryItemService(); foreach (string booksItemId in list) { SASalaryBooksItem sASalaryBooksItem = ( from sbi in this.saBooksItemService where sbi.Id == booksItemId select sbi).FirstOrDefault <SASalaryBooksItem>(); if (sASalaryBooksItem != null) { SASalaryItem byId = sASalaryItemService.GetById(sASalaryBooksItem.ItemId); SaBooksItem saBooksItem = new SaBooksItem(); if (byId != null) { saBooksItem.Id = "[" + booksItemId + "]"; saBooksItem.ItemName = "[" + byId.Name + "]"; list2.Add(saBooksItem); } } } foreach (SaBooksItem current in list2) { formula = formula.Replace(current.Id, current.ItemName); } return(formula); }
protected SASalaryBooksItem GetModel(SASalaryBooksItem model) { if (model == null) { model = new SASalaryBooksItem(); model.Id = System.Guid.NewGuid().ToString(); if (( from sbi in this.saBooksItemService where sbi.BooksId == this.saBooksId select sbi).Count <SASalaryBooksItem>() == 0) { model.No = 1; } else { int num = this.saBooksItemService.Max((SASalaryBooksItem sbi) => sbi.No); model.No = num + 1; } } model.BooksId = this.saBooksId; model.ItemId = this.ddlSalaryItem.SelectedValue.Trim(); decimal value = 0m; if (!string.IsNullOrEmpty(this.txtDefaultValue.Text.Trim())) { value = System.Convert.ToDecimal(this.txtDefaultValue.Text.Trim()); } model.DefaultValue = new decimal?(value); if (!string.IsNullOrEmpty(this.hfldFormula.Value.Trim())) { model.IsFormula = this.chkIsFormula.Checked; } else { model.IsFormula = false; } model.IsShow = this.chkIsDisplay.Checked; if (model.IsFormula) { model.Formula = this.hfldFormula.Value; } else { model.Formula = null; } return(model); }
protected void btnDelete_Click(object sender, System.EventArgs e) { System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>(); if (this.hfldCheckedId.Value.Contains('[')) { list = JsonHelper.GetListFromJson(this.hfldCheckedId.Value); } else { list.Add(this.hfldCheckedId.Value); } try { System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); foreach (string id in list) { int num = ( from sbi in this.saBooksItemService where sbi.Formula.Contains(id) select sbi).Count <SASalaryBooksItem>(); SASalaryBooksItem byId = this.saBooksItemService.GetById(id); if (num > 0) { string saItemName = this.GetSaItemName(byId.ItemId); stringBuilder.Append("名称为" + saItemName + "的明细在其他明细的公式中正在使用,不能执行删除!"); } else { this.saBooksItemService.Delete(byId); } } if (!string.IsNullOrEmpty(stringBuilder.ToString())) { base.RegisterShow("系统提示", stringBuilder.ToString()); } else { base.RegisterShow("系统提示", "删除成功!"); } this.BindGV(); } catch { base.RegisterShow("系统提示", "删除失败!"); } }
private string RepalceFormula(string formula, int level) { if (level < 0) { throw new System.Exception("生成失败,请确认公式逻辑是否正确或者计算额度是否过大!"); } if (!string.IsNullOrEmpty(formula)) { string[] array = formula.Split(new char[] { '[' }); System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>(); string[] array2 = array; for (int i = 0; i < array2.Length; i++) { string text = array2[i]; if (text.Contains(']')) { string item = text.Substring(0, text.IndexOf(']')); if (!list.Contains(item)) { list.Add(item); } } } foreach (string current in list) { SASalaryBooksItem byId = this.saBooksItemService.GetById(current); if (byId.IsFormula) { if (string.IsNullOrEmpty(byId.Formula)) { formula = formula.Replace("[" + byId.Id + "]", "(0.000)"); } else { formula = formula.Replace("[" + byId.Id + "]", "(" + byId.Formula.ToString() + ")"); } } else { SASalaryItem byId2 = this.saItemService.GetById(byId.ItemId); if (byId2.Code == "TaxRate" || byId2.Code == "Deduct") { decimal taxrateDeduct = this.GetTaxrateDeduct(byId2.Code, level); formula = formula.Replace("[" + byId.Id + "]", taxrateDeduct.ToString("0.000")); } else { formula = formula.Replace("[" + byId.Id + "]", (!byId.DefaultValue.HasValue) ? "0.000" : byId.DefaultValue.Value.ToString("0.000")); } } } if (formula.Contains("[")) { formula = this.RepalceFormula(formula, --level); } } return(formula); }
protected void gvwSaMonth_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>(); for (int i = 6; i < e.Row.Cells.Count; i++) { string text = e.Row.Cells[i].Text; string[] array = text.Split(new char[] { '⊙' }); e.Row.Cells[i].Text = array[0]; list.Add(array[1]); } if (list.Count > 0) { this.ViewState["colItemId"] = list; } } if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[0].Attributes.Add("align", "right"); System.Collections.Generic.List <string> list2 = new System.Collections.Generic.List <string>(); list2 = (System.Collections.Generic.List <string>) this.ViewState["colItemId"]; e.Row.Attributes["id"] = this.gvwSaMonth.DataKeys[e.Row.RowIndex].Value.ToString(); e.Row.Cells[4].Attributes.Add("align", "center"); e.Row.Cells[5].Attributes.Add("align", "center"); string text2 = e.Row.Cells[4].Text; string text3 = e.Row.Cells[5].Text; for (int j = 6; j < e.Row.Cells.Count; j++) { string text4 = e.Row.Cells[j].Text; TextBox textBox = new TextBox(); HiddenField hiddenField = new HiddenField(); if (text4 == " ") { textBox.Text = "0.000"; hiddenField.Value = "0.000"; } else { textBox.Text = text4; hiddenField.Value = text4; } textBox.Width = 80; textBox.CssClass = "easyui-validatebox easyui-numberbox"; textBox.Style.Add("text-align", "right"); textBox.Attributes.Add("onblur", "computeValue(this);"); string itemId = list2[j - 6]; textBox.Attributes["itemId"] = itemId; hiddenField.ID = "hfld" + itemId; string booksId = this.ddlSaBooks.SelectedValue.Trim(); SASalaryBooksItem sASalaryBooksItem = ( from sbi in this.saBooksItemService where sbi.BooksId == booksId && sbi.ItemId == itemId select sbi).FirstOrDefault <SASalaryBooksItem>(); if (sASalaryBooksItem != null) { if (sASalaryBooksItem.IsFormula) { textBox.Attributes.Add("disabled", "disabled"); textBox.Attributes.Add("data-options", "min:-9999999999,max:9999999999999999,precision:3,groupSeparator:','"); } else { SASalaryItem byId = this.saItemService.GetById(itemId); if (byId != null) { if (byId.Code == "TaxRate" || byId.Code == "Deduct") { textBox.Attributes.Add("disabled", "disabled"); textBox.Attributes.Add("data-options", "min:-9999999999,max:9999999999999999,precision:3,groupSeparator:','"); } else { if (text3 == "是") { textBox.Attributes.Add("disabled", "disabled"); } if (text2 == "否") { textBox.Attributes.Add("disabled", "disabled"); } textBox.Attributes.Add("data-options", "min:0,max:9999999,precision:3,groupSeparator:','"); } } } } e.Row.Cells[j].Controls.Add(textBox); e.Row.Cells[j].Controls.Add(hiddenField); } } }