@model Fab2ApprovalSystem.Models.LTWorkRequest @{ ViewBag.Title = "Work Request - ReadOnly"; } @{ Layout = "_LotTravelerLayout.cshtml"; } @using (Html.BeginForm()) { @Html.AntiForgeryToken()

Fab2 Special Work Request Rev @Model.Revision

@if ((@Model.CurrentStep >= 0 && @Model.CurrentStep <= 2) || (@Model.CurrentStep == 3 && @Model.CloseDate == null)) { if (Model.RecordLockByName == null) {

Mode: [Readonly]

} else {

Mode: [Readonly] - Locked for Editing by @Model.RecordLockByName

} }
         @(Html.Kendo().DropDownList() .Name("Revisions") .BindTo(new SelectList(ViewBag.WorkReqRevisionList, "ID", "RevisionNumber")) .OptionLabel("Select") )                  
Section1: Work Request [SWR #:@Model.SWRNumber] [Title:@Model.Title] [Orginator:@Model.OriginatorName]
@Html.TextBoxFor(model => model.SWRNumber, new { id = "txtSWRNumber", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
@Html.TextBoxFor(model => model.Title, new { id = "txtTitle", @class = "k-textbox", Readonly = "Readonly", style = "width:100%" })
@Html.TextBoxFor(model => model.SubmitedDate, new { id = "txtSubmitDate", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
@Html.TextBoxFor(model => model.OriginatorName, new { id = "txtOriginatorName", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" }) @if (GlobalVars.IsAdminValueNotNull(Session)) { }
@(Html.Kendo().MultiSelectFor(m => m.DepartmentIDs) .HtmlAttributes(new { Readonly = "Readonly" }) .Name("DepartmentIDs") .BindTo(new SelectList(ViewBag.Departments, "DepartmentID", "DepartmentName")) .Value(ViewBag.Nothing) )
@(Html.Kendo().MultiSelect() .HtmlAttributes(new { Readonly = "Readonly" }) .Name("ModuleIDs") .BindTo(new SelectList(ViewBag.AffectedModules, "ModuleID", "ModuleName")) .Value(ViewBag.Nothing) )
@Html.TextBoxFor(model => model.ApprovalStatus, new { id = "txtStatus", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
@(Html.Kendo().DropDownList() .Name("LotType") .HtmlAttributes(new { Readonly = "Readonly" }) .DataTextField("Text") .DataValueField("Value") .BindTo(new List() { new SelectListItem() { Text = "Select", Value = "Select" }, new SelectListItem() { Text = "E", Value = "E" }, new SelectListItem() { Text = "P" , Value = "P" } } ) )
@Html.CheckBoxFor(model => model.IsITAR, new { @disabled = "disabled" })
@Html.TextBoxFor(model => model.PCRBNumber, new { id = "txtPCRBNumber", @class = "k-textbox", Readonly = "Readonly" })
@(Html.Kendo().DropDownList() .Name("EngLotStartRequired") .HtmlAttributes(new { Readonly = "Readonly" }) .DataTextField("Text") .DataValueField("Value") .BindTo(new List() { new SelectListItem() { Text = "Select", Value = "-1" }, new SelectListItem() { Text = "Yes", Value = "1" }, new SelectListItem() { Text = "No", Value = "0" } } ) .Value(Model.EngLotStartRequired.ToString()) )
@(Html.Kendo().DropDownList() .Name("LotTypeConversion") .HtmlAttributes(new { Readonly = "Readonly" }) .DataTextField("Text") .DataValueField("Value") .BindTo(new List() { new SelectListItem() { Text = "Select", Value = "-1" }, new SelectListItem() { Text = "Yes", Value = "1" }, new SelectListItem() { Text = "No", Value = "0" } } ) .Value(Model.LotTypeConversion.ToString()) )
@(Html.Kendo().DropDownList() .Name("QualLot") .HtmlAttributes(new { Readonly = "Readonly" }) .DataTextField("Text") .DataValueField("Value") .BindTo(new List() { new SelectListItem() { Text = "Select", Value = "-1" }, new SelectListItem() { Text = "Yes", Value = "1" }, new SelectListItem() { Text = "No", Value = "0" } } ) .Value(Model.QualLot.ToString()) )
@Html.TextAreaFor(model => model.PurposeOfRequest, 15, 100, new { id = "txtPurposeOfRequest", @class = "k-textbox", style = "font-size: 11px; width: 100%", Readonly = "Readonly" })
Section1-A: Engineering Wafer Lot Start
@(Html.Kendo().DateTimePickerFor(model => model.PlannedLotStartDate) .Name("txtPlannedLotStartDate") .HtmlAttributes(new { Readonly = "Readonly" }) )
@(Html.Kendo().DateTimePickerFor(model => model.PlannedScheduledCloseDate) .Name("txtPlannedScheduledCloseDate") .HtmlAttributes(new { Readonly = "Readonly" }) )
@Html.TextBoxFor(model => model.ChargeDepartment, new { id = "txtChargeDepartment", @class = "k-textbox", Readonly = "Readonly" })
@Html.TextBoxFor(model => model.AllocationToUse, new { id = "txtAllocationToUse", @class = "k-textbox", Readonly = "Readonly" })
@Html.TextBoxFor(model => model.PredictedCyleTime, new { id = "txtPredictedCyleTime", @class = "k-textbox", Readonly = "Readonly" })
@Html.TextBoxFor(model => model.TotalQty, new { id = "txtTotalQty", @class = "k-textbox" })
@(Html.Kendo().Grid() .Name("MaterialList") .Columns(columns => { columns.Bound(a => a.ID).Visible(false); columns.Bound(a => a.LTWorkRequestID).Visible(false); columns.Bound(a => a.WIPPartNumber).Width("50px"); columns.Bound(a => a.EPISiliconPartNumber).Width("50px"); columns.Bound(a => a.Quantity).Width("50px"); columns.Bound(a => a.Supplier).Width("50px"); columns.Bound(a => a.Source).Width("50px"); }) .Resizable(e => e.Columns(true)) .Sortable() .Scrollable() .HtmlAttributes(new { style = "width:100%; font-size: 10px" }) .DataSource(dataSource => dataSource .Ajax() .ServerOperation(false) .Events(e => e.Change("RefreshStartQtyData").RequestStart("CheckWIPPartNumber")) .Model(model => { model.Id(p => p.ID); model.Field(f => f.WIPPartNumber).DefaultValue(Model.WIPPartNumber).Editable(false); model.Field(f => f.EPISiliconPartNumber).DefaultValue(Model.DefaultEPISiliconPartNumber); model.Field(f => f.LTWorkRequestID).DefaultValue(Model.ID); }) .PageSize(40) .Read(read => read.Action("GetMaterialDetails", "LotTraveler", new { workRequestID = Model.ID })) ) .Resizable(resize => resize.Columns(true)) )
Lot Start Check List
OnHand/Existing Silicon @Html.EditorFor(model => model.SiliconOnHand) Reticle Set @Html.EditorFor(model => model.ReticleOnHand) SPN transfer @Html.EditorFor(model => model.SPNTransferOnHand)
Probe Card @Html.EditorFor(model => model.ProbeCardOnHand) Probe Recipe @Html.EditorFor(model => model.ProbeRecipeOnHand) Process Change Details @Html.EditorFor(model => model.ProcessChangeDetailsOnHand)
@Html.TextAreaFor(model => model.LotStartCheckListComments, 14, 100, new { id = "txtLotStartCheckListComments", @class = "k-textbox", style = "font-size: 11px; width: 100%", ReadOnly = "ReadOnly" })
Lot Start in SPN
SIGNON SURP WIP AREA @Model.WIPArea
VERB START Start Date @Model.PlannedLotStartDate
WIP Lot# @Model.LotNumber WIP PN# @Model.WIPPartNumber - @Model.PartDescription
Type @Model.LotType Process Flow @Model.ProcessFlow
Start Qty @Model.StartQty Qual Lot @(Model.QualLot == 1 ? "Y" : "")
VERB COMMENT @Html.TextAreaFor(model => model.VerbComment, 3, 100, new { id = "txtVerbComment", @class = "k-textbox", style = "font-size: 11px; width: 100%", ReadOnly = "ReadOnly" })
Record Silicon Lot #s in SPN and tape tags to Traveler @(Model.RecordSiliconLotInSPNTapeTagTotrav == 1 ? "Yes" : "No")
Silicon Lot#s: Cassette 1 @Html.TextAreaFor(model => model.SiliconLotNoCassette1, 3, 100, new { id = "txtSiliconLotNoCassette1", @class = "k-textbox", style = "font-size: 11px; width: 100%", ReadOnly = "ReadOnly" })
/**/ if (Model.LotCount == 0) {
Section2: OLHOLD and Engineering Deviation Specified by Originator
@(Html.Kendo().Grid() .Name("HoldSteps") .Columns(columns => { columns.Bound(a => a.ID).Visible(false); columns.Bound(a => a.LTWorkRequestID).Visible(false); columns.Bound(a => a.BaseFlow).Width("50px"); columns.Bound(a => a.Location).Width("50px"); columns.Bound(a => a.OperSequence).Width("50px"); columns.Bound(a => a.Operation).Width("50px"); columns.Bound(a => a.OperationDescription).Width("100px"); columns.Bound(a => a.ChangeInstructions).ClientTemplate("#=changeNewLine(ChangeInstructions)#").Width("250px"); columns.Bound(a => a.FileNames).ClientTemplate("#=buildLinks(FileNames, SWRNumber, Revision)#").Width("100px"); }) .Resizable(e => e.Columns(true)) .Sortable() .Scrollable() .HtmlAttributes(new { style = "height:350px; width:100%; font-size: 8px" }) .DataSource(dataSource => dataSource .Ajax() .ServerOperation(false) .Model(model => { model.Id(p => p.ID); }) .PageSize(40) .Read(read => read.Action("GetHoldSteps", "LotTraveler", new { workRequestID = Model.ID })) ) .Resizable(resize => resize.Columns(true)) )
}
Section3: Document Attachment
@(Html.Kendo().Grid() .Name("WorkRequestAttachments") .Columns(columns => { columns.Bound(a => a.ID).Visible(false); columns.Bound(a => a.FileGUID).Visible(false); columns.Bound(a => a.FileName).Template(@ @Html.ActionLink(@item.FileName.ToString(), null)).Width("100px"); //.ClientTemplate("#=FileName#"); columns.Bound(a => a.DocType).Width("50px"); columns.Bound(a => a.Comments).Width("300px"); columns.Bound(a => a.UploadedByName).Width("50px"); columns.Bound(a => a.UploadDateTime).Format("{0:MM/dd/yy hh:mm:ss}").Width("50px"); columns.Command(c => c.Custom("View").Click("DownloadAttachment")).Width("100px"); }) .Resizable(e => e.Columns(true)) .Sortable() .Scrollable() .HtmlAttributes(new { style = "width:100%; font-size: 10px" }) .DataSource(dataSource => dataSource .Ajax() //.Batch(false) .ServerOperation(false) .Model(model => { model.Id(p => p.ID); model.Field(a => a.UploadDateTime).Editable(false); model.Field(a => a.UploadedByName).Editable(false); model.Field(a => a.FileName).Editable(false); }) .PageSize(50) .Read(read => read.Action("GetWorkRequestAttachments", "LotTraveler", new { workRequestID = Model.ID })) ) )
Section4: Approvals
@(Html.Kendo().Grid() .Name("ApproversList") .Columns(columns => { columns.Bound(a => a.UserID).Visible(false); columns.Bound(a => a.ApprovalID).Visible(false); columns.Bound(a => a.FullName); columns.Bound(a => a.RoleName); columns.Bound(a => a.SubRoleName); columns.Bound(a => a.Status); columns.Bound(a => a.AssignedDate).Format("{0:MM/dd/yy hh:mm:ss}"); ; columns.Bound(a => a.CompletedDate).Format("{0:MM/dd/yy hh:mm:ss}"); ; columns.Bound(a => a.Comments); }) .Sortable() .Scrollable() .HtmlAttributes(new { style = "width:100%; font-size: 10px" }) .DataSource(dataSource => dataSource .Ajax() //.Batch(false) .ServerOperation(false) .Model(model => { model.Id(p => p.ApprovalID); }) .PageSize(20) .Read(read => read.Action("GetApproversList", "LotTraveler", new { workRequestID = Model.ID, step = Model.CurrentStep })) ) .Resizable(resize => resize.Columns(true)) )
if (@Model.CloseDate != null) {
Section5: Lot
@(Html.Kendo().Grid() .Name("Lots") .Columns(columns => { columns.Bound(a => a.ID).Visible(false); columns.Bound(a => a.WorkRequestID).Visible(false); columns.Bound(a => a.LotNumber).Width("50px"); ; columns.Bound(a => a.WIPPartNumber).Width("50px"); ; columns.Bound(a => a.WaferQty).Width("50px"); ; columns.Bound(a => a.PartDescription).Width("150px"); ; columns.Bound(a => a.Process).Width("50px"); ; columns.Bound(a => a.Location).Width("50px"); ; columns.Bound(a => a.Operation).Width("50px"); ; columns.Bound(a => a.LotStatus).Width("25px"); ; columns.Bound(a => a.LotTravelerCurrentRevision).Width("50px"); columns.Bound(a => a.TravelerStatus).Width("50px"); columns.Bound(a => a.UploadedByName).Width("50px"); columns.Bound(a => a.ID).Template(@ @Html.ActionLink(@item.LotNumber.ToString(), null)) .ClientTemplate("View").Title("History").Width("50px"); columns.Bound(p => p.ButtonAttrib).ClientTemplate("#=buildViewButtons(ButtonAttrib)#").Width("50px").Title(""); columns.Bound(p => p.ButtonAttrib).ClientTemplate("#=buildUpdateCreateButtons(ButtonAttrib)#").Width("50px").Title(""); columns.Bound(p => p.ButtonAttrib).ClientTemplate("#=buildUpdateDeleteExecuteButtons(ButtonAttrib)#").Width("50px").Title(""); }) .Sortable() .Scrollable() .HtmlAttributes(new { style = "height:200px; width:100%; font-size: 10px" }) .DataSource(dataSource => dataSource .Ajax() //.Batch(false) .ServerOperation(false) .Events( e => e.Change("LotAdd_AfterChange")) .Model(model => { model.Id(p => p.ID); }) .PageSize(20) .Read(read => read.Action("GetLotList", "LotTraveler", new { workRequestID = Model.ID})) ) .Resizable(resize => resize.Columns(true)) )
} }
Creating Traveler, Please Wait....

Creating Traveler, Please Wait....

@**@ @Html.Partial("_LTReassignOriginator")