我的代码有什么问题 [英] What problem with my code

查看:98
本文介绍了我的代码有什么问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好日子,我的代码有问题

与EXPENSE上的结果相同,但是BALANCE很好..

控制器

Good Day to all, waht problem with my code
aslways same the result on EXPENSE but the BALANCE is fine..
Controller

public ActionResult Index(string DepName, int month = 1, int year = 2017)
      {
          //check if the user has an Account
          if (!RoleAuthentication.HasAccount(User.Identity.GetUserName()))
          {
              return RedirectToAction("Create", "Employee");
          }

          //check if the user is a requestor
         if (!RoleAuthentication.IsAuthenticated(User.Identity.GetUserName(), "6"))
          {
              return RedirectToAction("Index", "Budget");
          }

          //this is for authentication

         var reqContext = new RequestContext();
         var InvContext = new InventoryContext();
         var TRANSACTIONSISSUED = new List<TRANSACTIONISSUEDITEM>();
         var DepartmentContext = new DepartmentContext();
         var ListTrans = InvContext.Transactions();
         var Requests = InvContext.Transactions();
         var Employeedb = new EmployeeContext();
         var Employee = Employeedb.Find(User.Identity.GetUserName());
         var budgetDb = new BudgetContext();
         var DeptBudget = budgetDb.List().ToList();



         TRANSACTIONSISSUED = InvContext.IssuedItems();
         ViewBag.Message = "";
         var YearSelected = new List<string>();
         ViewBag.month = month;
         ViewBag.year = year;


         var List = (from b in BudgetDb.List()
                     join i in DepartmentDB.DistinctBudgetDeptList()
                         on b.DEPARTMENTID.Trim() equals i.DEPARTMENTID.Trim()
                         into a
                     from d in a.DefaultIfEmpty(new BudgetViewModel())
                     select new BudgetViewModel
                     {
                         MONTH = b.MONTH,
                         YEAR = b.YEAR,
                         DEPARTMENTID = b.DEPARTMENTID,
                         DEPARTMENTNAME = d.DEPARTMENTNAME,
                         DATETIME = b.DATETIME,
                         BUDGET = b.BUDGET

                     }).Where(c => c.YEAR == year && c.MONTH == month).ToList();






         var Expences = (from i in TRANSACTIONSISSUED
                         join r in ListTrans
                         on i.REQUESTNO.Trim() equals r.REQUESTNO.Trim()
                         where  r.DEPARTMENT.Trim() == Employee.DEPTCODE.Trim() &&
                         r.DATETIME.Month == month && r.DATETIME.Year == year
                         select new EXpenseTransactionViewModel
                         {
                             Month = r.DATETIME.Month,
                             Year = r.DATETIME.Year,
                             Cost = i.COST,
                             Qty = i.QTY
                         }).ToList();

              foreach(BudgetViewModel item in List)
              {
                  double Expense = Expences.Where(e => e.Month == item.MONTH && e.Year == item.YEAR).Sum(e => e.Cost * e.Qty);
                  item.BALANCE = item.BUDGET- Expense;
                  item.EXPENCES = Expense;
              }


         return View(List.ToList());
      }





查看



View

@model IEnumerable<WarehouseRtoRSystem.Models.BudgetViewModel>

@{
    ViewBag.Title = "Index";
}


<div class="w3-white">
    <div class="w3-container w3-teal header w3-text-white w3-card w3-border">
        <div class="w3-col m12 ">
            <br />
        </div>
        <h2 class="">Budget</h2>
        <p class="w3-blockquote"></p>
        <div class="w3-col m12 ">
            <br />
        </div>

    </div>
    <div class="w3-container">
        <div class="w3-col m12 ">
            <br />
        </div>
        <div class="w3-col m12 ">
            <br />
        </div>

        @using (Html.BeginForm())
        {
            @ViewBag.Message

            <label>Month </label>
            <select id="month" name="month">
                @{ string[] Months = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; }
                @for (var i = 0; i < 12; i++)
                {
                    var m = i + 1;
                    if (Convert.ToInt32(ViewBag.month) == m)
                    {
                        <option value=@m selected>@Months[i]</option>
                    }
                    else
                    {
                        <option value=@m>@Months[i]</option>
                    }
                }

            </select>

            <label>YEAR</label>

            <select id="year" name="year">
                @for (var c = 0; c < 1000; c++)
                {
                    var yr = c + 2017;
                    if (Convert.ToInt32(ViewBag.year) == yr)
                    {
                        <option value=@yr selected>
                            @yr
                        </option>
                    }
                    else
                    {
                        <option value=@yr> @yr</option>
                    }
                }
            </select>
            <input type="submit" value="Filter" class="btn btn-default" />
        }
        <br />
        <div class="w3-col m12 ">
            <span> @Html.ActionLink("Update Budget", "Create", "Budget", new { @class = "btn btn-success" })</span>
            <br />
            <br />
        </div>
        <div class="w3-col m12 table-responsive" style="height: 300px">
            <table class="table w3-white w3-striped w3-border">
                <tr class="w3-teal ">
                    <th>
                        DATE INSERTED
                    </th>
                    <th>
                        @Html.DisplayNameFor(model => model.DEPARTMENTID)
                    </th>
                    <th>
                        @Html.DisplayNameFor(model => model.DEPARTMENTNAME)
                    </th>
                    <th>
                        @Html.DisplayNameFor(model => model.BUDGET)
                    </th>

                    <th>EXPENCE</th>

                    <th>BALANCE</th>
                    
                </tr>

                @foreach (var item in Model)
                {
                    <tr>
                        <td>
                            @Html.DisplayFor(modelItem => item.DATETIME)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.DEPARTMENTID)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.DEPARTMENTNAME)
                        </td>
                        <td>
                            @Html.DisplayFor(modelItem => item.BUDGET)
                        </td>

                        <td>
                            @Html.DisplayFor(modelItem => item.EXPENCES)
                           
                        </td>
                        <td>
                             @Html.DisplayFor(modelItem => item.BALANCE)
                        </td>


                    </tr>
                }

            </table>
        </div>

        <div class="w3-col m12 ">
            @Html.ActionLink("Export to Excel", "GenerateExcels", "Budget", new { @class = "w3-btn btn-success" })

        </div>
        <div class="w3-col m12 ">
            <br />
        </div>
    </div>
   
        <div class="w3-col m12 ">
            <br />
        </div>
        <div class="w3-col m12 ">
            <br />
        </div>
        <div class="w3-col m12 ">
            <br />
        </div>
       <div class="w3-col m12 ">
            <br />
        </div>
        <div class="w3-col m12 ">
            <br />
        </div>
        <div class="w3-col m12 ">
            <br />
        </div>
   
</div>





我的尝试:



请参阅上面的代码,我的代码有什么问题看我上传的图片

谢谢

Imgur:互联网上最棒的图片 [ ^ ]

推荐答案





因为以下行相同的费用申请所有items.EXPENCES

item.EXPENCES =费用;

尝试计算以下循环中的费用

foreach(List中的BudgetViewModel项目)







谢谢
Hi,

Because of the below line same Expenses applying for all items.EXPENCES
item.EXPENCES = Expense;
Try to calculate Expense in the below loop
foreach(BudgetViewModel item in List)



Thanks


这篇关于我的代码有什么问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆