Mike Phares b586da5c82 Removed PdfViewController, HtmlViewRenderer and FakeView to be replaced with ViewEngineResult Render method
Added HttpException class for missing HttpException for net8

Wrapped HttpContext.Session, GetJsonResult, IsAjaxRequest and GetUserIdentityName in controllers for net8

Added AuthenticationService to test Fab2ApprovalMKLink code for net8

Compile conditionally flags to debug in dotnet core
2025-05-23 12:27:09 -07:00

1965 lines
81 KiB
Plaintext

@model Fab2ApprovalSystem.Models.LTWorkRequest
@{
ViewBag.Title = "Work Request - ReadOnly";
}
@{
Layout = "_LotTravelerLayout.cshtml";
}
<link rel="stylesheet" href="/Content/kendo/kendo.blueopal.min.css" />
<style>
#loading-div-background {
display: none;
position: fixed;
top: 0;
left: 0;
background: #9fc2e1;
width: 100%;
height: 100%;
}
#loading-div {
width: 300px;
height: 150px;
background-color: #70b1eb;
border: 5px solid #1468b3;
text-align: center;
color: #202020;
position: absolute;
left: 50%;
top: 50%;
margin-left: -150px;
margin-top: -100px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
behavior: url("/css/pie/PIE.htc"); /* HANDLES IE */
}
table {
border-spacing: 2px;
padding: 3px;
border-color: white;
}
td {
border-color: white;
padding: 4px;
}
</style>
@using (Html.BeginForm())
{
<input type="hidden" id="LTWorkRequestID" value="@Model.ID" />
<input type="hidden" id="DefaultEPISiliconPartNumber" value="@Model.DefaultEPISiliconPartNumber" />
@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-4">
<div class="row">
<div class="col-sm-12">
<font style="color:crimson">
<h4>
Fab2 Special Work Request <font style="color: green; font-weight:bold; font-style:italic">Rev @Model.Revision</font>
</h4>
</font>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="row">
<div class="col-sm-12">
<font style="color:crimson">
@if ((@Model.CurrentStep >= 0 && @Model.CurrentStep <= 2) || (@Model.CurrentStep == 3 && @Model.CloseDate == null))
{
if (Model.RecordLockByName == null)
{
<h4>
<font style="color:red">
Mode: [Readonly]
</font>
</h4>
}
else
{
<h4>
<font style="color:red">
Mode: [Readonly] - Locked for Editing by <font style="color: green; font-weight:bold; font-style:italic">@Model.RecordLockByName</font>
</font>
</h4>
}
}
</font>
</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="PrintWorkRequestPDF" style="font-size: 10px;" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<label class="control-label">Revisions:</label>
@(Html.Kendo().DropDownList()
.Name("Revisions")
.BindTo(new SelectList(ViewBag.WorkReqRevisionList, "ID", "RevisionNumber"))
.OptionLabel("Select")
)
<input type="button" value="Display" class="btn btn-warning btn-xs" id="GetRevision" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="Approval Log History" class="btn btn-warning btn-xs" id="ApprovalLogHistoryData" />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="button" value="Revision History" class="btn btn-warning btn-xs" id="RevisionHistoryData" />
</div>
</div>
</div>
</div>
<div class="panel panel-default" style="font-size: 10px">
<div class="panel-body bg-info">
<h5>
<font style="color:crimson; font-weight:bold">
Section1: Work Request <font style="color:green; font-weight:bold"> [SWR #:@Model.SWRNumber] [Title:@Model.Title] [Orginator:@Model.OriginatorName] </font>
</font>
<a class="btn btn-xs pull-right alert-danger" id="aSection1" role="button" data-toggle="collapse" href="#collapseSection1" aria-expanded="false" aria-controls="collapseSection1">
Expand
</a>
</h5>
</div>
<div class="collapse" id="collapseSection1">
<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 { id = "txtSWRNumber", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
</div>
</div>
</div>
<div class="col-sm-6">
<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 { id = "txtTitle", @class = "k-textbox", Readonly = "Readonly", style = "width:100%" })
</div>
</div>
</div>
<div class="col-sm-4">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">Submit Date:</label>
</div>
<div class="col-sm-9">
@Html.TextBoxFor(model => model.SubmitedDate, new { id = "txtSubmitDate", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
</div>
</div>
</div>
</div>
<div class="row">
<!--NEW 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.OriginatorName, new { id = "txtOriginatorName", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
@if (GlobalVars.IsAdminValueNotNull(Session))
{
<a href="javascript:undefined" id="lnkReassignOriginator" class="linkbutton edit" title="Re-assign Originator"></a>
}
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">Affected Departments:</label>
</div>
<div class="col-sm-9">
@(Html.Kendo().MultiSelectFor(m => m.DepartmentIDs)
.HtmlAttributes(new { Readonly = "Readonly" })
.Name("DepartmentIDs")
.BindTo(new SelectList(ViewBag.Departments, "DepartmentID", "DepartmentName"))
.Value(ViewBag.Nothing)
)
</div>
</div>
</div>
<div class="col-sm-4">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">Affected Modules:</label>
</div>
<div class="col-sm-9">
@(Html.Kendo().MultiSelect()
.HtmlAttributes(new { Readonly = "Readonly" })
.Name("ModuleIDs")
.BindTo(new SelectList(ViewBag.AffectedModules, "ModuleID", "ModuleName"))
.Value(ViewBag.Nothing)
)
</div>
</div>
</div>
</div>
<div class="row">
<!--NEW ROW=========================================================================================================================================================-->
<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.ApprovalStatus, new { id = "txtStatus", @class = "k-textbox", Readonly = "Readonly", style = "background-color:lightblue" })
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">Lot Type:</label>
</div>
<div class="col-sm-3">
@(Html.Kendo().DropDownList()
.Name("LotType")
.HtmlAttributes(new { Readonly = "Readonly" })
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>()
{
new SelectListItem()
{
Text = "Select",
Value = "Select"
},
new SelectListItem()
{
Text = "E",
Value = "E"
},
new SelectListItem()
{
Text = "P" ,
Value = "P"
}
}
)
)
</div>
<div class="col-sm-3">
<label class="control-label pull-right">ITAR:</label>
</div>
<div class="col-sm-3">
@Html.CheckBoxFor(model => model.IsITAR, new { @disabled = "disabled" })
</div>
</div>
</div>
<div class="col-sm-4">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">PCRB#:</label>
</div>
<div class="col-sm-9">
@Html.TextBoxFor(model => model.PCRBNumber, new { id = "txtPCRBNumber", @class = "k-textbox", Readonly = "Readonly" })
</div>
</div>
</div>
</div>
<div class="row">
<!--NEW ROW=========================================================================================================================================================-->
<div class="col-sm-2">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">Eng Lot Start Req:</label>
</div>
<div class="col-sm-9">
@(Html.Kendo().DropDownList()
.Name("EngLotStartRequired")
.HtmlAttributes(new { Readonly = "Readonly" })
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>()
{
new SelectListItem()
{
Text = "Select",
Value = "-1"
},
new SelectListItem()
{
Text = "Yes",
Value = "1"
},
new SelectListItem()
{
Text = "No",
Value = "0"
}
}
)
.Value(Model.EngLotStartRequired.ToString())
)
</div>
</div>
</div>
<div class="col-sm-6">
<div class="row">
<div class="col-sm-3">
<label class="control-label pull-right">Lot Type Conversion:</label>
</div>
<div class="col-sm-3">
@(Html.Kendo().DropDownList()
.Name("LotTypeConversion")
.HtmlAttributes(new { Readonly = "Readonly" })
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>()
{
new SelectListItem()
{
Text = "Select",
Value = "-1"
},
new SelectListItem()
{
Text = "Yes",
Value = "1"
},
new SelectListItem()
{
Text = "No",
Value = "0"
}
}
)
.Value(Model.LotTypeConversion.ToString())
)
</div>
<div class="col-sm-3">
<label class="control-label pull-right">Qual Lot:</label>
</div>
<div class="col-sm-3">
@(Html.Kendo().DropDownList()
.Name("QualLot")
.HtmlAttributes(new { Readonly = "Readonly" })
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>()
{
new SelectListItem()
{
Text = "Select",
Value = "-1"
},
new SelectListItem()
{
Text = "Yes",
Value = "1"
},
new SelectListItem()
{
Text = "No",
Value = "0"
}
}
)
.Value(Model.QualLot.ToString())
)
</div>
</div>
</div>
</div>
</div>
<div class="panel-body bg-warning">
<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, 15, 100, new { id = "txtPurposeOfRequest", @class = "k-textbox", style = "font-size: 11px; width: 100%", Readonly = "Readonly" })
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default" style="font-size: 10px" id="Sec1A">
<!-- NEW PANEL ===============================================================-->
<div class="panel-body bg-info">
<h5>
<font style="color: crimson; font-weight: bold">
Section1-A: Engineering Wafer Lot Start
</font>
<a class="btn btn-xs pull-right alert-danger" id="aSection1A" role="button" data-toggle="collapse" href="#collapseSection1A" aria-expanded="false" aria-controls="collapseSection1A">
Expand
</a>
</h5>
</div>
<div class="collapse" id="collapseSection1A">
<div class="panel-body bg-warning">
<div class="row">
<div class="col-sm-2">
<div class="col-sm-5">
<label class="control-label pull-right">Start Date:</label>
</div>
<div class="col-sm-7">
@(Html.Kendo().DateTimePickerFor(model => model.PlannedLotStartDate)
.Name("txtPlannedLotStartDate")
.HtmlAttributes(new { Readonly = "Readonly" })
)
</div>
</div>
<div class="col-sm-2">
<div class="col-sm-5">
<label class="control-label pull-right">Sch. Close Date:</label>
</div>
<div class="col-sm-7">
@(Html.Kendo().DateTimePickerFor(model => model.PlannedScheduledCloseDate)
.Name("txtPlannedScheduledCloseDate")
.HtmlAttributes(new { Readonly = "Readonly" })
)
</div>
</div>
<div class="col-sm-2">
<div class="col-sm-5">
<label class="control-label pull-right">Lot Start Charge Dept:</label>
</div>
<div class="col-sm-7">
@Html.TextBoxFor(model => model.ChargeDepartment, new { id = "txtChargeDepartment", @class = "k-textbox", Readonly = "Readonly" })
</div>
</div>
<div class="col-sm-2">
<div class="col-sm-5">
<label class="control-label pull-right">Allocation to use:</label>
</div>
<div class="col-sm-7">
@Html.TextBoxFor(model => model.AllocationToUse, new { id = "txtAllocationToUse", @class = "k-textbox", Readonly = "Readonly" })
</div>
</div>
<div class="col-sm-2">
<div class="col-sm-5">
<label class="control-label pull-right">Predicted Cycle Time:</label>
</div>
<div class="col-sm-7">
@Html.TextBoxFor(model => model.PredictedCyleTime, new { id = "txtPredictedCyleTime", @class = "k-textbox", Readonly = "Readonly" })
</div>
</div>
<div class="col-sm-2">
<div class="col-sm-5">
<label class="control-label pull-right">Total Qty:</label>
</div>
<div class="col-sm-7">
@Html.TextBoxFor(model => model.TotalQty, new { id = "txtTotalQty", @class = "k-textbox" })
</div>
</div>
</div>
</div>
<div>
<div class="row">
<div class="col-sm-12">
@(Html.Kendo().Grid<Fab2ApprovalSystem.ViewModels.LTMaterialViewModel>()
.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))
)
</div>
</div>
</div>
<table class="table-condensed" style="width:100%">
<tbody>
<tr>
<td valign="top" width="50%">
<table border="1" width="100%" height="100%" style="font-size:9px">
<tr style="background-color: lightgray; font-weight:bold; font-size:11px">
<td colspan="7" bgcolor="e5e0e0">
Lot Start Check List
</td>
</tr>
<tr>
<td bgcolor="e5e0e0" width="25%">
OnHand/Existing
</td>
<td width="25%">
Silicon
@Html.EditorFor(model => model.SiliconOnHand)
</td>
<td width="25%">
Reticle Set
@Html.EditorFor(model => model.ReticleOnHand)
</td>
<td width="25%">
SPN transfer
@Html.EditorFor(model => model.SPNTransferOnHand)
</td>
</tr>
<tr>
<td bgcolor="e5e0e0" width="25%"></td>
<td width="25%">
Probe Card
@Html.EditorFor(model => model.ProbeCardOnHand)
</td>
<td width="25%">
Probe Recipe
@Html.EditorFor(model => model.ProbeRecipeOnHand)
</td>
<td width="25%">
Process Change Details
@Html.EditorFor(model => model.ProcessChangeDetailsOnHand)
</td>
</tr>
<tr>
<td>
<label class="control-label pull-right">Comments</label>
</td>
<td colspan="6">
@Html.TextAreaFor(model => model.LotStartCheckListComments, 14, 100, new { id = "txtLotStartCheckListComments", @class = "k-textbox", style = "font-size: 11px; width: 100%", ReadOnly = "ReadOnly" })
</td>
</tr>
</table>
</td>
<td valign="top" width="50%">
<table border="1" width="100%" height="100%" style="border-color:lightgrey; font-size:9px">
<tr style="background-color: lightgray; font-weight:bold; font-size:11px">
<td colspan="4" bgcolor="e5e0e0">
Lot Start in SPN
</td>
</tr>
<tr>
<td bgcolor="#e5e0e0" width="15%">
SIGNON
</td>
<td width="30%">
SURP
</td>
<td bgcolor="#e5e0e0" width="15%">
WIP AREA
</td>
<td width="30%">
@Model.WIPArea
</td>
</tr>
<tr>
<td bgcolor="#e5e0e0">
VERB
</td>
<td>
START
</td>
<td bgcolor="#e5e0e0">
Start Date
</td>
<td>
@Model.PlannedLotStartDate
</td>
</tr>
<tr>
<td bgcolor="#e5e0e0">
WIP Lot#
</td>
<td>
@Model.LotNumber
</td>
<td bgcolor="#e5e0e0">
WIP PN#
</td>
<td>
@Model.WIPPartNumber - @Model.PartDescription
</td>
</tr>
<tr>
<td bgcolor="#e5e0e0">
Type
</td>
<td>
@Model.LotType
</td>
<td bgcolor="#e5e0e0">
Process Flow
</td>
<td>
@Model.ProcessFlow
</td>
</tr>
<tr>
<td bgcolor="#e5e0e0">
Start Qty
</td>
<td>
@Model.StartQty
</td>
<td bgcolor="#e5e0e0">
Qual Lot
</td>
<td>
@(Model.QualLot == 1 ? "Y" : "")
</td>
</tr>
<tr>
<td bgcolor="#e5e0e0">
VERB
</td>
<td bgcolor="#e5e0e0">
COMMENT
</td>
<td colspan="2">
@Html.TextAreaFor(model => model.VerbComment, 3, 100, new { id = "txtVerbComment", @class = "k-textbox", style = "font-size: 11px; width: 100%", ReadOnly = "ReadOnly" })
</td>
</tr>
<tr>
<td bgcolor="e5e0e0" colspan="3">
Record Silicon Lot #s in SPN and tape tags to Traveler
</td>
<td>
@(Model.RecordSiliconLotInSPNTapeTagTotrav == 1 ? "Yes" : "No")
</td>
</tr>
<tr>
<td colspan="2" bgcolor="e5e0e0">
Silicon Lot#s: Cassette 1
</td>
<td colspan="2">
@Html.TextAreaFor(model => model.SiliconLotNoCassette1, 3, 100, new { id = "txtSiliconLotNoCassette1", @class = "k-textbox", style = "font-size: 11px; width: 100%", ReadOnly = "ReadOnly" })
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<div class="panel-body bg-warning">
<div class="row">
<div class="col-sm-12" >
</div>
</div>
</div>
<div class="panel-body bg-warning">
</div>
</div>
/**/
if (Model.LotCount == 0)
{
<div class="panel panel-default" style="font-size: 10px" id="Sec2">
<!-- NEW PANEL ===============================================================-->
<div class="panel-body bg-info">
<h5>
<font style="color:crimson; font-weight:bold">
Section2: OLHOLD and Engineering Deviation Specified by Originator
</font>
<a class="btn btn-xs pull-right alert-danger" id="aSection2" role="button" data-toggle="collapse" href="#collapseSection2" aria-expanded="false" aria-controls="collapseExample">
Expand
</a>
</h5>
</div>
<div class="collapse" id="collapseSection2">
<div class="panel-body bg-warning">
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTHoldStep>()
.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))
)
</div>
</div>
</div>
}
<div class="panel panel-default" style="font-size: 10px">
<div class="panel-body bg-info">
<h5>
<font style="color:crimson; font-weight:bold">
Section3: Document Attachment
</font>
<a class="btn btn-xs pull-right alert-danger" id="aSection3" role="button" data-toggle="collapse" href="#collapseSection3" aria-expanded="false" aria-controls="collapseExample">
Expand
</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.LTWorkRequestAttachment>()
.Name("WorkRequestAttachments")
.Columns(columns =>
{
columns.Bound(a => a.ID).Visible(false);
columns.Bound(a => a.FileGUID).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).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 }))
)
)
</div>
</div>
</div>
<div class="panel panel-default" style="font-size: 10px">
<div class="panel-body bg-info">
<h5>
<font style="color:crimson; font-weight:bold">
Section4: Approvals
</font>
<a class="btn btn-xs pull-right alert-danger" id="aSection4" role="button" data-toggle="collapse" href="#collapseSection4" aria-expanded="false" aria-controls="collapseExample">
Expand
</a>
</h5>
</div>
<div class="collapse" id="collapseSection4">
<div class="panel-body bg-warning">
@(Html.Kendo().Grid<Fab2ApprovalSystem.ViewModels.ApproversListViewModel>()
.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))
)
</div>
</div>
</div>
if (@Model.CloseDate != null)
{
<div class="panel panel-default" style="font-size: 10px">
<div class="panel-body bg-info">
<h5>
<font style="color:crimson; font-weight:bold">
Section5: Lot
</font>
<a class="btn btn-xs pull-right alert-danger" id="aSection5" role="button" data-toggle="collapse" href="#collapseSection5" aria-expanded="false" aria-controls="collapseExample">
Collapse
</a>
</h5>
</div>
<div class="collapse" id="collapseSection5">
<div class="panel-heading">
<table cellspacing="50" cellpadding="50" border="0" width="100%">
<tr>
<td width="10%">
<ul>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" style="font-size: 12px">Lot Options<b class="caret"></b></a>
<ul class="dropdown-menu" style="font-size: 11px">
<li><a href="#" id="showLotSearchFormButton">Search Lots</a></li>
@*<li><a href="#" id="lotAddFormButton">Add Lot</a></li>*@
</ul>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="panel-body bg-warning">
<div class="col-sm-offset-0">
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.LTLot>()
.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(@<text> @Html.ActionLink(@item.LotNumber.ToString(), null)</text>)
.ClientTemplate("<a href='http://" + GlobalVars.WSR_URL + "/user/wsr2/wsr_lot.php?lot=#=LotNumber#' target='_blank'>View</a>").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))
)
</div>
</div>
</div>
</div>
}
}
<div class="modal fade" id="LotSearchForm" tabindex="0" 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">&times;</button>
<h4 class="modal-title" id="myModalLabel">Lot Search</h4>
</div>
<div class="modal-body ">
<div class="row">
<div class="col-sm-12">
<div class="controls">
<label for="Category">Search By:</label>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
<div class="control-group">
<div class="controls">
<div id="example" class="k-content">
@(Html.Kendo().DropDownList()
.Name("LotCriteria")
.DataTextField("Text")
.DataValueField("Value")
//.Events(e => e.Change("change"))
.BindTo(new List<SelectListItem>() {
new SelectListItem() {
Text = "Lot/DieLotNumber",
Value = "LotNo"
},
new SelectListItem() {
Text = "Location",
Value = "Location"
}
//,new SelectListItem() {
// Text = "Gen",
// Value = "Gen"
//}
})
.Value("1")
)
</div>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="control-group">
<div class="controls">
@Html.TextBox("txtSearch", null, new { @class = "k-textbox" })
</div>
</div>
</div>
<div class="col-sm-4">
<div class="control-group">
<div class="controls">
<input style="margin-top: 5px;" type="button" id='jqxButtonSearchLots' value="Search Lots" />
</div>
</div>
</div>
</div>
<br />
<div class="row">
<div class="col-sm-5">
<div class="control-group">
<div class="controls">
<select multiple id="lstLots" style="height: 250px; width: 200px; font-family: Tahoma; border-color: lightgrey" class="jqx-combobox-multi-item"></select>
<div>
<input style="margin-top: 20px;" type="button" id='jqxButtonAddLots' value="Add Lots" />
</div>
</div>
</div>
</div>
<div class="col-sm-7">
<div class="control-group">
<div class="controls">
<div id='lstSelectedLots' style="height:250px; width:200px; font-family:Tahoma; border-color:lightgrey">
</div>
<div>
<input style="margin-top: 20px;" type="button" id='jqxButtonRemoveLots' value="Remove Lots" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="submitSelectLot">Save changes</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="ApprovalLogHistoryWin" 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">Approval Log History</h4>
</div>
<div class="modal-body">
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.ApprovalLogHistory>()
.Name("ApprovalLogHistory")
.Columns(columns =>
{
columns.Bound(a => a.ApprovalLogID).Visible(false);
columns.Bound(a => a.FullName);
columns.Bound(a => a.SubRole);
columns.Bound(a => a.Operation);
columns.Bound(a => a.OperationTime).Format("{0:MM/dd/yy hh:mm:ss}");
})
.Sortable()
.Scrollable()
.HtmlAttributes(new { style = "width:100%; font-size: 10px" })
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Model(model =>
{
model.Id(p => p.ApprovalLogID);
})
.PageSize(50)
.Read(read => read.Action("ApprovalLogHistory_Read", "LotTraveler", new { swrNUmber = Model.SWRNumber }))
)
)
</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="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 = "width:100%; font-size: 10px" })
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Model(model =>
{
model.Id(p => p.ID);
})
.PageSize(50)
.Read(read => read.Action("GetWorkRequestRevisionHistory", "LotTraveler", new { swrNUmber = Model.SWRNumber }))
)
)
</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">&times;</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.ID, currentRevision = Model.Revision, swrNo = Model.SWRNumber })
.AutoUpload(true)
)
.Events(events => events.Success("RefreshWorkReqAttachmentsGrid").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>
<div id="loading-div-background">
<div id="loading-div" class="ui-corner-all">
<img style="height:30px;margin:30px;" src="~/Content/Images/Loading.gif" alt="Creating Traveler, Please Wait...." />
<h4 style="color:crimson;font-weight:bold;">Creating Traveler, Please Wait....</h4>
</div>
</div>
@*<div class="modal fade modal-vertical-centered" id="loading-div-background" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog" style="width: 200px; height: 200px">
<div class="modal-content">
<div class="modal-header">
<h4 style="color:crimson;font-weight:bold;">Creating Traveler, Please Wait....</h4>
</div>
<div class="modal-body">
<img style="height:30px;margin:30px;" src="~/Content/Images/Loading.gif" alt="Creating Traveler, Please Wait...." />
</div>
</div>
</div>
</div>*@
@Html.Partial("_LTReassignOriginator")
<script type="text/javascript">
var holdStepFunction = ""
var holdStepID;
var docType = 6;
var partNumberDropDownCreated = 0;
$(document).ready(function () {
$('#collapseSection5').collapse({
toggle: true
})
displayEmptySelectedLotsList();
$("#loading-div-background").css({ opacity: 0.8 });
$("#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();
}
});
})
$("#aSection1").on('click', function () {
var element = document.getElementById("aSection1");
if (element.innerHTML.trim() == "Collapse")
element.innerHTML = "Expand";
else
element.innerHTML = "Collapse";
})
$("#aSection1A").on('click', function () {
var element = document.getElementById("aSection1A");
if (element.innerHTML.trim() == "Collapse")
element.innerHTML = "Expand";
else
element.innerHTML = "Collapse";
})
$("#aSection2").on('click', function () {
var element = document.getElementById("aSection2");
if (element.innerHTML.trim() == "Collapse")
element.innerHTML = "Expand";
else
element.innerHTML = "Collapse";
})
$("#aSection3").on('click', function () {
var element = document.getElementById("aSection3");
if (element.innerHTML.trim() == "Collapse")
element.innerHTML = "Expand";
else
element.innerHTML = "Collapse";
})
$("#aSection4").on('click', function () {
var element = document.getElementById("aSection4");
if (element.innerHTML.trim() == "Collapse")
element.innerHTML = "Expand";
else
element.innerHTML = "Collapse";
})
$("#aSection5").on('click', function () {
var element = document.getElementById("aSection5");
if (element.innerHTML.trim() == "Collapse")
element.innerHTML = "Expand";
else
element.innerHTML = "Collapse";
})
function RefreshStartQtyData() {
var vgrid = $("#MaterialList").data("kendoGrid");
//Getting grid items
var totalQty = 0;
var items = vgrid.dataSource.data();
for (i = 0; i < items.length; i++) {
var item = items[i];
totalQty = totalQty + item.Quantity;
}
$("#txtStartQty").val(totalQty);
}
$("#GetRevision").on('click', function () {
var id = $("#Revisions").data("kendoDropDownList").value();
$.ajax({
url: "/LotTraveler/GetWorkRequestRevision",
type: "GET",
datatype: "json",
data: {
workRequestID: id
},
success: function (data) {
var url = '@Url.Action("Edit", "LotTraveler", new { issueID = "__id__" })';
url = url.replace('amp;', '');
window.location.href = url.replace('__id__', id);
},
error: function (result) {
alert("Failed " + result);
}
});
})
function CheckWIPPartNumber(e) {
//if ($("#txtWIPPartNumber").val().length == 0) {
// alert("Please enter the WIP PartNumber before adding a hold step");
// return false;
//}
}
function buildLinks(fileNames, swrNumber, revision) {
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=1" + "'>" + fileName + "</a><BR>" + " ";
}
}
return template;
}
$("#showLotSearchFormButton").on('click', function () {
//$("#lstSearchedLots").jqxListBox('clear');
clearSourceLotsListBox();
$("#lstSelectedLots").jqxListBox('clear');
$('#txtSearch').val('');
$("#LotSearchForm").modal('show');
return false;
})
var clearSourceLotsListBox = function () {
$('#lstLots').each(function () {
this.options.length = 0;
$(this)[0].options.length = 0;
});
}
$("#jqxButtonSearchLots").on('click', function displayLots() {
var searchText = ($("#txtSearch").val());
var searchBy = $("#LotCriteria").data("kendoDropDownList").value();
var url = "/LotTraveler/SearchLots";
$.ajax({
url: url,
type: "GET",
datatype: "json",
data: {
searchText: searchText,
searchBy: searchBy
},
success: function (data) {
clearSourceLotsListBox();
$.each(data, function (index, value) {
$('#lstLots').append($('<option>').text(value).val(index));
});
},
error: function (result) {
alert("Failed " + result);
}
});
});
$("#submitSelectLot").on('click', function () {
var lots;
var templot;
var currLot = "@Model.LotNumber";
var invalidLot = false;
var items = $("#lstSelectedLots").jqxListBox('getItems');
if (items != undefined) {
for (var x = 0; x < items.length; x++) {
//check if the selected lot number is a child of the Mother Lot
templot = items[x].value;
//alert(templot.substring(0, 7) + ' - ' + currLot.substring(0, 7));
if (templot.substring(0, 7) != currLot.substring(0, 7)) {
invalidLot = true;
}
else {
if (lots == undefined)
lots = templot;
else
lots += "~" + templot;
}
};
if (invalidLot)
{
alert("Some or All of the selected lots did not belong to the Mother lot, hence were not added")
}
if (lots != undefined) {
$.ajax({
url: "/LotTraveler/AddLots",
type: "GET",
datatype: "json",
data: {
workRequestID: '@Model.ID',
lotNumbers: lots
},
success: function (data) {
if (data.LotList != null) {
alert('The following Lot Numbers ' + data.LotList + ' cannot be added as they are already present in the list');
}
var grid = $("#Lots").data("kendoGrid");
grid.dataSource.read('@Model.ID');
$("#LotSearchForm").modal('hide');
},
error: function (result) {
alert("Failed " + result);
}
});
}
else
$("#LotSearchForm").modal('hide');
}
return false;
});
function displayEmptySelectedLotsList() {
var source =
{
datatype: "json",
datafields: [
{ name: 'LotNo' }
],
id: 'id'
};
var dataAdapter = new $.jqx.dataAdapter(source);
// Create a jqxListBox
$("#lstSelectedLots").jqxListBox({
multipleextended: true, theme: "arctic", source: dataAdapter, displayMember: "LotNo", valueMember: "LotNo", width: 200, height: 250
});
}
$('#jqxButtonAddLots').on('click', function () {
// get selected items.
var bfound = false;
var lots;
var selected = $('#lstLots option:selected');
var selectedIndices = []; // create an empty array
$.each($('#lstLots option:selected'), function (index, value) { // loop over each option
//selectedIndices.push(index); // add the index to the array
//alert(value.text);
var tempvalue = value.text;
var templabel = value.text;
var itemsAdded = $("#lstSelectedLots").jqxListBox('getItems');
if (itemsAdded != undefined) {
for (var x = 0; x < itemsAdded.length; x++) {
if (itemsAdded[x].label == templabel) {
bfound = true;
break;
};
};
if (!bfound) {
$("#lstSelectedLots").jqxListBox('addItem', { label: tempvalue, value: tempvalue });
if (lots == null)
lots = tempvalue;
else
lots += "~" + tempvalue;
}
bfound = false;
}
else {
$("#lstSelectedLots").jqxListBox('addItem', { label: tempvalue, value: tempvalue });
}
});
});
$('#jqxButtonRemoveLots').on('click', function () {
// get items.
var userids;
var items = $("#lstSelectedLots").jqxListBox('getSelectedItems');
if (items != undefined) {
for (var i = items.length - 1; i >= 0; i--) {
$("#lstSelectedLots").jqxListBox('removeItem', items[i].value);
};
}
});
function RefreshWorkReqAttachmentsGrid() {
var grid = $("#WorkRequestAttachments").data("kendoGrid");
grid.dataSource.read($("@Model.ID").val());
//RefreshHoldStepGrid();
}
function buildUpdateCreateButtons(data) {
//alert(approvalid + ' ');
var ltLotID;
var workRequestID;
var travelerGenerated;
var status;
var temp = data.split('~');
travelerGenerated = temp[0];
ltLotID = temp[1];
workRequestID = temp[2];
status = temp[3];
travelerstatus = temp[4];
var template = "";
//if (travelerstatus == 'Closed')
//{
// template += '<input type="button" value="View Traveler" class="btn btn-warning btn-xs" id="ViewTravlerID" onclick="ViewTraveler(\'' + ltLotID + '\')" style="font-size: 10px;"/>';
//}
//else if (travelerGenerated == 'True') {
if (travelerGenerated == 'True') {
if (travelerstatus != 'Closed')
template += '<input type="button" value="Update Traveler" class="btn btn-warning btn-xs" id="UpdateTravlerID" onclick="DisplayLotTravlerForUpdate(\'' + ltLotID + '\')" style="font-size: 10px;"/>';
}
else {
template += '<input type="button" value="Create Traveler" class="btn btn-warning btn-xs" id="CreateTravelerID" onclick="CreateTraveler(\'' + ltLotID + '\', \'' + workRequestID + '\', \'' + status + '\')" style="font-size: 10px"/>';
}
//alert(template);
return template;
}
function buildUpdateDeleteExecuteButtons(data) {
//alert(approvalid + ' ');
var ltLotID;
var workRequestID;
var travelerGenerated;
var temp = data.split('~');
travelerGenerated = temp[0];
ltLotID = temp[1];
workRequestID = temp[2];
travelerstatus = temp[4];
var template = "";
if (travelerstatus == 'Closed') {
template += '';
}
else if (travelerGenerated == 'True') {
template += '<input type="button" value="Execute Traveler" class="btn btn-warning btn-xs" id="ExecTravelerID" onclick="DisplayLotTravlerForExecute(\'' + ltLotID + '\')" style="font-size: 10px"/>';
}
else {
template += '<input type="button" value="Delete Lot" class="btn btn-warning btn-xs" id="DeleteLotID" onclick="DeleteLot(\'' + ltLotID + '\')" style="font-size: 10px"/>';
}
return template;
}
function buildViewButtons(data)
{
var ltLotID;
var workRequestID;
var travelerGenerated;
var status;
var temp = data.split('~');
travelerGenerated = temp[0];
ltLotID = temp[1].trim();
workRequestID = temp[2];
status = temp[3];
travelerstatus = temp[4];
var template = "";
if (travelerGenerated == 'True') {
template += '<input type="button" value="View Traveler" class="btn btn-warning btn-xs" id="ViewTravlerID" onclick="ViewTraveler(\'' + ltLotID + '\')" style="font-size: 10px;"/>';
}
return template;
}
function ViewTraveler(ltLotID)
{
var url = "@Html.Raw(@Url.Action("LotTravelerReadonly", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "-1" }))";
//url = url.replace('amp;', '');
window.location.href = url.replace('__id__', ltLotID);
}
function DisplayLotTravlerForUpdate(ltLotID) {
$.ajax({
url: "/LotTraveler/DisplayLotTraveler",
type: "GET",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: {
ltLotID: ltLotID
},
success: function (data) {
if (data == 'Update') {
var url = '@Url.Action("LotTravelerUpdate", "LotTraveler", new { ltLotID = "__id__" })';
url = url.replace('amp;', '');
window.location.href = url.replace('__id__', ltLotID);
}
else {
var url = '@Url.Action("LotTravelerReadonly", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "__revID__" })';
var temp = data.split('~');
url = url.replace('__revID__', temp[1])
url = url.replace('amp;', '');
window.location.href = url.replace('__id__', ltLotID);
}
},
error: function (result) {
alert("Failed " + result);
}
});
}
function DisplayLotTravlerForExecute(ltLotID) {
@*var url = '@Url.Action("LotTravelerExecute", "LotTraveler", new { ltLotID = "__id__" })';
window.location.href = url.replace('__id__', ltLotID);*@
$.ajax({
url: "/LotTraveler/DisplayLotTravelerForExecute",
type: "GET",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: {
ltLotID: ltLotID
},
success: function (data) {
if (data == 'Execute') {
var url = '@Url.Action("LotTravelerExecute", "LotTraveler", new { ltLotID = "__id__" })';
url = url.replace('amp;', '');
window.location.href = url.replace('__id__', ltLotID);
}
else {
var url = '@Url.Action("LotTravelerReadonly", "LotTraveler", new { ltLotID = "__id__", revisionNumber = "__revID__" })';
var temp = data.split('~');
url = url.replace('__revID__', temp[1])
url = url.replace('amp;', '');
window.location.href = url.replace('__id__', ltLotID);
}
},
error: function (result) {
alert("Failed " + result);
}
});
}
function CreateTraveler(ltLotID, workRequestID, status) {
status = $.trim(status)
if (status == 'C')
{
alert('Cannot create a Traveler for Closed Lots')
return false;
}
if (status == 'Z') {
alert('Cannot create a Traveler for Zero Wafers Lots')
return false;
}
if (confirm('Are you sure you want to create a Lot Traveler for this lot')) {
//TODO display a processing window
$("#loading-div-background").show()
//$("#loading-div-background").modal('show')
$.ajax({
url: "/LotTraveler/CreateTaveler",
type: "GET",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: {
ltLotID: ltLotID,
workRequestID: workRequestID
},
success: function (data) {
$("#loading-div-background").hide();
//$("#loading-div-background").modal('hide')
var grid = $("#Lots").data("kendoGrid");
grid.dataSource.read('@Model.ID');
alert("Lot Traveler Created!")
},
error: function (result) {
$("#loading-div-background").hide();
alert("Failed " + result);
}
});
}
}
function DeleteLot(ltLotID) {
if (confirm("Are you sure you want to proceed with the DELETE operation")) {
$.ajax({
url: "/LotTraveler/DeleteLot",
type: "GET",
datatype: "json",
contentType: "application/json; charset=utf-8",
data: {
ltLotID: ltLotID
},
success: function () {
var grid = $("#Lots").data("kendoGrid");
grid.dataSource.read('@Model.ID');
alert("Lot Deleted")
},
error: function (result) {
alert("Failed " + result);
}
});
}
}
$('#ApprovalLogHistoryData').on('click', function (e) {
e.preventDefault();
$("#ApprovalLogHistoryWin").modal('show');
return false;
})
$('#RevisionHistoryData').on('click', function (e) {
e.preventDefault();
$("#RevisionHistoryWin").modal('show');
return false;
})
$("#PrintWorkRequestPDF").on('click', function (e) {
e.preventDefault();
var url = '@Url.Action("DisplayWorkRequestPDF", "LotTraveler", new { workRequestID = "__id__" })';
window.open(url.replace('__id__', '@Model.ID', '_blank'));
})
$("#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 changeNewLine(text) {
if (text != null) {
var regexp = new RegExp('\n', 'g');
return text.replace(regexp, '<br>');
}
else
return '';
}
function LotAdd_AfterChange()
{
var vgrid = $("#Lots").data("kendoGrid");
var items = vgrid.dataSource.data();
var element = document.getElementById("aSection1");
if (items.length > 0) {
$('#Sec2').hide();
$('#Sec1A').hide();
element.innerHTML = "Expand";
}
else {
$('#Sec2').show();
$('#Sec1A').show();
$('#collapseSection1').collapse({
toggle: true
})
element.innerHTML = "Collapse";
}
}
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>