示例#1
0
        private void AddTaskResource(string resCode, string resName, decimal price, decimal quanity, string taskId, List <string> errors)
        {
            Resource byId = Resource.GetById(Resource.GetResourceId(resCode));

            if (byId != null)
            {
                TaskResource taskResource = new TaskResource {
                    Resource  = byId,
                    InputUser = this.inputUser,
                    InputDate = new DateTime?(DateTime.Now),
                    Price     = price,
                    Quantity  = quanity
                };
                BudTask.AddResource(taskId, taskResource);
            }
            else
            {
                string item = "资源编号:" + resCode + " 在资源库不存在,已添加到资源映射!";
                if (!errors.Contains(item))
                {
                    errors.Add(item);
                    ResourceTemp.Add(ResourceTemp.Create(string.Empty, taskId, resCode, resName, new decimal?(price), new decimal?(quanity), new decimal?(price * quanity), this.prjId));
                }
            }
        }
示例#2
0
        public BudTask GetBudTask(string taskId)
        {
            BudModifyService service = new BudModifyService();
            BudModifyTask    byId    = this.GetById(taskId);
            BudTask          task2   = new BudTask();

            if (byId != null)
            {
                BudModify modify = service.GetById(byId.ModifyId);
                task2.TaskId             = byId.ModifyTaskId;
                task2.ParentId           = byId.TaskId;
                task2.OrderNumber        = byId.OrderNumber;
                task2.Version            = 1;
                task2.PrjId              = modify.PrjId;
                task2.TaskCode           = byId.ModifyTaskCode;
                task2.TaskName           = byId.ModifyTaskContent;
                task2.Unit               = byId.Unit;
                task2.Quantity           = new decimal?(byId.Quantity);
                task2.UnitPrice          = new decimal?(byId.UnitPrice);
                task2.Total              = new decimal?(byId.Total);
                task2.StartDate          = byId.StartDate;
                task2.EndDate            = byId.EndDate;
                task2.ConstructionPeriod = byId.ConstructionPeriod;
                task2.Note               = byId.Note;
                task2.InputDate          = DateTime.Now;
                task2.InputUser          = modify.InputUser;
                task2.TaskType           = string.Empty;
                task2.IsValid            = true;
            }
            //List<BudModifyTask> inModifyTask = this.GetInModifyTask(taskId);
            DataSet dsTask = this.GetInModifyTask2(taskId);

            //if (inModifyTask != null)
            if (dsTask.Tables[0].Rows.Count > 0)
            {
                //foreach (BudModifyTask task3 in inModifyTask)
                foreach (DataRow dr in dsTask.Tables[0].Rows)
                {
                    decimal?quantity = task2.Quantity;
                    decimal num3     = Convert.ToDecimal(dr["Quantity"]); //task3.Quantity;
                    task2.Quantity = quantity.HasValue ? new decimal?(quantity.GetValueOrDefault() + num3) : null;
                    decimal?total = task2.Total;
                    decimal num4  = Convert.ToDecimal(dr["Total"]); //task3.Total;
                    task2.Total = total.HasValue ? new decimal?(total.GetValueOrDefault() + num4) : null;
                }
                decimal num  = 0M;
                decimal num2 = 0M;
                if (task2.Total.HasValue)
                {
                    num2 = 0M;
                }
                if (task2.Quantity.HasValue && (task2.Quantity.Value != 0M))
                {
                    num = num2 / task2.Quantity.Value;
                }
                task2.UnitPrice = new decimal?(num);
            }
            return(task2);
        }
示例#3
0
    protected void btnDel_Click(object sender, System.EventArgs e)
    {
        CheckBox checkBox = this.gvBudget.HeaderRow.Cells[0].FindControl("cbAllBox") as CheckBox;

        if (checkBox != null && checkBox.Checked)
        {
            BudTemplateItem.Delete(this.tvBudget.SelectedValue);
            this.strJS.Append(string.Concat(new string[]
            {
                "location='BudTemplateList.aspx?tempId=",
                this.tvBudget.SelectedValue,
                "&tempType=",
                this.ddlType.SelectedValue,
                "';"
            }));
            base.RegisterScript(this.strJS.ToString());
            return;
        }
        System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>();
        if (this.hfldCheckedIds.Value.Contains("["))
        {
            list = JsonHelper.GetListFromJson(this.hfldCheckedIds.Value);
        }
        else
        {
            list.Add(this.hfldCheckedIds.Value);
        }
        bool flag = false;

        System.Collections.Generic.List <string> orderNumberById = BudTemplateItem.GetOrderNumberById(list);
        if (orderNumberById.Count > 1)
        {
            flag = BudTask.IsStructured(orderNumberById);
        }
        try
        {
            if (flag)
            {
                list.Reverse();
            }
            BudTemplateItem.Delete(list);
            this.strJS.Append("alert('系统提示:\\n删除成功!');");
            this.strJS.Append(string.Concat(new string[]
            {
                "location='BudTemplateList.aspx?tempId=",
                this.tvBudget.SelectedValue,
                "&tempType=",
                this.ddlType.SelectedValue,
                "';"
            }));
        }
        catch
        {
            this.strJS.Append("alert('系统提示:\\n请先删除子项!')");
        }
        base.RegisterScript(this.strJS.ToString());
    }
示例#4
0
    private string GetTaskCode(string taskId)
    {
        BudTask byId = this.tSer.GetById(taskId);

        if (byId != null)
        {
            return(byId.TaskCode);
        }
        return(string.Empty);
    }
示例#5
0
    private void DataBindResource()
    {
        string text = base.Request["prjId"];

        if (!string.IsNullOrEmpty(text))
        {
            DataTable taskInfo = BudTask.GetTaskInfo(text, this.hfldIsWBSRelevance.Value, string.Empty, string.Empty, string.Empty);
            this.gvBudget.DataSource = taskInfo;
            this.gvBudget.DataBind();
        }
    }
    protected void bindTarget(string contractId)
    {
        DataTable taskByContract = BudTask.GetTaskByContract(contractId);

        if (taskByContract != null && taskByContract.Rows.Count > 0)
        {
            this.lblTitlTarget.Text   = "控制指标";
            this.Repeater1.DataSource = taskByContract;
            this.Repeater1.DataBind();
        }
    }
示例#7
0
 protected void gvPurchaseplan_RowDataBound(object sender, GridViewRowEventArgs e)
 {
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
         string value = this.gvBudget.DataKeys[e.Row.RowIndex]["Id"].ToString();
         e.Row.Attributes["id"] = value;
         object obj = this.gvBudget.DataKeys[e.Row.RowIndex]["ResourceId"];
         e.Row.Attributes["resourceId"] = ((obj == null) ? string.Empty : obj.ToString());
         object obj2 = this.gvBudget.DataKeys[e.Row.RowIndex]["ResourceName"];
         e.Row.Attributes["resourceName"] = ((obj2 == null) ? string.Empty : obj2.ToString());
         BudTask budTask = this.gvBudget.DataKeys[e.Row.RowIndex]["BudTask"] as BudTask;
         e.Row.Attributes["taskId"] = ((budTask == null) ? string.Empty : budTask.Id);
     }
 }
示例#8
0
 public static void CoverVersion(string prjId)
 {
     using (pm2Entities entities = new pm2Entities())
     {
         List <string> ids = (from m in entities.Bud_Task
                              where m.PrjId == prjId
                              select m.TaskId).ToList <string>();
         new PayoutTarget().DelByTaskId(ids);
         foreach (string str in ids)
         {
             BudTask.DeleteReourceByTaskId(str);
             BudTask.Delete(str);
         }
     }
 }
示例#9
0
    public void BindData()
    {
        BudTaskChange model = BudTaskChange.GetModel(this.taskChangeId);

        if (model != null)
        {
            this.lblPrjName.Text     = model.PrjName;
            this.lblVersionCode.Text = model.VersionCode;
            this.lblUserCode.Text    = WebUtil.GetUserNames(model.InputUser);
            this.lblNote.Text        = model.Note;
            this.hfldPrjId.Value     = model.PrjId;
            DataTable taskInfo = BudTask.GetTaskInfo(model.PrjId, this.hfldIsWBSRelevance.Value, string.Empty, string.Empty, string.Empty);
            this.gvBudget.DataSource = taskInfo;
            this.gvBudget.DataBind();
        }
    }
示例#10
0
 public static void CoverVersionNew(string prjId, int version)
 {
     using (pm2Entities entities = new pm2Entities())
     {
         List <string> ids = (from m in entities.Bud_Task
                              where (m.PrjId == prjId) && (m.Version == version)
                              select m.TaskId).ToList <string>();
         new PayoutTarget().DelByTaskId(ids);
         foreach (string str in ids)
         {
             TaskResource.DelRes(prjId, version);
             ResourceTemp.DelByPrjId(prjId);
             BudTask.Delete(str);
         }
     }
 }
示例#11
0
 private void AddChildToTrvwBudget(TreeNode parentNode, IList <BudTask> budTaskList)
 {
     foreach (BudTask current in budTaskList)
     {
         TreeNode        treeNode       = new TreeNode(current.Name, current.Id);
         IList <BudTask> listByParentId = BudTask.GetListByParentId(current.Id);
         if (listByParentId.Count > 0)
         {
             this.AddChildToTrvwBudget(treeNode, listByParentId);
         }
         else
         {
             treeNode.ToolTip = treeNode.Text;
         }
         parentNode.ChildNodes.Add(treeNode);
     }
 }
示例#12
0
    protected void btnSaveTemplate_Click(object sender, System.EventArgs e)
    {
        bool flag = base.Request["saveAs"] != null;

        if (flag)
        {
            this.strJS.Append("alert('系统提示:\\n已保存为新模板,不能重复保存!');");
        }
        else
        {
            string text = (this.Session["taskIds"] == null) ? "" : this.Session["taskIds"].ToString();
            if (!string.IsNullOrEmpty(text))
            {
                System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>();
                if (text.Contains("["))
                {
                    list = JsonHelper.GetListFromJson(text);
                }
                else
                {
                    list.Add(text);
                }
                BudTask.GetOrderNumberById(list);
                this.hdtemplateName.Value.Trim();
                string empty = string.Empty;
                this.AddTemplate(ref empty);
                string inputUser = PageHelper.QueryUser(this, base.UserCode);
                BudTemplateItem.SaveTemplate(list, empty, "", inputUser);
                this.strJS.Append("alert('系统提示:\\n保存成功!');");
                this.strJS.Append(string.Concat(new string[]
                {
                    "location='SelectTemplate.aspx?type=",
                    this.ddlType.SelectedValue,
                    "&template=",
                    empty,
                    "&saveAs=1';"
                }));
                this.ViewState["saveAs"] = true;
                this.btnSaveAs.Disabled  = true;
            }
        }
        base.RegisterScript(this.strJS.ToString());
    }
示例#13
0
    private void BindTrvwBudget()
    {
        this.trvwBudget.Nodes.Clear();
        string value = this.hdnProjectCode.Value;

        if (!string.IsNullOrEmpty(value))
        {
            IList <BudTask> firstLayerList = BudTask.GetFirstLayerList(value);
            foreach (BudTask current in firstLayerList)
            {
                TreeNode        treeNode       = new TreeNode(current.Name, current.Id);
                IList <BudTask> listByParentId = BudTask.GetListByParentId(treeNode.Value);
                if (listByParentId.Count > 0)
                {
                    this.AddChildToTrvwBudget(treeNode, listByParentId);
                }
                this.trvwBudget.Nodes.Add(treeNode);
            }
            this.trvwBudget.ExpandAll();
        }
    }
示例#14
0
文件: Resource.cs 项目: zxl881203/src
        public static decimal GetTypePrice(string taskId, string priceType, string resourceTypeId)
        {
            System.Func <ResPrice, bool> predicate = null;
            decimal num = 0M;

            if (BudTask.GetById(taskId) != null)
            {
                foreach (TaskResource resource in BudTask.GetResourcesByTaskId(taskId))
                {
                    System.Func <ResPrice, bool> func = null;
                    string  resourceId = resource.Resource.Id;
                    decimal quantity   = resource.Quantity;
                    decimal num3       = resource.Price;
                    if (GetFirstResourceType(GetById(resourceId).ResourceType.Id) == resourceTypeId)
                    {
                        if (func == null)
                        {
                            func = m => m.ResourceId == resourceId;
                        }
                        if (predicate == null)
                        {
                            predicate = m => m.PriceTypeId == priceType;
                        }
                        List <ResPrice> list2 = ResPrice.GetAll().Where <ResPrice>(func).Where <ResPrice>(predicate).ToList <ResPrice>();
                        if (list2.Count > 0)
                        {
                            foreach (ResPrice price in list2)
                            {
                                num += price.PriceValue * quantity;
                            }
                        }
                        else
                        {
                            num += num3 * quantity;
                        }
                    }
                }
            }
            return(num);
        }
示例#15
0
文件: Resource.cs 项目: zxl881203/src
 public static void GetResTypeTotal(string taskId, string priceType, DataTable dtrcj)
 {
     if (BudTask.GetById(taskId) != null)
     {
         foreach (TaskResource resource in BudTask.GetResourcesByTaskId(taskId))
         {
             string  resourceId        = resource.Resource.Id;
             decimal quantity          = resource.Quantity;
             decimal price             = resource.Price;
             string  firstResourceType = GetFirstResourceType(GetById(resourceId).ResourceType.Id);
             decimal num3 = 0M;
             if (string.IsNullOrEmpty(priceType))
             {
                 num3 = price * quantity;
             }
             else
             {
                 using (pm2Entities entities = new pm2Entities())
                 {
                     using (List <ResPrice> .Enumerator enumerator2 = (from m in entities.Res_Price
                                                                       where (m.ResourceId == resourceId) && (m.PriceTypeId == priceType)
                                                                       select new ResPrice {
                         PriceValue = m.PriceValue
                     }).ToList <ResPrice>().GetEnumerator())
                     {
                         while (enumerator2.MoveNext())
                         {
                             ResPrice current = enumerator2.Current;
                             num3 = price * quantity;
                         }
                     }
                 }
             }
             object obj2 = dtrcj.Rows[0][firstResourceType];
             obj2 = (obj2 == null) ? 0 : obj2;
             dtrcj.Rows[0][firstResourceType] = Convert.ToInt32(obj2) + num3;
         }
     }
 }
示例#16
0
 protected void btnBindResource_Click(object sender, System.EventArgs e)
 {
     if (this.hfldType.Value == "task")
     {
         if (!string.IsNullOrEmpty(this.hfldTaskId.Value))
         {
             ResourceTemp byId = ResourceTemp.GetById(this.hfldPurchaseChecked.Value.ToString());
             byId.BudTask = BudTask.GetById(this.hfldTaskId.Value.Trim());
             string inputUser = PageHelper.QueryUser(this, base.UserCode);
             ResourceTemp.Delete(byId, inputUser, this.hfldIsWBSRelevance.Value);
             this.BindGv();
             BudTaskService budTaskService = new BudTaskService();
             budTaskService.UpdateTotal2(this.hfldTaskId.Value.Trim());
         }
     }
     else
     {
         if (this.hfldType.Value == "resource" && !string.IsNullOrEmpty(this.hfldResourceIds.Value))
         {
             ResourceTemp byId2 = ResourceTemp.GetById(this.hfldPurchaseChecked.Value.ToString());
             byId2.ResourceId = this.hfldResourceIds.Value.Trim();
             byId2.BudTask    = BudTask.GetById(this.hfldTaskId.Value);
             string inputUser2 = PageHelper.QueryUser(this, base.UserCode);
             if (this.hfldIsWBSRelevance.Value == "1")
             {
                 byId2.BudTask = BudTask.GetById(this.hfldTaskId.Value);
             }
             ResourceTemp.Delete(byId2, inputUser2, this.hfldIsWBSRelevance.Value);
             this.BindGv();
             BudTaskService budTaskService2 = new BudTaskService();
             budTaskService2.UpdateTotal2(this.hfldTaskId.Value.Trim());
         }
     }
     this.hfldTaskId.Value            = "";
     this.hfldResourceIds.Value       = "";
     this.SelectResource1.ResourceId  = string.Empty;
     this.SelectResource1.ResTempType = string.Empty;
 }
示例#17
0
        public static void SaveTemplate(List <string> lsttaskIds, string templateId, string saveNodeId, string inputUser)
        {
            if (!string.IsNullOrEmpty(saveNodeId) && (((GetById(saveNodeId, templateId) == null) ? 0 : 1) == 0))
            {
                throw new Exception("你选择的根节点不存在,请刷新查看!");
            }
            bool          flag2           = true;
            List <string> orderNumberList = new List <string>();

            orderNumberList = BudTask.GetOrderNumberById(lsttaskIds);
            if (lsttaskIds.Count > 1)
            {
                flag2 = BudTask.IsStructured(orderNumberList);
            }
            List <BudTask> list2  = null;
            int            length = 0;
            string         start  = string.Empty;

            if (flag2)
            {
                list2  = BudTask.ChangeId(lsttaskIds);
                start  = GetNextOrderNumber(templateId, saveNodeId);
                length = orderNumberList.Min <string>((System.Func <string, int>)(m => m.Length));
            }
            int num2 = 0;

            foreach (string str2 in lsttaskIds)
            {
                BudTask task = null;
                if (flag2)
                {
                    task = list2[num2];
                }
                else
                {
                    task    = BudTask.GetById(str2);
                    task.Id = Guid.NewGuid().ToString();
                }
                string id       = task.Id;
                string parentId = string.Empty;
                if (flag2)
                {
                    parentId = task.ParentId;
                }
                else
                {
                    parentId = saveNodeId;
                }
                cn.justwin.Domain.BudTemplate byId = cn.justwin.Domain.BudTemplate.GetById(templateId);
                BudTemplateItem budTemplateItem    = Create(id, parentId, byId, task.Code, task.Name, task.Unit, task.Quantity, task.UnitPrice, task.Note, "");
                if (flag2)
                {
                    if (task.OrderNumber.Length == length)
                    {
                        start = GetNextOrderNumber(templateId, saveNodeId);
                        budTemplateItem.ParentId = (saveNodeId == "") ? null : saveNodeId;
                    }
                    budTemplateItem.OrderNumber = GetNewOrderNumber(start, task.OrderNumber, length);
                }
                Add(budTemplateItem);
                List <TaskResource> list3 = BudTask.GetResourcesByTaskId(str2).ToList <TaskResource>();
                if (list3.Count > 0)
                {
                    foreach (TaskResource resource in list3)
                    {
                        budTemplateItem.AddResource(resource.Resource, budTemplateItem.Quantity, resource.Price, inputUser, DateTime.Now, "add", 0M);
                        AddResource(budTemplateItem);
                    }
                }
                num2++;
            }
        }
示例#18
0
    protected void btnImport_Click(object sender, System.EventArgs e)
    {
        System.Collections.Generic.List <string> list = new System.Collections.Generic.List <string>();
        CheckBox checkBox = this.gvBudget.HeaderRow.Cells[0].FindControl("cbAllBox") as CheckBox;

        if (checkBox != null)
        {
            if (checkBox.Checked)
            {
                list = BudTemplateItem.GetTemplateItemIds(this.tvBudget.SelectedValue);
            }
            else
            {
                string value = this.hfldCheckedIds.Value;
                if (value.Contains('['))
                {
                    list = JsonHelper.GetListFromJson(value);
                }
                else
                {
                    list.Add(value);
                }
            }
        }
        string text = base.Request["prjId"];

        if (!string.IsNullOrEmpty(text))
        {
            string text2 = base.Request["taskId"];
            bool   flag  = true;
            if (string.IsNullOrEmpty(text2))
            {
                text2 = null;
                Project.CoverVersion(text);
            }
            else
            {
                flag = (BudTask.GetById(text2) != null);
            }
            bool flag2 = false;
            if (flag)
            {
                System.Collections.Generic.List <BudTemplateItem> list2 = new System.Collections.Generic.List <BudTemplateItem>();
                foreach (string current in list)
                {
                    BudTemplateItem byId = BudTemplateItem.GetById(current, this.tvBudget.SelectedValue);
                    list2.Add(byId);
                    if (byId != null)
                    {
                        flag2 = BudTask.CheckCode(byId.Code, text);
                        if (flag2)
                        {
                            break;
                        }
                    }
                }
                if (flag2)
                {
                    base.RegisterScript("alert('系统提示:\\n导入失败!\\n导入的模版中有节点的任务编码与已有的节点出现重复!');");
                    return;
                }
                list2 = (
                    from t in list2
                    orderby t.OrderNumber
                    select t).ToList <BudTemplateItem>();
                list.Clear();
                foreach (BudTemplateItem current2 in list2)
                {
                    list.Add(current2.Id.ToString());
                }
                bool   flag3 = BudTask.IsStructured(this.GetOrderNumbers(list));
                int    num   = 0;
                string start = string.Empty;
                System.Collections.Generic.List <BudTemplateItem> list3 = null;
                if (flag3)
                {
                    num   = this.GetOrderNumbers(list).Min((string m) => m.Length);
                    start = BudTask.GetOrderNumber(text, text2);
                    list3 = this.ChangeId(list, this.tvBudget.SelectedValue);
                }
                string inputUser = PageHelper.QueryUser(this, base.UserCode);
                int    num2      = 0;
                foreach (string current3 in list)
                {
                    BudTemplateItem budTemplateItem;
                    if (flag3)
                    {
                        budTemplateItem = list3[num2];
                    }
                    else
                    {
                        budTemplateItem    = BudTemplateItem.GetById(current3, this.tvBudget.SelectedValue);
                        budTemplateItem.Id = System.Guid.NewGuid().ToString();
                    }
                    string id           = budTemplateItem.Id;
                    string parentTaskId = string.Empty;
                    if (flag3)
                    {
                        parentTaskId = budTemplateItem.ParentId;
                    }
                    else
                    {
                        parentTaskId = text2;
                    }
                    BudTask budTask = BudTask.Create(id, parentTaskId, null, text, budTemplateItem.Code, budTemplateItem.Name, budTemplateItem.Unit, budTemplateItem.Quantity, null, null, true, budTemplateItem.Note, inputUser, System.DateTime.Now, null, null);
                    if (flag3)
                    {
                        if (budTemplateItem.OrderNumber.Length == num)
                        {
                            start            = BudTask.GetOrderNumber(text, text2);
                            budTask.ParentId = text2;
                        }
                        budTask.OrderNumber = this.GetNewOrderNumber(start, budTemplateItem.OrderNumber, num);
                    }
                    BudTask.Add(budTask, false);
                    System.Collections.Generic.List <TaskResource> list4 = BudTemplateItem.GetResourcesByTempItemId(current3).ToList <TaskResource>();
                    if (list4.Count > 0)
                    {
                        foreach (TaskResource current4 in list4)
                        {
                            budTask.AddResource(current4.Resource, current4.Quantity, current4.Price, 1m, "add");
                            BudTask.AddResource(budTask);
                        }
                    }
                    num2++;
                }
                string arg_3F6_0 = base.Request["year"];
                this.strJS.Append("top.ui.tabSuccess({ parentName: '_BudgetPlaitList' });");
            }
            else
            {
                this.strJS.Append("alert('系统提示:\\n导入失败!\\n导入的根节点已不存在!');");
            }
        }
        base.RegisterScript(this.strJS.ToString());
    }
示例#19
0
    private System.Collections.Generic.List <DataTable> GetData()
    {
        System.Collections.Generic.List <DataTable> list = new System.Collections.Generic.List <DataTable>();
        string text   = this.dropTaskType.SelectedValue;
        string value  = this.dropYear.SelectedValue;
        string value2 = this.dropMonth.SelectedValue;

        if (string.IsNullOrEmpty(text))
        {
            value  = string.Empty;
            value2 = string.Empty;
        }
        else
        {
            if (text == "Y")
            {
                value2 = string.Empty;
            }
        }
        if (string.IsNullOrEmpty(value))
        {
            text = string.Empty;
        }
        if (text == "M" && string.IsNullOrEmpty(value2))
        {
            text  = string.Empty;
            value = string.Empty;
        }
        DataTable allTable  = this.budTaskSer.GetAllTable(this.prjId);
        DataTable dataTable = new DataTable();

        dataTable.Columns.Add("序号");
        dataTable.Columns.Add("名称");
        dataTable.Columns.Add("编码");
        dataTable.Columns.Add("类型");
        dataTable.Columns.Add("单位");
        dataTable.Columns.Add("工程量");
        if (this.hfldIsWBSRelevance.Value == "1")
        {
            dataTable.Columns.Add("开始时间");
            dataTable.Columns.Add("结束时间");
        }
        dataTable.Columns.Add("综合单价");
        dataTable.Columns.Add("小计");
        dataTable.Columns.Add("备注");
        DataTable dataTable2 = new DataTable();

        dataTable2.Columns.Add("资源编号");
        dataTable2.Columns.Add("资源名称");
        dataTable2.Columns.Add("单位");
        dataTable2.Columns.Add("规格");
        dataTable2.Columns.Add("品牌");
        dataTable2.Columns.Add("型号");
        dataTable2.Columns.Add("技术参数");
        dataTable2.Columns.Add("单价");
        dataTable2.Columns.Add("数量");
        dataTable2.Columns.Add("损耗系数");
        dataTable2.Columns.Add("合计金额");
        dataTable2.Columns.Add("序号");
        for (int i = 0; i < allTable.Rows.Count; i++)
        {
            DataRow dataRow = dataTable.NewRow();
            dataRow["序号"]  = i + 1;
            dataRow["名称"]  = allTable.Rows[i]["TaskName"].ToString();
            dataRow["编码"]  = allTable.Rows[i]["TaskCode"].ToString();
            dataRow["类型"]  = allTable.Rows[i]["TypeName"].ToString();
            dataRow["单位"]  = allTable.Rows[i]["Unit"].ToString();
            dataRow["工程量"] = allTable.Rows[i]["Quantity"].ToString();
            if (this.hfldIsWBSRelevance.Value == "1")
            {
                dataRow["开始时间"] = allTable.Rows[i]["StartDate"].ToString();
                dataRow["结束时间"] = allTable.Rows[i]["EndDate"].ToString();
            }
            dataRow["综合单价"] = allTable.Rows[i]["UnitPrice"].ToString();
            dataRow["小计"]   = allTable.Rows[i]["Total2"].ToString();
            dataRow["备注"]   = allTable.Rows[i]["Note"].ToString();
            dataTable.Rows.Add(dataRow);
            if (allTable.Rows[i]["SubCount"].ToString() == "0")
            {
                string resourcesInfoByTaskId = BudTask.GetResourcesInfoByTaskId(allTable.Rows[i]["TaskId"].ToString());
                if (resourcesInfoByTaskId != string.Empty)
                {
                    string[] array = new string[0];
                    if (resourcesInfoByTaskId.Contains("⊙"))
                    {
                        array = resourcesInfoByTaskId.Split(new char[]
                        {
                            '⊙'
                        });
                    }
                    string[] array2 = array;
                    for (int j = 0; j < array2.Length; j++)
                    {
                        string text2 = array2[j];
                        if (text2 != string.Empty)
                        {
                            string[] array3 = text2.Split(new char[]
                            {
                                ','
                            });
                            DataRow dataRow2 = dataTable2.NewRow();
                            for (int k = 0; k < array3.Length; k++)
                            {
                                dataRow2[k] = array3[k];
                            }
                            dataRow2["序号"] = i + 1;
                            dataTable2.Rows.Add(dataRow2);
                        }
                    }
                }
            }
        }
        list.Add(dataTable);
        list.Add(dataTable2);
        return(list);
    }
示例#20
0
 protected void btnImport_Click(object sender, System.EventArgs e)
 {
     this.taskArray = this.hfldExcelColumns.Value.Split(new char[]
     {
         ','
     });
     this.resourceArray = this.hfldResource.Value.Split(new char[]
     {
         ','
     });
     this.hfldExcelColumns.Value = string.Empty;
     this.hfldResource.Value     = string.Empty;
     if (this.ViewState["ExcelName"] != null && !string.IsNullOrEmpty(this.ViewState["ExcelName"].ToString()))
     {
         bool flag = true;
         if (string.IsNullOrEmpty(this.taskId))
         {
             this.dtWBS = (this.ViewState["dtwbs"] as DataTable);
             if (this.dtWBS.Rows.Count > 0)
             {
                 Project.CoverVersion(this.prjId);
             }
         }
         else
         {
             flag = (BudTask.GetById(this.taskId) != null);
         }
         if (flag)
         {
             this.inputUser = PageHelper.QueryUser(this, base.UserCode);
             BudTaskSpecial budTaskSpecial = new BudTaskSpecial(this.taskId, this.prjId, this.inputUser, this.dtWBS);
             int            num            = budTaskSpecial.ConverBudTaskList(this.errors);
             string         text           = "成功";
             if (num == 0)
             {
                 text = "失败";
             }
             string text2 = string.Empty;
             if (this.errors.Count > 0)
             {
                 this.ViewState["errors"] = this.errors;
                 this.ShowErrors();
                 text2 = "\\n详见“警告信息”!";
             }
             else
             {
                 this.CloseSkip();
             }
             base.RegisterScript(string.Concat(new string[]
             {
                 "alert('系统提示:\\nExcel导入",
                 text,
                 "!",
                 text2,
                 "');"
             }));
             return;
         }
         base.RegisterScript("alert('系统提示:\\nExcel导入失败!\\n你选择要导入的上级节点已不存在!');");
     }
 }
示例#21
0
        public int ConverBudTaskList(List <string> errors)
        {
            int            num                = 0;
            List <BudTask> list               = new List <BudTask>();
            List <string>  codeList           = this.GetCodeList();
            List <int>     layerByCode        = this.GetLayerByCode(codeList);
            List <string>  orderNumberByLayer = this.GetOrderNumberByLayer(layerByCode);
            string         code               = string.Empty;
            string         name               = string.Empty;
            string         unit               = string.Empty;
            decimal        quantity           = 0M;
            string         note               = string.Empty;
            string         orderNumber        = BudTask.GetOrderNumber(this.prjId, this.taskId);
            string         str6               = string.Empty;

            for (int i = this.startIndex; i < this.taskTable.Rows.Count; i++)
            {
                DataRow row  = this.taskTable.Rows[i];
                object  obj2 = row[this.taskTable.Columns.Count - 1];
                code = (row[this.codeIndex] == null) ? "" : row[this.codeIndex].ToString();
                string item = string.Empty;
                name     = (row[this.nameIndex] == null) ? "" : row[this.nameIndex].ToString();
                quantity = 0M;
                DateTime?startDate = null;
                DateTime?endDate   = null;
                if ((obj2 == null) || string.IsNullOrEmpty(obj2.ToString()))
                {
                    bool flag = true;
                    if (this.quantityIndex != -1)
                    {
                        try
                        {
                            string str8 = row[this.quantityIndex].ToString();
                            if (!string.IsNullOrEmpty(str8))
                            {
                                quantity = decimal.Parse(str8);
                            }
                        }
                        catch
                        {
                            item = "在您的Excel中:编码" + code + ",存在非有效的数字,请修改!";
                            errors.Add(item);
                            flag = false;
                        }
                    }
                    unit = string.Empty;
                    if (this.unitIndex != -1)
                    {
                        unit = row[this.unitIndex].ToString();
                    }
                    if (this.noteIndex != -1)
                    {
                        note = row[this.noteIndex].ToString();
                    }
                    if (!flag)
                    {
                        item = "在您的Excel中:编码" + code + ",存在错误数据导致其子节点不能导入!";
                        errors.Add(item);
                        int    num4 = 0;
                        string str9 = orderNumberByLayer[i];
                        for (int j = i + 1; j < orderNumberByLayer.Count; j++)
                        {
                            if (orderNumberByLayer[j].StartsWith(str9))
                            {
                                num4++;
                            }
                        }
                        i += num4;
                    }
                    else
                    {
                        num++;
                        string  id           = Guid.NewGuid().ToString();
                        string  parentTaskId = (this.taskId == "") ? null : this.taskId;
                        decimal?unitPrice    = null;
                        decimal?total        = null;
                        BudTask task         = BudTask.Create(id, parentTaskId, null, this.prjId, code, name, unit, quantity, startDate, endDate, true, note, this.inputUser, DateTime.Now, unitPrice, total);
                        string  str12        = orderNumberByLayer[i].Substring(3);
                        if (string.IsNullOrEmpty(str12))
                        {
                            if (i > this.startIndex)
                            {
                                orderNumber = BudTask.GetOrderNumber(this.prjId, this.taskId);
                            }
                            task.OrderNumber = orderNumber;
                        }
                        else
                        {
                            task.OrderNumber = orderNumber + str12;
                        }
                        if (i > 0)
                        {
                            int count = list.Count;
                            if (count > 0)
                            {
                                if ((orderNumberByLayer[i].Length - str6.Length) == 3)
                                {
                                    task.ParentId = list[count - 1].Id;
                                }
                                else if ((orderNumberByLayer[i].Length - str6.Length) == 0)
                                {
                                    task.ParentId = list[count - 1].ParentId;
                                }
                                else
                                {
                                    int length = orderNumberByLayer[i].Length;
                                    if (length == 3)
                                    {
                                        task.ParentId = list[0].ParentId;
                                    }
                                    else if (length > 3)
                                    {
                                        int differOrderNumber = list[0].OrderNumber.Length - orderNumberByLayer[0].Length;
                                        int num7 = list.FindLastIndex(t => t.OrderNumber.Length == (length + differOrderNumber));
                                        task.ParentId = list[num7].ParentId;
                                    }
                                }
                            }
                        }
                        str6 = orderNumberByLayer[i];
                        list.Add(task);
                        BudTask.Add(task, false);
                    }
                }
                else
                {
                    decimal result = 0M;
                    object  obj3   = row[this.priceIndex];
                    if (obj3 != null)
                    {
                        decimal.TryParse(obj3.ToString(), out result);
                    }
                    obj3 = row[this.quantityIndex];
                    if (obj3 != null)
                    {
                        decimal.TryParse(obj3.ToString(), out quantity);
                    }
                    this.AddTaskResource(code, name, result, quantity, list[list.Count - 1].Id, errors);
                }
            }
            return(num);
        }
示例#22
0
    private void GetTable(int pageSize, int pageIndex)
    {
        DataTable budGetOutPut = EReport.GetBudGetOutPut(this.prjId, pageSize, pageIndex);

        budGetOutPut.Columns.Add("LossCoefficient", System.Type.GetType("System.Decimal"));
        budGetOutPut.Columns.Add("ResourcePrice", System.Type.GetType("System.Decimal"));
        budGetOutPut.Columns["LossCoefficient"].SetOrdinal(11);
        budGetOutPut.Columns["ResourcePrice"].SetOrdinal(12);
        DataTable dataTable = new DataTable();
        string    text      = string.Empty;

        foreach (DataRow dataRow in budGetOutPut.Rows)
        {
            text = text + "'" + dataRow["TaskId"].ToString() + "',";
        }
        if (text.Length >= 1)
        {
            text      = text.Remove(text.Length - 1);
            dataTable = BudTask.GetTaskRes(text);
            dataTable.Columns.Add(new DataColumn("OrderNumber", System.Type.GetType("System.String")));
            foreach (DataRow dataRow2 in budGetOutPut.Rows)
            {
                int num = 1;
                foreach (DataRow dataRow3 in dataTable.Rows)
                {
                    if (dataRow3["TaskId"].ToString() == dataRow2["TaskId"].ToString())
                    {
                        dataRow3["OrderNumber"] = dataRow2["OrderNumber"].ToString() + num.ToString();
                        num++;
                    }
                }
            }
            System.Collections.IEnumerator enumerator4 = dataTable.Rows.GetEnumerator();
            try
            {
                while (enumerator4.MoveNext())
                {
                    DataRow dataRow4 = (DataRow)enumerator4.Current;
                    DataRow dataRow5 = budGetOutPut.NewRow();
                    dataRow5["TaskCode"]           = string.Empty;
                    dataRow5["OrderNumber"]        = dataRow4["OrderNumber"];
                    dataRow5["TaskName"]           = string.Empty;
                    dataRow5["FeatureDescription"] = dataRow4["ResourceName"].ToString();
                    dataRow5["TypeName"]           = dataRow4["ResourceTypeName"].ToString();
                    dataRow5["Unit"]            = dataRow4["UnitName"].ToString();
                    dataRow5["Quantity"]        = dataRow4["ResourceQuantity"].ToString();
                    dataRow5["ConUnitPrice"]    = System.DBNull.Value;
                    dataRow5["ConTotal"]        = System.DBNull.Value;
                    dataRow5["LossCoefficient"] = dataRow4["LossCoefficient"];
                    dataRow5["ResourcePrice"]   = dataRow4["ResourcePrice"];
                    dataRow5["BudTotal"]        = dataRow4["ResTotal"];
                    dataRow5["BudUnitPrice"]    = System.DBNull.Value;
                    dataRow5["Profit"]          = System.DBNull.Value;
                    dataRow5["ProfitRate"]      = string.Empty;
                    budGetOutPut.Rows.Add(dataRow5);
                }
                goto IL_39C;
            }
            finally
            {
                System.IDisposable disposable4 = enumerator4 as System.IDisposable;
                if (disposable4 != null)
                {
                    disposable4.Dispose();
                }
            }
        }
        dataTable = null;
IL_39C:
        this.ViewState["dtReport"] = budGetOutPut;
    }
示例#23
0
 protected void btnImport_Click(object sender, System.EventArgs e)
 {
     this.taskArray = this.hfldExcelColumns.Value.Split(new char[]
     {
         ','
     });
     this.resourceArray = this.hfldResource.Value.Split(new char[]
     {
         ','
     });
     this.hfldExcelColumns.Value = string.Empty;
     this.hfldResource.Value     = string.Empty;
     if (this.ViewState["ExcelName"] != null && !string.IsNullOrEmpty(this.ViewState["ExcelName"].ToString()))
     {
         bool flag = true;
         if (string.IsNullOrEmpty(this.taskId))
         {
             this.dtWBS = (this.ViewState["dtwbs"] as DataTable);
             if (this.dtWBS.Rows.Count > 0)
             {
                 if (this.hfldIsWBSRelevance.Value == "1")
                 {
                     Project.CoverVersion(this.prjId);
                 }
                 else
                 {
                     Project.CoverVersionNew(this.prjId, this.version);
                 }
             }
         }
         else
         {
             flag = (BudTask.GetById(this.taskId) != null);
         }
         if (flag)
         {
             BudTaskServices budTaskServices = new BudTaskServices(this.taskId, this.prjId, this.version, this.dtWBS);
             bool            flag2           = false;
             System.Collections.Generic.IDictionary <string, int> relation = ExcelUtility.GetRelation(this.taskArray);
             int    num  = -1;
             int    num2 = -1;
             string str  = string.Empty;
             if (relation.Keys.Contains("TaskCode"))
             {
                 num2 = relation["TaskCode"];
             }
             if (relation.Keys.Contains("SerialNo"))
             {
                 num = relation["SerialNo"];
             }
             if (num != -1)
             {
                 str = this.dtWBS.Columns[num].ColumnName;
                 this.dtWBS.DefaultView.Sort = str + " DESC";
                 for (int i = 1; i < this.dtWBS.Rows.Count; i++)
                 {
                     if (this.dtWBS.Rows[i][num].ToString().Trim() == this.dtWBS.Rows[i - 1][num].ToString().Trim())
                     {
                         flag2 = true;
                         break;
                     }
                 }
             }
             else
             {
                 if (num2 != -1)
                 {
                     str = this.dtWBS.Columns[num2].ColumnName;
                     this.dtWBS.DefaultView.Sort = str + " DESC";
                     for (int j = 1; j < this.dtWBS.Rows.Count; j++)
                     {
                         if (this.dtWBS.Rows[j][num2].ToString().Trim() == this.dtWBS.Rows[j - 1][num2].ToString().Trim())
                         {
                             flag2 = true;
                             break;
                         }
                     }
                 }
             }
             if (flag2)
             {
                 base.RegisterScript("top.ui.alert('导入失败!\\n导入的Excel中有节点的任务编码出现重复,请修改!');");
                 return;
             }
             if (num == -1 && num2 != -1)
             {
                 foreach (DataRow dataRow in this.dtWBS.Rows)
                 {
                     string code = (dataRow[num2] == null) ? "" : dataRow[num2].ToString();
                     flag2 = BudTask.CheckCode(code, this.prjId);
                     if (flag2)
                     {
                         break;
                     }
                 }
             }
             if (flag2)
             {
                 base.RegisterScript("top.ui.alert('导入失败!\\n导入的Excel中有节点的任务编码与已有的节点出现重复,请修改!');");
                 base.RegisterScript("top.ui._BudgetPlaitList.location.href = top.ui._BudgetPlaitList.location.href;");
                 return;
             }
             this.inputUser = PageHelper.QueryUser(this, base.UserCode);
             int num3 = budTaskServices.ConverBudTaskList(this.taskArray, this.inputUser, this.errors, this.hfldIsWBSRelevance.Value);
             this.AddResource();
             string text = "成功";
             if (num3 == 0)
             {
                 text = "失败";
             }
             string text2 = string.Empty;
             if (this.errors.Count > 0)
             {
                 this.ViewState["errors"] = this.errors;
                 this.ShowErrors();
                 text2 = "\\n部分节点导入失败,详见“警告信息”!";
                 base.RegisterScript(string.Concat(new string[]
                 {
                     "top.ui.show('Excel导入",
                     text,
                     "!",
                     text2,
                     "');"
                 }));
                 return;
             }
             base.RegisterScript("top.ui._BudgetPlaitList.location.href = top.ui._BudgetPlaitList.location.href;");
             base.RegisterScript(string.Concat(new string[]
             {
                 "top.ui.show('Excel导入",
                 text,
                 "!",
                 text2,
                 "');"
             }));
             base.RegisterScript("top.ui.closeTab();");
             return;
         }
         else
         {
             base.RegisterScript("top.ui.alert('Excel导入失败!\\n你选择要导入的上级节点已不存在!');");
             base.RegisterScript("top.ui._BudgetPlaitList.location.href = top.ui._BudgetPlaitList.location.href;");
         }
     }
 }
示例#24
0
        public void AddTaskResource(string prjId)
        {
            IList <BudTask> byProject = this.tSer.GetByProject(prjId, 0x3e7);
            int             version   = 1;

            if (byProject != null)
            {
                version = byProject[0].Version.Value;
            }
            List <BudTaskResource> allRes = this.GetAllRes(prjId, version);
            List <BudTaskResource> list3  = this.GetTaskRes(allRes);

            if (list3 != null)
            {
                using (List <BudTaskResource> .Enumerator enumerator = list3.GetEnumerator())
                {
                    Func <BudTask, bool>         predicate = null;
                    Func <BudTaskResource, bool> func2     = null;
                    BudTaskResource taskRes;
                    while (enumerator.MoveNext())
                    {
                        taskRes = enumerator.Current;
                        if (predicate == null)
                        {
                            predicate = t => t.TaskId == taskRes.TaskId;
                        }
                        BudTask task = byProject.Where <BudTask>(predicate).FirstOrDefault <BudTask>();
                        if (task != null)
                        {
                            string mainTaskId = task.TaskId;
                            mainTaskId = mainTaskId.Substring(7, mainTaskId.Length - 7);
                            foreach (BudTask task2 in (from t in this.tSer
                                                       where t.TaskId.Contains(mainTaskId) && (t.TaskType.Trim() != "")
                                                       select t).ToList <BudTask>())
                            {
                                decimal num2 = 0M;
                                if (task2.Quantity.HasValue && (task.Quantity != 0M))
                                {
                                    num2 = task2.Quantity.Value / task.Quantity.Value;
                                }
                                if (func2 == null)
                                {
                                    func2 = tr => (tr.TaskId == taskRes.TaskId) && (tr.ResourceId == taskRes.ResourceId);
                                }
                                List <BudTaskResource> list5 = allRes.Where <BudTaskResource>(func2).ToList <BudTaskResource>();
                                decimal num3 = 0M;
                                decimal num4 = 0M;
                                decimal num5 = 0M;
                                foreach (BudTaskResource resource in list5)
                                {
                                    if ((resource.ResourceQuantity != 0M) && (resource.ResourcePrice != 0M))
                                    {
                                        num3 += resource.ResourceQuantity.Value * resource.ResourcePrice.Value;
                                        num4 += resource.ResourceQuantity.Value;
                                    }
                                }
                                BudTaskResource item = new BudTaskResource {
                                    TaskResourceId = Guid.NewGuid().ToString(),
                                    TaskId         = task2.TaskId,
                                    ResourceId     = taskRes.ResourceId
                                };
                                num4 *= num2;
                                item.ResourceQuantity = new decimal?(num4);
                                if (num4 != 0M)
                                {
                                    num5 = (num3 * num2) / num4;
                                }
                                item.ResourcePrice = new decimal?(num5);
                                item.PrjGuid       = taskRes.PrjGuid;
                                item.Versions      = taskRes.Versions;
                                item.InputUser     = taskRes.InputUser;
                                item.InputDate     = taskRes.InputDate;
                                base.Add(item);
                            }
                        }
                    }
                }
            }
        }
示例#25
0
        public static IList <BudTask> GetTask(string prjId, string priceType, string isWBSRelevance, string taskType, string year, string month)
        {
            List <BudTask> list = new List <BudTask>();

            return(BudTask.GetAll(priceType, prjId, isWBSRelevance, taskType, year, month).ToList <BudTask>());
        }
示例#26
0
 public virtual Dictionary <string, decimal> GetFactResource()
 {
     return(BudTask.GetResourceQuantity(this.projectCode));
 }
示例#27
0
 private void BindTaskByPrj(string prjId)
 {
     this.gvBudget.DataSource = BudTask.GetTaskInfo2(prjId);
     this.gvBudget.DataBind();
 }
示例#28
0
 private void BindTaskByContract(string contractId)
 {
     this.gvBudget.DataSource = BudTask.GetTaskByContract(contractId);
     this.gvBudget.DataBind();
 }
示例#29
0
    private void DisplayPhoto()
    {
        string selectedValue = this.trvwBudget.SelectedValue;

        if (!string.IsNullOrEmpty(selectedValue))
        {
            BudTask        byId = BudTask.GetById(selectedValue);
            IList <string> reportImgPathList = byId.GetReportImgPathList();
            using (IEnumerator <string> enumerator = reportImgPathList.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    string        current       = enumerator.Current;
                    string        path          = HttpContext.Current.Server.MapPath(current);
                    DirectoryInfo directoryInfo = new DirectoryInfo(path);
                    if (directoryInfo.Exists)
                    {
                        FileInfo[] files = directoryInfo.GetFiles("*.*");
                        FileInfo[] array = files;
                        for (int i = 0; i < array.Length; i++)
                        {
                            FileInfo fileInfo = array[i];
                            string   text     = current + "/" + fileInfo.ToString();
                            string   text2    = fileInfo.ToString().Substring(0, fileInfo.ToString().IndexOf('.'));
                            string   text3    = this.imaStr;
                            this.imaStr = string.Concat(new string[]
                            {
                                text3,
                                "<SPAN class=\"photo\"><a href=\"",
                                text,
                                "\" title=\"",
                                text2,
                                "\"><IMG src=\"",
                                text,
                                "\" width=\"100\" height=\"100\" alt=\"\" ></A></a></SPAN>"
                            });
                        }
                    }
                }
                return;
            }
        }
        string value = this.hdnProjectCode.Value;
        IList <ConstructReport>         auditedByPrj = ConstructReport.GetAuditedByPrj(value);
        Dictionary <string[], DateTime> dictionary   = new Dictionary <string[], DateTime>();

        foreach (ConstructReport current2 in auditedByPrj)
        {
            foreach (ConstructTask current3 in current2.ConstructTaskList)
            {
                string        text4          = BudgetManage_Construct_ReportPhoto.constructReport + "/" + current3.Id;
                string        path2          = HttpContext.Current.Server.MapPath(text4);
                DirectoryInfo directoryInfo2 = new DirectoryInfo(path2);
                if (directoryInfo2.Exists)
                {
                    FileInfo[] files2 = directoryInfo2.GetFiles("*.*");
                    FileInfo[] array2 = files2;
                    for (int j = 0; j < array2.Length; j++)
                    {
                        FileInfo fileInfo2    = array2[j];
                        string[] array3       = new string[2];
                        DateTime creationTime = fileInfo2.CreationTime;
                        string   text5        = text4 + "/" + fileInfo2.ToString();
                        string   text6        = fileInfo2.ToString().Substring(0, fileInfo2.ToString().IndexOf('.'));
                        array3[0] = text5;
                        array3[1] = text6;
                        dictionary.Add(array3, creationTime);
                    }
                }
            }
        }
        IOrderedEnumerable <KeyValuePair <string[], DateTime> > orderedEnumerable =
            from s in dictionary
            orderby s.Value descending
            select s;
        int num = 0;

        foreach (KeyValuePair <string[], DateTime> current4 in orderedEnumerable)
        {
            if (num >= 9)
            {
                break;
            }
            string[] key       = current4.Key;
            DateTime arg_2DD_0 = current4.Value;
            string   text7     = this.imaStr;
            this.imaStr = string.Concat(new string[]
            {
                text7,
                "<SPAN class=\"photo\"><a href=\"",
                key[0],
                "\" title=\"",
                key[1],
                "\"><IMG src=\"",
                key[0],
                "\" width=\"100\" height=\"100\" alt=\"\" ></A></a></SPAN>"
            });
            num++;
        }
    }
示例#30
0
        public void CommitEvent(object key)
        {
            string          primarykey   = key.ToString();
            ConPayoutModify payOutModify = (from r in this.payOutSer
                                            where r.ModifyID == primarykey
                                            select r).FirstOrDefault <ConPayoutModify>();
            BudModify budModify = (from r in this.modifySer
                                   where r.ModifyId == payOutModify.BudModifyId
                                   select r).FirstOrDefault <BudModify>();

            budModify.Flowstate = 1;
            this.modifySer.Update(budModify);
            using (List <BudModifyTask> .Enumerator enumerator = (from p in this.budModifyTaskSer
                                                                  where p.ModifyId == budModify.ModifyId
                                                                  select p).ToList <BudModifyTask>().GetEnumerator())
            {
                BudModifyTask task;
                while (enumerator.MoveNext())
                {
                    task = enumerator.Current;
                    BudTask item = (from p in this.budTaskSer
                                    where p.TaskId == task.TaskId
                                    select p).FirstOrDefault <BudTask>();
                    if ((item != null) && (budModify.Flowstate == 1))
                    {
                        if (task.ModifyType == 0)
                        {
                            item.IsValid = true;
                            this.budTaskSer.Update(item);
                            this.budModifyTaskSer.UpdateTotal2(task.ModifyTaskId);
                        }
                        if (item.ModifyId != task.ModifyId)
                        {
                            item.ModifyId = task.ModifyId;
                            item.Total2  += task.Total2;
                            decimal?quantity = item.Quantity;
                            decimal num      = task.Quantity;
                            item.Quantity = quantity.HasValue ? new decimal?(quantity.GetValueOrDefault() + num) : null;
                            if (item.Quantity != 0M)
                            {
                                item.UnitPrice = item.Total2 / item.Quantity;
                            }
                            this.budTaskSer.Update(item);
                            this.budModifyTaskSer.UpdateTotal2(task.ModifyTaskId);
                        }
                    }
                }
            }
            string cmdText = string.Format(" SELECT * FROM Con_Modify_Stock  where ModifyId='{0}' ", primarykey);

            if (SqlHelper.ExecuteQuery(CommandType.Text, cmdText, null).Rows.Count != 0)
            {
                string    str2   = string.Format("SELECT ModifyStock.*FROM Con_Modify_Stock ModifyStock\r\n                                            INNER JOIN Sm_Purchase_Stock purchaseStock ON ModifyStock.purchaseId=purchaseStock.psid\r\n                                            WHERE ModifyId='{0}'", primarykey);
                DataTable table2 = SqlHelper.ExecuteQuery(CommandType.Text, str2, null);
                string    str3   = string.Format("SELECT purchaseStock.* FROM Sm_Purchase_Stock purchaseStock \r\n                                                  LEFT JOIN (SELECT *FROM Con_Modify_Stock  where ModifyId='{0}') ModifyStock\r\n                                                  ON purchaseStock.psid=ModifyStock.purchaseId\r\n                                                  WHERE purchaseStock.pscode in (SELECT DISTINCT Pscode FROM Con_Modify_Stock WHERE ModifyId='{0}')\r\n                                                  AND ModifyStockId IS NULL", primarykey);
                DataTable table3 = SqlHelper.ExecuteQuery(CommandType.Text, str3, null);
                string    str4   = string.Format("SELECT ModifyStock.* FROM Con_Modify_Stock ModifyStock\r\n                                               LEFT JOIN Sm_Purchase_Stock purchaseStock ON ModifyStock.purchaseId=purchaseStock.psid\r\n                                               WHERE ModifyId='{0}'AND psid IS NULL", primarykey);
                DataTable table4 = SqlHelper.ExecuteQuery(CommandType.Text, str4, null);
                using (SqlConnection connection = new SqlConnection(SqlHelper.ConnectionString))
                {
                    connection.Open();
                    SqlTransaction trans = connection.BeginTransaction();
                    foreach (DataRow row in table2.Rows)
                    {
                        PurchaseStockModel model = new PurchaseStockModel {
                            psid   = row["PurchaseId"].ToString(),
                            sprice = DBHelper.GetDecimal(row["Sprice"]),
                            number = DBHelper.GetDecimal(row["Quantity"]),
                            corp   = DBHelper.GetString(row["Corp"])
                        };
                        if (row["ArrivalDate"] != null)
                        {
                            model.ArrivalDate = row["ArrivalDate"].ToString();
                        }
                        else
                        {
                            model.ArrivalDate = null;
                        }
                        model.pscode = row["Pscode"].ToString();
                        model.scode  = row["Scode"].ToString();
                        this.purchaseSotck.Update(trans, model);
                    }
                    foreach (DataRow row2 in table3.Rows)
                    {
                        this.purchaseSotck.Delete(trans, row2["psid"].ToString());
                    }
                    foreach (DataRow row3 in table4.Rows)
                    {
                        PurchaseStockModel model2 = new PurchaseStockModel {
                            psid   = row3["PurchaseId"].ToString(),
                            sprice = DBHelper.GetDecimal(row3["Sprice"]),
                            number = DBHelper.GetDecimal(row3["Quantity"]),
                            corp   = DBHelper.GetString(row3["Corp"])
                        };
                        if (row3["ArrivalDate"] != null)
                        {
                            model2.ArrivalDate = row3["ArrivalDate"].ToString();
                        }
                        else
                        {
                            model2.ArrivalDate = null;
                        }
                        model2.pscode = row3["Pscode"].ToString();
                        model2.scode  = row3["Scode"].ToString();
                        this.purchaseSotck.Add(trans, model2);
                    }
                    trans.Commit();
                    return;
                }
            }
            string    str5   = string.Format("\r\n\t\t\t\t\t\t\t\t\tSELECT PCode FROM Sm_Purchase purchase\r\n\t\t\t\t\t\t\t\t\tINNER JOIN Con_Payout_Modify payoutModify ON purchase.Contract=payoutModify.ContractId\r\n\t\t\t\t\t\t\t\t\tWHERE ModifyId='{0}' AND purchase.FlowState=1", primarykey);
            DataTable table5 = SqlHelper.ExecuteQuery(CommandType.Text, str5, null);

            if (table5.Rows.Count > 0)
            {
                using (SqlConnection connection2 = new SqlConnection(SqlHelper.ConnectionString))
                {
                    connection2.Open();
                    SqlTransaction transaction2 = connection2.BeginTransaction();
                    foreach (DataRow row4 in table5.Rows)
                    {
                        this.purchaseSotck.DeleteByPscode(transaction2, row4["PCode"].ToString());
                    }
                    transaction2.Commit();
                }
            }
        }