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("系统提示", "保存失败!");
     }
 }
Exemple #2
0
    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("系统提示", "删除失败!");
     }
 }
Exemple #6
0
 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);
 }
Exemple #7
0
 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 == "&nbsp;")
             {
                 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);
         }
     }
 }