You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
490 lines
28 KiB
490 lines
28 KiB
'use strict';
|
|
var sProgramId = getProgramId(),
|
|
sEditPrgId = getEditPrgId(),
|
|
oGrid = null,
|
|
fnPageInit = function () {
|
|
var oForm = $('#form_main'),
|
|
oBaseQueryPm = {
|
|
pageIndex: 1,
|
|
pageSize: parent.SysSet.GridRecords || 10,
|
|
sortField: 'CreateDate',
|
|
sortOrder: 'desc'
|
|
},
|
|
/**
|
|
* 獲取資料
|
|
* @param {Object} args 查詢條件參數
|
|
* @return {Object} Ajax 物件
|
|
*/
|
|
fnGet = function (args) {
|
|
var oQueryPm = getFormSerialize(oForm);
|
|
|
|
$.extend(oQueryPm, oBaseQueryPm, args);
|
|
oBaseQueryPm.pageIndex = oQueryPm.pageIndex;
|
|
|
|
return g_api.ConnectLite(sProgramId, ComFn.GetPage, oQueryPm);
|
|
},
|
|
/**
|
|
* 匯出資料
|
|
* @param {Object} args 查詢參數
|
|
* @return {Object} Ajax 物件
|
|
*/
|
|
fnExcel = function (args) {
|
|
var oQueryPm = getFormSerialize(oForm);
|
|
|
|
$.extend(oQueryPm, oBaseQueryPm, args);
|
|
oBaseQueryPm.pageIndex = oQueryPm.pageIndex;
|
|
|
|
oQueryPm.Excel = true;
|
|
|
|
g_api.ConnectLite(sProgramId, ComFn.GetPage, oQueryPm, function (res) {
|
|
if (res.RESULT) {
|
|
DownLoadFile(res.DATA.rel);
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 目的 對應匯入廠商
|
|
* @param {String}item 預約單資料
|
|
*/
|
|
fnCorrespondImpCus = function (item) {
|
|
layer.open({
|
|
type: 1, //0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
|
|
title: i18next.t("PackingOrder_Upd.CorrespondImpCus"), // ╠PackingOrder_Upd.CorrespondImpCus⇒對應匯入廠商╣
|
|
area: '640px;',//寬度
|
|
shade: 0.75,//遮罩
|
|
closeBtn: 1,
|
|
//maxmin: true, //开启最大化最小化按钮
|
|
id: 'layer_PackingInfo', //设定一个id,防止重复弹出
|
|
offset: '100px',//右下角弹出
|
|
anim: 0,//彈出動畫
|
|
btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
|
|
btnAlign: 'c',//按鈕位置
|
|
content: '<style>.select2-container{z-index: 39891015;}</style><div class="form-group">\
|
|
<div class="col-sm-12">\
|
|
<select class= "form-control w95p" id="CustomerId" name="CustomerId"></select>\
|
|
</div>\
|
|
</div >',
|
|
success: function (layero, index) {
|
|
g_api.ConnectLite(sEditPrgId, 'SetImpCusDrop', {
|
|
Id: item.ExhibitionNO
|
|
}, function (res) {
|
|
if (res.RESULT) {
|
|
var saList = res.DATA.rel;
|
|
var sOptions = createOptions(saList, 'guid', 'CustomerCName');
|
|
$('#CustomerId').html(sOptions).select2();
|
|
}
|
|
});
|
|
transLang(layero);
|
|
},
|
|
yes: function (index, layero) {
|
|
var sCustomerId = $('#CustomerId').val();
|
|
if (!sCustomerId) {
|
|
showMsg(i18next.t('message.SelectImpCus'));//╠message.SelectImpCus⇒請選擇對應的廠商╣
|
|
return false;
|
|
}
|
|
g_api.ConnectLite(sEditPrgId, 'CorrespondImpCus', {
|
|
Id: item.AppointNO,
|
|
CustomerId: sCustomerId
|
|
}, function (res) {
|
|
if (res.DATA.rel) {
|
|
oGrid.loadData();
|
|
showMsg(i18next.t("message.Correspond_Success"), 'success'); //╠message.Correspond_Success⇒對應成功╣
|
|
layer.close(index);
|
|
}
|
|
else {
|
|
showMsg(i18next.t("message.Correspond_Failed"), 'error');//╠message.Correspond_Failed⇒對應失敗╣
|
|
}
|
|
});
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* 匯入到「其他」入口
|
|
* @param {String}item 預約單資料
|
|
*/
|
|
fnImportOthers = function (item) {
|
|
layer.open({
|
|
type: 1,
|
|
title: i18next.t('PackingOrder_Upd.SelectImportPrg'),// ╠PackingOrder_Upd.SelectImportPrg⇒選擇匯入入口╣
|
|
area: ['300px', '160px'],//寬度
|
|
shade: 0.75,//遮罩
|
|
shadeClose: true,
|
|
btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣
|
|
content: '<div class="pop-box">\
|
|
<button type="button" data-i18n="PackingOrder_Upd.OtherPrg" id="OtherPrg" class="btn-custom green">「其他」</button>\
|
|
<button type="button" data-i18n="PackingOrder_Upd.OtherPrgTG" id="OtherPrgTG" class="btn-custom green">「其他(駒驛)」</button>\
|
|
</div>',//╠PackingOrder_Upd.OtherPrg⇒「其他」╣╠PackingOrder_Upd.OtherPrgTG⇒「其他(駒驛)」╣
|
|
success: function (layero, index) {
|
|
$('.pop-box :button').click(function () {
|
|
if (this.id === 'OtherPrg') {
|
|
parent.openPageTab('OtherBusiness_Upd', '?Action=Add&AppointNO=' + item.AppointNO);
|
|
}
|
|
else {
|
|
parent.openPageTab('OtherExhibitionTG_Upd', '?Action=Add&AppointNO=' + item.AppointNO);
|
|
}
|
|
layer.close(index);
|
|
});
|
|
transLang(layero);
|
|
}
|
|
});
|
|
},
|
|
/**
|
|
* ToolBar 按鈕事件 function
|
|
* @param {Object}inst 按鈕物件對象
|
|
* @param {Object} e 事件對象
|
|
*/
|
|
fnButtonHandler = function (inst, e) {
|
|
var sId = inst.id;
|
|
switch (sId) {
|
|
case "Toolbar_Qry":
|
|
|
|
var iNum = $('#PerPageNum').val();
|
|
oGrid.pageSize = iNum === '' ? parent.SysSet.GridRecords || 10 : iNum;
|
|
cacheQueryCondition();
|
|
oGrid.openPage(window.bToFirstPage ? 1 : oBaseQueryPm.pageIndex);
|
|
|
|
break;
|
|
case "Toolbar_Save":
|
|
|
|
break;
|
|
case "Toolbar_ReAdd":
|
|
|
|
break;
|
|
case "Toolbar_Clear":
|
|
|
|
clearPageVal();
|
|
|
|
break;
|
|
case "Toolbar_Leave":
|
|
|
|
break;
|
|
|
|
case "Toolbar_Add":
|
|
|
|
break;
|
|
case "Toolbar_Upd":
|
|
|
|
break;
|
|
case "Toolbar_Copy":
|
|
|
|
break;
|
|
case "Toolbar_EntryOrder":
|
|
|
|
parent.openPageTab(sEditPrgId, '?Action=Add');
|
|
|
|
break;
|
|
case "Toolbar_Del": // ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣ ╠common.Tips⇒提示╣
|
|
|
|
break;
|
|
case "Toolbar_Exp":
|
|
if (oGrid.data.length === 0) {
|
|
showMsg(i18next.t("message.NoDataExport"));// ╠message.NoDataExport⇒沒有資料匯出╣
|
|
return false;
|
|
}
|
|
fnExcel();
|
|
break;
|
|
default:
|
|
|
|
alert("No handle '" + sId + "'");
|
|
|
|
break;
|
|
}
|
|
},
|
|
/**
|
|
* 頁面初始化
|
|
*/
|
|
init = function () {
|
|
var saCusBtns = [{
|
|
id: 'Toolbar_EntryOrder',
|
|
value: 'common.Toolbar_EntryOrder'// ╠common.Toolbar_EntryOrder⇒錄入預約單╣
|
|
}];
|
|
commonInit({
|
|
PrgId: sProgramId,
|
|
ButtonHandler: fnButtonHandler,
|
|
Buttons: saCusBtns,
|
|
SearchBar: true
|
|
}).done(function () {
|
|
var iHeight = $('body').height() - $('.page-title').height() - $('#searchbar').height() - 87;
|
|
$("#jsGrid").jsGrid({
|
|
width: "100%",
|
|
height: iHeight + "px",
|
|
autoload: true,
|
|
pageLoading: true,
|
|
inserting: false,
|
|
editing: false,
|
|
sorting: true,
|
|
paging: true,
|
|
pageIndex: window.bToFirstPage ? 1 : window.QueryPageidx || 1,
|
|
pageSize: parent.SysSet.GridRecords || 10,
|
|
pageButtonCount: parent.SysSet.GridPages || 15,
|
|
pagePrevText: "<",
|
|
pageNextText: ">",
|
|
pageFirstText: "<<",
|
|
pageLastText: ">>",
|
|
onPageChanged: function (args) {
|
|
cacheQueryCondition(args.pageIndex);
|
|
},
|
|
rowClass: function (item) {
|
|
var sClass = '';
|
|
if (item.IsKeyMode) {
|
|
sClass = 'key-in';
|
|
}
|
|
return sClass;
|
|
},
|
|
rowClick: function (args) {
|
|
if (navigator.userAgent.match(/mobile/i)) {
|
|
goToEdit(sEditPrgId, '?Action=Upd&AppointNO=' + args.item.AppointNO);
|
|
}
|
|
},
|
|
rowDoubleClick: function (args) {
|
|
if (args.item.IsKeyMode) {
|
|
parent.openPageTab(sEditPrgId, '?Action=Upd&AppointNO=' + args.item.AppointNO);
|
|
}
|
|
else {
|
|
var saPackingInfo = JSON.parse(args.item.PackingInfo),
|
|
sContent = '<div class="row popsrow">\
|
|
<div class="col-sm-12">\
|
|
<div id="jsGrid_PackingInfo"></div>\
|
|
</div>\
|
|
</div>\
|
|
<div class="row popsrow">\
|
|
<div class="col-sm-12 wcenter" style="font-size: 20px;font-weight: bold;">\
|
|
費用總計(新臺幣含稅):NT$<span class="PackingTotal"></span>\
|
|
</div>\
|
|
</div>';
|
|
|
|
layer.open({
|
|
type: 1,
|
|
title: i18next.t('common.BookingDetails'),//╠common.BookingDetails⇒預約明細╣
|
|
shadeClose: false,
|
|
shade: 0.1,
|
|
maxmin: true, //开启最大化最小化按钮
|
|
area: ['800px', '500px'],
|
|
content: sContent,
|
|
success: function (layero, index) {
|
|
$("#jsGrid_PackingInfo").jsGrid({
|
|
width: "100%",
|
|
height: "auto",
|
|
autoload: true,
|
|
pageLoading: true,
|
|
pageIndex: 1,
|
|
pageSize: 10000,
|
|
fields: [
|
|
{ name: "Index", title: 'common.RowNumber', width: 50, align: "center" },
|
|
{// ╠common.Packaging⇒包裝類型╣
|
|
name: "ExpoType", title: 'common.Packaging', width: 100, align: "center",
|
|
itemTemplate: function (val, item) {
|
|
var oExpoType = {
|
|
'zh-TW': { '01': '裸機', '02': '木箱', '03': '散貨', '04': '打板', '05': '其他' },
|
|
'en': { '01': 'Unwrapped', '02': 'Wooden Crate', '03': 'Bulk Cargo', '04': 'Pallet', '05': 'Other' }
|
|
},
|
|
bEn = 'Unwrapped,Wooden Crate,Bulk Cargo,Pallet,Other'.indexOf(item.ExpoTypeText) > -1;
|
|
return val ? oExpoType[bEn ? 'en' : 'zh-TW'][val] : '';
|
|
}
|
|
},
|
|
{// ╠common.Dimensions⇒尺寸╣
|
|
name: "ExpoLen", title: 'common.Dimensions', width: 100,
|
|
itemTemplate: function (val, item) {
|
|
return item.ExpoLen.toMoney() + '*' + item.ExpoWidth.toMoney() + '*' + item.ExpoHeight.toMoney();
|
|
}
|
|
},
|
|
{// ╠common.WeightKG⇒重量╣
|
|
name: "ExpoWeight", title: 'common.WeightKG', width: 100, align: "right",
|
|
itemTemplate: function (val, item) {
|
|
return val.toMoney();
|
|
}
|
|
},
|
|
{
|
|
name: "ExpoNumber", title: 'common.Number', width: 100, align: "center",
|
|
itemTemplate: function (val, item) {
|
|
return val.toMoney();
|
|
}
|
|
},// ╠common.Number⇒件數╣
|
|
{// ╠common.ServiceProject⇒服務項目╣
|
|
name: "ExpoStack", title: 'common.ServiceProject', width: 200,
|
|
itemTemplate: function (val, item) {
|
|
var oService = {
|
|
'zh-TW': ['堆高機服務', '拆箱(含空箱收送與儲存)', '裝箱', '空箱收送', '空箱儲存', '天'],
|
|
'en': ['Forklift', 'Unpacking (including empty crate transport & storage)', 'Packing', 'Empty Crate Transport', 'Empty Crate Storage', 'Days']
|
|
},
|
|
saText = [],
|
|
bEn = 'Unwrapped,Wooden Crate,Bulk Cargo,Pallet,Other'.indexOf(item.ExpoTypeText) > -1;
|
|
oService = oService[bEn ? 'en' : 'zh-TW'];
|
|
if (item.ExpoStack) {
|
|
saText.push(oService[0]);
|
|
}
|
|
if (item.ExpoSplit) {
|
|
saText.push(oService[1]);
|
|
}
|
|
if (item.ExpoPack) {
|
|
saText.push(oService[2]);
|
|
}
|
|
if (item.ExpoFeed) {
|
|
saText.push(oService[3]);
|
|
}
|
|
if (item.ExpoStorage) {
|
|
saText.push(oService[4] + item.ExpoDays + oService[5]);
|
|
}
|
|
return saText.join(',');
|
|
}
|
|
},
|
|
{// ╠common.Cost⇒費用╣
|
|
name: "SubTotal", title: 'common.Cost', width: 100, align: "right",
|
|
itemTemplate: function (val, item) {
|
|
return fMoney(val || 0, 0, 'NTD');
|
|
}
|
|
}
|
|
],
|
|
controller: {
|
|
loadData: function (args) {
|
|
return {
|
|
data: saPackingInfo,
|
|
itemsCount: saPackingInfo.length //data.length
|
|
};
|
|
}
|
|
}
|
|
});
|
|
$(".PackingTotal").text(fMoney(args.item.Total || 0, 0, 'NTD'));
|
|
},
|
|
btn: [i18next.t('common.Close')],//╠common.Close⇒關閉╣
|
|
});
|
|
}
|
|
},
|
|
fields: [
|
|
{ name: "RowIndex", title: 'common.RowNumber', align: "center", type: "text", width: 40, sorting: false },
|
|
{// ╠common.AppointNO⇒預約單號╣
|
|
name: "AppointNO", title: 'common.AppointNO', type: "text", width: 120
|
|
},
|
|
{// ╠common.CompanyName⇒公司名稱╣
|
|
name: "CompName", title: 'common.CompanyName', type: "text", width: 150
|
|
},
|
|
{
|
|
name: "Exhibitioname_TW", title: 'Exhibition_Upd.Exhibitioname_TW', type: "text", width: 150,
|
|
itemTemplate: function (val, item) {
|
|
return $('<a />', {
|
|
class: 'link',
|
|
text: val, click: function () {
|
|
parent.openPageTab('Exhibition_Upd', '?Action=Upd&SN=' + item.ExhibitionNO);
|
|
}
|
|
})
|
|
}
|
|
},
|
|
{// ╠common.MuseumMumber⇒預約攤號╣
|
|
name: "MuseumMumber", title: 'common.MuseumMumber', type: "text", width: 70
|
|
},
|
|
{// ╠common.AppointUser⇒預約人員╣
|
|
name: "AppointUser", title: 'common.AppointUser', type: "text", width: 80
|
|
},
|
|
{// ╠common.AppointTel⇒預約電話╣
|
|
name: "AppointTel", title: 'common.AppointTel', type: "text", width: 80
|
|
},
|
|
{// ╠common.AppointEmail⇒預約Email╣
|
|
name: "AppointEmail", title: 'common.AppointEmail', type: "text", width: 140
|
|
},
|
|
{// ╠ExhibitionImport_Upd.SitiContactor⇒現場聯絡人╣
|
|
name: "Contactor", title: 'ExhibitionImport_Upd.SitiContactor', type: "text", width: 80
|
|
},
|
|
{// ╠ExhibitionImport_Upd.SitiTelephone⇒現場聯絡電話╣
|
|
name: "ContactTel", title: 'ExhibitionImport_Upd.SitiTelephone', type: "text", width: 80
|
|
},
|
|
{// ╠ExhibitionImport_Upd.ApproachTime⇒進場時間╣
|
|
name: "ApproachTime", title: 'ExhibitionImport_Upd.ApproachTime', type: "text", align: "center", width: 100,
|
|
itemTemplate: function (val, item) {
|
|
return newDate(val);
|
|
}
|
|
},
|
|
{// ╠ExhibitionImport_Upd.ExitTime⇒退場時間╣
|
|
name: "ExitTime", title: 'ExhibitionImport_Upd.ExitTime', type: "text", align: "center", width: 100,
|
|
itemTemplate: function (val, item) {
|
|
return newDate(val);
|
|
}
|
|
},
|
|
{// ╠common.AppointDateTime⇒預約時間╣
|
|
name: "AppointDateTime", title: 'common.AppointDateTime', type: "text", align: "center", width: 100,
|
|
itemTemplate: function (val, item) {
|
|
return newDate(val);
|
|
}
|
|
},
|
|
{// ╠PackingOrder_Upd.CorrespondStatus⇒對應狀態╣
|
|
name: "CustomerId", title: 'PackingOrder_Upd.CorrespondStatus', type: "text", align: "center", width: 100,
|
|
itemTemplate: function (val, item) {
|
|
var templ = [];
|
|
if (val) {// ╠PackingOrder_Upd.HasCorrespond⇒已對應╣
|
|
templ.push($('<span />', { text: i18next.t('PackingOrder_Upd.HasCorrespond') }).css('color', 'green'));
|
|
if (item.IsFormal) {
|
|
// ╠common.HasFormal⇒已轉正╣
|
|
templ.push('(', $('<span />', { text: i18next.t('common.HasFormal') }).css('color', 'green'), ')');
|
|
}
|
|
else {
|
|
// ╠common.NotFormal⇒未轉正╣
|
|
templ.push('(', $('<a />', {
|
|
class: 'link',
|
|
text: i18next.t('common.NotFormal'), click: function () {
|
|
parent.openPageTab('Customers_Upd', '?Action=Add&FromId=' + item.AppointNO + '&From=Appoint&Flag=Appoint');
|
|
}
|
|
}).css('color', 'red'), ')');
|
|
}
|
|
}
|
|
else {
|
|
templ.push($('<a/>', {
|
|
html: i18next.t('PackingOrder_Upd.CorrespondImpCus'),// ╠PackingOrder_Upd.CorrespondImpCus⇒對應到匯入廠商╣
|
|
class: 'link',
|
|
click: function () {
|
|
fnCorrespondImpCus(item);
|
|
}
|
|
}));
|
|
}
|
|
return templ;
|
|
}
|
|
},
|
|
{// ╠PackingOrder_Upd.ImpOtherPrgStatus⇒匯入狀態╣
|
|
name: "OtherId", title: 'PackingOrder_Upd.ImpOtherPrgStatus', type: "text", align: "center", width: 100,
|
|
itemTemplate: function (val, item) {
|
|
var templ = $('<a />', {
|
|
class: 'link',
|
|
text: i18next.t('PackingOrder_Upd.HasImpOtherPrg'), click: function () {
|
|
var bTG = item.OtherIdFrom === 'OtherBusiness_Upd';
|
|
parent.openPageTab(item.OtherIdFrom, '?Action=Upd&' + (bTG ? 'ImportBillNO' : 'Guid') + '=' + item.OtherId + '&GoTab=' + (bTG ? 2 : 3));
|
|
}
|
|
}).css('color', 'green');// ╠PackingOrder_Upd.HasImpOtherPrg⇒已產生賬單資料╣
|
|
if (!val) {
|
|
templ = $('<a/>', {
|
|
html: i18next.t('PackingOrder_Upd.ImpOtherPrg'),// ╠PackingOrder_Upd.ImpOtherPrg⇒匯入到「其他」入口╣
|
|
class: 'link',
|
|
click: function () {
|
|
var sError = '';
|
|
if (!item.CustomerId) {
|
|
sError = i18next.t('message.CorrespondImpCusFirst');//╠message.CorrespondImpCusFirst⇒請先對應到匯入廠商╣
|
|
}
|
|
if (!item.IsFormal) {
|
|
sError = i18next.t('message.TransferToFormalFirst');//╠message.TransferToFormalFirst⇒請先轉正該廠商╣
|
|
}
|
|
|
|
if (sError) {
|
|
showMsg(sError);
|
|
return false;
|
|
}
|
|
fnImportOthers(item);
|
|
}
|
|
});
|
|
}
|
|
return templ;
|
|
}
|
|
}
|
|
],
|
|
controller: {
|
|
loadData: function (args) {
|
|
return fnGet(args);
|
|
}
|
|
},
|
|
onInit: function (args) {
|
|
oGrid = args.grid;
|
|
}
|
|
});
|
|
});
|
|
};
|
|
|
|
init();
|
|
};
|
|
|
|
require(['base', 'jsgrid', 'select2', 'util'], fnPageInit);
|