1308 lines
51 KiB
JavaScript
1308 lines
51 KiB
JavaScript
|
||
var indexInRequirement;
|
||
var allRequirements = [];
|
||
var currentRequirement;
|
||
|
||
function showJobsiteRequirementList(data) {
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
rows.push(r);
|
||
}
|
||
|
||
grid_jsrequirementdt.setData(rows);
|
||
grid_jsrequirementdt.refresh();
|
||
}
|
||
|
||
var grid_jsrequirementdt;
|
||
function InitJobsiteschedulerGridData() {
|
||
grid_jsrequirementdt = createGridView('#requirementlist');
|
||
grid_jsrequirementdt.isEditable = true;
|
||
var list_columns = [
|
||
{ name: 'BeginDate', caption: GetTextByKey("P_JS_BEGINDATE", 'Begin Date'), valueIndex: 'BeginDateStr', css: { 'width': 120, 'text-align': 'left' } },
|
||
{ name: 'EndDate', caption: GetTextByKey("P_JS_ENDDATE", 'End Date'), valueIndex: 'EndDateStr', css: { 'width': 120, 'text-align': 'left' } },
|
||
{ name: 'AssetTypeName', caption: GetTextByKey("P_JS_ASSETTYPE", 'Asset Type'), valueIndex: 'AssetTypeName', css: { 'width': 130, 'text-align': 'left' } },
|
||
{ name: 'Quantity', caption: GetTextByKey("P_JS_QUANTITY", 'Quantity'), valueIndex: 'Quantity', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'ScheduledQuantity', caption: GetTextByKey("P_JS_SCHEDULED", 'Scheduled'), valueIndex: 'ScheduledQuantity', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'Days', caption: GetTextByKey("P_JS_NUMBEROFDAYS", 'Number of Days'), valueIndex: 'Days', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'Notes', caption: GetTextByKey("P_JS_NOTES", 'Notes'), valueIndex: 'Notes', css: { 'width': 300, 'text-align': 'left' } },
|
||
{ name: 'PointOfContact', caption: GetTextByKey("P_JS_POINTOFCONTACT", 'Point Of Contact'), valueIndex: 'PointOfContact', css: { 'width': 120, 'text-align': 'left' } },
|
||
{ name: 'ManageAssets', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } },
|
||
{ name: 'Delete', caption: "", alwaysshow: true, css: { 'width': 30, 'text-align': 'center' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
col.oldFilterValues = col.filterValues;
|
||
if (list_columns[hd].type) {
|
||
col.type = list_columns[hd].type;
|
||
}
|
||
|
||
col.alwaysshow = list_columns[hd].alwaysshow;
|
||
|
||
var DateColumn = window['lib-ui'].GridDateColumn;
|
||
if (col.name === "BeginDate") {
|
||
col.type = DateColumn;
|
||
col.filter = function (item, editing) {
|
||
return item.BeginDate;
|
||
};
|
||
col.sortFilter = function (a, b) {
|
||
a = a.BeginDate;
|
||
b = b.BeginDate;
|
||
return a > b ? 1 : (a < b ? -1 : 0);
|
||
};
|
||
col.onChanged = function (item, value) {
|
||
item.BeginDate = item.BeginDateStr = DateColumn.formatDate(value);
|
||
item.Days = getDaysBetween(item.BeginDate, item.EndDate);
|
||
item.Changed = true;
|
||
grid_jsrequirementdt.refresh();
|
||
};
|
||
}
|
||
else if (col.name === "EndDate") {
|
||
col.type = DateColumn;
|
||
col.filter = function (item, editing) {
|
||
return item.EndDate;
|
||
};
|
||
col.sortFilter = function (a, b) {
|
||
a = a.EndDate;
|
||
b = b.EndDate;
|
||
return a > b ? 1 : (a < b ? -1 : 0);
|
||
};
|
||
col.onChanged = function (item, value) {
|
||
item.EndDate = item.EndDateStr = DateColumn.formatDate(value);
|
||
item.Days = getDaysBetween(item.BeginDate, item.EndDate);
|
||
item.Changed = true;
|
||
grid_jsrequirementdt.refresh();
|
||
};
|
||
}
|
||
else if (col.name === "Quantity") {
|
||
col.type = GridView.ColumnTypes.Input;
|
||
col.attrs = { 'maxlength': 100 };
|
||
col.filter = function (item) {
|
||
return item.Quantity;
|
||
};
|
||
col.styleFilter = function () {
|
||
return { "width": "100%", 'padding': 0 };
|
||
}
|
||
col.onChanged = function (item, value) {
|
||
item.Quantity = value;
|
||
item.QuantityDisplayText = value;
|
||
}
|
||
}
|
||
else if (col.name === "Notes") {
|
||
col.type = GridView.ColumnTypes.Input;
|
||
col.attrs = { 'maxlength': 100 };
|
||
col.filter = function (item) {
|
||
return item.Notes;
|
||
};
|
||
col.styleFilter = function () {
|
||
return { "width": "100%", 'padding': 0 };
|
||
}
|
||
col.onChanged = function (item, value) {
|
||
item.Notes = value;
|
||
}
|
||
}
|
||
else if (col.name === "PointOfContact") {
|
||
col.type = GridView.ColumnTypes.Input;
|
||
col.attrs = { 'maxlength': 100 };
|
||
col.filter = function (item) {
|
||
return item.PointOfContact;
|
||
};
|
||
col.styleFilter = function () {
|
||
return { "width": "100%", 'padding': 0 };
|
||
}
|
||
col.onChanged = function (item, value) {
|
||
item.PointOfContact = value;
|
||
}
|
||
}
|
||
else if (col.name === "ManageAssets") {
|
||
col.sortable = false;
|
||
col.resizable = false;
|
||
col.type = GridView.ColumnTypes.Icon;
|
||
col.text = 'truck-pickup';
|
||
col.events = {
|
||
onclick: function () {
|
||
onManageAssets(this);
|
||
}
|
||
};
|
||
col.styleFilter = function (e) {
|
||
return {
|
||
display: IsRequestOnly ? 'none' : ''
|
||
};
|
||
};
|
||
col.attrs = { 'title': GetTextByKey("P_JS_MANAGEASSETS", 'Manage Assets') };
|
||
}
|
||
else if (col.name === "Delete") {
|
||
col.sortable = false;
|
||
col.resizable = false;
|
||
col.type = GridView.ColumnTypes.Icon;
|
||
col.text = 'times';
|
||
col.events = {
|
||
onclick: function () {
|
||
onRemoveRequirement(this);
|
||
}
|
||
};
|
||
col.styleFilter = function (e) {
|
||
return {
|
||
display: IsRequestOnly ? 'none' : ''
|
||
};
|
||
};
|
||
col.attrs = { 'title': GetTextByKey("P_JS_DELETE", 'Delete') };
|
||
}
|
||
columns.push(col);
|
||
}
|
||
grid_jsrequirementdt.multiSelect = true;
|
||
grid_jsrequirementdt.columns = columns;
|
||
grid_jsrequirementdt.init();
|
||
}
|
||
|
||
function getDaysBetween(dateString1, dateString2, type) {
|
||
var startDate = Date.parse(dateString1);
|
||
var endDate = Date.parse(dateString2);
|
||
if (!type)
|
||
if (startDate > endDate)
|
||
return 0;
|
||
var days = (endDate - startDate) / (1 * 24 * 60 * 60 * 1000) + 1;
|
||
return parseInt(days);
|
||
}
|
||
|
||
function getSearchItem() {
|
||
var jsid = $('#dialog_jobsite').find("option:selected").val();
|
||
var jsname = $("#dialog_jobsite").find("option:selected").text();
|
||
var begindate = $('#begindatetxt').val();
|
||
var enddate = $('#enddatetxt').val();
|
||
var pointofcontact = $('#pointofcontacttxt').val();
|
||
var selassettypes = $("#div_assettypes").dropdownVals();
|
||
|
||
var item = {
|
||
JobSiteId: jsid,
|
||
JobSiteName: jsname,
|
||
BeginDate: begindate,
|
||
BeginDateStr: begindate,
|
||
EndDate: enddate,
|
||
EndDateStr: enddate,
|
||
PointOfContact: pointofcontact,
|
||
AssetTypes: selassettypes,
|
||
Days: getDaysBetween(begindate, enddate)
|
||
};
|
||
return item;
|
||
}
|
||
|
||
function getMatchRequirements(ignorebeginpast) {
|
||
var item = getSearchItem();
|
||
|
||
var alerttitle = GetTextByKey('P_JS_JOBSITEREQUIREMENTS', "Jobsite Requirements");
|
||
if (!item.JobSiteId) {
|
||
showAlert(GetTextByKey("P_JS_PLEASESELECTJOBSITE", "Please select Jobsite."), alerttitle);
|
||
return;
|
||
}
|
||
if (!item.BeginDate) {
|
||
showAlert(GetTextByKey("P_JS_PLEASEENTERTHEBEGINDATE", "Please enter the Begin Date."), alerttitle);
|
||
return;
|
||
}
|
||
if (!checkDate(item.BeginDate)) {
|
||
showAlert(GetTextByKey("P_JS_BEGINDATEFORMATERROR", "Begin Date format error."), alerttitle);
|
||
return;
|
||
}
|
||
if (!item.EndDate) {
|
||
showAlert(GetTextByKey("P_JS_PLEASEENTERTHEENDDATE", "Please enter the End Date."), alerttitle);
|
||
return;
|
||
}
|
||
if (!checkDate(item.EndDate)) {
|
||
showAlert(GetTextByKey("P_JS_ENDDATEFORMATERROR", "End Date format error."), alerttitle);
|
||
return;
|
||
}
|
||
|
||
var nowdt = new Date(currentdate.replace("-", "/"));
|
||
var sdate = item.BeginDate;
|
||
var stdt = new Date(sdate.replace("-", "/"));
|
||
var edate = item.EndDate;
|
||
var etdt = new Date(edate.replace("-", "/"));
|
||
|
||
if (!ignorebeginpast && stdt < nowdt) {
|
||
var msg = GetTextByKey("P_JS_BEGINDATEPAST", "The begin date for this requirement is in the past, do you want to continue?")
|
||
showConfirm1(msg, alerttitle, function () {
|
||
getMatchRequirements(true);
|
||
});
|
||
return;
|
||
}
|
||
|
||
//if (etdt < nowdt) {
|
||
// showAlert(GetTextByKey("P_JS_ENDDATEMUSTBELATERTHANBEGINDATE1", "End Date must be later than Begin Date. Please select another date range."), alerttitle);
|
||
// return;
|
||
//}
|
||
|
||
if (stdt > etdt) {
|
||
showAlert(GetTextByKey("P_JS_ENDDATEMUSTBELATERTHANBEGINDATE", "End Date must be later than Begin Date."), alerttitle);
|
||
return;
|
||
}
|
||
|
||
if (item.AssetTypes.length == 0) {
|
||
showAlert(GetTextByKey("P_JS_PLEASESELECTASSETTYPE", "Please select Asset Type."), alerttitle);
|
||
return;
|
||
}
|
||
|
||
//if (!item.PointOfContact) {
|
||
// showAlert(GetTextByKey("P_JS_PLEASEENTERTHEPOINTOFCONTACT", "Please enter the Point Of Contact."), alerttitle);
|
||
// return;
|
||
//}
|
||
|
||
var items = [];
|
||
for (var i = 0; i < item.AssetTypes.length; i++) {
|
||
var existitem = getExistsItem(item.AssetTypes[i]);
|
||
if (existitem) {
|
||
items.push(existitem);
|
||
}
|
||
else {
|
||
var aitem = {
|
||
'JobSiteId': item.JobSiteId,
|
||
'JobSiteName': item.JobSiteName,
|
||
'BeginDate': item.BeginDate,
|
||
'BeginDateStr': item.BeginDateStr,
|
||
'EndDate': item.EndDate,
|
||
'EndDateStr': item.EndDateStr,
|
||
'AssetType': item.AssetTypes[i],
|
||
'AssetTypeName': getAssetTypeName(item.AssetTypes[i]),
|
||
'Quantity': 1,
|
||
'ScheduledQuantity': 0,
|
||
'Days': item.Days,
|
||
'Notes': '',
|
||
'PointOfContact': item.PointOfContact,
|
||
};
|
||
items.push(aitem);
|
||
}
|
||
}
|
||
allRequirements = items;
|
||
if (allRequirements.length > 0)
|
||
$("#btnFulfillRequest").show();
|
||
else
|
||
$("#btnFulfillRequest").hide();
|
||
|
||
showJobsiteRequirementList(allRequirements);
|
||
}
|
||
|
||
function getExistsItem(assettypeid) {
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
if (allRequirements[i].AssetType == assettypeid)
|
||
return allRequirements[i];
|
||
}
|
||
return null;
|
||
}
|
||
|
||
function getAssetTypeName(assettypeid) {
|
||
for (var i = 0; i < assettypes.length; i++) {
|
||
if (assettypes[i].Key == assettypeid)
|
||
return assettypes[i].Value;
|
||
}
|
||
return "";
|
||
}
|
||
|
||
function onRemoveRequirement(item) {
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
if (item.AssetType == allRequirements[i].AssetType) {
|
||
allRequirements.splice(i, 1);
|
||
showJobsiteRequirementList(allRequirements);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
//*********************************************Begin Manage Assets***********************************************//
|
||
var dispatchAssetsObj;
|
||
var alldispatchassets;
|
||
var selecteddispatchassets;
|
||
function showAssetList(data) {
|
||
alldispatchassets = [];
|
||
selecteddispatchassets = [];
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
|
||
if (r.AttachedAssets && r.AttachedAssets.length > 0) {
|
||
for (var j = 0; j < r.AttachedAssets.length; j++) {
|
||
var temp = { ...r };
|
||
temp.AttachedToAsset = null;
|
||
temp.AttachedAssets = null;
|
||
r.AttachedAssets[j].AttachedToAsset = temp;
|
||
}
|
||
}
|
||
if (r.AttachedToAsset && r.AttachedToAsset.AttachedAssets.length > 0) {
|
||
for (var j = 0; j < r.AttachedToAsset.AttachedAssets.length; j++) {
|
||
var temp = { ...r.AttachedToAsset };
|
||
temp.AttachedToAsset = null;
|
||
temp.AttachedAssets = null;
|
||
r.AttachedToAsset.AttachedAssets[j].AttachedToAsset = temp;
|
||
}
|
||
}
|
||
if (addrequirement) {
|
||
r.Selected = false;
|
||
if (currentRequirement && currentRequirement.Assets) {
|
||
for (var k = 0; k < currentRequirement.Assets.length; k++) {
|
||
if (currentRequirement.Assets[k].AssetId === r.AssetId) {
|
||
r.Selected = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else {
|
||
if (r.Selected) {
|
||
r.Selected = false;
|
||
selecteddispatchassets.push(r);
|
||
}
|
||
else {
|
||
r.Selected = false;
|
||
alldispatchassets.push(r);
|
||
continue;
|
||
}
|
||
}
|
||
for (var j in r) {
|
||
if (j === "DistanceToDestJobSite")
|
||
r[j] = { DisplayValue: r["DistanceStr"], Value: r[j] };
|
||
}
|
||
rows.push(r);
|
||
}
|
||
|
||
if (currentRequirement)
|
||
currentRequirement.ScheduledQuantity = selecteddispatchassets.length;
|
||
|
||
grid_assetdt.setData(rows);
|
||
grid_assetdt.refresh();
|
||
}
|
||
|
||
var grid_assetdt;
|
||
function InitAssetGridData() {
|
||
grid_assetdt = createGridView('#selectedmachinelist');
|
||
var list_columns = [
|
||
{ name: 'Selected', caption: "", valueIndex: 'Selected', type: 3, allcheck: true, css: { 'width': 45, 'text-align': 'center' } },
|
||
{ name: 'MakeName', caption: GetTextByKey("P_PM_MAKE", "Make"), valueIndex: 'MakeName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'ModelName', caption: GetTextByKey("P_PM_MODEL", "Model"), valueIndex: 'ModelName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'AssetName', caption: GetTextByKey("P_JS_ASSETNAME", "Asset Name"), valueIndex: 'AssetName', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'CurrentJobSite', caption: GetTextByKey("P_JS_CURRJOBSITE", "Current Jobsite"), valueIndex: 'CurrentJobSite', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'DistanceToDestJobSite', caption: GetTextByKey("P_JS_DISTANCEFROMJOBSITE", "Distance from Jobsite"), valueIndex: 'DistanceToDestJobSite', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'AssetGroups', caption: GetTextByKey("P_JS_ASSETGROUP", "Asset Group"), valueIndex: 'AssetGroups', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'EngineHours', caption: GetTextByKey("P_JS_ENGINEHOURS", "Engine Hours"), valueIndex: 'EngineHours', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'AquisitionType', caption: GetTextByKey("P_JS_ACQUISITIONTYPE", "Acquisition Type"), valueIndex: 'AquisitionType', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'Schedules', caption: "gantt", valueIndex: 'ScheduleParts', css: { 'width': 320, 'text-align': 'left' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = list_columns[hd].visible === false ? false : true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
col.type = list_columns[hd].type;
|
||
|
||
if (col.name === "Selected") {
|
||
col.events = {
|
||
onchange: function () {
|
||
if (addrequirement)
|
||
CheckAttachedAsset(this);
|
||
else//requirement列表asset管理-删除Asset
|
||
CheckDeleteAttachedAsset(this);
|
||
}
|
||
};
|
||
col.enabled = function (item) {
|
||
return !item.Completed;
|
||
};
|
||
}
|
||
else if (col.name === "Schedules") {
|
||
col.sortable = false;
|
||
col.orderable = false;
|
||
col.type = DispatchSchedulesColumn;
|
||
col.styleFilter = function () {
|
||
return {
|
||
'position': 'relative',
|
||
'height': '36px',
|
||
};
|
||
}
|
||
}
|
||
else {
|
||
col.styleFilter = function (item) {
|
||
if (addrequirement && item.ConflictDays > 0)
|
||
return {
|
||
'color': '#c55a11',
|
||
};
|
||
};
|
||
}
|
||
col.alwaysshow = list_columns[hd].alwaysshow;
|
||
columns.push(col);
|
||
}
|
||
grid_assetdt.canMultiSelect = false;
|
||
grid_assetdt.columns = columns;
|
||
grid_assetdt.init();
|
||
}
|
||
|
||
function showAllAssetList(data) {
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
if (r.Selected)
|
||
continue;
|
||
|
||
for (var j in r) {
|
||
if (j === "DistanceToDestJobSite")
|
||
r[j] = { DisplayValue: r["DistanceStr"], Value: r[j] };
|
||
}
|
||
rows.push(r);
|
||
}
|
||
|
||
grid_allassetdt.setData(rows);
|
||
grid_allassetdt.refresh();
|
||
}
|
||
|
||
var grid_allassetdt;
|
||
function InitAllAssetGridData() {
|
||
grid_allassetdt = createGridView('#allmachinelist');
|
||
var list_columns = [
|
||
{ name: 'Selected', caption: "", valueIndex: 'Selected', type: 3, css: { 'width': 45, 'text-align': 'center' } },
|
||
{ name: 'MakeName', caption: GetTextByKey("P_PM_MAKE", "Make"), valueIndex: 'MakeName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'ModelName', caption: GetTextByKey("P_PM_MODEL", "Model"), valueIndex: 'ModelName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'AssetName', caption: GetTextByKey("P_JS_ASSETNAME", "Asset Name"), valueIndex: 'AssetName', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'CurrentJobSite', caption: GetTextByKey("P_JS_CURRJOBSITE", "Current Jobsite"), valueIndex: 'CurrentJobSite', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'DistanceToDestJobSite', caption: GetTextByKey("P_JS_DISTANCEFROMJOBSITE", "Distance from Jobsite"), valueIndex: 'DistanceToDestJobSite', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'AssetGroups', caption: GetTextByKey("P_JS_ASSETGROUP", "Asset Group"), valueIndex: 'AssetGroups', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'EngineHours', caption: GetTextByKey("P_JS_ENGINEHOURS", "Engine Hours"), valueIndex: 'EngineHours', css: { 'width': 100, 'text-align': 'right' } },
|
||
{ name: 'AquisitionType', caption: GetTextByKey("P_JS_ACQUISITIONTYPE", "Acquisition Type"), valueIndex: 'AquisitionType', css: { 'width': 150, 'text-align': 'left' } },
|
||
{ name: 'Schedules', caption: "gantt", valueIndex: 'ScheduleParts', css: { 'width': 320, 'text-align': 'left' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = list_columns[hd].visible === false ? false : true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
col.type = list_columns[hd].type;
|
||
|
||
if (col.name === "Selected") {
|
||
col.events = {
|
||
onchange: function () {
|
||
CheckAttachedAsset(this);
|
||
}
|
||
};
|
||
}
|
||
else if (col.name === "Schedules") {
|
||
col.sortable = false;
|
||
col.orderable = false;
|
||
col.type = DispatchSchedulesColumn;
|
||
col.styleFilter = function () {
|
||
return {
|
||
'position': 'relative',
|
||
'height': '36px',
|
||
};
|
||
}
|
||
}
|
||
else {
|
||
col.styleFilter = function (item) {
|
||
if (item.ConflictDays > 0)
|
||
return {
|
||
'color': '#c55a11',
|
||
};
|
||
};
|
||
}
|
||
col.alwaysshow = list_columns[hd].alwaysshow;
|
||
columns.push(col);
|
||
}
|
||
grid_allassetdt.canMultiSelect = false;
|
||
grid_allassetdt.columns = columns;
|
||
grid_allassetdt.init();
|
||
}
|
||
|
||
function onManageAssets(item, showprenext, index) {
|
||
if (showprenext) {
|
||
if (!allRequirements || allRequirements.length <= 0)
|
||
return;
|
||
if (allRequirements.length > 1) {
|
||
$('#btnNext').show();
|
||
$('#btnPrevious').show();
|
||
}
|
||
else {
|
||
$('#btnNext').hide();
|
||
$('#btnPrevious').hide();
|
||
}
|
||
|
||
indexInRequirement = index;
|
||
item = allRequirements[indexInRequirement];
|
||
}
|
||
else {
|
||
$('#btnNext').hide();
|
||
$('#btnPrevious').hide();
|
||
}
|
||
if (currentRequirement) {
|
||
var assetdata = collectAssets();
|
||
currentRequirement.Assets = assetdata.Assets;
|
||
}
|
||
currentRequirement = item;
|
||
|
||
showmaskbg(true);
|
||
$('#span_jobsite').text(item.JobSiteName);
|
||
$('#span_assettypes').text(item.AssetTypeName);
|
||
$('#span_pointofcontact').text(item.PointOfContact);
|
||
$('#span_quantity').text(item.Quantity);
|
||
if (addrequirement) {
|
||
$('#span_begindate').text(item.BeginDate);
|
||
$('#span_enddate').text(item.EndDate);
|
||
}
|
||
else {
|
||
requireid = item.Id;
|
||
$('#span_begindate').text(item.BeginDateStr);
|
||
$('#span_enddate').text(item.EndDateStr);
|
||
}
|
||
|
||
var title = GetTextByKey("P_JS_MANAGEASSETS", "Manage Assets");
|
||
$('#dialog_managemahchine .dialog-title span.title').html(title);
|
||
$('#dialog_managemahchine').showDialogAuto(1400);
|
||
|
||
if (addrequirement)
|
||
getAvailableAssets(item);
|
||
else
|
||
getAvailableAssetsByRequirement();
|
||
}
|
||
|
||
|
||
function getAvailableAssets(reqitem) {
|
||
$("#dialogmask").show();
|
||
var item = {
|
||
'AssetType': reqitem.AssetType,
|
||
'JobSiteId': reqitem.JobSiteId,
|
||
'BeginDate': reqitem.BeginDate,
|
||
'EndDate': reqitem.EndDate,
|
||
};
|
||
var p = htmlencode(JSON.stringify(item));
|
||
showAssetList([]);
|
||
jobsitequery("GetAvailableAssets", p, function (data) {
|
||
if (typeof (data) === "string") {
|
||
showAlert(data, GetTextByKey("P_JS_ERROR", 'Error'));
|
||
}
|
||
else if (data) {
|
||
dispatchAssetsObj = data;
|
||
var assets = [];
|
||
if (reqitem.Assets && reqitem.Assets.length > 0) {
|
||
for (var i = 0; i < data.DispatchAssets.length; i++) {
|
||
var dasset = data.DispatchAssets[i];
|
||
for (var j = 0; j < reqitem.Assets.length; j++) {
|
||
if (dasset.AssetId === reqitem.Assets[j].AssetId) {
|
||
dasset.Selected = true;
|
||
break;
|
||
}
|
||
}
|
||
assets.push(dasset);
|
||
}
|
||
}
|
||
else
|
||
assets = data.DispatchAssets;
|
||
|
||
showAssetList(assets);
|
||
}
|
||
$("#dialogmask").hide();
|
||
}, function (err) {
|
||
$("#dialogmask").hide();
|
||
});
|
||
}
|
||
|
||
function getAvailableAssetsByRequirement() {
|
||
$("#dialogmask").show();
|
||
if (!requireid)
|
||
return;
|
||
|
||
showAssetList([]);
|
||
jobsitequery("GetAvailableAssetsByRequirement", requireid, function (data) {
|
||
if (typeof (data) === "string") {
|
||
showAlert(data, GetTextByKey("P_JS_ERROR", 'Error'));
|
||
}
|
||
else if (data) {
|
||
dispatchAssetsObj = data;
|
||
showAssetList(data.DispatchAssets);
|
||
}
|
||
$("#dialogmask").hide();
|
||
}, function (err) {
|
||
$("#dialogmask").hide();
|
||
});
|
||
}
|
||
|
||
function collectAssets() {
|
||
var assets = [];
|
||
var othertypeassets = [];
|
||
var tempsource = grid_assetdt.source;
|
||
for (var i = 0; i < tempsource.length; i++) {
|
||
var ct = tempsource[i];
|
||
if (ct.Selected) {
|
||
var asset = ct;
|
||
if (!addrequirement)
|
||
asset.DispatchId = ct.DispatchId;
|
||
assets.push(asset);
|
||
|
||
//AttachedAssets
|
||
if (asset.AttachedAssets && asset.AttachedAssets.length > 0) {
|
||
for (var j = 0; j < asset.AttachedAssets.length; j++) {
|
||
var attasset = asset.AttachedAssets[j];
|
||
if (attasset.Selected) {
|
||
if (!addrequirement)
|
||
attasset.DispatchId = ct.DispatchId;
|
||
if (attasset.TypeId === asset.TypeId)//和主机器Type相同
|
||
assets.push(attasset);
|
||
else
|
||
othertypeassets.push(attasset);
|
||
}
|
||
}
|
||
}
|
||
else {
|
||
if (asset.AttachedToAsset) {
|
||
var attoasset = asset.AttachedToAsset;
|
||
if (attoasset.Selected) {
|
||
if (!addrequirement)
|
||
attoasset.DispatchId = ct.DispatchId;
|
||
if (attoasset.TypeId === asset.TypeId)//和主机器Type相同
|
||
assets.push(attoasset);
|
||
else
|
||
othertypeassets.push(attoasset);
|
||
}
|
||
if (asset.AttachedToAsset.AttachedAssets && asset.AttachedToAsset.AttachedAssets.length > 0) {
|
||
for (var j = 0; j < asset.AttachedToAsset.AttachedAssets.length; j++) {
|
||
var atto_attasset = asset.AttachedToAsset.AttachedAssets[j];
|
||
if (asset.AssetId === atto_attasset.AssetId)
|
||
continue;
|
||
if (atto_attasset.Selected) {
|
||
if (!addrequirement)
|
||
atto_attasset.DispatchId = ct.DispatchId;
|
||
if (atto_attasset.TypeId === asset.TypeId)//和主机器Type相同
|
||
assets.push(atto_attasset);
|
||
else
|
||
othertypeassets.push(atto_attasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
var rst = { 'Assets': assets, 'OtherTypeAssets': othertypeassets };
|
||
return rst;
|
||
}
|
||
|
||
function removeAttachedAssets() {
|
||
if (allRequirements && allRequirements.length > 0) {
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
var req = allRequirements[i];
|
||
if (req.Assets) {
|
||
for (var j = req.Assets.length - 1; j >= 0; j--) {
|
||
var reqasset = req.Assets[j];
|
||
if (_removeattachedassets.indexOf(reqasset.AssetId) >= 0)
|
||
req.Assets.splice(j, 1);
|
||
}
|
||
}
|
||
if (req.Assets)
|
||
req.ScheduledQuantity = req.Assets.length;
|
||
}
|
||
|
||
showJobsiteRequirementList(allRequirements);
|
||
}
|
||
}
|
||
|
||
function OnSetMachine() {
|
||
if (allRequirements && allRequirements.length > 0) {
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
var req = allRequirements[i];
|
||
if (req.Assets)
|
||
req.ScheduledQuantity = req.Assets.length;
|
||
}
|
||
}
|
||
|
||
var assetdata = collectAssets();
|
||
currentRequirement.Assets = assetdata.Assets;
|
||
currentRequirement.ScheduledQuantity = assetdata.Assets.length;
|
||
|
||
if (!checkQuantity()) {
|
||
showAlert(GetTextByKey("P_JS_REQUIREMENTIFORASSETSPLEASEREMOVEEXCESSASSETS1", "Requirement is for {0} asset(s), please remove excess asset(s).").replace('{0}', (currentRequirement.Quantity)), GetTextByKey("P_AM_ERROR", 'Error'));
|
||
return;
|
||
}
|
||
|
||
if (assetdata.OtherTypeAssets && assetdata.OtherTypeAssets.length > 0)
|
||
createRequirement(assetdata.OtherTypeAssets);
|
||
|
||
if (_removeattachedassets && _removeattachedassets.length > 0) {
|
||
removeAttachedAssets();//移除AttachedAssets
|
||
_removeattachedassets = [];
|
||
}
|
||
|
||
$('#dialog_managemahchine').hide();
|
||
currentRequirement = null;
|
||
grid_jsrequirementdt.reload();
|
||
showmaskbg(false);
|
||
}
|
||
|
||
function checkQuantity() {
|
||
if (currentRequirement) {
|
||
var count = 0;
|
||
var tempsource = grid_assetdt.source;
|
||
for (var i = 0; i < tempsource.length; i++) {
|
||
var ct = tempsource[i];
|
||
if (ct.Selected) count++;
|
||
}
|
||
return currentRequirement.Quantity >= count;
|
||
}
|
||
else
|
||
return true;
|
||
}
|
||
|
||
//Requirement列表机器管理-添加机器
|
||
function onAddDispatch() {
|
||
var assets = [];
|
||
var attachedassets = [];
|
||
var tempsource = grid_allassetdt.source;
|
||
for (var i = 0; i < tempsource.length; i++) {
|
||
var asset = tempsource[i];
|
||
if (asset.Selected) {
|
||
var casset = { 'AssetId': asset.AssetId }
|
||
assets.push(casset);
|
||
//AttachedAssets
|
||
if (asset.AttachedAssets && asset.AttachedAssets.length > 0) {
|
||
for (var j = 0; j < asset.AttachedAssets.length; j++) {
|
||
var attasset = asset.AttachedAssets[j];
|
||
if (attasset.Selected) {
|
||
attachedassets.push(attasset);
|
||
}
|
||
}
|
||
}
|
||
else {
|
||
if (asset.AttachedToAsset) {
|
||
var attoasset = asset.AttachedToAsset;
|
||
if (attoasset.Selected)
|
||
attachedassets.push(attoasset);
|
||
|
||
if (asset.AttachedToAsset.AttachedAssets && asset.AttachedToAsset.AttachedAssets.length > 0) {
|
||
for (var j = 0; j < asset.AttachedToAsset.AttachedAssets.length; j++) {
|
||
var atto_attasset = asset.AttachedToAsset.AttachedAssets[j];
|
||
if (asset.AssetId === atto_attasset.AssetId)
|
||
continue;
|
||
if (atto_attasset.Selected) {
|
||
attachedassets.push(atto_attasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (assets.length == 0) {
|
||
$('#dialog_allmahchine').hide();
|
||
$("#dialogmask").hide();
|
||
return;
|
||
}
|
||
|
||
var count = currentRequirement.Quantity - currentRequirement.ScheduledQuantity;
|
||
if (assets.length > count) {
|
||
showAlert(GetTextByKey("P_JS_REQUIREMENTIFORASSETSPLEASEREMOVEEXCESSASSETS1", "Requirement is for {0} asset(s), please remove excess asset(s).").replace('{0}', (count)), GetTextByKey("P_AM_ERROR", 'Error'));
|
||
return;
|
||
}
|
||
|
||
var stdt = new Date(currentRequirement.BeginDate.DisplayValue.replace("-", "/"));
|
||
var now = new Date(currentdate);
|
||
var time = now.getFullYear() + "/" + ((now.getMonth() + 1) < 10 ? "0" : "") + (now.getMonth() + 1) + "/" + (now.getDate() < 10 ? "0" : "") + now.getDate();
|
||
var stime = stdt.getFullYear() + "/" + ((stdt.getMonth() + 1) < 10 ? "0" : "") + (stdt.getMonth() + 1) + "/" + (stdt.getDate() < 10 ? "0" : "") + stdt.getDate();
|
||
|
||
var daycount = 0;
|
||
var days = getDaysBetween(time, stime, true);
|
||
if (days > 0 && days < 8) {
|
||
daycount++;
|
||
}
|
||
var alerttitle = GetTextByKey('P_JS_ADDDISPATCH', 'Add Dispatch');
|
||
jobsitequery("AddDispatch", requireid + String.fromCharCode(170) + htmlencode(JSON.stringify(assets) + String.fromCharCode(170) + htmlencode(JSON.stringify(attachedassets))), function (data) {
|
||
if (typeof (data) === "string") {
|
||
showAlert(data, alerttitle);
|
||
} else {
|
||
_selectdispatchids = data;
|
||
$('#dialog_allmahchine').hide();
|
||
$("#dialogmask").hide();
|
||
if (daycount > 0) {
|
||
$('#dialog_managemahchine').hide();
|
||
OnRefresh(true);
|
||
|
||
var msg = GetTextByKey("P_JS_SCHEDULEDREQUIREMENTSTAKEPLACEWITHINTHENEXTDAYSWOULDYOULIKETO", "{0} scheduled requirements take place within the next 7 days. Would you like to:").replace('{0}', 1);
|
||
showRequirementConfirm(msg, alerttitle,
|
||
function () {
|
||
openAssignDispatch(0);
|
||
}, function () {
|
||
openAssignDispatch(1);
|
||
}, function () {
|
||
}, function () {
|
||
});
|
||
}
|
||
else
|
||
getAvailableAssetsByRequirement();
|
||
}
|
||
}, function (err) {
|
||
$("#dialogmask").hide();
|
||
});
|
||
}
|
||
|
||
|
||
//function OnExit() {
|
||
//}
|
||
|
||
function onDeleteDispatch() {
|
||
var dispatchids = [];
|
||
var tempsource = grid_assetdt.source;
|
||
for (var j = 0; j < tempsource.length; j++) {
|
||
var asset = tempsource[j];
|
||
if (asset.Selected) {
|
||
dispatchids.push(asset.DispatchId);
|
||
//收集相关联需删除的DispatchId
|
||
if (asset.AttachedAssets && asset.AttachedAssets.length > 0) {
|
||
for (var i = 0; i < asset.AttachedAssets.length; i++) {
|
||
var attasset = asset.AttachedAssets[i];
|
||
if (attasset.Selected && attasset.DispatchId)
|
||
dispatchids.push(attasset.DispatchId);
|
||
}
|
||
}
|
||
else {
|
||
if (asset.AttachedToAsset) {
|
||
if (asset.AttachedToAsset.Selected && asset.AttachedToAsset.DispatchId)
|
||
dispatchids.push(asset.AttachedToAsset.DispatchId);
|
||
if (asset.AttachedToAsset.AttachedAssets && asset.AttachedToAsset.AttachedAssets.length > 0) {
|
||
for (var i = 0; i < asset.AttachedToAsset.AttachedAssets.length; i++) {
|
||
var attasset = asset.AttachedToAsset.AttachedAssets[i];
|
||
if (attasset.Selected && attasset.DispatchId)
|
||
dispatchids.push(attasset.DispatchId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
if (dispatchids.length == 0)
|
||
return;
|
||
|
||
var item = {
|
||
'DispatchId': dispatchids,
|
||
'DeleteNotes': ''
|
||
};
|
||
var p = htmlencode(JSON.stringify(item));
|
||
|
||
var text = GetTextByKey("P_JS_DELETETHEDISPATCH", "Would you like to delete the dispatch?");
|
||
var alerttitle = GetTextByKey("P_JS_DELETEDISPATCH", "Delete Dispatch");
|
||
showConfirmIndialog(text, alerttitle, function () {
|
||
jobsitequery("DeleteDispatch", p, function (data) {
|
||
getAvailableAssetsByRequirement();
|
||
}, function (err) {
|
||
});
|
||
});
|
||
}
|
||
|
||
function CheckDeleteAttachedAsset(asset) {
|
||
if (asset.Selected) {
|
||
showAttachAssetList([]);
|
||
//ScheduleAssets显示相关联的assets
|
||
if (dispatchAssetsObj.RelatedRequirementAssets && dispatchAssetsObj.RelatedRequirementAssets.length > 0) {
|
||
var _showAttachedAssets = [];
|
||
if (asset.AttachedAssets && asset.AttachedAssets.length > 0) {
|
||
for (var i = 0; i < asset.AttachedAssets.length; i++) {
|
||
var attasset = asset.AttachedAssets[i];
|
||
var relatedasset = dispatchAssetsObj.RelatedRequirementAssets.find(a => a.AssetId == attasset.AssetId);
|
||
if (relatedasset) {
|
||
attasset.Selected = true;
|
||
attasset.DispatchId = relatedasset.DispatchId;
|
||
_showAttachedAssets.push(attasset);
|
||
}
|
||
}
|
||
}
|
||
else {
|
||
if (asset.AttachedToAsset) {
|
||
var atttoasset = asset.AttachedToAsset;
|
||
var relatedasset = dispatchAssetsObj.RelatedRequirementAssets.find(a => a.AssetId == atttoasset.AssetId);
|
||
if (relatedasset) {
|
||
atttoasset.Selected = true;
|
||
atttoasset.DispatchId = relatedasset.DispatchId;
|
||
_showAttachedAssets.push(atttoasset);
|
||
}
|
||
if (asset.AttachedToAsset.AttachedAssets && asset.AttachedToAsset.AttachedAssets.length > 0) {
|
||
for (var i = 0; i < asset.AttachedToAsset.AttachedAssets.length; i++) {
|
||
var attasset = asset.AttachedToAsset.AttachedAssets[i];
|
||
var relatedasset = dispatchAssetsObj.RelatedRequirementAssets.find(a => a.AssetId == attasset.AssetId);
|
||
if (relatedasset) {
|
||
attasset.Selected = true;
|
||
attasset.DispatchId = relatedasset.DispatchId;
|
||
_showAttachedAssets.push(attasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
if (_showAttachedAssets.length > 0) {
|
||
openAttachedAssetDialog(3);
|
||
showAttachAssetList(_showAttachedAssets);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function OnPrevious() {
|
||
if (!checkQuantity()) {
|
||
showAlert(GetTextByKey("P_JS_REQUIREMENTIFORASSETSPLEASEREMOVEEXCESSASSETS1", "Requirement is for {0} asset(s), please remove excess asset(s).").replace('{0}', (currentRequirement.Quantity)), GetTextByKey("P_AM_ERROR", 'Error'));
|
||
return;
|
||
}
|
||
if (--indexInRequirement < 0)
|
||
indexInRequirement = allRequirements.length - 1;
|
||
|
||
onManageAssets(allRequirements[indexInRequirement], true, indexInRequirement);
|
||
changeGridSelectIndex(indexInRequirement);
|
||
}
|
||
|
||
function OnNext() {
|
||
if (!checkQuantity()) {
|
||
showAlert(GetTextByKey("P_JS_REQUIREMENTIFORASSETSPLEASEREMOVEEXCESSASSETS1", "Requirement is for {0} asset(s), please remove excess asset(s).").replace('{0}', (currentRequirement.Quantity)), GetTextByKey("P_AM_ERROR", 'Error'));
|
||
return;
|
||
}
|
||
if (++indexInRequirement > allRequirements.length - 1)
|
||
indexInRequirement = 0;
|
||
|
||
onManageAssets(allRequirements[indexInRequirement], true, indexInRequirement);
|
||
changeGridSelectIndex(indexInRequirement);
|
||
}
|
||
|
||
function changeGridSelectIndex(index) {
|
||
}
|
||
|
||
function OnMachineAdd() {
|
||
$('#dialogmask').show();
|
||
var title = GetTextByKey("P_MA_SELECTASSET", "Select Assets");
|
||
$('#dialog_allmahchine .dialog-title span.title').html(title);
|
||
$('#dialog_allmahchine').showDialogAuto(1400);
|
||
|
||
showAllAssetList(alldispatchassets);
|
||
}
|
||
|
||
function showAttachAssetList(data) {
|
||
var rows = [];
|
||
for (var i = 0; i < data.length; i++) {
|
||
var r = data[i];
|
||
rows.push(r);
|
||
}
|
||
|
||
grid_attachedassetdt.setData(rows);
|
||
grid_attachedassetdt.refresh();
|
||
}
|
||
|
||
var grid_attachedassetdt;
|
||
function InitAttachedAssetGridData() {
|
||
grid_attachedassetdt = createGridView('#dialog_attachedassetlist');
|
||
var list_columns = [
|
||
{ name: 'Selected', caption: "", valueIndex: 'Selected', type: 3, css: { 'width': 45, 'text-align': 'center' } },
|
||
{ name: 'TypeName', caption: GetTextByKey("P_PM_ASSETTYPE", "Asset Type"), valueIndex: 'TypeName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'MakeName', caption: GetTextByKey("P_PM_MAKE", "Make"), valueIndex: 'MakeName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'ModelName', caption: GetTextByKey("P_PM_MODEL", "Model"), valueIndex: 'ModelName', css: { 'width': 100, 'text-align': 'left' } },
|
||
{ name: 'AssetName', caption: GetTextByKey("P_JS_ASSETNAME", "Asset Name"), valueIndex: 'AssetName', css: { 'width': 150, 'text-align': 'left' } }
|
||
];
|
||
var columns = [];
|
||
// head
|
||
for (var hd in list_columns) {
|
||
var col = {};
|
||
col.name = list_columns[hd].name;
|
||
col.caption = list_columns[hd].caption;
|
||
col.visible = list_columns[hd].visible === false ? false : true;
|
||
col.sortable = true;
|
||
col.width = list_columns[hd].css.width;
|
||
col.align = list_columns[hd].css["text-align"]
|
||
col.key = list_columns[hd].valueIndex;
|
||
col.allowFilter = list_columns[hd].allowFilter;
|
||
col.type = list_columns[hd].type;
|
||
|
||
if (col.name === "Selected") {
|
||
col.events = {
|
||
onclick: function () {
|
||
}
|
||
};
|
||
}
|
||
col.alwaysshow = list_columns[hd].alwaysshow;
|
||
columns.push(col);
|
||
}
|
||
grid_attachedassetdt.canMultiSelect = false;
|
||
grid_attachedassetdt.columns = columns;
|
||
grid_attachedassetdt.init();
|
||
}
|
||
|
||
function CheckRequirementExistsAsset(asset) {
|
||
var exists = false;
|
||
if (dispatchAssetsObj && dispatchAssetsObj.DispatchAssets && dispatchAssetsObj.DispatchAssets.length > 0) {
|
||
for (var i = 0; i < dispatchAssetsObj.DispatchAssets.length; i++) {
|
||
var disassts = dispatchAssetsObj.DispatchAssets[i];
|
||
if (disassts.AssetId === asset.AssetId) {
|
||
exists = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return exists;
|
||
}
|
||
|
||
function CheckAttachedAsset(asset) {
|
||
if (asset.Selected) {
|
||
showAttachAssetList([]);
|
||
var _showAttachedAssets = [];
|
||
var opttype = 0;
|
||
var toasset = null;
|
||
if (asset.AttachedAssets && asset.AttachedAssets.length > 0) {
|
||
var attachedassets = [];
|
||
for (var i = 0; i < asset.AttachedAssets.length; i++) {
|
||
var attasset = asset.AttachedAssets[i];
|
||
if (asset.TypeId != attasset.TypeId) {
|
||
if (addrequirement) {
|
||
attasset.Selected = true;
|
||
attachedassets.push(attasset);
|
||
}
|
||
else {
|
||
var exists = CheckRequirementExistsAsset(attasset);
|
||
if (!exists) {
|
||
attasset.Selected = true;
|
||
attachedassets.push(attasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
_showAttachedAssets = attachedassets;
|
||
opttype = 1;
|
||
}
|
||
else {
|
||
if (asset.AttachedToAsset) {
|
||
var attachedtoassets = [];
|
||
if (addrequirement) {
|
||
asset.AttachedToAsset.Selected = true;
|
||
attachedtoassets.push(asset.AttachedToAsset);
|
||
}
|
||
else {
|
||
var exists = CheckRequirementExistsAsset(asset.AttachedToAsset);
|
||
if (!exists) {
|
||
asset.AttachedToAsset.Selected = true;
|
||
attachedtoassets.push(asset.AttachedToAsset);
|
||
}
|
||
}
|
||
if (asset.AttachedToAsset.AttachedAssets && asset.AttachedToAsset.AttachedAssets.length > 0) {
|
||
for (var i = 0; i < asset.AttachedToAsset.AttachedAssets.length; i++) {
|
||
var attasset = asset.AttachedToAsset.AttachedAssets[i];
|
||
if (asset.AssetId !== attasset.AssetId && asset.TypeId !== attasset.TypeId) {
|
||
if (addrequirement) {
|
||
attasset.Selected = true;
|
||
attachedtoassets.push(attasset);
|
||
}
|
||
else {
|
||
var exists = CheckRequirementExistsAsset(attasset);
|
||
if (!exists) {
|
||
attasset.Selected = true;
|
||
attachedtoassets.push(attasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
_showAttachedAssets = attachedtoassets;
|
||
toasset = asset.AttachedToAsset;
|
||
opttype = 2;
|
||
}
|
||
}
|
||
if (_showAttachedAssets.length > 0) {
|
||
openAttachedAssetDialog(opttype, toasset);
|
||
showAttachAssetList(_showAttachedAssets);
|
||
}
|
||
}
|
||
else {
|
||
var selectedattachedassets = [];
|
||
if (asset.AttachedAssets && asset.AttachedAssets.length > 0) {
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
var req = allRequirements[i];
|
||
if (req.Assets && req.Assets.length > 0) {
|
||
for (var j = 0; j < req.Assets.length; j++) {
|
||
var reqasset = req.Assets[j];
|
||
if (reqasset.AttachedToAsset && reqasset.AttachedToAsset.AssetId === asset.AssetId) {
|
||
reqasset.Selected = true;
|
||
selectedattachedassets.push(reqasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (asset.AttachedToAsset) {
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
var req = allRequirements[i];
|
||
if (req.Assets && req.Assets.length > 0) {
|
||
for (var j = 0; j < req.Assets.length; j++) {
|
||
var reqasset = req.Assets[j];
|
||
if (reqasset.AssetId === asset.AttachedToAsset.AssetId) {
|
||
reqasset.Selected = true;
|
||
selectedattachedassets.push(reqasset);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
for (var i = 0; i < allRequirements.length; i++) {
|
||
var req = allRequirements[i];
|
||
if (req.Assets && req.Assets.length > 0) {
|
||
for (var j = 0; j < req.Assets.length; j++) {
|
||
var reqasset = req.Assets[j];
|
||
if (reqasset.AssetId !== asset.AssetId && reqasset.AttachedToAsset && reqasset.AttachedToAsset.AssetId === asset.AttachedToAsset.AssetId) {
|
||
reqasset.Selected = true;
|
||
selectedattachedassets.push(reqasset);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (selectedattachedassets.length > 0) {
|
||
openAttachedAssetDialog(3);
|
||
showAttachAssetList(selectedattachedassets);
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
function openAttachedAssetDialog(opttype, toasset) {//opttype:1 Add Primary, 2: Add Secondary, 3: Remove,4:Delete
|
||
$('#dialogmask').show();
|
||
$('#dialog_allassetmask').show();
|
||
$('#btn_removeattasset').hide();
|
||
var title = GetTextByKey('P_JS_SELECTATTACHEDASSETS', 'Select Attached Asset(s)');
|
||
var span1 = GetTextByKey('P_JS_THISASSETHASEQUIPMENTATTACHMENTSASSOCIATEDWITHIT', 'This asset has equipment/attachments associated with it.');
|
||
var span2 = GetTextByKey('P_JS_SELECTTHEASSETSTHATYOUWISHTOINDUDEWITHTHISASSET', 'Select the assets that you wish to indude with this asset.');
|
||
if (opttype == 3) {
|
||
title = GetTextByKey('P_JS_REMOVEATTACHEDASSETS', 'Remove Attached Asset(s)')
|
||
span2 = GetTextByKey('P_JS_WOULDYOULIKETOREMOVETHERELATEDREQUIREMENTS', 'Would you like to remove the related requirements?');
|
||
$('#btn_addattasset').hide();
|
||
$('#btn_removeattasset').show();
|
||
}
|
||
else {
|
||
if (opttype == 2)
|
||
span1 = GetTextByKey('P_JS_THISASSETISATTACHEDTO', 'This asset is attached to {0}').replace('{0}', toasset ? toasset.AssetName : "");
|
||
|
||
$('#btn_addattasset').show();
|
||
$('#btn_removeattasset').hide();
|
||
}
|
||
$('#span_attachedasset_tips1').text(span1);
|
||
$('#span_attachedasset_tips2').text(span2);
|
||
$('#dialog_attachedassets .dialog-title span.title').text(title);
|
||
$('#dialog_attachedassets')
|
||
.attr('act', 'edit')
|
||
.css({
|
||
'width': 600,
|
||
'top': (document.documentElement.clientHeight - $('#dialog_attachedassets').height()) / 4,
|
||
'left': (document.documentElement.clientWidth - $('#dialog_attachedassets').width()) / 2
|
||
}).showDialogfixed();
|
||
}
|
||
|
||
function OnAddAttachedAssets() {
|
||
var tempsource = grid_attachedassetdt.source;
|
||
for (var i = 0; i < tempsource.length; i++) {
|
||
var ct = tempsource[i];
|
||
if (ct.Selected) {
|
||
if (_removeattachedassets) {
|
||
for (var j = 0; j < _removeattachedassets.length; j++) {
|
||
if (ct.AssetId === _removeattachedassets[j])
|
||
_removeattachedassets.splice(j, 1);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
$('#dialogmask').hide();
|
||
$('#dialog_allassetmask').hide();
|
||
$('#dialog_attachedassets').hide();
|
||
}
|
||
|
||
var _removeattachedassets = [];
|
||
function OnRemoveAttachedAssets() {
|
||
_removeattachedassets = [];
|
||
var tempsource = grid_attachedassetdt.source;
|
||
for (var i = 0; i < tempsource.length; i++) {
|
||
var ct = tempsource[i];
|
||
if (ct.Selected) {
|
||
_removeattachedassets.push(ct.AssetId);
|
||
}
|
||
}
|
||
|
||
$('#dialogmask').hide();
|
||
$('#dialog_allassetmask').hide();
|
||
$('#dialog_attachedassets').hide();
|
||
}
|
||
|
||
function createRequirement(assets) {
|
||
var item = getSearchItem();
|
||
var types = item.AssetTypes;
|
||
for (var i = 0; i < assets.length; i++) {
|
||
var asset = assets[i];
|
||
var existitem = getExistsItem(asset.TypeId);
|
||
if (existitem) {
|
||
if (existitem.Assets) {
|
||
var existsasset = false;
|
||
for (var j = 0; j < existitem.Assets.length; j++) {
|
||
if (existitem.Assets[j].AssetId === asset.AssetId) {
|
||
existsasset = true;
|
||
continue;
|
||
}
|
||
}
|
||
if (!existsasset)
|
||
existitem.Assets.push(asset);
|
||
}
|
||
else
|
||
existitem.Assets = [asset];
|
||
|
||
existitem.ScheduledQuantity = existitem.Assets.length;
|
||
if (existitem.ScheduledQuantity > existitem.Quantity)
|
||
existitem.Quantity = existitem.ScheduledQuantity;
|
||
}
|
||
else {
|
||
types.push(asset.TypeId + '');
|
||
var aitem = {
|
||
'JobSiteId': item.JobSiteId,
|
||
'JobSiteName': item.JobSiteName,
|
||
'BeginDate': item.BeginDate,
|
||
'BeginDateStr': item.BeginDateStr,
|
||
'EndDate': item.EndDate,
|
||
'EndDateStr': item.EndDateStr,
|
||
'AssetType': asset.TypeId,
|
||
'AssetTypeName': asset.TypeName,
|
||
'Quantity': 1,
|
||
'Assets': [asset],
|
||
'ScheduledQuantity': 1,
|
||
'Days': item.Days,
|
||
'Notes': '',
|
||
'PointOfContact': item.PointOfContact,
|
||
};
|
||
allRequirements.push(aitem);
|
||
}
|
||
}
|
||
$("#div_assettypes").dropdownVals(types);
|
||
if (allRequirements.length > 0)
|
||
$("#btnFulfillRequest").show();
|
||
else
|
||
$("#btnFulfillRequest").hide();
|
||
|
||
showJobsiteRequirementList(allRequirements);
|
||
}
|
||
|
||
//*********************************************End Manage Assets***********************************************//
|
||
|
||
|