222 lines
7.9 KiB
Plaintext
222 lines
7.9 KiB
Plaintext
@model EnVisage.Models.ShowRollUpModel
|
|
@using EnVisage.Code
|
|
|
|
@{
|
|
ViewBag.Title = "Project Roll-Up ";
|
|
}
|
|
|
|
@section Scripts
|
|
{
|
|
<script type="text/javascript">
|
|
function switchActuals() {
|
|
var lockableElements = document.getElementsByClassName('act');
|
|
for (var i = 0; i < lockableElements.length; ++i) {
|
|
var item = lockableElements[i];
|
|
if ($(item).hasClass("hidden")) {
|
|
|
|
$(item).removeClass("hidden");
|
|
}
|
|
else {
|
|
$(item).addClass("hidden");
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
}
|
|
@section pagemenu
|
|
{
|
|
<ul class="nav navbar-nav navbar-right">
|
|
<li class="dropdown">
|
|
<a href="#" class="dropdown-toggle user-menu" data-toggle="dropdown">
|
|
<i class="fa fa-bars"></i><span>Page Options</span> <i class="fa fa-caret-down"></i>
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-menu-right" id="visibilitydropdown">
|
|
<li><a onclick="_printDoc();$(this).parent().parent().parent().removeClass('open');"><i class="dropdown-icon fa fa-print"></i> Print Page</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
}
|
|
|
|
|
|
<div id="rollUpBody">
|
|
@using (Html.BeginForm("Index", "ShowRollUp"))
|
|
{
|
|
@Html.AntiForgeryToken()
|
|
@Html.ValidationSummary(true)
|
|
|
|
<div class="panel form-horizontal">
|
|
<div class="panel-body">
|
|
<div class="row">
|
|
<div class="col-sm-3">
|
|
<label class="control-label">Scenario Group</label>
|
|
<div class="form-group no-margin-hr">
|
|
@Html.DropDownListFor(model => model.GroupId, Utils.GetScenarioGroup(), new { @class = "form-control disabled" })
|
|
@Html.ValidationMessageFor(model => model.GroupId)
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label class="control-label">Scenario Type</label>
|
|
<div class="form-group no-margin-hr">
|
|
@Html.DropDownListFor(model => model.SelectedScenarioType, EnVisage.Code.Utils.GetScenarioTypesPortfAndSched(), new { @class = "form-control disabled" })
|
|
@Html.ValidationMessageFor(model => model.SelectedScenarioType)
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label class="control-label">Show Actuals</label>
|
|
<div class="form-group no-margin-hr">
|
|
<input type="checkbox" data-class="switcher-info" checked="checked" onclick="switchActuals();">
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-3">
|
|
<label class="control-label"> </label>
|
|
<div class="form-group no-margin-hr">
|
|
<button type="submit" class="btn btn-primary">Filter</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<div class="table-light table-responsive very-big-table">
|
|
<table cellpadding="0" cellspacing="0" border="0" class="table table-striped table-bordered" id="RollUp">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
Project
|
|
</th>
|
|
<th>
|
|
Projected<br/>Revenue
|
|
</th>
|
|
<th>
|
|
Expected<br/>Gross Margin
|
|
</th>
|
|
<th>
|
|
Expected<br/>L&M Margin
|
|
</th>
|
|
<th>
|
|
Calculated<br/>Gross Margin
|
|
</th>
|
|
<th>
|
|
Calculated<br/>L&M Margin
|
|
</th>
|
|
<th>
|
|
Labor<br/>Split
|
|
</th>
|
|
<th>
|
|
Materials<br/>Split
|
|
</th>
|
|
|
|
<th>
|
|
Duration
|
|
</th>
|
|
|
|
<th>
|
|
Probability
|
|
</th>
|
|
<th>
|
|
Top Down<br/>Direct Costs
|
|
</th>
|
|
<th>
|
|
Buttom Up<br/>Direct Costs
|
|
</th>
|
|
<th>
|
|
Buttom Up<br/>Direct Costs (L&M)
|
|
</th>
|
|
<th>
|
|
Milistones
|
|
</th>
|
|
<th>
|
|
Top Down<br/>Revenue Shosts
|
|
</th>
|
|
<th>
|
|
Buttom Up<br/>Revenue (Total)
|
|
</th>
|
|
<th>
|
|
Buttom Up<br/>Revenue (L&M)
|
|
</th>
|
|
<th>
|
|
Cost Savings
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var item in Model.scenarioCalculationList)
|
|
{
|
|
<tr class='@(item.IsTotalRow ? "bold" : "")'>
|
|
<td>
|
|
@item.Name
|
|
</td>
|
|
<td>
|
|
$@item.ProjectedRevenue
|
|
</td>
|
|
<td>
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.ExpectedGrossMargin : item.ExpectedGrossMargin / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td>
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.ExpectedGrossMargin_LM : item.ExpectedGrossMargin_LM / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td class="act">
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.CalculatedGrossMarginAct : item.CalculatedGrossMarginAct / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td class="act">
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.CalculatedGrossMarginLMAct : item.CalculatedGrossMarginLMAct / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td class="act hidden">
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.CalculatedGrossMargin : item.CalculatedGrossMargin / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td class="act hidden">
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.CalculatedGrossMarginLM : item.CalculatedGrossMarginLM / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td>
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.CGSplit : item.CGSplit / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td>
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.EFXSplit : item.EFXSplit / item.ScenariosCount).Value.ToString("0.##"))%
|
|
</td>
|
|
<td>
|
|
@item.Duration
|
|
</td>
|
|
<td>
|
|
@((!item.IsTotalRow || item.ScenariosCount == 0 ? item.Probability : item.Probability / item.ScenariosCount).ToString("0.##"))%
|
|
</td>
|
|
<td>
|
|
$@item.TDDirectCosts
|
|
</td>
|
|
<td class="act hidden">
|
|
$@item.BUDirectCosts
|
|
</td>
|
|
<td class="act hidden">
|
|
$@item.BUDirectCosts_LM
|
|
</td>
|
|
<td class="act">
|
|
$@item.Actuals_BUDirectCosts
|
|
</td>
|
|
<td class="act">
|
|
$@item.Actuals_BUDirectCosts_LM
|
|
</td>
|
|
|
|
<td>
|
|
@item.Shots
|
|
</td>
|
|
<td>
|
|
$@item.TDRevenueShot
|
|
</td>
|
|
<td>
|
|
$@item.BURevenueShot
|
|
</td>
|
|
<td>
|
|
$@item.BURevenueShot_LM
|
|
</td>
|
|
<td>
|
|
$@item.CostSavings
|
|
</td>
|
|
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
</div>
|