initial add
This commit is contained in:
799
Fab2ApprovalSystem-Copy/Views/LotDisposition/Create.cshtml
Normal file
799
Fab2ApprovalSystem-Copy/Views/LotDisposition/Create.cshtml
Normal file
@ -0,0 +1,799 @@
|
||||
@model Fab2ApprovalSystem.Models.LotDisposition
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Create";
|
||||
var val = Json.Encode(Model);
|
||||
}
|
||||
|
||||
<link rel="stylesheet" href="~/Scripts/jqwidgets/styles/jqx.base.css" type="text/css" />
|
||||
<link rel="stylesheet" href="~/Scripts/jqwidgets/styles/jqx.energyblue.css" type="text/css" />
|
||||
<link rel="stylesheet" href="~/Scripts/jqwidgets/styles/jqx.arctic.css" type="text/css" />
|
||||
<link rel="stylesheet" href="/Content/kendo/kendo.blueopal.min.css" />
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxcore.js"></script>
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxdata.js"></script>
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxbuttons.js"></script>
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxscrollbar.js"></script>
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxlistbox.js"></script>
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxpanel.js"></script>
|
||||
<script type="text/javascript" src="~/Scripts/jqwidgets/jqxtree.js"></script>
|
||||
|
||||
@*<button class="btn btn-primary btn-lg" data-toggle="modal" id="lotAddFormButton">
|
||||
Launch demo modal
|
||||
</button>*@
|
||||
|
||||
|
||||
|
||||
@using (Html.BeginForm(new { id = "formCreate" }))
|
||||
{
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="form-horizontal col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Title:</label>
|
||||
<div class="col-sm-4 col-md-6">
|
||||
@Html.TextBoxFor(model => model.Title, new { id = "txtTitle", @class = "k-textbox" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Originator:</label>
|
||||
<div class="col-sm-8 col-md-4">
|
||||
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("OriginatorID")
|
||||
.BindTo(new SelectList(ViewBag.OriginatorList, "OriginatorID", "OriginatorName"))
|
||||
.Value(@Session[GlobalVars.SESSION_USERID].ToString())
|
||||
|
||||
)
|
||||
@*@Html.TextBoxFor(model => model.OriginatorID, new { id = @GlobalVars.USER_ID, Value = @Session[GlobalVars.SESSION_USERNAME].ToString();, @class = "k-textbox" })*@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-horizontal col-sm-4">
|
||||
<fieldset disabled>
|
||||
<div class="form-group">
|
||||
|
||||
<label class="control-label col-sm-4">Issue Date</label>
|
||||
<div class="col-sm-4">
|
||||
@Html.TextBoxFor(model => model.IssueDate, new { @class = "form-control" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset disabled>
|
||||
<div class="form-group">
|
||||
|
||||
<label class="control-label col-sm-4">Issue #</label>
|
||||
<div class="col-sm-4">
|
||||
@Html.TextBoxFor(model => model.IssueID, new { @class = "form-control" })
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">PE Required</label>
|
||||
<div class="col-sm-4">
|
||||
@Html.RadioButtonFor(model => model.PERequired, 1) Yes
|
||||
@Html.RadioButtonFor(model => model.PERequired, 0) No
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="panel panel-default">
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
<div class="form-horizontal col-sm-6">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Affected Department:</label>
|
||||
<div class="col-sm-8 col-md-6">
|
||||
|
||||
|
||||
@(Html.Kendo().MultiSelect()
|
||||
.Name("DepartmentIDs")
|
||||
.BindTo(new SelectList(ViewBag.deps, "DepartmentID", "DepartmentName"))
|
||||
//.Value(ViewBag.selectedDeps)
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Responsibility:</label>
|
||||
<div class="col-sm-8 col-sm-6">
|
||||
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("Responsibility")
|
||||
.BindTo(new SelectList(ViewBag.ResponsibilityList, "ResponsibilityID", "ResponsibilityName"))
|
||||
.Value("Model.ResponsibilityID")
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Issue:</label>
|
||||
<div class="col-sm-8 col-sm-4">
|
||||
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("Issue")
|
||||
.BindTo(new SelectList(ViewBag.ResponsibilityIssueList, "ResponsibilityIssueID", "Issue"))
|
||||
.Value("Model.ResponsibilityIssueID")
|
||||
|
||||
)
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4" >SPN Scrap Code:</label>
|
||||
<div class="col-sm-8 col-md-6">
|
||||
@Html.TextBoxFor(model => model.SPNScrapCode, new { id = "txtSPNScrapCode", @class = "k-textbox" })
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
|
||||
<div class="panel-body">
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="control-label">Issue Description:</label>
|
||||
@Html.TextAreaFor(model => model.IssueDescription, 3, 15, new { id = "txtIssueDescription", @class = "form-control" })
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class=" control-label">Reason For Disposition:</label>
|
||||
@Html.TextAreaFor(model => model.ReasonForDisposition, 3, 15, new { id = "txtReasonForDisposition", @class = "form-control" })
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<button class="btn btn-default btn-sm" data-toggle="modal" id="showLotSearchFormButton">
|
||||
Search Lots
|
||||
</button>
|
||||
|
||||
<button class="btn btn-default btn-sm" data-toggle="modal" id="lotAddFormButton">
|
||||
Add Lot
|
||||
</button>
|
||||
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="col-md-offset-0">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.Lot>()
|
||||
.Name("Lots")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(l => l.LotID).Visible(false);
|
||||
columns.Bound(l => l.LotStatusOptionID).Visible(false);
|
||||
columns.Bound(l => l.LotNumber).Width("8%");
|
||||
columns.Bound(l => l.WipPartNo).Width("12%");
|
||||
columns.Bound(l => l.LotStatusOption).ClientTemplate("#=LotStatusOption.LotStatusOption#").Width("10%");
|
||||
//columns.Bound(l => l.LotStatusOptionName).Width("10%");
|
||||
columns.Bound(l => l.WaferCount);
|
||||
columns.Bound(l => l.DiePartNo);
|
||||
columns.Bound(l => l.DieCount);
|
||||
columns.Bound(l => l.NewPartNo);
|
||||
columns.Bound(l => l.TotalCost);
|
||||
columns.Bound(l => l.ProductFamily);
|
||||
columns.Bound(l => l.Gen);
|
||||
columns.Bound(l => l.Hexsize);
|
||||
columns.Bound(l => l.Voltage);
|
||||
columns.Bound(l => l.Location);
|
||||
//columns.Command(command => command.Custom("Lot Hstory").Click("showDetails"));
|
||||
columns.Command(command => command.Destroy()).Width(90);
|
||||
})
|
||||
|
||||
|
||||
.Editable(editable => editable.Mode(GridEditMode.InLine))
|
||||
.Pageable()
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
//.Filterable()
|
||||
.HtmlAttributes(new { style = "height:250px; width:100%; font-size: 11px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
//.Batch(true)
|
||||
.ServerOperation(false)
|
||||
.Events(events => events.Error("error_handler"))
|
||||
|
||||
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.LotID);
|
||||
model.Field(p => p.LotID).Editable(false);
|
||||
model.Field(p => p.TotalCost).Editable(false);
|
||||
//model.Field(p => p.LotStatusOption).DefaultValue(
|
||||
// ViewData["DefaultLotStatusOptions"] as Fab2ApprovalSystem.Models.LotStatusOptionViewModel);
|
||||
})
|
||||
.PageSize(20)
|
||||
.Read(read => read.Action("EditingCustom_Read", "LotDisposition", new { issueID = -1 }))
|
||||
.Create(create => create.Action("EditingCustom_Create", "LotDisposition"))
|
||||
.Update(update => update.Action("EditingCustom_Update", "LotDisposition"))
|
||||
.Destroy(destroy => destroy.Action("EditingCustom_Destroy", "LotDisposition"))
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="col-md-offset-0">
|
||||
<input type="submit" value="Save" class="btn btn-primary btn-sm" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
}
|
||||
<!-- Button trigger modal -->
|
||||
<!-- Modal -->
|
||||
|
||||
<div class="modal fade" id="LotSearchForm" tabindex="0" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog custom-class">
|
||||
<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">Lot Search</h4>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
|
||||
<table cellpadding="10" cellspacing="2">
|
||||
|
||||
<tr>
|
||||
<td valign="top" colspan="2">
|
||||
<div class="row-fluid">
|
||||
<div class="controls span4">
|
||||
@Html.Label("By Lot")
|
||||
@Html.RadioButton("Category", "Lot", false)
|
||||
@Html.Label("By Location")
|
||||
@Html.RadioButton("Category", "Lot", false)
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<td valign="top" colspan="2">
|
||||
<div class="row-fluid">
|
||||
<div class="controls span4">
|
||||
@Html.TextBox("txtSearch", null, new { @class = "k-textbox" })
|
||||
<input style="margin-top: 20px;" type="button" id='jqxButtonSearchLots' value="Search Lots" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top">
|
||||
|
||||
<div id='content'>
|
||||
<div id='lstSearchedLots'>
|
||||
</div>
|
||||
<div>
|
||||
<input style="margin-top: 20px;" type="button" id='jqxButtonAddLots' value="Add Lots" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
<td valign="top">
|
||||
|
||||
<div id='content1'>
|
||||
<div id='lstSelectedLots'>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<input style="margin-top: 20px;" type="button" id='jqxButtonRemoveLots' value="Remove Lots" />
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
</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="submit">Save changes</button>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="LotAddForm" 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">Enter Lot Information:</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="LotNumber">Lot Number:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="LotNumber" placeholder="LotNumber">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="LotDescription">Lot Description:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="LotDescription" placeholder="LotDescription">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="NewPartNo">New Part#:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="NewPartNo" placeholder="NewPartNo">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="WipPartNo">WIP Part No:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="WipPartNo" placeholder="WipPartNo">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="DiePartNo">DiePart#:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="DiePartNo" placeholder="DiePartNo">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="ProductFamily">Product Family:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="ProductFamily" placeholder="ProductFamily">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="Gen">Gen:</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="form-control" id="Gen" placeholder="Gen">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="Channel">Channel:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="Channel" placeholder="Channel">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="Hexsize">Hexsize:</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="form-control" id="Hexsize" placeholder="Hexsize">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="Location">Location:</label>
|
||||
<div class="controls">
|
||||
<input type="text" class="form-control" id="Location" placeholder="Location">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="WaferCount">Wafer Count:</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="form-control" id="DieCount" placeholder="DieCount">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="control-group">
|
||||
<label for="DieCount">Die Count:</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="form-control" id="DieCount" placeholder="DieCount">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<div class="control-group">
|
||||
<label for="Voltage">Voltage:</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="form-control" id="Voltage" placeholder="Voltage">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="control-group">
|
||||
<label for="TotalCost">Total Cost:</label>
|
||||
<div class="controls">
|
||||
<input type="number" class="form-control" id="TotalCost" placeholder="TotalCost">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label>Lot Staus Options:</label>
|
||||
<br />
|
||||
<label class="radio-inline">
|
||||
<input type="radio" class="radioBtnClass" name="LotStatusOptionID" id="LotStatusOptionID" value="1~Release" checked>
|
||||
Release
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" class="radioBtnClass" name="LotStatusOptionID" id="LotStatusOptionID" value="2~Scrap">
|
||||
Scrap
|
||||
</label>
|
||||
<label class="radio-inline">
|
||||
<input type="radio" class="radioBtnClass" name="LotStatusOptionID" id="LotStatusOptionID" value="3~M_Suffix">
|
||||
M_Suffix
|
||||
</label>
|
||||
|
||||
</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="submitLotAdd">Save changes</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
|
||||
//$("#Lots").kendoGrid({
|
||||
// dataSource: {
|
||||
// transport: {
|
||||
// read: { url: "/Api/Home", type: "GET" },
|
||||
// destroy: { url: "/Api/Home", type: "DELETE" }
|
||||
// },
|
||||
// schema: {
|
||||
// model: {
|
||||
// id: "LotID",
|
||||
// fields: {
|
||||
// LotID: { editable: false },
|
||||
// LotNumber: { editable: false },
|
||||
// WipPartNo: { editable: true },
|
||||
// LotStatusOption: { editable: true },
|
||||
// WaferCount: { editable: false }
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// sort: [{ field: "Title", dir: "asc" }],
|
||||
// serverPaging: true,
|
||||
// serverFiltering: true,
|
||||
// serverSorting: true,
|
||||
// pageSize: 15
|
||||
// },
|
||||
// columns: [
|
||||
// { field: "LotID", title: "LotID#", width: "45px" },
|
||||
// { field: "LotNumber", title: "Lot#", width: "70px" },
|
||||
// { field: "WipPartNo", title: "Title", width: "170px" },
|
||||
// { field: "WipPartNo", title: "WipPart#", width: "65px" },
|
||||
// { field: "LotStatusOption", title: "LotStatus", width: "70px" },
|
||||
// { field: "WaferCount", title: "WaferCount", width: "130px" },
|
||||
// { command: ["edit", "destroy"], title: " ", width: "172px" }],
|
||||
|
||||
// pageable: true,
|
||||
// sortable: true,
|
||||
// scrollable: true,
|
||||
// filterable: false
|
||||
//});
|
||||
|
||||
|
||||
$("#showLotSearchFormButton").on('click', function () {
|
||||
$("#LotSearchForm").modal('show');
|
||||
return false;
|
||||
})
|
||||
|
||||
$("#lotAddFormButton").on('click', function () {
|
||||
$("#LotAddForm").modal('show');
|
||||
return false;
|
||||
})
|
||||
|
||||
$("#submitLotAdd").on('click', function () {
|
||||
var lotStatusOptionData = $('input:radio[name=LotStatusOptionID]:checked').val().split('~');
|
||||
var lotStatusOptionID = lotStatusOptionData[0];
|
||||
var lotStatusOptionName = lotStatusOptionData[1];
|
||||
|
||||
$.ajax({
|
||||
url: '/LotDisposition/AddLot',
|
||||
type: "Post",
|
||||
dataType: "json",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
data: JSON.stringify(
|
||||
{
|
||||
IssueID: $("#txtIssueID").val(),
|
||||
LotNumber: $("#LotNumber").val(),
|
||||
IssueID: $("#IssueID").val(),
|
||||
Description: $("#Description").val(),
|
||||
NewPartNo: $("#NewPartNo").val(),
|
||||
WipPartNo: $("#WipPartNo").val(),
|
||||
DiePartNo: $("#DiePartNo").val(),
|
||||
ProductFamily: $("#ProductFamily").val(),
|
||||
Gen: $("#Gen").val(),
|
||||
Channel: $("#Channel").val(),
|
||||
Hexsize: $("#Hexsize").val(),
|
||||
Voltage: $("#Voltage").val(),
|
||||
WaferCount: $("#WaferCount").val(),
|
||||
DieCount: $("#DieCount").val(),
|
||||
Location: $("#Location").val(),
|
||||
TotalCost: $("#TotalCost").val(),
|
||||
LotStatusOptionID: lotStatusOptionID,
|
||||
LotStatusOptionName: lotStatusOptionName
|
||||
|
||||
}),
|
||||
success: function (result) {
|
||||
|
||||
//alert("success " + result.LotNumber);
|
||||
|
||||
var vgrid = $("#Lots").data("kendoGrid");
|
||||
//Selecting dataSource
|
||||
var datasource = vgrid.dataSource;
|
||||
var newRecord = result;
|
||||
//Inserting new row
|
||||
datasource.insert(newRecord);
|
||||
$("#LotAddForm").modal('hide');
|
||||
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert("Failed " + errorThrown);
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
return false;
|
||||
})
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
//
|
||||
displayEmptySelectedLotsList();
|
||||
//
|
||||
displayEmptySearchedLotsList();
|
||||
|
||||
function error_handler(e) {
|
||||
if (e.errors) {
|
||||
var message = "Errors:\n";
|
||||
$.each(e.errors, function (key, value) {
|
||||
if ('errors' in value) {
|
||||
$.each(value.errors, function () {
|
||||
message += this + "\n";
|
||||
});
|
||||
}
|
||||
});
|
||||
alert(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("#jqxButtonSearchLots").jqxButton({
|
||||
theme: 'energyblue'
|
||||
});
|
||||
|
||||
$("#jqxButtonAddLots").jqxButton({
|
||||
theme: 'energyblue'
|
||||
});
|
||||
|
||||
$("#jqxButtonRemoveLots").jqxButton({
|
||||
theme: 'energyblue'
|
||||
});
|
||||
|
||||
// REGION SERACH LOTS MODAL DIALOG
|
||||
|
||||
$("#jqxButtonSearchLots").on('click', function displayLots() {
|
||||
var searchText = ($("#txtSearch").val());
|
||||
var url = "/LotDisposition/SearchLots?searchText=" + searchText + "&searchBy=LotNo";
|
||||
var source =
|
||||
{
|
||||
datatype: "json",
|
||||
datafields: [
|
||||
{ name: 'LotNumber' }
|
||||
],
|
||||
id: 'id',
|
||||
url: url,
|
||||
};
|
||||
var dataAdapter = new $.jqx.dataAdapter(source);
|
||||
// Create a jqxListBox
|
||||
$("#lstSearchedLots").jqxListBox({
|
||||
multipleextended: true, theme: "arctic", source: dataAdapter, displayMember: "LotNumber", valueMember: "LotNumber", width: 200, height: 250
|
||||
});
|
||||
$("#lstSearchedLots").on('select', function (event) {
|
||||
if (event.args) {
|
||||
var item = event.args.item;
|
||||
if (item) {
|
||||
var valueelement = $("<div></div>");
|
||||
valueelement.text("Value: " + item.value);
|
||||
var labelelement = $("<div></div>");
|
||||
labelelement.text("Label: " + item.label);
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
$('#jqxButtonAddLots').on('click', function () {
|
||||
// get selected items.
|
||||
var bfound = false;
|
||||
var lots;
|
||||
var itemsToAdd = $('#lstSearchedLots').jqxListBox('getSelectedItems');
|
||||
if (itemsToAdd.length > 0) {
|
||||
|
||||
for (var i = 0; i < itemsToAdd.length; i++) {
|
||||
|
||||
if (itemsToAdd[i].label != undefined) {
|
||||
|
||||
var tempvalue = itemsToAdd[i].value;
|
||||
var templabel = itemsToAdd[i].label;
|
||||
|
||||
//if (i < itemsToAdd.length - 1)
|
||||
//{
|
||||
// check if the item exists in the seleced lots list
|
||||
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: templabel, value: tempvalue });
|
||||
if (lots == null)
|
||||
lots = tempvalue;
|
||||
else
|
||||
lots += "~" + tempvalue;
|
||||
}
|
||||
|
||||
bfound = false;
|
||||
}
|
||||
else {
|
||||
alert(templabel)
|
||||
$("#lstSelectedLots").jqxListBox('addItem', { label: templabel, value: tempvalue });
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
// unselect all the selected items
|
||||
$("#lstSearchedLots").jqxListBox({ selectedIndex: -1 });
|
||||
|
||||
});
|
||||
|
||||
|
||||
$('#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 displayEmptySelectedLotsList() {
|
||||
//var url = "/LotDisposition/SearchLots?searchText=" + searchText + "&searchBy=LotNo";
|
||||
var source =
|
||||
{
|
||||
datatype: "json",
|
||||
datafields: [
|
||||
{ name: 'LotNo' }
|
||||
],
|
||||
id: 'id'
|
||||
//url: url
|
||||
};
|
||||
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
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function displayEmptySearchedLotsList() {
|
||||
var source =
|
||||
{
|
||||
datatype: "json",
|
||||
datafields: [
|
||||
{ name: 'LotNo' }
|
||||
],
|
||||
id: 'id'
|
||||
//url: url
|
||||
};
|
||||
var dataAdapter = new $.jqx.dataAdapter(source);
|
||||
// Create a jqxListBox
|
||||
$("#lstSearchedLots").jqxListBox({
|
||||
multipleextended: true, theme: "arctic", source: dataAdapter, displayMember: "LotNo", valueMember: "LotNo", width: 200, height: 250
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
function showDetails(e) {
|
||||
|
||||
alert('hello');
|
||||
//e.preventDefault();
|
||||
//var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
</script>
|
2521
Fab2ApprovalSystem-Copy/Views/LotDisposition/Edit.cshtml
Normal file
2521
Fab2ApprovalSystem-Copy/Views/LotDisposition/Edit.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
1162
Fab2ApprovalSystem-Copy/Views/LotDisposition/EditStep.cshtml
Normal file
1162
Fab2ApprovalSystem-Copy/Views/LotDisposition/EditStep.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
@model Fab2ApprovalSystem.ViewModels.LotStatusOptionViewModel
|
||||
|
||||
@(Html.Kendo().DropDownListFor(m => m)
|
||||
.DataValueField("LotStatusOption")
|
||||
.DataTextField("LotStatusOption")
|
||||
.BindTo((System.Collections.IEnumerable)ViewData["LotStatusOptions"])
|
||||
|
||||
)
|
@ -0,0 +1,9 @@
|
||||
@model System.Web.Mvc.HandleErrorInfo
|
||||
|
||||
@{
|
||||
ViewBag.Title = "Error";
|
||||
}
|
||||
|
||||
<h1 class="text-danger">Error.</h1>
|
||||
<h2 class="text-danger">An error occurred while processing your request.</h2>
|
||||
|
683
Fab2ApprovalSystem-Copy/Views/LotDisposition/ReadOnly.cshtml
Normal file
683
Fab2ApprovalSystem-Copy/Views/LotDisposition/ReadOnly.cshtml
Normal file
@ -0,0 +1,683 @@
|
||||
@model Fab2ApprovalSystem.Models.LotDisposition
|
||||
|
||||
|
||||
@{
|
||||
ViewBag.Title = "LotDisposition";
|
||||
}
|
||||
|
||||
@{
|
||||
Layout = "_LotDispositionLayout.cshtml";
|
||||
}
|
||||
<link rel="stylesheet" href="/Content/kendo/kendo.blueopal.min.css" />
|
||||
|
||||
@*<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<label for="Remarks">Enter Remarks Here...</label>
|
||||
@Html.TextAreaFor(model => model.IssueDescription, new { style = "width:90%;" })
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
|
||||
@using (Html.BeginForm())
|
||||
{
|
||||
<input type="hidden" id="currentStep" value="@Model.CurrentStep"/>
|
||||
<input type="hidden" id="environment" value="@GlobalVars.DBConnection" />
|
||||
|
||||
<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 text-center">
|
||||
<div class="row">
|
||||
<div class="col-sm-12 center-block">
|
||||
<font style="color: crimson; font-size:24px;font-weight: bolder">
|
||||
Lot Disposition
|
||||
</font>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4 text-right">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<font style="color:crimson">
|
||||
@if (@Model.CloseDate == null)
|
||||
{
|
||||
if (Model.RecordLockByName == null)
|
||||
{
|
||||
<h5>
|
||||
<font style="color:red">
|
||||
Mode: [Readonly]
|
||||
</font>
|
||||
</h5>
|
||||
}
|
||||
else
|
||||
{
|
||||
<h5>
|
||||
<font style="color:red">
|
||||
Mode: [Readonly] - Locked for Editing by <font style="color: green; font-weight:bold; font-style:italic">@Model.RecordLockByName</font>
|
||||
</font>
|
||||
</h5>
|
||||
|
||||
}
|
||||
}
|
||||
</font>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default" style="font-size: 11px">
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="form-horizontal col-sm-4">
|
||||
<fieldset disabled>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Issue #</label>
|
||||
<div class="col-sm-4 col-sm-4">
|
||||
@Html.TextBoxFor(model => model.IssueID, new { id = "txtIssueID", @class = "k-textbox", @readonly = "readonly" })
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="form-group">
|
||||
<fieldset disabled>
|
||||
<label class="control-label col-sm-4">Issue Date:</label>
|
||||
<div class="col-sm-8 col-sm-6">
|
||||
@Html.TextBoxFor(model => model.IssueDate, new { id = "txtIssueDate", @class = "k-textbox", @readonly = "readonly" })
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Affected Department:</label>
|
||||
<div class="col-sm-8 col-sm-8">
|
||||
|
||||
|
||||
@(Html.Kendo().MultiSelect()
|
||||
.Name("DepartmentIDs")
|
||||
.BindTo(new SelectList(ViewBag.deps, "DepartmentID", "DepartmentName"))
|
||||
.Value(ViewBag.Nothing)
|
||||
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
@*<div class="form-group">
|
||||
<label class="control-label col-sm-4">MRB</label>
|
||||
<div class="col-sm-4 col-sm-4">
|
||||
@Html.EditorFor(model => model.MRBRequired, new { @readonly = "readonly" })
|
||||
|
||||
</div>
|
||||
</div>*@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-horizontal col-sm-4">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Title:</label>
|
||||
<div class="col-sm-4 col-sm-4">
|
||||
@Html.TextBoxFor(model => model.Title, new { id = "txtTitle", @class = "k-textbox", @readonly = "readonly" })
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Responsibility:</label>
|
||||
<div class="col-sm-8 col-sm-6">
|
||||
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("Responsibility")
|
||||
.BindTo(new SelectList(ViewBag.ResponsibilityList, "ResponsibilityID", "ResponsibilityName"))
|
||||
.Value(Model.ResponsibilityID.ToString())
|
||||
.HtmlAttributes(new { @readonly = "readonly" })
|
||||
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Issue:</label>
|
||||
<div class="col-sm-8 col-sm-4">
|
||||
|
||||
@(Html.Kendo().DropDownList()
|
||||
.Name("Issue")
|
||||
.BindTo(new SelectList(ViewBag.ResponsibilityIssueList, "ResponsibilityIssueID", "Issue"))
|
||||
.Value(Model.ResponsibilityIssueID.ToString())
|
||||
.CascadeFrom("ResponsibilityID")
|
||||
.HtmlAttributes(new { @readonly = "readonly" })
|
||||
)
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">CA#</label>
|
||||
<div class="col-sm-4 col-sm-6">
|
||||
@Html.TextBoxFor(model => model.CANo, new { @class = "k-textbox", @readonly = "readonly" })
|
||||
<a href='http://SQDS.IRF.COM/CAPA8D.aspx?Operation=MODIFY&DocumentID=@Model.CANo' target='_blank'>View CA</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-horizontal col-sm-4">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">Originator:</label>
|
||||
<div class="col-sm-8 col-sm-4">
|
||||
|
||||
@*@(Html.Kendo().DropDownList()
|
||||
.Name("OriginatorID")
|
||||
.BindTo(new SelectList(ViewBag.OriginatorList, "OriginatorID", "OriginatorName"))
|
||||
)*@
|
||||
|
||||
@Html.TextBoxFor(model => model.OriginatorName, new { id = "OriginatorName", @class = "k-textbox", @readonly = "readonly" })
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">SPN Scrap Code:</label>
|
||||
<div class="col-sm-8 col-sm-6">
|
||||
@Html.TextBoxFor(model => model.SPNScrapCode, new { id = "txtSPNScrapCode", @class = "k-textbox", @readonly = "readonly" })
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-sm-4">PE Required</label>
|
||||
<div class="col-sm-4 col-sm-4">
|
||||
@Html.EditorFor(model => model.PERequired)
|
||||
@Html.ValidationMessageFor(model => model.PERequired)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-default" style="font-size: 11px">
|
||||
<div class="panel-body bg-warning">
|
||||
|
||||
|
||||
<div class=" col-sm-4">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Issue Description:</label>
|
||||
<div>
|
||||
@Html.TextAreaFor(model => model.IssueDescription, 12, 30, new { id = "txtIssueDescription", @class = "form-control", style = "font-size: 11px" , @readonly = "readonly" })
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="form-group">
|
||||
<label class="control-label">Reason For Disposition:</label>
|
||||
<div>
|
||||
@Html.TextAreaFor(model => model.ReasonForDisposition, 12, 30, new { id = "txtReasonForDisposition", @class = "form-control", style = "font-size: 11px", @readonly = "readonly" })
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-sm-4">
|
||||
<div class="form-group">
|
||||
<div>
|
||||
|
||||
@(Html.Kendo().Upload()
|
||||
.Name("files")
|
||||
.Async(a => a
|
||||
.Save("AttachSave", "LotDisposition", new { issueID = Model.IssueID })
|
||||
.AutoUpload(true)
|
||||
)
|
||||
.ShowFileList(false)
|
||||
.Events(events => events
|
||||
.Success("onFileUploadSuccess")
|
||||
.Upload("checkFileType")
|
||||
)
|
||||
)
|
||||
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.Attachment>()
|
||||
.Name("Attachments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.AttachmentID).Visible(false);
|
||||
columns.Bound(a => a.IssueID).Visible(false);
|
||||
columns.Bound(a => a.FileName).Template(@<text> @Html.ActionLink(@item.FileName.ToString(), null)</text>);
|
||||
//.ClientTemplate("<a href='"+ GlobalVars.AttachmentUrl + "LotDisposition/#=FileName#' target='_blank'>#=FileName#</a>");
|
||||
columns.Bound(a => a.FullName);
|
||||
columns.Bound(a => a.UploadDate).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
//columns.Command(command => { command.Destroy(); });
|
||||
columns.Command(command => command.Custom("View").Click("DownloadAttachment"));
|
||||
|
||||
|
||||
})
|
||||
//.Editable(editable => editable.Mode(GridEditMode.InLine))
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:150px; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
//.Batch(false)
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.AttachmentID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("Attachment_Read", "LotDisposition", new { issueID = Model.IssueID }))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-heading" style="height: 60px">
|
||||
@*<button class="btn btn-default btn-sm" data-toggle="modal" id="showLotSearchFormButton">
|
||||
Search Lots
|
||||
</button>*@
|
||||
<table class="pull-right">
|
||||
<tr>
|
||||
<td>
|
||||
<label style="color: #36940a; font-weight: bold; font-size: 12px" class="pull-right" id="ReleaseSummary">
|
||||
Release Summary: [Cost:] [Wafers:][Die:]
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<label style="color: crimson; font-weight: bold; font-size: 12px" class="pull-right" id="ScrapSummary">
|
||||
Scrap Summary: [Cost:][Wafers:][Die:]
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@*<label style="color: #1050e8; font-weight: bold; font-size: 11px" class="pull-right" id="LotSummary">
|
||||
Release Summary: [Cost:] [Wafers:][Die:]
|
||||
Scrap Summary: [Cost:][Wafers:][Die:]
|
||||
</label>*@
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="col-sm-offset-0">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.Lot>()
|
||||
.Name("Lots")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(l => l.LotID).Visible(false);
|
||||
columns.Bound(l => l.ReleaseCount).Visible(false);
|
||||
columns.Bound(l => l.ScrapCount).Visible(false);
|
||||
columns.Bound(l => l.LotStatusOptionID).Visible(false);
|
||||
columns.Bound(l => l.LotNumber);
|
||||
columns.Bound(l => l.DieLotNumber);
|
||||
columns.Bound(p => p.MRBsLinkedToLot).ClientTemplate("#=buildLinks(MRBsLinkedToLot)#");
|
||||
columns.Bound(l => l.WipPartNo);
|
||||
columns.Bound(l => l.LotStatusOption).ClientTemplate("#=LotStatusOption.LotStatusOption#");
|
||||
columns.Bound(l => l.WaferCount);
|
||||
columns.Bound(l => l.DiePartNo);
|
||||
columns.Bound(l => l.DieCount);
|
||||
columns.Bound(l => l.NewPartNo);
|
||||
columns.Bound(l => l.TotalCost);
|
||||
columns.Bound(l => l.ProductFamily);
|
||||
columns.Bound(l => l.Gen);
|
||||
columns.Bound(l => l.Hexsize);
|
||||
columns.Bound(l => l.Voltage);
|
||||
columns.Bound(l => l.Location);
|
||||
columns.Bound(l => l.QualityCode);
|
||||
columns.Command(command => command.Custom("Select Wafers").Click("showReadOnlyScrapReleaseForm")).Width("110px");
|
||||
columns.Bound(l => l.LotID).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");
|
||||
columns.Bound(l => l.LotID).Template(@<text> @Html.ActionLink(@item.LotNumber.ToString(), null)</text>)
|
||||
.ClientTemplate("<a href='http://" + GlobalVars.WSR_URL + "/user/probe/wafyld.php?lot=#=LotNumber#' target='_blank'>View</a>").Title("Probe Results");
|
||||
columns.Bound(l => l.LotID).Template(@<text> @Html.ActionLink(@item.LotNumber.ToString(), null)</text>)
|
||||
.ClientTemplate("<a href='http://" + GlobalVars.WSR_URL + "/user/probe/allmaps.php?lot=#=LotNumber#' target='_blank'>View</a>").Title("Wafer Maps");
|
||||
columns.Bound(l => l.LotID).Template(@<text> @Html.ActionLink(@item.LotNumber.ToString(), null)</text>)
|
||||
.ClientTemplate("<a href='http://" + GlobalVars.WSR_URL + "/user/yieldchart/form.php' target='_blank'>View</a>").Title("Yield/Param Trends");
|
||||
columns.Bound(l => l.LotID).Template(@<text> @Html.ActionLink(@item.LotNumber.ToString(), null)</text>)
|
||||
.ClientTemplate("<a href='file://///10.72.6.201/Images/#=LotNumber#' + lot' target='_blank'>Show</a>").Title("AVI");
|
||||
//columns.Bound(l => l.MRBsLinkedToLot).Width("100px");
|
||||
|
||||
|
||||
})
|
||||
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:250px; width:100%; font-size: 10px"})
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
//.Batch(false)
|
||||
.ServerOperation(false)
|
||||
.Events(events => events.RequestEnd("RefreshLotSummary"))
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.LotID);
|
||||
model.Field(p => p.LotID).Editable(false);
|
||||
model.Field(p => p.TotalCost).Editable(false);
|
||||
})
|
||||
.PageSize(20)
|
||||
.Read(read => read.Action("EditingCustom_Read", "LotDisposition", new { issueID = Model.IssueID })))
|
||||
.Resizable(resize => resize.Columns(true))
|
||||
.Pageable(pageable => pageable
|
||||
.Refresh(true)
|
||||
.PageSizes(true)
|
||||
.ButtonCount(5))
|
||||
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="col-sm-offset-0">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.ViewModels.ApproversListViewModel>()
|
||||
.Name("ApproversList")
|
||||
.Columns(columns =>
|
||||
{
|
||||
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 = "height:200px; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
//.Batch(false)
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ApprovalID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetApproversList", "LotDisposition", new { issueID = Model.IssueID, step = Model.CurrentStep }))
|
||||
)
|
||||
.Resizable(resize => resize.Columns(true))
|
||||
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
|
||||
if(Model.CloseDate != null)
|
||||
{
|
||||
<div class="panel panel-default" style="font-size: 10px">
|
||||
<div class="panel-heading" style="height: 43px">
|
||||
<button class="k-textbox" data-toggle="modal" id="AddComments">
|
||||
Add Comments
|
||||
</button>
|
||||
@*<label style="color: #1050e8; font-weight: bold; font-size: 11px" class="pull-right" id="LotSummary">
|
||||
Release Summary: [Cost:] [Wafers:][Die:]
|
||||
Scrap Summary: [Cost:][Wafers:][Die:]
|
||||
</label>*@
|
||||
</div>
|
||||
<div class="panel-body bg-warning">
|
||||
<div class="col-sm-offset-0">
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.Comments>()
|
||||
.Name("Comments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.IssueID).Visible(false);
|
||||
columns.Bound(a => a.UserName).Width("200px");
|
||||
columns.Bound(a => a.UserComments);
|
||||
columns.Bound(a => a.TimeStamp).Format("{0:MM/dd/yy hh:mm:ss}").Width("200px");
|
||||
})
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:200px; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
//.Batch(false)
|
||||
.ServerOperation(false)
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.ID);
|
||||
})
|
||||
.PageSize(50)
|
||||
.Read(read => read.Action("GetComments", "LotDisposition", new { issueID = Model.IssueID}))
|
||||
)
|
||||
.Resizable(resize => resize.Columns(true))
|
||||
|
||||
)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="modal fade" id="LotStatusReadOnlyForm" data-url='@Url.Action("LotStatusDetail")' tabindex="0" role="dialog" aria-hidden="true" data-backdrop="static">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
|
||||
<div class="modal-body" id="lotReadOnlyScrapContainer">
|
||||
@Html.Partial("_ScrapReleaseReadOnly", Model.Lot.ScrapLotWafer)
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
<!-- Button trigger modal -->
|
||||
<!-- Modal -->
|
||||
|
||||
|
||||
<div class="modal fade" id="CommentsWin" 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">Comments:</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<textarea class="form-control" rows="5" id="UserComments"></textarea>
|
||||
</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="InsertComments">OK</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var errorCodeDisplayed = false;
|
||||
var isDirty = 'false';
|
||||
var connection = $("#environment").val();
|
||||
$(document).ready(function () {
|
||||
|
||||
|
||||
});
|
||||
|
||||
$('#AddComments').on('click', function () {
|
||||
$('#InsertComments').attr("disabled", false);
|
||||
$("#Comments").val("");
|
||||
$("#CommentsWin").modal('show');
|
||||
return false;
|
||||
})
|
||||
|
||||
|
||||
$('#InsertComments').on('click', function () {
|
||||
|
||||
$('#InsertComments').attr("disabled", true);
|
||||
$.ajax({
|
||||
url: "/LotDisposition/InsertComments",
|
||||
type: "GET",
|
||||
datatype: "json",
|
||||
data: {
|
||||
issueID: $("#txtIssueID").val(),
|
||||
Comments: $("#UserComments").val()
|
||||
|
||||
},
|
||||
success: function (data) {
|
||||
|
||||
var grid = $("#Comments").data("kendoGrid");
|
||||
grid.dataSource.read($('#txtIssueID').val());
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$("#CommentsWin").modal('hide');
|
||||
|
||||
})
|
||||
|
||||
|
||||
//
|
||||
function showReadOnlyScrapReleaseForm(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
var issueID = $("#txtIssueID").val();
|
||||
var lotNumber = dataItem.LotNumber;
|
||||
var waferCount = dataItem.WaferCount;
|
||||
var dieCount = dataItem.DieCount
|
||||
|
||||
if (dataItem.Location != 'QDB' && dataItem.Location != 'EDB') {
|
||||
if (dieCount > 0) {
|
||||
alert("You cannot set Status for each wafer if it is a Die lot.\n Please set the status from the dropdown menu available for each lot");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
var url = $('#LotStatusReadOnlyForm').data('url');
|
||||
//url = url + '?issueID=' + issueID + '&lotNumber=' + lotNumber + '&waferCount=' + waferCount;
|
||||
url = url + '?issueID=' + issueID + '&lotNumber=' + lotNumber + '&readonlyView=true';
|
||||
|
||||
|
||||
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: "GET",
|
||||
datatype: "json",
|
||||
success: function (data) {
|
||||
$('#lotReadOnlyScrapContainer').html(data);
|
||||
$("#LotStatusReadOnlyForm").modal('show');
|
||||
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//$.get(url, function (data) {
|
||||
// //alert('inside');
|
||||
// $('#lotScrapContainer').html(data);
|
||||
// $("#LotStatusForm").modal('show');
|
||||
// //return false;
|
||||
|
||||
//});
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function RefreshLotSummary() {
|
||||
|
||||
$.ajax({
|
||||
url: "/LotDisposition/GetLotDispositionLotSummary",
|
||||
type: "POST",
|
||||
datatype: "json",
|
||||
data: {
|
||||
issueID: $("#txtIssueID").val()
|
||||
},
|
||||
success: function (data) {
|
||||
//alert(data.ScrapCost)
|
||||
$('#ReleaseSummary').text('Release Summary: [Cost:' + data.ReleaseCost + '][Wafers:' + data.ReleaseWaferCount + '][Die:' + data.ReleaseDieCount + ']');
|
||||
$('#ScrapSummary').text('Scrap Summary: [Cost:' + data.ScrapCost + '] [Wafers:' + data.ScrapWaferCount + '][Die:' + data.ScrapDieCount + ']');
|
||||
//$('#ScrapSummary').text();
|
||||
//$('#ScrapSummary').val('GOOD');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
function DownloadAttachment(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
|
||||
var fileName = dataItem.FileName;
|
||||
var attachmentID = dataItem.AttachmentID;
|
||||
|
||||
window.location = '/LotDisposition/DownloadFile?attachmentID=' + attachmentID;
|
||||
|
||||
}
|
||||
|
||||
function onFileUploadSuccess(e) {
|
||||
var grid = $("#Attachments").data("kendoGrid");
|
||||
grid.dataSource.read($('#txtIssueID').val());
|
||||
}
|
||||
|
||||
|
||||
function checkFileType(e) {
|
||||
var files = e.files;
|
||||
$.each(files, function () {
|
||||
|
||||
if (!this.extension.toLowerCase().match(/^(.doc|.docx|.ppt|.pptx|.xls|.xlsx|.pdf|.gif|.jpeg|.jpg|.bmp|.png|.txt|.slddrw|.sldprt)$/)) {
|
||||
alert("Only Word/PowerPoint/Excel/PDF/Image/Text files can be uploaded!")
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
$(document).ajaxComplete(function (event, request, settings) {
|
||||
//alert(request.status)
|
||||
if (request.status == 401 && errorCodeDisplayed == false) {
|
||||
errorCodeDisplayed = true;
|
||||
alert("You session has timed out.\nChanges will not be saved")
|
||||
var url = '@Url.Action("Login", "Account")';
|
||||
window.location.href(url);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function buildLinks(MRBLinkedToLot) {
|
||||
var template = "";
|
||||
var mrb = "";
|
||||
if (MRBLinkedToLot != null) {
|
||||
var tempValue = MRBLinkedToLot.split(',');
|
||||
for (var i = 0; i < tempValue.length; i++) {
|
||||
mrb = "";
|
||||
if (tempValue[i] != '') {
|
||||
MRB_Dispo = tempValue[i].split('_');
|
||||
mrb = MRB_Dispo[0];
|
||||
}
|
||||
template += "<a href='@GlobalVars.hostURL" + "/MRB/Edit?IssueID=" + mrb + "'>" + tempValue[i] + "</a>" + ", ";
|
||||
}
|
||||
|
||||
}
|
||||
return template;
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
281
Fab2ApprovalSystem-Copy/Views/LotDisposition/TestView.cshtml
Normal file
281
Fab2ApprovalSystem-Copy/Views/LotDisposition/TestView.cshtml
Normal file
@ -0,0 +1,281 @@
|
||||
|
||||
@{
|
||||
ViewBag.Title = "TestView";
|
||||
}
|
||||
|
||||
<h2>TestView</h2>
|
||||
|
||||
@*<style>
|
||||
body {
|
||||
font-size: 90.5%;
|
||||
}
|
||||
|
||||
label, input {
|
||||
display: block;
|
||||
}
|
||||
|
||||
input.text {
|
||||
margin-bottom: 12px;
|
||||
width: 95%;
|
||||
padding: .4em;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
padding: 0;
|
||||
border: 0;
|
||||
margin-top: 25px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.2em;
|
||||
margin: .6em 0;
|
||||
}
|
||||
|
||||
div#users-contain {
|
||||
width: 350px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
div#users-contain table {
|
||||
margin: 1em 0;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#users-contain table td, div#users-contain table th {
|
||||
border: 1px solid #eee;
|
||||
padding: .6em 10px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.ui-dialog .ui-state-error {
|
||||
padding: .3em;
|
||||
}
|
||||
|
||||
.validateTips {
|
||||
border: 1px solid transparent;
|
||||
padding: 0.3em;
|
||||
}
|
||||
</style>*@
|
||||
|
||||
|
||||
|
||||
|
||||
@*<nav class="navbar navbar-default" role="navigation">
|
||||
<div class="container-fluid">
|
||||
<!-- Brand and toggle get grouped for better mobile display -->
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar">Help1</span>
|
||||
<span class="icon-bar">Help2</span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Brand</a>
|
||||
</div>
|
||||
|
||||
<!-- Collect the nav links, forms, and other content for toggling -->
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="active"><a href="#">Link</a></li>
|
||||
<li><a href="#">Link</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">One more separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="navbar-form navbar-left" role="search">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" placeholder="Search">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</form>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="#">Link</a></li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href="#">Action</a></li>
|
||||
<li><a href="#">Another action</a></li>
|
||||
<li><a href="#">Something else here</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a href="#">Separated link</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div><!-- /.navbar-collapse -->
|
||||
</div><!-- /.container-fluid -->
|
||||
</nav>*@
|
||||
|
||||
|
||||
<div id="dialog-form" title="Search Lots">
|
||||
<form>
|
||||
<fieldset>
|
||||
<label for="name">Name</label>
|
||||
<input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all">
|
||||
<label for="email">Email</label>
|
||||
<input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all">
|
||||
<label for="password">Password</label>
|
||||
<input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all">
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<script>
|
||||
@*$("#Create").click(function () {
|
||||
//getting json data from kendo Grid
|
||||
var gridData = $("#Lots").data("kendoGrid").dataSource.data();
|
||||
|
||||
//var model = @Html.Raw(Json.Encode(Model))
|
||||
|
||||
var originatorID = $("#OriginatorID").data("kendoDropDownList").value();
|
||||
var title = $("#txtTitle").val();
|
||||
alert(title);
|
||||
|
||||
$.ajax({
|
||||
type: "post"
|
||||
, url: "/LotDisposition/CreateNew"
|
||||
//, data: JSON.stringify({ lots: gridData, lotdispo: model })
|
||||
, data: '{lotdispo:' + JSON.stringify(model) + '}'
|
||||
|
||||
,contentType: 'application/json; charset=utf-8'
|
||||
, success: function (result) {
|
||||
alert(result.count + " record(s) found");
|
||||
}
|
||||
});
|
||||
});*@
|
||||
|
||||
//$("#refresh").click(function () {
|
||||
// alert("click");
|
||||
// var grid = $("#Lots").data("kendoGrid");
|
||||
// //grid.dataSource.read(1);
|
||||
// grid.dataSource.create();
|
||||
|
||||
//});
|
||||
|
||||
|
||||
@*$("#refresh").click(function () {
|
||||
//getting json data from kendo Grid
|
||||
var gridData = $("#Lots").data("kendoGrid").dataSource.data();
|
||||
var modelData=@Html.Raw(val)
|
||||
|
||||
$.ajax({
|
||||
type: "POST"
|
||||
, url: "/LotDisposition/SaveGridData"
|
||||
, data: JSON.stringify({ lots: gridData, lotdispo: modelData })
|
||||
, contentType: "application/json"
|
||||
, success: function (result) {
|
||||
alert(result.count + " record(s) found");
|
||||
}
|
||||
});
|
||||
|
||||
//var vgrid = $("#Lots").data("kendoGrid");
|
||||
//var datasource = vgrid.dataSource;
|
||||
//var newRecord = { LotNumber: "A123456.1", LotStatusOption: null, WipPartNo: "PN123456", DiePartNo: 1234 };
|
||||
////Inserting new row
|
||||
//datasource.insert(newRecord);
|
||||
|
||||
});*@
|
||||
|
||||
|
||||
$("#dialog-form").dialog({
|
||||
autoOpen: false,
|
||||
show: {
|
||||
effect: "blind",
|
||||
duration: 500
|
||||
},
|
||||
hide: {
|
||||
effect: "explode",
|
||||
duration: 1000
|
||||
},
|
||||
height: 300,
|
||||
width: 350,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"Create an account": function () {
|
||||
var bValid = true;
|
||||
// allFields.removeClass("ui-state-error");
|
||||
$(this).dialog("close");
|
||||
},
|
||||
Cancel: function () {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
},
|
||||
close: function () {
|
||||
// allFields.val("").removeClass("ui-state-error")
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
$("#create-user")
|
||||
.button()
|
||||
.click(function () {
|
||||
$("#dialog-form").dialog("open");
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
$("#submit").on('click', function () {
|
||||
$('#myModal').modal('hide');
|
||||
});
|
||||
$('form').submit(function (e) {
|
||||
e.preventDefault();
|
||||
var gridData = $("#Lots").data("kendoGrid").dataSource.data();
|
||||
var originatorID = $("#OriginatorID").data("kendoDropDownList").value();
|
||||
var issueNumber = $("#txtIssueNumber").val();
|
||||
var peRequired = $("#PERequired").val();
|
||||
var title = $("#txtTitle").val();
|
||||
var departmentids = $("#DepartmentIDs").data("kendoMultiSelect").value();
|
||||
var scrapID = $("#ScrapID").data("kendoDropDownList").value();
|
||||
var responsibilityAreaID = $("#ResponsibilityAreaID").data("kendoDropDownList").value();
|
||||
var spnScrapCode = $("#txtSPNScrapCode").val();
|
||||
var issueDescription = $("#txtIssueDescription").val();
|
||||
var reasonForDisposition = $("#txtReasonForDisposition").val();
|
||||
|
||||
//alert(spnScrapCode);
|
||||
|
||||
$.ajax({
|
||||
//url: '/LotDisposition/Create',
|
||||
type: "POST",
|
||||
dataType: "json",
|
||||
contentType: "application/json; charset=utf-8",
|
||||
data: JSON.stringify(
|
||||
{
|
||||
Lots: gridData,
|
||||
Title: title,
|
||||
OriginatorID: originatorID,
|
||||
//IssueNumber: issueNumber,
|
||||
PERequired: peRequired,
|
||||
DepartmentIds: departmentids,
|
||||
ScrapID: scrapID,
|
||||
ResponsibilityAreaID: responsibilityAreaID,
|
||||
SPNScrapCode: spnScrapCode,
|
||||
IssueDescription: issueDescription,
|
||||
ReasonForDisposition: reasonForDisposition
|
||||
|
||||
}),
|
||||
success: function (result) {
|
||||
|
||||
alert("success " + result.UserName);
|
||||
},
|
||||
error: function (jqXHR, textStatus, errorThrown) {
|
||||
alert("Failed " + jqXHR.responseText);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
</script>
|
@ -0,0 +1,60 @@
|
||||
@model Fab2ApprovalSystem.Models.Attachment
|
||||
|
||||
@{
|
||||
ViewBag.Title = "_DocumentAttachment";
|
||||
}
|
||||
|
||||
@(Html.Kendo().Grid<Fab2ApprovalSystem.Models.Attachment>()
|
||||
.Name("Attachments")
|
||||
.Columns(columns =>
|
||||
{
|
||||
columns.Bound(a => a.AttachmentID).Visible(false);
|
||||
columns.Bound(l => l.IssueID).Visible(false);
|
||||
columns.Bound(l => l.FileName).Template(@<text> @Html.ActionLink(@item.FileName.ToString(), null)</text>)
|
||||
.ClientTemplate("<a href='/UserUploads/#=FileName#' target='_blank'>#=FileName#</a>")
|
||||
.Title("Test");
|
||||
columns.Bound(l => l.FullName);
|
||||
columns.Bound(l => l.UploadDate).Format("{0:MM/dd/yy hh:mm:ss}");
|
||||
columns.Command(command => { command.Destroy(); });
|
||||
})
|
||||
.Sortable()
|
||||
.Scrollable()
|
||||
.HtmlAttributes(new { style = "height:150px; width:100%; font-size: 10px" })
|
||||
.DataSource(dataSource => dataSource
|
||||
.Ajax()
|
||||
//.Batch(false)
|
||||
.ServerOperation(false)
|
||||
.Events(events => events.Error("error_handler"))
|
||||
.Model(model =>
|
||||
{
|
||||
model.Id(p => p.AttachmentID);
|
||||
})
|
||||
.PageSize(4)
|
||||
.Read(read => read.Action("Attachment_Read", "LotDisposition"))
|
||||
.Destroy(destroy => destroy.Action("Attachment_Destroy", "LotDisposition"))
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
<div>
|
||||
@(Html.Kendo().Upload()
|
||||
.Name("files")
|
||||
.Async(a => a
|
||||
.Save("AttachSave", "LotDisposition")
|
||||
.AutoUpload(true)
|
||||
)
|
||||
.ShowFileList(false)
|
||||
.Events(events => events
|
||||
.Success("onSuccess")
|
||||
|
||||
)
|
||||
)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,52 @@
|
||||
<!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 - Mesa 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">
|
||||
@*@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" })
|
||||
|
||||
|
||||
<a href="file:////@GlobalVars.NDriveURL/UserData/QA/CommonRO/Projects/AVI Tool/" class="navbar-brand"> AVI Tool</a>
|
||||
</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>
|
1236
Fab2ApprovalSystem-Copy/Views/LotDisposition/_ScrapRelease.cshtml
Normal file
1236
Fab2ApprovalSystem-Copy/Views/LotDisposition/_ScrapRelease.cshtml
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user