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

'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);