Client only
This commit is contained in:
267
ReportingServices.Client/Shared/DailyReport.razor
Normal file
267
ReportingServices.Client/Shared/DailyReport.razor
Normal file
@ -0,0 +1,267 @@
|
||||
@using ReportingServices.Shared.ViewModels.ProductionReport;
|
||||
|
||||
@if (YieldStatistics is null)
|
||||
{
|
||||
<MudProgressCircular Color="Color.Default" Indeterminate="true" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table table-bordered">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" rowspan="2" class="text-center align-middle">SI Operations</th>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
<th scope="col" class="text-center">@YieldStatistics.StartDate.AddDays(i).ToString("MM/dd/yyyy")</th>
|
||||
}
|
||||
<th scope="col" rowspan="2" class="text-center align-middle">Weekly Total</th>
|
||||
<th scope="col" rowspan="2" class="text-center align-middle">QTD Total</th>
|
||||
<th scope="col" rowspan="2" class="text-center align-middle">Comment</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col" class="text-center">Monday</th>
|
||||
<th scope="col" class="text-center">Tuesday</th>
|
||||
<th scope="col" class="text-center">Wednesday</th>
|
||||
<th scope="col" class="text-center">Thursday</th>
|
||||
<th scope="col" class="text-center">Friday</th>
|
||||
<th scope="col" class="text-center">Saturday</th>
|
||||
<th scope="col" class="text-center">Sunday</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td scope="row">Commited Target to meet Shipment Requirements</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:##,###}", YieldStatistics.DailyPlanWafers * 7)</td>
|
||||
<td></td>
|
||||
<td>Number updated quarterly</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td scope="row">Actual Reactor Out</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int reactorMoves = YieldStatistics.OutsByDay[i].TotalWafers;
|
||||
|
||||
<td class="text-center">@reactorMoves</td>
|
||||
|
||||
totalWafersOut += reactorMoves;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@totalWafersOut</td>
|
||||
<td class="text-center">@string.Format("{0:###,###}", YieldStatistics.QTDOutsAndScrap.Outs)</td>
|
||||
<td>Before Scrap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td scope="row" id="expandYield">
|
||||
Actual Yielded Wafers Out
|
||||
<button class="btn btn-default" onclick="expandYield()">
|
||||
<i class="fa-solid fa-plus-circle" id="yieldIcon"></i>
|
||||
</button>
|
||||
</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int yieldedOuts = YieldStatistics.OutsByDay[i].TotalWafers - YieldStatistics.ScrapByDay[i].TOT_REJ_WFRS -
|
||||
YieldStatistics.ScrapByDay[i].TW_PROD;
|
||||
|
||||
<td class="text-center">@yieldedOuts</td>
|
||||
|
||||
totalYieldedWafersOut += yieldedOuts;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@totalYieldedWafersOut</td>
|
||||
<td class="text-center">@string.Format("{0:###,###}", YieldStatistics.QTDOutsAndScrap.Outs -
|
||||
YieldStatistics.QTDOutsAndScrap.CustomerScrap - YieldStatistics.QTDOutsAndScrap.ManufacturingScrap -
|
||||
YieldStatistics.QTDOutsAndScrap.ProductionScrap)</td>
|
||||
<td>After Scrap</td>
|
||||
</tr>
|
||||
<tr class="yield hidden">
|
||||
@{
|
||||
int index = NumberOfDaysInWeek - 1;
|
||||
int modifiedYieldedOuts = 0;
|
||||
if (YieldStatistics.IsCurrentWeek)
|
||||
modifiedYieldedOuts = totalYieldedWafersOut - (YieldStatistics.OutsByDay[index].TotalWafers -
|
||||
YieldStatistics.ScrapByDay[index].TOT_REJ_WFRS - YieldStatistics.ScrapByDay[index].TW_PROD);
|
||||
else
|
||||
modifiedYieldedOuts = totalYieldedWafersOut;
|
||||
|
||||
int averageYieldedOuts = YieldOutDays == 0 ? 0 : modifiedYieldedOuts / YieldOutDays;
|
||||
}
|
||||
<td scope="row" colspan="11" id="expandYield" class="text-center">Yielded Wafers Out Daily Average:
|
||||
@(averageYieldedOuts)</td>
|
||||
</tr>
|
||||
<tr class="yield hidden">
|
||||
<td scope="row">Customer Scrap</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int custScrap = YieldStatistics.ScrapByDay[i].TOT_REJ_CUST;
|
||||
|
||||
<td class="text-center">@custScrap</td>
|
||||
|
||||
totalCustomerScrap += custScrap;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@totalCustomerScrap</td>
|
||||
<td class="text-center">@string.Format("{0:###,###}", YieldStatistics.QTDOutsAndScrap.CustomerScrap)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="yield hidden">
|
||||
<td scope="row">Manufacturing Scrap</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int manuScrap = YieldStatistics.ScrapByDay[i].TOT_REJ_MANU;
|
||||
|
||||
<td class="text-center">@manuScrap</td>
|
||||
|
||||
totalManufacturingScrap += manuScrap;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@totalManufacturingScrap</td>
|
||||
<td class="text-center">@string.Format("{0:###,###}", YieldStatistics.QTDOutsAndScrap.ManufacturingScrap)
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="yield hidden">
|
||||
<td scope="row">Production Scrap</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int prodScrap = YieldStatistics.ScrapByDay[i].TW_PROD;
|
||||
|
||||
<td class="text-center">@prodScrap</td>
|
||||
|
||||
totalProdScrap += prodScrap;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@totalProdScrap</td>
|
||||
<td class="text-center">@string.Format("{0:###,###}", YieldStatistics.QTDOutsAndScrap.ProductionScrap)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="yield hidden">
|
||||
<td scope="row">Yield</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
float yield = ((float)YieldStatistics.OutsByDay[i].TotalWafers -
|
||||
(float)YieldStatistics.ScrapByDay[i].TOT_REJ_WFRS) / (float)YieldStatistics.OutsByDay[i].TotalWafers;
|
||||
|
||||
<td class="text-center">@(string.Format("{0:P2}", yield))</td>
|
||||
|
||||
totalYield += yield;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@(string.Format("{0:P2}", (float)(totalWafersOut - totalCustomerScrap -
|
||||
totalManufacturingScrap) / (float)totalWafersOut))</td>
|
||||
<td class="text-center">@string.Format("{0:P2}", (float)(YieldStatistics.QTDOutsAndScrap.Outs -
|
||||
YieldStatistics.QTDOutsAndScrap.ManufacturingScrap - YieldStatistics.QTDOutsAndScrap.CustomerScrap) /
|
||||
(float)YieldStatistics.QTDOutsAndScrap.Outs)</td>
|
||||
<td>After Scrap</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td scope="row">Delta to commit</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int dayDelta = YieldStatistics.OutsByDay[i].TotalWafers - YieldStatistics.ScrapByDay[i].TOT_REJ_WFRS - 4500;
|
||||
|
||||
if (dayDelta < 0)
|
||||
myClass = "table-danger text-danger";
|
||||
else
|
||||
myClass = "";
|
||||
|
||||
<td class="text-center @myClass">@dayDelta</td>
|
||||
|
||||
deltaToCommit += dayDelta;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@deltaToCommit</td>
|
||||
<td></td>
|
||||
<td>Difference to commitment</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td scope="row">Delta to the Plan</td>
|
||||
@for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (i < NumberOfDaysInWeek)
|
||||
{
|
||||
int dayDelta = YieldStatistics.OutsByDay[i].TotalWafers - YieldStatistics.ScrapByDay[i].TOT_REJ_WFRS - 4500;
|
||||
|
||||
if (dayDelta < 0)
|
||||
myClass = "table-danger text-danger";
|
||||
else
|
||||
myClass = "";
|
||||
|
||||
<td class="text-center @myClass">@dayDelta</td>
|
||||
|
||||
deltaToPlan += dayDelta;
|
||||
}
|
||||
else
|
||||
{
|
||||
<td></td>
|
||||
}
|
||||
}
|
||||
<td class="text-center">@deltaToPlan</td>
|
||||
<td></td>
|
||||
<td>Difference to target</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td scope="row">Wafers Needed to make QTR</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:#,###}", YieldStatistics.DailyPlanWafers)</td>
|
||||
<td class="text-center">@string.Format("{0:##,###}", YieldStatistics.DailyPlanWafers * 7)</td>
|
||||
<td></td>
|
||||
<td>Number updated weekly</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
Reference in New Issue
Block a user