initial add
This commit is contained in:
2574
Fab2ApprovalSystem/Views/LotTraveler/Edit.cshtml
Normal file
2574
Fab2ApprovalSystem/Views/LotTraveler/Edit.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
761
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerExecute.cshtml
Normal file
761
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerExecute.cshtml
Normal file
@ -0,0 +1,761 @@
|
||||
@model Fab2ApprovalSystem.Models.LTLotTravelerHeaderViewModel
|
||||
@{
|
||||
ViewBag.Title = "LotTraveler - Execute";
|
||||
}
|
||||
@{
|
||||
Layout = "_LotTravelerLayout.cshtml";
|
||||
}
|
||||
<link rel="stylesheet" href="/Content/kendo/kendo.blueopal.min.css" />
|
||||
<style>
|
||||
.k-header .k-link {
|
||||
text-align: center;
|
||||
}
|
||||
.k-grid tbody tr td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<body onload="StartTimers();" onmousemove="ResetTimers();" onkeydown="ResetTimers();">
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<input type="hidden" id="LTWorkRequestID" value="@Model.LTWorkRequestID" />
|
||||
<input type="hidden" id="ReturnURL" value="@Url.Action("LotTravelerExecute", "LotTraveler", new { ltLotID = Model.ID })" />
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 text-center">
|
||||
<label id="RevNumber" style="font-size: large; font-weight: bold; color: blue; font-family: 'Times New Roman';">
|
||||
Fab2 Electronic Lot Traveler - Lot# @Model.LotNumber Rev @Model.LotTravCurrentRevision [Mode : Execution]
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<input type="button" value="Print PDF" class="btn btn-warning btn-xs" id="PrintTravelerPDF" style="font-size: 10px" />
|
||||
<input type="button" value="Back to Work Request" class="btn btn-warning btn-xs" id="BackToRequestID" style="font-size: 10px" />
|
||||
|
||||
<label class="control-label">Lot Numbers:</label>
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("LotList")
|
||||
.BindTo(new SelectList(ViewBag.LotList, "LotID", "LotNumber"))
|
||||
.OptionLabel("Select")
|
||||
)
|
||||
<input type="button" value="Display Traveler" class="btn btn-warning btn-xs" id="GetTraveler" style="font-size: 10px" />
|
||||
|
||||
<label class="control-label">Revisions:</label>
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("Revisions")
|
||||
.BindTo(new SelectList(ViewBag.LotTravRevisionList, "ID", "RevisionNumber"))
|
||||
.OptionLabel("Select")
|
||||
)
|
||||
<input type="button" value="Display Revision" class="btn btn-warning btn-xs" id="GetRevision" style="font-size: 10px" />
|
||||
|
||||
<input type="button" value="Revision History" class="btn btn-warning btn-xs" id="RevisionHistoryData" style="font-size: 10px" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">SWR #:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.SWRNumber, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Last Update:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.LastUpdate, new { id = "txtLastUpdate", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Title</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.Title, new { @class = "k-textbox", Readonly = "Readonly" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Status:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.Status, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Originator:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.Originator, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
@if (Session[GlobalVars.IS_ADMIN] != null)
|
||||
{
|
||||
<a href="javascript:undefined" id="lnkReassignOriginator" class="linkbutton edit" title="Re-assign Originator"></a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Updated By:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.LastUpdatedBy, new { id = "txtUpdatedBy", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">WIP PN#:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.WIPPartNumber, new { @class = "k-textbox", Readonly = "Readonly" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Part Desc:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.PartDescription, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue;width:100%" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Base Flow:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.BaseFlow, new { id = "txtProcessFlow", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">ITAR:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.IsITAR, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-1">
|
||||
<label class="control-label pull-right">Purpose Of Lot/Change Description:</label>
|
||||
</div>
|
||||
<div class="col-sm-11">
|
||||
@Html.TextAreaFor(model => model.PurposeOfRequest, 5, 100, new { @class = "k-textbox", Readonly = "Readonly", style = "width:100%" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<!-- NEW PANEL ===============================================================-->
|
||||
<div class="panel-body bg-info">
|
||||
<h5>
|
||||
<font style="color:crimson; font-weight:bold">
|
||||
OLHold Steps - Completed
|
||||
</font>
|
||||
<a class="btn btn-xs pull-right alert-danger" id="aSection2" role="button" data-toggle="collapse" href="#collapseSection2" aria-expanded="true" aria-controls="collapseExample">
|
||||
Expand/Collpase
|
||||
</a>
|
||||
|
||||
</h5>
|
||||
</div>
|
||||
<div class="collapse" id="collapseSection2">
|
||||
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="col-sm-offset-0">
|
||||
|
||||
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTLotTravelerHoldSteps>()
|
||||
.Name("CompletedTasks")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.LotTravelerRevisionID).Visible(false);
|
||||
columns.Bound(a => a.Location).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)#").Width("100px");
|
||||
columns.Bound(a => a.ExecutionTaskComments).ClientTemplate("#=changeNewLine(ExecutionTaskComments)#").Width("250px");
|
||||
columns.Bound(a => a.SignedOffByName).Width("50px");
|
||||
columns.Bound(a => a.SignOffTime).Format("{0:MM/dd/yy hh:mm:ss}").Width("50px");
|
||||
columns.Bound(a => a.Completed).ClientTemplate("<input type='checkbox' disabled #= Completed ? checked='checked':'' # class='chkbx' />").Width("50px");
|
||||
})
|
||||
.Resizable(e => e.Columns(true))
|
||||
.Events(e => e.DataBound("onHoldStepsDataBound"))
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:250; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetLotTravHoldStepsCompleted", "LotTraveler", new { LotID = Model.ID }))
|
||||
)
|
||||
|
||||
)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<!-- NEW PANEL ===============================================================-->
|
||||
<div class="panel-body bg-info">
|
||||
|
||||
<h5>
|
||||
<font style="color:crimson; font-weight:bold">
|
||||
OLHold Steps - Pending
|
||||
</font>
|
||||
<a class="btn btn-xs pull-right alert-danger" id="aSection3" role="button" data-toggle="collapse" href="#collapseSection3" aria-expanded="true" aria-controls="collapseExample">
|
||||
Expand/Collpase
|
||||
</a>
|
||||
|
||||
</h5>
|
||||
</div>
|
||||
<div class="collapse" id="collapseSection3">
|
||||
<div class="panel-body bg-info">
|
||||
<div class="pull-left">
|
||||
<button class="btn btn-warning btn-xs" data-toggle="modal" id="UploadWRAttachment" style="font-size:x-small">
|
||||
Upload Files
|
||||
</button>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body bg-warning">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTLotTravelerHoldSteps>()
|
||||
.Name("PendingTasks")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.LotTravelerRevisionID).Visible(false);
|
||||
columns.Bound(a => a.Location).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)#").Width("100px");
|
||||
columns.Bound(a => a.ExecutionTaskComments).ClientTemplate("#=changeNewLine(ExecutionTaskComments)#").Width("250px");
|
||||
columns.Bound(a => a.SignedOffByName).Width("50px");
|
||||
columns.Bound(a => a.SignOffTime).Format("{0:MM/dd/yy hh:mm:ss}").Width("50px");
|
||||
columns.Bound(a => a.Completed).ClientTemplate("<input type='checkbox' disabled #= Completed ? checked='checked':'' # class='chkbx' />").Width("50px");
|
||||
columns.Command(c => c.Custom("Edit").Click("ExecuteHoldStep")).Width("50px");
|
||||
})
|
||||
.Resizable(e => e.Columns(true))
|
||||
.Events(e => e.DataBound("onHoldStepsDataBound"))
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:250; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetLotTravHoldStepsPending", "LotTraveler", new { LotID = Model.ID }))
|
||||
)
|
||||
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="modal fade" id="timeout" tabindex="0" role="dialog" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog modal-lg" style="width:500px;">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header" style="background-color: #fce0a3;">
|
||||
<h3 class="modal-title">Page About To Timeout</h3>
|
||||
</div>
|
||||
<div class="modal-body" style="background-color: crimson; font-size: 20px; color:white">
|
||||
You will be automatically be redirected to Special Request List page in 1 minute.<br />
|
||||
To remain on this page please close this window or press the ESC key.
|
||||
</div>
|
||||
<div class="modal-footer" style="background-color: #fce0a3; ">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal fade" id="AddTaskCommentsForm" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content" style="width: 800px">
|
||||
<div class="modal-header" style="background-color: #fce0a3;">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="myModalLabel">Execute Tasks/Comments:</h4>
|
||||
</div>
|
||||
<div class="modal-body" style="background-color: #a5c9eb; font-size: 12px">
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="control-group">
|
||||
<label for="BaseFlow">Base Flow:</label>
|
||||
<div class="controls k-textbox" style="width:100px; font-size: 10px">
|
||||
<input type="text" class="form-control" id="txtBaseFlow" readonly="Readonly">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="control-group">
|
||||
<label for="Location">Location:</label>
|
||||
<div class="controls k-textbox" style="width:100px; font-size: 10px">
|
||||
<input type="text" class="form-control" id="txtLocation" readonly="Readonly">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="control-group">
|
||||
<label for="Operation">Operation:</label>
|
||||
<div class="controls k-textbox" style="width:100px; font-size: 10px">
|
||||
<input type="text" class="form-control" id="txtOperation" disabled="disabled">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<div class="control-group">
|
||||
<label for="Description">Description:</label>
|
||||
<div class="controls k-textbox" style="width:365px; font-size: 10px">
|
||||
<input type="text" class="form-control" id="txtOperationDesc" style="font-size: 10px" readonly="Readonly">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="control-group">
|
||||
<div class="col-sm-12">
|
||||
<label for="Instructions">Instructions:</label>
|
||||
<textarea class="form-control" rows="15" id="txtChangeInstructions" style="font-size: 10px" readonly="Readonly"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="control-group">
|
||||
<div class="col-sm-12">
|
||||
<label for="txtTaskComments">Tasks/Comments:</label>
|
||||
<textarea class="form-control" rows="5" id="txtTaskComments" style="font-size: 10px"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="control-group">
|
||||
<div class="col-sm-12">
|
||||
<label for="Instructions">Completed:</label>
|
||||
<input type="checkbox" id="taskCompletedFlag" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer" style="background-color: #fce0a3; ">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||||
<button type="button" class="btn btn-primary" id="SaveTaskCommentsHoldStep">Save</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="RevisionHistoryWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="myModalLabel">Revision History</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.RevisionHistory>()
|
||||
.Name("RevisionHistory")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.RevisionedBy);
|
||||
columns.Bound(a => a.Comments);
|
||||
columns.Bound(a => a.RevisionCreateDate).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:300px; width:100%; font-size: 12px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetLotTravelerRevisionHistory", "LotTraveler", new { lotID = Model.ID }))
|
||||
)
|
||||
)
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="WinAttachDocuments" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="myModalLabel">Select File:</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<label for="WRAttachmentComments">Comments:</label>
|
||||
<textarea class="form-control" rows="3" id="WRAttachmentComments"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4">
|
||||
<div class="control-group">
|
||||
<label for="DocumentType">Document Type:</label>
|
||||
<div class="controls" style="width:200px; font-size: 10px">
|
||||
<div id="ex" class="k-content">
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("WRAttachDocType")
|
||||
.DataTextField("Text")
|
||||
.DataValueField("Value")
|
||||
.BindTo(new List<SelectListItem>() {
|
||||
new SelectListItem() {
|
||||
Text = "Select",
|
||||
Value = "Select"
|
||||
},
|
||||
|
||||
new SelectListItem() {
|
||||
Text = "Instructions",
|
||||
Value = "Instructions"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Traveler",
|
||||
Value = "Traveler"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Other",
|
||||
Value = "Other"
|
||||
}
|
||||
|
||||
})
|
||||
.Value("1")
|
||||
.HtmlAttributes(new { style = "width:100px;" })
|
||||
)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8">
|
||||
|
||||
@(Html.Kendo().Upload()
|
||||
.Name("files")
|
||||
.Async(a => a
|
||||
.Save("AttachSaveWorkRequest", "LotTraveler", new { workRequestID = Model.LTWorkRequestID, currentRevision = Model.WorkReqRevision, swrNo = Model.SWRNumber })
|
||||
.AutoUpload(true)
|
||||
)
|
||||
.Events(events => events.Upload("UploadAdditionalData"))
|
||||
.ShowFileList(false)
|
||||
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@Html.Partial("_LTReassignOriginator")
|
||||
|
||||
<script type="text/javascript">
|
||||
var holdStepOperation;
|
||||
var currentHoldStepID;
|
||||
var currentLotTravRevisionID;
|
||||
var newSession = true;
|
||||
$(document).ready(function () {
|
||||
$('#collapseSection3').collapse({
|
||||
toggle: true
|
||||
})
|
||||
|
||||
$("#files").on('click', function (e) {
|
||||
|
||||
if ($("#WRAttachDocType").data("kendoDropDownList").value() == "Select" ||
|
||||
$("#WRAttachmentComments").val() == '') {
|
||||
|
||||
alert('Document Type and Comments both needs to filled in before uploading a a file')
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
function onHoldStepsDataBound(arg) {
|
||||
var myElem = document.getElementById('trParentHeader');
|
||||
if (myElem == null) {
|
||||
$("#HoldSteps").find("th.k-header").parent().before("<tr id='trParentHeader'> <th align='center' colspan='3' class='k-header' style='color:red'></th> <th align='center' colspan='2' class='k-header' style='font-size:12px;color:red'><strong>Change Instructions/File </strong></th> </th> <th align='center' colspan='4' class='k-header' style='font-size:12px;color:red'><strong>Execution </strong></th></tr>");
|
||||
}
|
||||
}
|
||||
|
||||
function buildLinks(fileNames, swrNumber) {
|
||||
var template = "";
|
||||
|
||||
//var fileName = 4;
|
||||
|
||||
//alert(workRequestID);
|
||||
|
||||
if (fileNames != null) {
|
||||
var tempValue = fileNames.split(',');
|
||||
for (var i = 0; i < tempValue.length; i++) {
|
||||
var tempValue2 = tempValue[i].split('~');
|
||||
|
||||
var fileName = tempValue2[0];
|
||||
var fileGuid = tempValue2[1];
|
||||
|
||||
var tempFile = fileName.split('.');
|
||||
var fileExtension = tempFile[tempFile.length - 1];
|
||||
|
||||
//template += "<a href='@GlobalVars.AttachmentUrl" + "LotTraveler/" + swrNumber + "/" + fileGuid + "." + fileExtension + "'>" + fileName + "</a><BR>" + " ";
|
||||
|
||||
template += "<a href='/LotTraveler/DownloadFile?fileGuid=" + fileGuid + "&swrNumber=" + @Model.SWRNumber + "&typeOfDoc=2" + "'>" + fileName + "</a><BR>" + " ";
|
||||
}
|
||||
|
||||
}
|
||||
return template;
|
||||
}
|
||||
|
||||
|
||||
$("#GetRevision").on('click', function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
var revid = $("#Revisions").data("kendoDropDownList").text();
|
||||
|
||||
var url = '@Url.Action("LotTravelerReadonly", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "__revID__" })';
|
||||
url = url.replace('__revID__', revid);
|
||||
url = url.replace('amp;', '');
|
||||
window.location.href = url.replace('__id__', '@Model.ID');
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
$("#GetTraveler").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
var lotid = $("#LotList").data("kendoDropDownList").value();
|
||||
|
||||
var url = '@Url.Action("LotTravelerUpdate", "LotTraveler", new { ltLotID = "__id__" })';
|
||||
url = url.replace('amp;', '');
|
||||
window.location.href = url.replace('__id__', lotid);
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
function ExecuteHoldStep(e) {
|
||||
e.preventDefault();
|
||||
holdStepOperation = "Update";
|
||||
|
||||
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
currentHoldStepID = dataItem.ID;
|
||||
currentLotTravRevisionID = dataItem.LotTravelerRevisionID
|
||||
|
||||
$("#txtBaseFlow").val($("#txtProcessFlow").val());
|
||||
$("#txtLocation").val(dataItem.Location);
|
||||
$("#txtOperation").val(dataItem.Operation);
|
||||
$("#txtOperationDesc").val(dataItem.OperationDescription);
|
||||
$("#txtChangeInstructions").val(dataItem.ChangeInstructions);
|
||||
$("#taskCompletedFlag").attr('checked', false);
|
||||
$("#txtTaskComments").val('');
|
||||
|
||||
$("#AddTaskCommentsForm").modal('show');
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("#SaveTaskCommentsHoldStep").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
var completedFlag;
|
||||
if ($("#taskCompletedFlag").is(":checked"))
|
||||
completedFlag = true;
|
||||
else
|
||||
completedFlag = false;
|
||||
|
||||
var urlString = "/LotTraveler/UpdateLotTravlerExecution"
|
||||
$.ajax({
|
||||
url: urlString,
|
||||
type: "POST",
|
||||
data: {
|
||||
currentHoldStepID: currentHoldStepID,
|
||||
taskComments: $("#txtTaskComments").val(),
|
||||
taskcompleted: completedFlag
|
||||
|
||||
},
|
||||
success: function (data) {
|
||||
$("#AddTaskCommentsForm").modal('hide');
|
||||
|
||||
var grid = $("#PendingTasks").data("kendoGrid");
|
||||
grid.dataSource.read('@Model.ID');
|
||||
|
||||
var grid = $("#CompletedTasks").data("kendoGrid");
|
||||
grid.dataSource.read('@Model.ID');
|
||||
|
||||
|
||||
},
|
||||
error: function (result) {
|
||||
alert("Failed " + result);
|
||||
}
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
function changeNewLine(text) {
|
||||
if (text != null) {
|
||||
var regexp = new RegExp('\n', 'g');
|
||||
return text.replace(regexp, '<br>');
|
||||
}
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
function checkBoxTemplate(dataVal) {
|
||||
'<input type="checkbox" #= dataVal ? \'checked="checked"\' : "" # class="chkbx" />'
|
||||
}
|
||||
|
||||
|
||||
$("#PrintTravelerPDF").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
var url = '@Url.Action("DisplayLotTravlerPdf", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "__revid__" })';
|
||||
url = url.replace("__revid__", '@Model.LotTravCurrentRevision')
|
||||
url = url.replace('amp;', '');
|
||||
window.open(url.replace('__id__', '@Model.ID', '_blank'));
|
||||
})
|
||||
|
||||
|
||||
$("#BackToRequestID").on('click', function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
var url = '@Url.Action("Edit", "LotTraveler", new { IssueID = "__id__"})';
|
||||
url = url.replace('amp;', '');
|
||||
window.location.href = url.replace('__id__', $("#LTWorkRequestID").val());
|
||||
})
|
||||
|
||||
$('#RevisionHistoryData').on('click', function () {
|
||||
$("#RevisionHistoryWin").modal('show');
|
||||
return false;
|
||||
})
|
||||
|
||||
$(window).bind("beforeunload", function (e) {
|
||||
//return confirm("Do you really want to close?");
|
||||
var url;
|
||||
$.ajax({
|
||||
url: "/LotTraveler/ReleaseLockOnLotTravelerUpdateDoc",
|
||||
type: "GET",
|
||||
datatype: "json",
|
||||
data: {
|
||||
lotID: ("@Model.ID")
|
||||
},
|
||||
success: function () {
|
||||
},
|
||||
error: function (result) {
|
||||
alert("Failed " + result);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
$("#UploadWRAttachment").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
$("#WinAttachDocuments").modal('show');
|
||||
})
|
||||
|
||||
function UploadAdditionalData(e)
|
||||
{
|
||||
fileData = e;
|
||||
var files = e.files;
|
||||
$.each(files, function () {
|
||||
|
||||
if (!this.extension.toLowerCase().match(/^(.doc|.docx|.ppt|.pptx|.xls|.xlsx|.xlsm|.pdf|.gif|.jpeg|.jpg|.bmp|.png|.txt)$/)) {
|
||||
alert("Only Word/PowerPoint/Excel/PDF/Image/Text files can be uploaded!")
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
e.data = {
|
||||
comments: $("#WRAttachmentComments").val(),
|
||||
docType : $("#WRAttachDocType").data("kendoDropDownList").value()
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@*function IdleTimeout() {
|
||||
//window.location = logoutUrl;
|
||||
var url = '@Url.Action("SpecialWorkRequest", "Home")';
|
||||
window.location.href = url;
|
||||
|
||||
}*@
|
||||
|
||||
</script>
|
169
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerPDF.cshtml
Normal file
169
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerPDF.cshtml
Normal file
@ -0,0 +1,169 @@
|
||||
@model Fab2ApprovalSystem.ViewModels.LotTravelerPdf
|
||||
@{
|
||||
ViewBag.Title = "LotTravelerPDF";
|
||||
}
|
||||
|
||||
<table width="100%" border="1" style="font-size:6px;">
|
||||
<tr style="color:black; font-family:'Times New Roman'">
|
||||
<td colspan="7" align="center" style="font-size: 10px; font-weight: bold; background-color: #e5e0e0">
|
||||
Fab2 Electronic Lot Traveler - Lot# @Model.LotNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Version
|
||||
</td>
|
||||
<td>
|
||||
<font style="font-style:italic">
|
||||
Rev @Model.LotTravCurrentRevision
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
SWR#
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.SWRNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Title
|
||||
</td>
|
||||
<td colspan="5">
|
||||
@Model.Title
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Originator
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.Originator
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Last Update
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.LastUpdate
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Updated By
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.LastUpdatedBy
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
WIP PN#
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.WIPPartNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Description
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.PartDescription
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Base Flow
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.BaseFlow
|
||||
</td>
|
||||
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Purpose of Lot / Change Description
|
||||
</td>
|
||||
<td colspan="4">
|
||||
@Html.Raw(@Model.PurposeOfRequest)
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Status
|
||||
</td>
|
||||
<td >
|
||||
Approved
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
ITAR
|
||||
</td>
|
||||
<td >
|
||||
@(Model.IsITAR ? "Yes" : "No")
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br />
|
||||
<table width="100%" border="1">
|
||||
<tr bgcolor="#e5e0e0" style="font-weight: bold; font-size: 5px;">
|
||||
<td>
|
||||
Location
|
||||
</td>
|
||||
<td>
|
||||
Operation
|
||||
</td>
|
||||
<td colspan="2">
|
||||
Description
|
||||
</td>
|
||||
<td colspan="3">
|
||||
Instruction Details
|
||||
</td>
|
||||
<td colspan="3">
|
||||
File Names
|
||||
</td>
|
||||
|
||||
<td colspan="3">
|
||||
Tasks/Comments
|
||||
</td>
|
||||
<td>
|
||||
Signed-Off By
|
||||
</td>
|
||||
<td>
|
||||
Signed-Off Time
|
||||
</td>
|
||||
<td>
|
||||
Completed
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@foreach (Fab2ApprovalSystem.Models.LTLotTravelerHoldSteps task in Model.Tasklist)
|
||||
{
|
||||
<tr style="font-size: 5px;">
|
||||
<td>
|
||||
@task.Location
|
||||
</td>
|
||||
<td>
|
||||
@task.Operation
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@task.OperationDescription
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Html.Raw(@task.ChangeInstructions)
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Html.Raw(@task.FileNames)
|
||||
</td>
|
||||
|
||||
<td colspan="3">
|
||||
@Html.Raw(@task.ExecutionTaskComments)
|
||||
</td>
|
||||
<td>
|
||||
@task.SignedOffByName
|
||||
</td>
|
||||
<td>
|
||||
@task.SignOffTime
|
||||
</td>
|
||||
<td>
|
||||
@(task.Completed ? "Yes" : "No")
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
}
|
||||
|
||||
|
||||
</table>
|
453
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerReadOnly.cshtml
Normal file
453
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerReadOnly.cshtml
Normal file
@ -0,0 +1,453 @@
|
||||
@model Fab2ApprovalSystem.Models.LTLotTravelerHeaderViewModel
|
||||
@{
|
||||
ViewBag.Title = "LotTraveler - Readonly";
|
||||
}
|
||||
@{
|
||||
Layout = "_LotTravelerLayout.cshtml";
|
||||
}
|
||||
<link rel="stylesheet" href="/Content/kendo/kendo.blueopal.min.css" />
|
||||
<style>
|
||||
.k-header .k-link {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<input type="hidden" id="LTWorkRequestID" value="@Model.LTWorkRequestID" />
|
||||
<input type="hidden" id="ReturnURL" value="@Url.Action("LotTravelerReadonly", "LotTraveler", new { ltLotID = Model.ID, revisionNumber = Model.LotTravCurrentRevision })" />
|
||||
|
||||
@Html.AntiForgeryToken()
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="row">
|
||||
@*<div class="col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="col-sm-12">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 text-center">
|
||||
<font style="color:crimson">
|
||||
<label id="RevNumber" style="font-size: large; font-weight: bold; color: blue; ">
|
||||
Fab2 Electronic Lot Traveler - Lot# @Model.LotNumber
|
||||
Rev @Model.LotTravCurrentRevision
|
||||
[Mode : Readonly]
|
||||
</label>
|
||||
@*<font style="color: blue; font-weight:bold">@Model.LotNumber</font> <font style="color: green; font-weight:bold; font-style:italic">Rev @Model.LotTravCurrentRevision</font><font style="color: red; font-weight:bold;" > [Mode : Readonly]</font>*@
|
||||
</font>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<input type="button" value="Print PDF" class="btn btn-warning btn-xs" id="PrintTravelerPDF" style="font-size: 10px" />
|
||||
<input type="button" value="Back to Work Request" class="btn btn-warning btn-xs" id="BackToRequestID" style="font-size: 10px" />
|
||||
|
||||
<label class="control-label">Lot Numbers:</label>
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("LotList")
|
||||
.BindTo(new SelectList(ViewBag.LotList, "LotID", "LotNumber"))
|
||||
.OptionLabel("Select")
|
||||
)
|
||||
<input type="button" value="Display Traveler" class="btn btn-warning btn-xs" id="GetTraveler" style="font-size: 10px" />
|
||||
|
||||
<label class="control-label">Revisions:</label>
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("Revisions")
|
||||
.BindTo(new SelectList(ViewBag.LotTravRevisionList, "ID", "RevisionNumber"))
|
||||
.OptionLabel("Select")
|
||||
)
|
||||
<input type="button" value="Display Revision" class="btn btn-warning btn-xs" id="GetRevision" style="font-size: 10px" />
|
||||
|
||||
<input type="button" value="Revision History" class="btn btn-warning btn-xs" id="RevisionHistoryData" style=" font-size: 10px" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">SWR #:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.SWRNumber, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Last Update:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.LastUpdate, new { id = "txtLastUpdate", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Title</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.Title, new { @class = "k-textbox", Readonly = "Readonly" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Closed Reason:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.TravelerClosedReason, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Closed By:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.TravelerClosedBy, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Closed Date:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.TravelerClosedDate, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Originator:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.Originator, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
@if (Session[GlobalVars.IS_ADMIN] != null)
|
||||
{
|
||||
<a href="javascript:undefined" id="lnkReassignOriginator" class="linkbutton edit" title="Re-assign Originator"></a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Updated By:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.LastUpdatedBy, new { id = "txtUpdatedBy", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">WIP PN#:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.WIPPartNumber, new { @class = "k-textbox", Readonly = "Readonly"})
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Part Desc:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.PartDescription, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue;width:100%" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">Base Flow:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.BaseFlow, new { id = "txtProcessFlow", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="row">
|
||||
<div class="col-sm-3">
|
||||
<label class="control-label pull-right">ITAR:</label>
|
||||
</div>
|
||||
<div class="col-sm-9">
|
||||
@Html.TextBoxFor(model => model.IsITAR, new { @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-1">
|
||||
<label class="control-label pull-right">Purpose Of Lot/Change Description:</label>
|
||||
</div>
|
||||
<div class="col-sm-11">
|
||||
@Html.TextAreaFor(model => model.PurposeOfRequest, 5, 100, new { @class = "k-textbox", Readonly = "Readonly", style = "width:100%" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<!-- NEW PANEL ===============================================================-->
|
||||
<div class="panel-body bg-info">
|
||||
<h5>
|
||||
<font style="color:crimson; font-weight:bold">
|
||||
OLHold Steps
|
||||
</font>
|
||||
<a class="btn btn-xs pull-right alert-danger" id="aSection2" role="button" data-toggle="collapse" href="#collapseSection2" aria-expanded="true" aria-controls="collapseExample">
|
||||
Expand/Collpase
|
||||
</a>
|
||||
|
||||
</h5>
|
||||
</div>
|
||||
|
||||
<div class="collapse" id="collapseSection2">
|
||||
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="col-sm-offset-0">
|
||||
|
||||
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTLotTravelerHoldSteps>()
|
||||
.Name("HoldSteps")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.LotTravelerRevisionID).Visible(false);
|
||||
columns.Bound(a => a.Location).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)#").Width("100px");
|
||||
columns.Bound(a => a.ExecutionTaskComments).ClientTemplate("#=changeNewLine(ExecutionTaskComments)#").Width("250px");
|
||||
columns.Bound(a => a.SignedOffByName).Width("50px");
|
||||
columns.Bound(a => a.SignOffTime).Format("{0:MM/dd/yy hh:mm:ss}").Width("50px");
|
||||
columns.Bound(a => a.Completed).ClientTemplate("<input type='checkbox' disabled #= Completed ? checked='checked':'' # class='chkbx' />").Width("50px");
|
||||
})
|
||||
.Resizable(e => e.Columns(true))
|
||||
.Events(e => e.DataBound("onHoldStepsDataBound"))
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:250; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetLotTravHoldStepsByRevision", "LotTraveler", new { LotID = Model.ID, revisionNumber = Model.LotTravCurrentRevision }))
|
||||
)
|
||||
|
||||
)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="modal fade" id="RevisionHistoryWin" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title" id="myModalLabel">Revision History</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.RevisionHistory>()
|
||||
.Name("RevisionHistory")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.RevisionedBy);
|
||||
columns.Bound(a => a.Comments);
|
||||
columns.Bound(a => a.RevisionCreateDate).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:300px; width:100%; font-size: 12px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetLotTravelerRevisionHistory", "LotTraveler", new { lotID = Model.ID }))
|
||||
)
|
||||
)
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@Html.Partial("_LTReassignOriginator")
|
||||
|
||||
<script type="text/javascript">
|
||||
var holdStepOperation;
|
||||
var currentHoldStepID;
|
||||
var currentLotTravRevisionID;
|
||||
var newSession = true;
|
||||
$(document).ready(function () {
|
||||
|
||||
|
||||
$('#collapseSection2').collapse({
|
||||
toggle: true
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
function onHoldStepsDataBound(arg) {
|
||||
var myElem = document.getElementById('trParentHeader');
|
||||
if (myElem == null) {
|
||||
$("#HoldSteps").find("th.k-header").parent().before("<tr id='trParentHeader'> <th align='center' colspan='3' class='k-header' style='color:red'></th> <th align='center' colspan='2' class='k-header' style='font-size:12px;color:red'><strong>Change Instructions/File </strong></th> </th> <th align='center' colspan='4' class='k-header' style='font-size:12px;color:red'><strong>Execution </strong></th></tr>");
|
||||
}
|
||||
}
|
||||
|
||||
function buildLinks(fileNames, swrNumber) {
|
||||
var template = "";
|
||||
|
||||
//var fileName = 4;
|
||||
|
||||
//alert(workRequestID);
|
||||
|
||||
if (fileNames != null) {
|
||||
var tempValue = fileNames.split(',');
|
||||
for (var i = 0; i < tempValue.length; i++) {
|
||||
var tempValue2 = tempValue[i].split('~');
|
||||
|
||||
var fileName = tempValue2[0];
|
||||
var fileGuid = tempValue2[1];
|
||||
|
||||
var tempFile = fileName.split('.');
|
||||
var fileExtension = tempFile[tempFile.length - 1];
|
||||
|
||||
//template += "<a href='@GlobalVars.AttachmentUrl" + "LotTraveler/" + swrNumber + "/" + fileGuid + "." + fileExtension + "'>" + fileName + "</a><BR>" + " ";
|
||||
template += "<a href='/LotTraveler/DownloadFile?fileGuid=" + fileGuid + "&swrNumber=" + @Model.SWRNumber + "&typeOfDoc=2" + "'>" + fileName + "</a><BR>" + " ";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return template;
|
||||
}
|
||||
|
||||
|
||||
$("#GetRevision").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
var revid = $("#Revisions").data("kendoDropDownList").text();
|
||||
if (revid != "Select") {
|
||||
|
||||
var url = "@Html.Raw(@Url.Action("LotTravelerReadonly", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "__revID__" }))";
|
||||
url = url.replace('__revID__', revid);
|
||||
url = url.replace('amp;', '');
|
||||
window.location.href = url.replace('__id__', '@Model.ID');
|
||||
}
|
||||
else {
|
||||
alert('Please select a Revision Number');
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
$("#GetTraveler").on('click', function () {
|
||||
|
||||
var lotid = $("#LotList").data("kendoDropDownList").value();
|
||||
|
||||
var url = "@Html.Raw(@Url.Action("LotTravelerUpdate", "LotTraveler", new { ltLotID = "__id__" }))";
|
||||
//url = url.replace('amp;', '');
|
||||
window.location.href = url.replace('__id__', lotid);
|
||||
|
||||
|
||||
})
|
||||
|
||||
$("#PrintTravelerPDF").on('click', function (e) {
|
||||
e.preventDefault();
|
||||
var url = "@Html.Raw(@Url.Action("DisplayLotTravlerPdf", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "__revid__" }))";
|
||||
url = url.replace("__revid__", '@Model.LotTravCurrentRevision')
|
||||
window.open(url.replace('__id__', '@Model.ID', '_blank'));
|
||||
})
|
||||
|
||||
|
||||
$("#BackToRequestID").on('click', function (e) {
|
||||
|
||||
e.preventDefault();
|
||||
var url = "@Html.Raw(@Url.Action("Edit", "LotTraveler", new { IssueID = "__id__"}))";
|
||||
|
||||
window.location.href = url.replace('__id__', $("#LTWorkRequestID").val());
|
||||
})
|
||||
|
||||
$('#RevisionHistoryData').on('click', function () {
|
||||
$("#RevisionHistoryWin").modal('show');
|
||||
return false;
|
||||
})
|
||||
|
||||
|
||||
function changeNewLine(text) {
|
||||
if (text != null) {
|
||||
var regexp = new RegExp('\n', 'g');
|
||||
return text.replace(regexp, '<br>');
|
||||
}
|
||||
else
|
||||
return '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
1291
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerUpdate.cshtml
Normal file
1291
Fab2ApprovalSystem/Views/LotTraveler/LotTravelerUpdate.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
1561
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestApproval.cshtml
Normal file
1561
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestApproval.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
426
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestPDF.cshtml
Normal file
426
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestPDF.cshtml
Normal file
@ -0,0 +1,426 @@
|
||||
@model Fab2ApprovalSystem.ViewModels.WorkRequestPdf
|
||||
|
||||
@{
|
||||
ViewBag.Title = "WorkRequestPDF";
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
<table width="100%" border="1" style="font-size:6px;">
|
||||
<tr style="color:black; font-family:'Times New Roman'">
|
||||
<td colspan="10" align="center" style="font-size: 10px; font-weight: bold; background-color: #e5e0e0">
|
||||
Fab2 Lot Traveler Special Request - SWR# @Model.SWRNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Version
|
||||
</td>
|
||||
<td>
|
||||
<font style="font-style:italic">
|
||||
Rev @Model.Revision
|
||||
</font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="12" bgcolor="#e5e0e0" style="font-size: 8px; font-weight: bold">
|
||||
Section 1:Work Request
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
SWR#
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Model.SWRNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Title
|
||||
</td>
|
||||
<td colspan="7">
|
||||
@Model.Title
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Originator
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Model.OriginatorName
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Last Lot Type
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Model.LotType
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
PCRB#
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Model.PCRBNumber
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Submit Date
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@Model.SubmitedDate
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Affected Departments
|
||||
</td>
|
||||
<td colspan="7">
|
||||
@Model.AffectedDepartments
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Status
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@(Model.Status == 1 ? "Approved" : "Pending")
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Affected Modules
|
||||
</td>
|
||||
<td colspan="7">
|
||||
@Model.AffectedModules
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
ITAR
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@(Model.IsITAR ? "Yes" : "No")
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Engineering Lot Start Required
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@(Model.EngLotStartRequired == 1 ? "Yes": "No")
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Lot Type Conversion
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@(Model.LotTypeConversion == 1 ? "Yes": "No")
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Qual Lot
|
||||
</td>
|
||||
<td>
|
||||
@(Model.QualLot == 1 ? "Yes" : "No")
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Purpose of Lot / Change Description
|
||||
</td>
|
||||
<td colspan="11">
|
||||
@Html.Raw(@Model.PurposeOfRequest)
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<table width="100%" border="1" style="font-size:6px;">
|
||||
<tr>
|
||||
<td colspan="9" bgcolor="#e5e0e0" style="font-size: 8px; font-weight: bold">
|
||||
Section 1-A:Engineering Wafer Lot Start
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
WIP Lot#
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.LotNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Start Date
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.PlannedLotStartDate
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Sch. Close Date
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.PlannedScheduledCloseDate
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Lot Start Charge Dept#
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.ChargeDepartment
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Allocation to Use
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.AllocationToUse
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Predicted Cycle Time
|
||||
</td>
|
||||
<td >
|
||||
@Model.PredictedCyleTime
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Days
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width="100%" border="1" style="font-size:6px;">
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
Starting Material
|
||||
</td>
|
||||
<td>
|
||||
Total Qty: @Model.TotalQty
|
||||
</td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td width="10%" bgcolor="#e5e0e0">WIP PN#</td>
|
||||
<td width="30%" bgcolor="#e5e0e0">Description</td>
|
||||
<td width="10%" bgcolor="#e5e0e0">EPI Silicon Part#</td>
|
||||
<td width="10%" bgcolor="#e5e0e0">Qty</td>
|
||||
<td width="20%" bgcolor="#e5e0e0">Supplier</td>
|
||||
<td width="20%" bgcolor="#e5e0e0">Source</td>
|
||||
</tr>
|
||||
@foreach (Fab2ApprovalSystem.Models.LTMaterial material in Model.LTMaterial)
|
||||
{
|
||||
<tr>
|
||||
<td width="10%">
|
||||
@material.WIPPartNumber
|
||||
</td>
|
||||
<td width="30%">
|
||||
@Model.PartDescription
|
||||
</td>
|
||||
<td width="10%">
|
||||
@material.EPISiliconPartNumber
|
||||
</td>
|
||||
<td width="10%">
|
||||
@material.Quantity
|
||||
</td>
|
||||
<td width="20%">
|
||||
@material.Supplier
|
||||
</td>
|
||||
<td width="20%">
|
||||
@material.Source
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
<table border="1" width="100%" style="font-size:6px;">
|
||||
<tr>
|
||||
<td width="10%" colspan="7" bgcolor="#e5e0e0">
|
||||
Lot Start Check List
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
OnHand/Existing
|
||||
</td>
|
||||
<td>
|
||||
Silicon:
|
||||
@(Model.SiliconOnHand ? "Yes" : "No")
|
||||
</td>
|
||||
<td>
|
||||
Reticle Set:
|
||||
@(Model.ReticleOnHand ? "Yes" : "No")
|
||||
|
||||
</td>
|
||||
<td>
|
||||
SPN transfer:
|
||||
@(Model.SPNTransferOnHand ? "Yes" : "No")
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
Probe Card:
|
||||
@(Model.ProbeCardOnHand ? "Yes" : "No")
|
||||
</td>
|
||||
<td>
|
||||
Probe Recipe:
|
||||
@(Model.ProbeRecipeOnHand ? "Yes" : "No")
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Process Change Details:
|
||||
@(Model.ProcessChangeDetailsOnHand ? "Yes" : "No")
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Comments
|
||||
</td>
|
||||
<td colspan="6">
|
||||
@Model.LotStartCheckListComments
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="1" width="100%" style="font-size:6px;">
|
||||
<tr>
|
||||
<td colspan="6" bgcolor="#e5e0e0">
|
||||
Lot Start in SPN
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
SIGNON
|
||||
</td>
|
||||
<td colspan="2">
|
||||
SURP
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
WIP AREA
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.WIPArea
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
VERB
|
||||
</td>
|
||||
<td colspan="2">
|
||||
START
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Start Date
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.PlannedLotStartDate
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
WIP Lot#
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.LotNumber
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
WIP PN#
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.WIPPartNumber
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Type
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.LotType
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Process Flow
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.ProcessFlow
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Start Qty
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@Model.StartQty
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
Qual Lot
|
||||
</td>
|
||||
<td colspan="2">
|
||||
@(Model.QualLot == 1 ? "Y" : "")
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="#e5e0e0">
|
||||
VERB
|
||||
</td>
|
||||
<td bgcolor="#e5e0e0">
|
||||
COMMENT
|
||||
</td>
|
||||
<td colspan="4">
|
||||
@Model.VerbComment
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="e5e0e0" colspan="3">
|
||||
Record Silicon Lot #s in SPN and tape tags to Traveler
|
||||
</td>
|
||||
<td colspan="3">
|
||||
@(Model.RecordSiliconLotInSPNTapeTagTotrav == 1 ? "Yes" : "No")
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" bgcolor="e5e0e0">
|
||||
Silicon Lot#s: Cassette 1
|
||||
</td>
|
||||
<td colspan="4">
|
||||
@Model.SiliconLotNoCassette1
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<br />
|
||||
<table width="100%" border="1" style="font-size:6px;">
|
||||
<tr width="100%">
|
||||
<td colspan="6" bgcolor="#e5e0e0" style="font-size: 8px; font-weight: bold">
|
||||
Section 2: OLHOLD and Engineering Deviation Specified by Originator
|
||||
</td>
|
||||
</tr>
|
||||
<tr >
|
||||
<td width="10%" bgcolor="#e5e0e0">Base Flow</td>
|
||||
<td width="10%" bgcolor="#e5e0e0">Locn</td>
|
||||
<td width="10%" bgcolor="#e5e0e0">Operation</td>
|
||||
<td width="40%" bgcolor="#e5e0e0">Description</td>
|
||||
<td width="10%" bgcolor="#e5e0e0">Change Instuctions</td>
|
||||
<td width="10%" bgcolor="#e5e0e0">File Names</td>
|
||||
</tr>
|
||||
@foreach (Fab2ApprovalSystem.Models.LTHoldStep holStep in Model.LTHoldStep)
|
||||
{
|
||||
<tr>
|
||||
<td width="10%">
|
||||
@holStep.BaseFlow
|
||||
</td>
|
||||
<td width="10%">
|
||||
@holStep.Location
|
||||
</td>
|
||||
<td width="10%">
|
||||
@holStep.Operation
|
||||
</td>
|
||||
<td width="20%">
|
||||
@Html.Raw(@holStep.OperationDescription)
|
||||
</td>
|
||||
<td width="40%">
|
||||
@Html.Raw(@holStep.ChangeInstructions)
|
||||
</td>
|
||||
<td width="10%">
|
||||
@holStep.FileNames
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
</table>
|
1964
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestReadOnly.cshtml
Normal file
1964
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestReadOnly.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
3314
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestRevision.cshtml
Normal file
3314
Fab2ApprovalSystem/Views/LotTraveler/WorkRequestRevision.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
208
Fab2ApprovalSystem/Views/LotTraveler/_HoldStepAttachments.cshtml
Normal file
208
Fab2ApprovalSystem/Views/LotTraveler/_HoldStepAttachments.cshtml
Normal file
@ -0,0 +1,208 @@
|
||||
@model Fab2ApprovalSystem.Models.LTHoldStep
|
||||
|
||||
@Html.HiddenFor(model => model.LTWorkRequestID, new { id = "workRequestID" })
|
||||
@Html.HiddenFor(model => model.ID, new { id = "holdStepID" })
|
||||
@Html.HiddenFor(model => model.SWRNumber, new { id = "swrNumber" })
|
||||
@Html.HiddenFor(model => model.Revision, new { id = "currentRevision" })
|
||||
@Html.HiddenFor(model => model.currentStep, new { id = "currentStep" })
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="control-group">
|
||||
<label for="DocumentType">Document Type:</label>
|
||||
<div class="controls" style="width:200px; font-size: 10px">
|
||||
<div id="ex" class="k-content">
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("HoldStepAttachDocType")
|
||||
.DataTextField("Text")
|
||||
.DataValueField("Value")
|
||||
.BindTo(new List<SelectListItem>() {
|
||||
new SelectListItem() {
|
||||
Text = "Select",
|
||||
Value = "Select"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Instructions",
|
||||
Value = "Instructions"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Traveler",
|
||||
Value = "Traveler"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Other",
|
||||
Value = "Other"
|
||||
}
|
||||
|
||||
})
|
||||
.Value("1")
|
||||
.HtmlAttributes(new { style= "width:100px;" })
|
||||
)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="control-group">
|
||||
@if (@Model.currentStep != 3)
|
||||
{
|
||||
@(Html.Kendo().Upload()
|
||||
.Name("HoldStepAttachment")
|
||||
.Async(a => a
|
||||
.Save("HoldStepAttachSave", "LotTraveler")
|
||||
.AutoUpload(true)
|
||||
)
|
||||
.ShowFileList(false)
|
||||
.Events(events => events.Success("SetDocType").Upload("UploadData")
|
||||
)
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<label for="HoldStepAttachmentComments">Comments:</label>
|
||||
<textarea class="form-control" rows="3" id="HoldStepAttachmentComments"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<!--.Save("AttachSave", "LotTraveler", new { holdStepID = Model.ID, currentRevision = Model.Revision, swrNo = Model.SWRNumber })-->
|
||||
<div class="row">
|
||||
@if (@Model.currentStep != 3)
|
||||
{
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTWorkRequestAttachment>()
|
||||
.Name("HoldStepAttachments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.FileGUID).Visible(false);
|
||||
columns.Bound(a => a.LTHoldStepID).Visible(false);
|
||||
columns.Bound(a => a.FileName).Template(@<text> @Html.ActionLink(@item.FileName.ToString(), null)</text>).Width("100px");
|
||||
//.ClientTemplate("<a href='" + GlobalVars.AttachmentUrl + "LotTraveler/#=SWRNumber#/#=FileGUID#.#=FileExtension#' target='_blank'>#=FileName#</a>");
|
||||
columns.Bound(a => a.DocType);
|
||||
columns.Bound(a => a.UploadedByName);
|
||||
columns.Bound(a => a.UploadDateTime).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
columns.Command(c => c.Destroy());
|
||||
columns.Command(c => c.Custom("View").Click("DownloadAttachment")).Width("100px");
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:125; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetHoldStepAttachments", "LotTraveler", new { holdStepID = Model.ID }))
|
||||
.Destroy(destroy => destroy.Action("DeleteHoldStepAttachment", "LotTraveler"))
|
||||
)
|
||||
)
|
||||
}
|
||||
else
|
||||
{
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTWorkRequestAttachment>()
|
||||
.Name("HoldStepAttachments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.FileGUID).Visible(false);
|
||||
columns.Bound(a => a.LTHoldStepID).Visible(false);
|
||||
columns.Bound(a => a.FileName).Template(@<text> @Html.ActionLink(@item.FileName.ToString(), null)</text>).Width("100px");
|
||||
//.ClientTemplate("<a href='" + GlobalVars.AttachmentUrl + "LotTraveler/#=SWRNumber#/Rev#=Revision#/#=FileGUID#.#=FileExtension#' target='_blank'>#=FileName#</a>");
|
||||
columns.Bound(a => a.DocType);
|
||||
columns.Bound(a => a.UploadedByName);
|
||||
columns.Bound(a => a.UploadDateTime).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
columns.Command(c => c.Custom("View").Click("DownloadAttachment")).Width("100px"); ;
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:125; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetHoldStepAttachments", "LotTraveler", new { holdStepID = Model.ID }))
|
||||
)
|
||||
)
|
||||
}
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$("#HoldStepAttachment").on('click', function (e) {
|
||||
|
||||
if ($("#HoldStepAttachDocType").data("kendoDropDownList").value() == "Select" ||
|
||||
$("#HoldStepAttachmentComments").val() == '') {
|
||||
|
||||
alert('Document Type and Comments both needs to filled in before uploading a a file')
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function SetDocType(e) {
|
||||
var grid = $("#HoldStepAttachments").data("kendoGrid");
|
||||
grid.dataSource.read($("#holdStepID").val());
|
||||
|
||||
RefreshHoldStepGrid();
|
||||
RefreshWorkReqAttachmentsGrid();
|
||||
|
||||
}
|
||||
|
||||
|
||||
function UploadData(e)
|
||||
{
|
||||
var files = e.files;
|
||||
$.each(files, function () {
|
||||
|
||||
if (!this.extension.toLowerCase().match(/^(.doc|.docx|.ppt|.pptx|.xls|.xlsx|.xlsm|.pdf|.gif|.jpeg|.jpg|.bmp|.png|.txt|.slddrw|.sldprt)$/)) {
|
||||
alert("Only Word/PowerPoint/Excel/PDF/Image/Text files can be uploaded!")
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
e.data = {
|
||||
holdStepID: $("#holdStepID").val(),
|
||||
currentRevision: $("#currentRevision").val(),
|
||||
swrNo: $("#swrNumber").val(),
|
||||
docType: $("#HoldStepAttachDocType").data("kendoDropDownList").value(),
|
||||
comments: $("#HoldStepAttachmentComments").val()
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function RefreshHoldStepGrid()
|
||||
{
|
||||
var grid = $("#HoldSteps").data("kendoGrid");
|
||||
grid.dataSource.read($("#workRequestID").val());
|
||||
}
|
||||
|
||||
|
||||
function DownloadAttachment(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
var fileGUID = dataItem.FileGUID;
|
||||
var attachmentID = dataItem.AttachmentID;
|
||||
|
||||
window.location = '/LotTraveler/DownloadFile?fileGuid=' + fileGUID + '&swrNumber=' + "@Model.SWRNumber" + "&typeOfDoc=1";
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
@ -0,0 +1,226 @@
|
||||
@model Fab2ApprovalSystem.Models.LTHoldStep
|
||||
|
||||
@Html.HiddenFor(model => model.LTWorkRequestID, new { id = "workRequestID" })
|
||||
@Html.HiddenFor(model => model.ID, new { id = "holdStepID" })
|
||||
@Html.HiddenFor(model => model.SWRNumber, new { id = "swrNumber" })
|
||||
@Html.HiddenFor(model => model.Revision, new { id = "currentRevision" })
|
||||
@Html.HiddenFor(model => model.currentStep, new { id = "currentStep" })
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="control-group">
|
||||
<label for="DocumentType">Document Type:</label>
|
||||
<div class="controls" style="width:200px; font-size: 10px">
|
||||
<div id="ex" class="k-content">
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("HoldStepAttachDocType")
|
||||
.DataTextField("Text")
|
||||
.DataValueField("Value")
|
||||
.BindTo(new List<SelectListItem>() {
|
||||
new SelectListItem() {
|
||||
Text = "Select",
|
||||
Value = "Select"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Instructions",
|
||||
Value = "Instructions"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Traveler",
|
||||
Value = "Traveler"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Other",
|
||||
Value = "Other"
|
||||
}
|
||||
|
||||
})
|
||||
.Value("1")
|
||||
.HtmlAttributes(new { style = "width:100px;" })
|
||||
)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="control-group">
|
||||
@(Html.Kendo().Upload()
|
||||
.Name("HoldStepAttachment")
|
||||
.Async(a => a
|
||||
.Save("HoldStepAttachSaveRev", "LotTraveler")
|
||||
.AutoUpload(true)
|
||||
)
|
||||
.ShowFileList(false)
|
||||
.Events(events => events.Success("SetDocType").Upload("UploadData")
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<label for="HoldStepAttachmentComments">Comments:</label>
|
||||
<textarea class="form-control" rows="3" id="HoldStepAttachmentComments"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<!--.Save("AttachSave", "LotTraveler", new { holdStepID = Model.ID, currentRevision = Model.Revision, swrNo = Model.SWRNumber })-->
|
||||
<div class="row">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTWorkRequestAttachment>()
|
||||
.Name("HoldStepAttachments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.FileGUID).Visible(false);
|
||||
columns.Bound(a => a.LTHoldStepID).Visible(false);
|
||||
columns.Bound(a => a.FileName).Template(@<text> @Html.ActionLink(@item.FileName.ToString(), null)</text>).Width("100px");
|
||||
//.ClientTemplate("<a href='" + GlobalVars.AttachmentUrl + "LotTraveler/#=SWRNumber#/Rev#=Revision#/#=FileGUID#.#=FileExtension#' target='_blank'>#=FileName#</a>");
|
||||
columns.Bound(a => a.DocType);
|
||||
columns.Bound(a => a.UploadedByName);
|
||||
columns.Bound(a => a.UploadDateTime).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
columns.Command(c => c.Custom("View").Click("DownloadAttachment")).Width("100px"); ;
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:125; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetHoldStepAttachments", "LotTraveler", new { holdStepID = Model.ID }))
|
||||
)
|
||||
)
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var fileData;
|
||||
|
||||
$("#HoldStepAttachment").on('click', function (e) {
|
||||
|
||||
if ($("#HoldStepAttachDocType").data("kendoDropDownList").value() == "Select" ||
|
||||
$("#HoldStepAttachmentComments").val() == '') {
|
||||
|
||||
alert('Document Type and Comments both needs to filled in before uploading a a file')
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function SetDocType(e) {
|
||||
|
||||
var model = "@Session["CreateNewRevision"]";
|
||||
|
||||
if (model == "true") {
|
||||
$.ajax({
|
||||
url: '/LotTraveler/GetRevisedWrkReqIDFromHoldStepID',
|
||||
type: "GET",
|
||||
datatype: "json",
|
||||
data: { prevHoldStepID: parseInt($("#holdStepID").val()) },
|
||||
|
||||
success: function (data) {
|
||||
$("#AddHoldStepAttachmentFormRevision").modal('hide');
|
||||
var url = '@Url.Action("WorkRequestRevision", "LotTraveler", new { workRequestID = "__id__" })';
|
||||
url = url.replace('amp;', '');
|
||||
window.location.href = url.replace('__id__', parseInt(data));
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
else {
|
||||
var grid = $("#HoldStepAttachments").data("kendoGrid");
|
||||
grid.dataSource.read($("#holdStepID").val());
|
||||
|
||||
RefreshHoldStepGrid();
|
||||
RefreshWorkReqAttachmentsGrid();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function UploadData(e) {
|
||||
fileData = e;
|
||||
var files = e.files;
|
||||
$.each(files, function () {
|
||||
|
||||
if (!this.extension.toLowerCase().match(/^(.doc|.docx|.ppt|.pptx|.xls|.xlsx|.xlsm|.pdf|.gif|.jpeg|.jpg|.bmp|.png|.txt)$/)) {
|
||||
alert("Only Word/PowerPoint/Excel/PDF/Image/Text files can be uploaded!")
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
//var baseFlowLocation = $("#BaseFlowLocations").data("kendoDropDownList").value();
|
||||
//var baseFlowOperation = $("#BaseFlowOperations").data("kendoDropDownList").text();
|
||||
//var baseFlowOperDesc = $("#txtOperationDesc").val();
|
||||
//var changeInstructions = $("#ChangeInstructions").val();
|
||||
|
||||
|
||||
|
||||
//var data = ReturnModelObject();
|
||||
////data.LTHoldStep = holdStepItem;
|
||||
//data.RevisionComments = $("#revisionHoldStepComments").val();
|
||||
|
||||
e.data = {
|
||||
workRequestID: $("#workRequestID").val(),
|
||||
holdStepID: $("#holdStepID").val(),
|
||||
currentRevision: $("#currentRevision").val(),
|
||||
swrNo: $("#swrNumber").val(),
|
||||
docType: $("#HoldStepAttachDocType").data("kendoDropDownList").value(),
|
||||
revComments: $("#revisionHoldStepAttComments").val(),
|
||||
comments: $("#HoldStepAttachmentComments").val()
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function RefreshHoldStepGrid() {
|
||||
var grid = $("#HoldSteps").data("kendoGrid");
|
||||
grid.dataSource.read($("#workRequestID").val());
|
||||
}
|
||||
|
||||
function RefreshWorkReqAttachmentsGrid() {
|
||||
var grid = $("#WorkRequestAttachments").data("kendoGrid");
|
||||
grid.dataSource.read($("@Model.ID").val());
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//$("#submitHoldStepAttRevComments").on('click', function () {
|
||||
|
||||
|
||||
|
||||
// $.ajax({
|
||||
// url: '/LotTraveler/HoldStepAttachSave',
|
||||
// type: "POST",
|
||||
// contentType: "application/json; charset=utf-8",
|
||||
// data: { HoldStepAttachment: fileData, holdStepID: $("#holdStepID").val(), currentRevision: $("#currentRevision").val(), swrNo: $("#swrNumber").val(), docType: $("#docType").data("kendoDropDownList").value() },
|
||||
// //data: JSON.stringify(fileData),
|
||||
// success: function (data) {
|
||||
// $("#WinHoldStepAttRevComments").modal('hide');
|
||||
|
||||
|
||||
// }
|
||||
// })
|
||||
//})
|
||||
|
||||
function DownloadAttachment(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
var fileGUID = dataItem.FileGUID;
|
||||
var attachmentID = dataItem.AttachmentID;
|
||||
|
||||
window.location = '/LotTraveler/DownloadFile?fileGuid=' + fileGUID + '&swrNumber=' + "@Model.SWRNumber" + "&typeOfDoc=1";
|
||||
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,110 @@
|
||||
<div class="modal fade" id="ReAssignOriginator" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="myModalLabel">Re-Assign Originator From: <label class="bg-danger" id="ReAssignOriginatorFromLabel">Me</label></h4>
|
||||
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="control-group">
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
<h4 class="modal-title" id="myModalLabel">Re-Assign Originator to:</h4>
|
||||
<div id='lstReAssignOriginator'>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-7">
|
||||
<h4 class="modal-title">Comments (Required):</h4>
|
||||
<textarea class="form-control" rows="5" id="comments" style="resize: none;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
|
||||
<button type="button" class="btn btn-primary" id="ConfirmOriginatorReAssignment">Confirm Re-assignment</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$("#lnkReassignOriginator").click(function (e) {
|
||||
|
||||
if ($("#Originator").length > 0)
|
||||
$("#ReAssignOriginatorFromLabel").text($("#Originator").val());
|
||||
else
|
||||
$("#ReAssignOriginatorFromLabel").text($("#txtOriginatorName").val());
|
||||
|
||||
$("#comments").val("");
|
||||
|
||||
var dataAdapter = new $.jqx.dataAdapter({
|
||||
datatype: "json",
|
||||
datafields: [
|
||||
{ name: "UserID" },
|
||||
{ name: "FullName" }
|
||||
],
|
||||
id: 'id',
|
||||
url: "/LotTraveler/GetAllUsersList",
|
||||
});
|
||||
|
||||
$("#lstReAssignOriginator").jqxListBox({
|
||||
multipleextended: false,
|
||||
theme: "arctic",
|
||||
source: dataAdapter,
|
||||
displayMember: "FullName",
|
||||
valueMember: "UserID",
|
||||
width: 200,
|
||||
height: 200
|
||||
});
|
||||
|
||||
$("#ReAssignOriginator").modal('show');
|
||||
});
|
||||
|
||||
$('#ConfirmOriginatorReAssignment').on('click', function () {
|
||||
|
||||
if ($('#lstReAssignOriginator').jqxListBox('getSelectedItem') == null) {
|
||||
alert("You must select a new originator");
|
||||
return;
|
||||
}
|
||||
|
||||
if ($("#comments").val() == "") {
|
||||
alert("Comments are required");
|
||||
return;
|
||||
}
|
||||
|
||||
$('#ConfirmOriginatorReAssignment').attr("disabled", true);
|
||||
|
||||
$.ajax({
|
||||
url: "/LotTraveler/ReAssignOriginatorByAdmin",
|
||||
type: "POST",
|
||||
datatype: "json",
|
||||
data: {
|
||||
workRequestID: $("#LTWorkRequestID").val(),
|
||||
comments: $("#comments").val(),
|
||||
newOriginatorId: $("#lstReAssignOriginator").jqxListBox("getSelectedItem").value,
|
||||
},
|
||||
success: function (data) {
|
||||
|
||||
$("#ReAssignOriginator").modal('hide');
|
||||
|
||||
var url = '@Url.Action("Edit", "LotTraveler", new { issueID = "__id__" })';
|
||||
url = url.replace('amp;', '');
|
||||
if ($("#ReturnURL").length > 0)
|
||||
url = $("#ReturnURL").val();
|
||||
window.location.href = url.replace('__id__', $("#LTWorkRequestID").val());
|
||||
|
||||
},
|
||||
error: function (result) {
|
||||
$('#ConfirmOriginatorReAssignment').attr("disabled", false);
|
||||
alert("Server error while changing originator");
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
@ -0,0 +1,230 @@
|
||||
@model Fab2ApprovalSystem.Models.LTLotTravelerHoldSteps
|
||||
|
||||
@Html.HiddenFor(model => model.LTLotID, new { id = "LotID" })
|
||||
@Html.HiddenFor(model => model.ID, new { id = "ltHoldStepID" })
|
||||
@Html.HiddenFor(model => model.SWRNumber, new { id = "swrNumber" })
|
||||
@Html.HiddenFor(model => model.CurrentRevision, new { id = "currentRevision" })
|
||||
@Html.HiddenFor(model => model.WorkRequestID, new { id = "workRequestID" })
|
||||
@*@Html.HiddenFor(model => model.currentStep, new { id = "currentStep" })*@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-2">
|
||||
<div class="control-group">
|
||||
<label for="BaseFlow">Document Type:</label>
|
||||
<div class="controls" style="width:200px; font-size: 10px">
|
||||
<div id="ex" class="k-content">
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("docType")
|
||||
.DataTextField("Text")
|
||||
.DataValueField("Value")
|
||||
.BindTo(new List<SelectListItem>() {
|
||||
new SelectListItem() {
|
||||
Text = "Instructions",
|
||||
Value = "Instructions"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Traveler",
|
||||
Value = "Traveler"
|
||||
},
|
||||
new SelectListItem() {
|
||||
Text = "Other",
|
||||
Value = "Other"
|
||||
}
|
||||
|
||||
})
|
||||
.Value("1")
|
||||
.HtmlAttributes(new { style = "width:100px;" })
|
||||
)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="control-group">
|
||||
@(Html.Kendo().Upload()
|
||||
.Name("LotTravHoldStepAttachment")
|
||||
.Async(a => a
|
||||
.Save("LotTravHoldStepAttachSaveRev", "LotTraveler")
|
||||
.AutoUpload(true)
|
||||
)
|
||||
.ShowFileList(false)
|
||||
.Events(events => events.Success("SetDocType").Upload("UploadData")
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--.Save("AttachSave", "LotTraveler", new { ltHoldStepID = Model.ID, currentRevision = Model.Revision, swrNo = Model.SWRNumber })-->
|
||||
<div class="row">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTLotTravAttachment>()
|
||||
.Name("LTHoldStepAttachments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.ID).Visible(false);
|
||||
columns.Bound(a => a.FileGUID).Visible(false);
|
||||
columns.Bound(a => a.LTLotTravHoldStepID).Visible(false);
|
||||
columns.Bound(a => a.FileName).Template(@<text> @Html.ActionLink(@item.FileName.ToString(), null)</text>).Width("100px");
|
||||
//.ClientTemplate("<a href='" + GlobalVars.AttachmentUrl + "LotTraveler/#=SWRNumber#/Rev#=Revision#/#=FileGUID#.#=FileExtension#' target='_blank'>#=FileName#</a>");
|
||||
|
||||
columns.Bound(a => a.DocType);
|
||||
columns.Bound(a => a.UploadedByName);
|
||||
columns.Bound(a => a.UploadTime).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
columns.Command(c => c.Custom("View").Click("DownloadAttachment")).Width("100px");
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:125; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetLTHoldStepAttachments", "LotTraveler", new { ltHoldStepID = Model.ID }))
|
||||
)
|
||||
)
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
var fileData;
|
||||
function SetDocType(e) {
|
||||
|
||||
//alert(newSession);
|
||||
if (newSession) {
|
||||
newSession = false;
|
||||
|
||||
grid = $("#HoldSteps").data("kendoGrid");
|
||||
grid.dataSource.read($("#LotID").val());
|
||||
|
||||
$("#AddLTHoldStepAttachmentFormRevision").modal('hide');
|
||||
|
||||
// update the header and the Revision
|
||||
var urlString = '/LotTraveler/GetLotTravelerHeader'
|
||||
$.ajax({
|
||||
type: "Post",
|
||||
url: urlString,
|
||||
type: "GET",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
data: { ltLotID: $("#LotID").val() },
|
||||
success: function (data) {
|
||||
// update the header and the Revision
|
||||
//alert(data.LastUpdate);
|
||||
$("#txtUpdatedBy").val(data.LastUpdatedBy);
|
||||
$("#txtLastUpdate").val((formatJSONDate(data.LastUpdate)))
|
||||
$("#RevNumber").text("Fab2 Electronic Lot Traveler - Lot#" + data.LotNumber + " Rev " + data.LotTravCurrentRevision)
|
||||
$("#RevNumber").css("color", "blue");
|
||||
|
||||
|
||||
var url = "/LotTraveler/GetLotTravRevisions";
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "GET",
|
||||
datatype: "json",
|
||||
data: {
|
||||
ltLotID: $("#LotID").val()
|
||||
},
|
||||
success: function (data) {
|
||||
$("#Revisions").data("kendoDropDownList").dataSource.data(data);
|
||||
|
||||
},
|
||||
error: function (result) {
|
||||
alert("Failed " + result);
|
||||
}
|
||||
});
|
||||
},
|
||||
error: function (result) {
|
||||
alert("Failed " + result);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
var grid = $("#LTHoldStepAttachments").data("kendoGrid");
|
||||
grid.dataSource.read($("#ltHoldStepID").val());
|
||||
|
||||
grid = $("#HoldSteps").data("kendoGrid");
|
||||
grid.dataSource.read($("#workRequestID").val());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function UploadData(e) {
|
||||
fileData = e;
|
||||
var files = e.files;
|
||||
$.each(files, function () {
|
||||
|
||||
if (!this.extension.toLowerCase().match(/^(.doc|.docx|.ppt|.pptx|.xls|.xlsx|.xlsm|.pdf|.gif|.jpeg|.jpg|.bmp|.png|.txt)$/)) {
|
||||
alert("Only Word/PowerPoint/Excel/PDF/Image/Text files can be uploaded!")
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
e.data = {
|
||||
// workRequestID: $("#workRequestID").val(),
|
||||
ltHoldStepID: $("#ltHoldStepID").val(),
|
||||
currentWRRevision: $("#currentRevision").val(),
|
||||
swrNo: $("#swrNumber").val(),
|
||||
docType: $("#docType").data("kendoDropDownList").value(),
|
||||
revComments: $("#revisionHoldStepAttComments").val()
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function RefreshHoldStepGrid() {
|
||||
var grid = $("#HoldSteps").data("kendoGrid");
|
||||
grid.dataSource.read($("#ltHoldStepID").val());
|
||||
}
|
||||
|
||||
@*function RefreshWorkReqAttachmentsGrid() {
|
||||
var grid = $("#WorkRequestAttachments").data("kendoGrid");
|
||||
grid.dataSource.read($("@Model.ID").val());
|
||||
|
||||
|
||||
}*@
|
||||
|
||||
|
||||
function DownloadAttachment(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
var fileGUID = dataItem.FileGUID;
|
||||
var attachmentID = dataItem.AttachmentID;
|
||||
|
||||
window.location = '/LotTraveler/DownloadFile?fileGuid=' + fileGUID + '&swrNumber=' + "@Model.SWRNumber" + "&typeOfDoc=1";
|
||||
|
||||
}
|
||||
|
||||
|
||||
//$("#submitHoldStepAttRevComments").on('click', function () {
|
||||
|
||||
|
||||
|
||||
// $.ajax({
|
||||
// url: '/LotTraveler/HoldStepAttachSave',
|
||||
// type: "POST",
|
||||
// contentType: "application/json; charset=utf-8",
|
||||
// data: { HoldStepAttachment: fileData, ltHoldStepID: $("#ltHoldStepID").val(), currentRevision: $("#currentRevision").val(), swrNo: $("#swrNumber").val(), docType: $("#docType").data("kendoDropDownList").value() },
|
||||
// //data: JSON.stringify(fileData),
|
||||
// success: function (data) {
|
||||
// $("#WinHoldStepAttRevComments").modal('hide');
|
||||
|
||||
|
||||
// }
|
||||
// })
|
||||
//})
|
||||
|
||||
</script>
|
@ -0,0 +1,61 @@
|
||||
|
||||
@{
|
||||
ViewBag.Title = "_LotTravelerLayout";
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>@ViewBag.Title - Fab2Approval</title>
|
||||
@Scripts.Render("~/bundles/jquery")
|
||||
@Scripts.Render("~/bundles/kendo")
|
||||
@Styles.Render("~/Content/kendo/css")
|
||||
@Styles.Render("~/Content/css")
|
||||
|
||||
@Scripts.Render("~/Content/jqw/jq")
|
||||
@Styles.Render("~/Content/jqw/css")
|
||||
|
||||
@Scripts.Render("~/bundles/modernizr")
|
||||
@Scripts.Render("~/bundles/bootstrap")
|
||||
|
||||
|
||||
</head>
|
||||
<body class="navbar-inner">
|
||||
<div class=" navbar navbar-inverse navbar-fixed-top">
|
||||
<div>
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
@*@Html.ActionLink("My Tasks", "Index", "Home", new { tabName = "MyTasks" }, new { @class = "navbar-brand" })
|
||||
@Html.ActionLink("All Tasks", "Index", "Home", new { tabName = "AllTasks" }, new { @class = "navbar-brand" })*@
|
||||
@Html.ActionLink("My Tasks", "MyTasks", "Home", null, new { @class = "navbar-brand" })
|
||||
@Html.ActionLink("All Documents", "AllDocuments", "Home", null, new { @class = "navbar-brand" })
|
||||
@Html.ActionLink("Special Work Request", "SpecialWorkRequestList", "Home",null, new { @class = "navbar-brand" })
|
||||
</div>
|
||||
|
||||
<div class="navbar-collapse collapse">
|
||||
@Html.Partial("_LoginPartial")
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
@RenderBody()
|
||||
@*<hr />*@
|
||||
<footer>
|
||||
<p>© @DateTime.Now.Year - Infineon Technologies</p>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@RenderSection("scripts", required: false)
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
Reference in New Issue
Block a user