|
|
'use strict'; var sProgramId = getProgramId(), sQueryPrgId = getQueryPrgId(), sAction = getUrlParam('Action') || 'Add', sDataId = getUrlParam('ExportBillNO'), sFlag = getUrlParam('Flag'), sGoTab = getUrlParam('GoTab'), sBillNOGO = getUrlParam('BillNO'), sCheckId = sDataId, sOrganizers = [], sSelectedOrganizers = [], MaxOrganizerCount = $(".Organizer").length + 1,//organizer count
fnPageInit = function () { var FeeItemCurrency = "TE,TG".indexOf(parent.UserInfo.OrgID) > -1 ? 'NTD' : 'RMB'; var oGrid = null, oForm = $('#form_main'), oValidator = null, sServiceCode = '', sDeptCode = '', sCustomersOptionsHtml = '', sCustomersNotAuditOptionsHtml = '', sCurrencyOptionsHtml = '', sAccountingCurrencyOptionsHtml = '', sTransportOptionsHtml = '', oAddItem = {}, oCurSupplierData = {}, oPrintMenu = {}, oCurData = {}, saGridData = [], saCustomers = [], saBatchArr = [], saPort = [], saCurrency = [], saFeeClass = [], saAccountingCurrency = [], nowResponsiblePerson = '', /** * 獲取資料 * @return {Object} ajax物件 */ fnGet = function () { if (sDataId) { return g_api.ConnectLite(sQueryPrgId, ComFn.GetOne, { Guid: sDataId }, function (res) { if (res.RESULT) { var oRes = res.DATA.rel; $('#VoidReason').text(oRes.VoidReason); if (oRes.Organizer.indexOf("]") === -1) oRes.Organizer = '["' + oRes.Organizer + '"]'; sOrganizers = $.parseJSON(oRes.Organizer); if (oRes.IsVoid === 'Y') { $('.voidreason').show(); $('#Toolbar_Void').attr({ 'id': 'Toolbar_OpenVoid', 'data-i18n': 'common.Toolbar_OpenVoid' }); } else { $('.voidreason').hide(); $('#Toolbar_OpenVoid').attr({ 'id': 'Toolbar_Void', 'data-i18n': 'common.Toolbar_Void' }); } transLang($('#Toolbar')); } }); } else { oCurData.Quote = { guid: guid(), KeyName: 'Quote', AuditVal: '0', FeeItems: [] }; oCurData.EstimatedCost = { guid: guid(), KeyName: 'EstimatedCost', AuditVal: '0', FeeItems: [] }; oCurData.ActualCost = { guid: guid(), KeyName: 'ActualCost', AuditVal: '0', FeeItems: [] }; oCurData.Bills = []; oCurData.ReturnBills = []; $('#AgentContactor').html(createOptions([])); fnSetPermissions(); return $.Deferred().resolve().promise(); } }, /** * 新增或修改完之后重新查询资料 */ fnReSet = function () { fnGet().done(function (res) { var oRes = res.DATA.rel; $('#VoidReason').text(oRes.VoidReason); if (oRes.VoidReason) { $('.voidreason').show(); } else { $('.voidreason').hide(); } getPageVal(); //緩存頁面值,用於清除
}); }, /** * 獲取貨物狀態 * @param {Object} data 當前流程對象 * @return {String} 當前流程名稱 */ fnGetFlowStatus = function (data) { var sFlowStatus = ''; if (data.ReturnType !== '') { sFlowStatus = '退運'; } else if (data.ClearanceData.ServiceBooth.Checked) { sFlowStatus = '送達攤位'; } else if (data.ClearanceData.WaitingApproach.Checked) { sFlowStatus = '等待進場'; } else if (data.ClearanceData.CargoRelease.Checked) { sFlowStatus = '貨物放行'; } else if (data.ClearanceData.GoodsArrival.Checked) { sFlowStatus = '貨物抵港'; } else if (data.ExportData.ExportRelease.Checked) { sFlowStatus = '出口放行'; } else if (data.ExportData.CustomsDeclaration.Checked) { sFlowStatus = '報關作業'; } else if (data.ExportData.Intowarehouse.Checked) { sFlowStatus = '貨物進倉'; } else if (data.ExportData.ReceiveFile.Checked) { sFlowStatus = '已收文件'; } return sFlowStatus; }, /** * 新增資料 * @param {String} flag 新增或儲存後新增 * @return {Object} ajax物件 */ fnAdd = function (flag) { var data = getFormSerialize(oForm), fnGetAdd = function () { data.Exhibitors = JSON.stringify(saGridData); data.Organizer = JSON.stringify(sOrganizers); CallAjax(ComFn.W_Com, ComFn.GetAdd, { Params: { exportexhibition: data } }, function (res) { if (res.d > 0) { bRequestStorage = false; if (flag === 'add') { showMsgAndGo(i18next.t("message.Save_Success"), sProgramId, '?Action=Upd&ExportBillNO=' + sDataId); // ╠message.Save_Success⇒新增成功╣
} else { showMsgAndGo(i18next.t("message.Save_Success"), sProgramId, '?Action=Add'); // ╠message.Save_Success⇒新增成功╣
} } else { showMsg(i18next.t("message.Save_Failed"), 'error'); // ╠message.Save_Failed⇒新增失敗╣
} }, function () { showMsg(i18next.t("message.Save_Failed"), 'error'); // ╠message.Save_Failed⇒新增失敗╣
}); }; data = packParams(data); data.OrgID = parent.OrgID; data.IsVoid = 'N'; data.DepartmentID = sDeptCode; data.Flow_Status = oCurData.Flow_Status || '';
data.Quote = oCurData.Quote || {}; data.Quote.AuditVal = oCurData.Quote.AuditVal || '0'; data.Quote.FeeItems = oCurData.Quote.FeeItems || []; data.EstimatedCost = oCurData.EstimatedCost || {}; data.EstimatedCost.AuditVal = oCurData.EstimatedCost.AuditVal || '0'; data.EstimatedCost.FeeItems = oCurData.EstimatedCost.FeeItems || []; data.ActualCost = oCurData.ActualCost || {}; data.ActualCost.AuditVal = oCurData.ActualCost.AuditVal || '0'; data.ActualCost.FeeItems = oCurData.ActualCost.FeeItems || []; data.Bills = oCurData.Bills || []; data.ReturnBills = oCurData.ReturnBills || []; data.Quote = JSON.stringify(data.Quote); data.EstimatedCost = JSON.stringify(data.EstimatedCost); data.ActualCost = JSON.stringify(data.ActualCost); data.Bills = JSON.stringify(data.Bills); data.ReturnBills = JSON.stringify(data.ReturnBills); if (data.AgentContactor) { data.AgentContactorName = $('#AgentContactor option:selected').text(); } else { data.AgentContactorName = ''; } if (data.ExhibitionNO) { data.ExportBillName = $('#ExhibitionNO option:selected').text(); } else { data.ExhibitionName = ''; }
if (!data.DocumentDeadline) delete data.DocumentDeadline; if (!data.ClosingDate) delete data.ClosingDate; if (!data.ETC) delete data.ETC; if (!data.ETD) delete data.ETD; if (!data.ETA) delete data.ETA; if (!data.ReminderAgentExecutionDate) delete data.ReminderAgentExecutionDate; if (!data.PreExhibitionDate) delete data.PreExhibitionDate; if (!data.ExitDate) delete data.ExitDate; if (!data.ExhibitionDateStart) delete data.ExhibitionDateStart; if (!data.ExhibitionDateEnd) delete data.ExhibitionDateEnd;
data.ExportBillNO = sDataId = guid(); return g_api.ConnectLite(Service.com, ComFn.GetSerial, { Type: 'C' + parent.UserInfo.OrgID + 'E', Flag: 'MinYear', Len: 3, Str: sServiceCode, AddType: sServiceCode, PlusType: '' }, function (res) { if (res.RESULT) { data.RefNumber = res.DATA.rel; var bRelease = true, sSuppliers = '', saPost = []; $.each(saGridData, function (idx, item) { item.RefSupplierNo = data.RefNumber + rndnum(3); if (!item.VoidContent) { if (bRelease && !item.VoidContent && (item.ExportData && !item.ExportData.ExportRelease.Checked) || !item.ExportData) { bRelease = false; } } sSuppliers += item.SupplierName + '|'; }); data.Suppliers = sSuppliers; data.Release = saGridData.length > 0 ? (bRelease ? 'Y' : 'N') : 'N'; fnGetAdd(); } else { showMsg(i18next.t("message.Save_Failed") + '<br>' + res.MSG, 'error');// ╠message.Save_Failed⇒新增失敗╣
} }, function () { showMsg(i18next.t("message.Save_Failed"), 'error'); // ╠message.Save_Failed⇒新增失敗╣
}); }, /** * 修改資料 */ fnUpd = function () { var data = getFormSerialize(oForm), bRelease = true, sSuppliers = ''; data = packParams(data, 'upd'); data.Organizer = JSON.stringify(sOrganizers);
$.each(saGridData, function (idx, item) { if (!item.VoidContent) { if (bRelease && (item.ExportData && !item.ExportData.ExportRelease.Checked) || !item.ExportData) { bRelease = false; } } sSuppliers += item.SupplierName + '|'; }); data.Suppliers = sSuppliers; data.Release = saGridData.length > 0 ? (bRelease ? 'Y' : 'N') : 'N'; data.IsVoid = oCurData.IsVoid; data.Flow_Status = oCurData.Flow_Status || ''; data.Quote = oCurData.Quote || {}; data.Quote.AuditVal = oCurData.Quote.AuditVal || '0'; data.Quote.FeeItems = oCurData.Quote.FeeItems || []; data.EstimatedCost = oCurData.EstimatedCost || {}; data.EstimatedCost.AuditVal = oCurData.EstimatedCost.AuditVal || '0'; data.EstimatedCost.FeeItems = oCurData.EstimatedCost.FeeItems || []; data.ActualCost = oCurData.ActualCost || {}; data.ActualCost.AuditVal = oCurData.ActualCost.AuditVal || '0'; data.ActualCost.FeeItems = oCurData.ActualCost.FeeItems || []; data.Bills = oCurData.Bills || []; data.ReturnBills = oCurData.ReturnBills || []; data.Quote = JSON.stringify(data.Quote); data.EstimatedCost = JSON.stringify(data.EstimatedCost); data.ActualCost = JSON.stringify(data.ActualCost); data.Bills = JSON.stringify(data.Bills); data.ReturnBills = JSON.stringify(data.ReturnBills); data.Exhibitors = JSON.stringify(saGridData);
if (data.AgentContactor) { data.AgentContactorName = $('#AgentContactor option:selected').text(); } else { data.AgentContactorName = ''; } if (data.ExhibitionNO) { data.ExportBillName = $('#ExhibitionNO option:selected').text(); } else { data.ExhibitionName = ''; }
delete data.ExportBillNO; if (!data.DocumentDeadline) delete data.DocumentDeadline; if (!data.ClosingDate) delete data.ClosingDate; if (!data.ETC) delete data.ETC; if (!data.ETD) delete data.ETD; if (!data.ETA) delete data.ETA; if (!data.ReminderAgentExecutionDate) delete data.ReminderAgentExecutionDate; if (!data.PreExhibitionDate) delete data.PreExhibitionDate; if (!data.ExitDate) delete data.ExitDate; if (!data.ExhibitionDateStart) delete data.ExhibitionDateStart; if (!data.ExhibitionDateEnd) delete data.ExhibitionDateEnd;
CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: data, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { bRequestStorage = false; showMsg(i18next.t("message.Modify_Success"), 'success'); //╠message.Modify_Success⇒修改成功╣
if (window.bLeavePage) { setTimeout(function () { pageLeave(); }, 1000); } fnUpdateBillInfo(sProgramId, sDataId); oCurData.ResponsiblePerson = data.ResponsiblePerson; } else { showMsg(i18next.t("message.Modify_Failed"), 'error');//╠message.Modify_Failed⇒修改失敗╣
nowResponsiblePerson = oCurData.ResponsiblePerson; } }, function () { showMsg(i18next.t("message.Modify_Failed"), 'error');//╠message.Modify_Failed⇒修改失敗╣
nowResponsiblePerson = oCurData.ResponsiblePerson; }); }, /** * 資料刪除 */ fnDel = function () { CallAjax(ComFn.W_Com, ComFn.GetDel, { Params: { exportexhibition: { ExportBillNO: sDataId } } }, function (res) { if (res.d > 0) { showMsgAndGo(i18next.t("message.Delete_Success"), sQueryPrgId); // ╠message.Delete_Success⇒刪除成功╣
} else { showMsg(i18next.t("message.Delete_Failed"), 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
} }, function () { showMsg(i18next.t("message.Delete_Failed"), 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
}); }, /** * 資料作廢 */ fnVoid = function () { layer.open({ type: 1, title: i18next.t('common.Toolbar_Void'),// ╠common.Toolbar_Void⇒作廢╣
shade: 0.75, maxmin: true, //开启最大化最小化按钮
area: ['500px', '250px'], content: '<div class="pop-box">\ <textarea name="VoidContent" id="VoidContent" style="min-width:300px;" class="form-control" rows="5" cols="20"></textarea>\ </div>', btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
success: function (layero, index) { }, yes: function (index, layero) { var data = { IsVoid: 'Y', VoidReason: $('#VoidContent').val() }; if (!$('#VoidContent').val()) { showMsg(i18next.t("message.VoidReason_Required")); // ╠message.VoidReason_Required⇒請填寫作廢原因╣
return false; } CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: data, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { oCurData.IsVoid = 'Y'; showMsg(i18next.t("message.Void_Success"), 'success'); // ╠message.Void_Success⇒作廢成功╣
fnReSet(); } else { showMsg(i18next.t('message.Void_Failed'), 'error'); // ╠message.Void_Failed⇒作廢失敗╣
} }); layer.close(index); } }); }, /** * 資料啟用 */ fnOpenVoid = function () { var data = { IsVoid: 'N', VoidReason: '' }; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: data, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { oCurData.IsVoid = 'N'; showMsg(i18next.t("message.OpenVoid_Success"), 'success'); // ╠message.OpenVoid_Success⇒啟用成功╣
fnReSet(); } else { showMsg(i18next.t("message.OpenVoid_Failed"), 'error'); // ╠message.OpenVoid_Failed⇒啟用失敗╣
} }, function () { showMsg(i18next.t("message.OpenVoid_Failed"), 'error'); // ╠message.OpenVoid_Failed⇒啟用失敗╣
}); }, /** * 打開要匯出的pop選擇匯出類別 */ fnOpenPopToExcel = function () { layer.open({ type: 1, title: i18next.t('common.DownLoadDocuments'),// ╠common.DownLoadDocuments⇒下載文檔╣
area: ['200px', '160px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <button type="button" data-i18n="ExhibitionImport_Upd.BusinessTrackingSchedule" id="Export_BusinessTrackingScheduleOne" class="btn-custom green">業務追蹤進度表</button>\ </div>',// ╠common.BusinessTrackingSchedule⇒請立即安排付款╣ success: function (layero, idx) { $('.pop-box :button').click(function () { var sToExcelType = this.id; fnExcel({ pageIndex: 1, pageSize: 100000, ToExcelType: sToExcelType }, idx); }); transLang(layero); } }); }, /** * 匯入資料 */ fnImport = function () { var oConfig = { Get: fnGetPopData_ImportData, SearchFields: [ { id: "Pop_RefNumber", type: 'text', i18nkey: 'ExhibitionExport_Upd.RefNumber' }, { id: "Pop_ExportBillName", type: 'text', i18nkey: 'ExhibitionExport_Upd.ExportBillName' }, { id: "Pop_ExportBillEName", type: 'text', i18nkey: 'ExhibitionExport_Upd.ExportBillEName' }, { id: "Pop_Agent", type: 'text', i18nkey: 'ExhibitionExport_Upd.Agent' } ], Fields: [ { name: "RowIndex", title: 'common.RowNumber', sorting: false, align: 'center', width: 50 }, { name: "RefNumber", title: 'ExhibitionExport_Upd.RefNumber', width: 100 }, { name: "ExportBillName", title: 'ExhibitionExport_Upd.ExportBillName', width: 200 }, { name: "ExportBillEName", title: 'ExhibitionExport_Upd.ExportBillEName', width: 200 }, { name: "AgentName", title: 'ExhibitionExport_Upd.Agent', width: 200 } ], Callback: function (item) { var oData = {};
oData.ResponsiblePerson = item.ResponsiblePerson; oData.ExhibitionNO = item.ExhibitionNO; oData.ExportBillName = item.ExportBillName; oData.ExportBillEName = item.ExportBillEName; oData.ExhibitionDateStart = item.ExhibitionDateStart; oData.ExhibitionDateEnd = item.ExhibitionDateEnd; oData.Organizer = item.Organizer; oData.Agent = item.Agent; oData.AgentContactor = item.AgentContactor; oData.AgentTelephone = item.AgentTelephone; oData.AgentEamil = item.AgentEamil;
setFormVal(oForm, oData); if (oData.Agent) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === oData.Agent; }).First(), saContactors = JSON.parse(oCur.Contactors || '[]'); $('#AgentContactor').html(createOptions(saContactors, 'guid', 'FullName')).val(oData.AgentContactor); } else { $('#AgentContactor').html(createOptions([])); } $('#ExhibitionDateStart').val(newDate(oData.ExhibitionDateStart, 'date', true)); $('#ExhibitionDateEnd').val(newDate(oData.ExhibitionDateEnd, 'date', true)); } }; oPenPops(oConfig); }, /** * 獲取展覽名稱資料 * @param {Object} args 查詢參數 * @return {Object} ajax */ fnGetPopData_ImportData = function (args) { args = args || {}; args.sortField = args.sortField || 'RefNumber'; args.sortOrder = args.sortOrder || 'desc'; args.pageIndex = args.pageIndex || 1; args.pageSize = args.pageSize || 10; args.RefNumber = $('#Pop_RefNumber').val(); args.ExportBillName = $('#Pop_ExportBillName').val(); args.ExportBillEName = $('#Pop_ExportBillEName').val(); args.Agent = $('#Pop_Agent').val();
return g_api.ConnectLite(sQueryPrgId, 'GetExcel', args); }, /** * 流程修改發送郵件 * @param {String} itemname 第幾個流程 * @param {Function} callback 回調函數 * @return {Boolean} 是否停止 */ fnSendEmail = function (itemname, callback) { if (parent.SysSet.IsOpenMail !== 'Y') { layer.alert(i18next.t('message.NotOpenMail'), { icon: 0 }, function () {// ╠message.NotOpenMail⇒系統沒有開放郵件發送功能,請聯絡管理員!╣
callback(); }); return false; }
CallAjax(ComFn.W_Com, ComFn.SendMail, { Params: { FromOrgID: parent.OrgID, FromUserID: parent.UserID, EmailTo: [{ ToUserID: $('#ResponsiblePerson').val(), Type: 'to' }], MailTempId: 'FlowChange', MailData: { RefNumber: $('#RefNumber').val(), ExhibitionType: '出口', DataDources: '出口管理', ChangeItem: itemname, SupplierName: oCurSupplierData.SupplierName, ModifyUser: parent.UserInfo.MemberName, ModifyDate: newDate(null, 'date') } } }, function (res) { if (res.d === '1') { callback(); showMsg(i18next.t("message.SendEmail_Success"), 'success'); // ╠message.SendEmail_Success⇒郵件寄送成功╣
} else { showMsg(i18next.t("message.SendEmail_Failed"), 'error'); // ╠message.SendEmail_Failed⇒郵件寄送失敗╣
} }, function () { showMsg(i18next.t("message.SendEmail_Failed"), 'error'); // ╠message.SendEmail_Failed⇒郵件寄送失敗╣
}); }, /** * 發送Tracking number給客戶格式 * @param {Object} data 單筆廠商資料 * @return {Boolean} 是否停止 */ fnSendTrackingNumberEmail = function (data) { var sMsg = ''; if (parent.SysSet.IsOpenMail !== 'Y') { showMsg(i18next.t("message.NotOpenMail"));// ╠message.NotOpenMail⇒系統沒有開放郵件發送功能,請聯絡管理員!╣
return false; } if (!data.Email) { sMsg += i18next.t("ExhibitionExport_Upd.SupplierEamil_required") + '<br/>'; // ╠ExhibitionImport_Upd.SupplierEamil_required⇒請輸入付款人╣
} if (!$('#ShipmentPort').val()) { sMsg += i18next.t("common.ShipmentPort_required") + '<br/>'; // ╠common.ShipmentPort_required⇒請輸入起運地╣
} if (!$('#Destination').val()) { sMsg += i18next.t("common.DestinationPort_required") + '<br/>'; // ╠common.DestinationPort_required⇒請輸入目的地╣
} if (!(data.ExportData !== undefined && data.ExportData.Intowarehouse !== undefined ? data.ExportData.Intowarehouse.Number : '')) { sMsg += i18next.t("message.Number_required") + '<br/>'; // ╠message.Number_required⇒請輸入件數╣
} if (!(data.ExportData !== undefined && data.ExportData.Intowarehouse !== undefined ? data.ExportData.Intowarehouse.Unit : '')) { sMsg += i18next.t("message.Unit_required"); // ╠message.Unit_required⇒ 請輸入(件數)單位╣
} if (sMsg) { showMsg(sMsg); return false; } var toSendMail = function (flag) { CallAjax(ComFn.W_Com, ComFn.SendMail, { Params: { FromOrgID: parent.OrgID, FromUserName: parent.SysSet.FromName || '系統郵件', EmailTo: [{ ToUserName: data.SupplierName, ToEmail: data.Email, Type: 'to' }], MailTempId: 'TrackingNumberNotice', MailData: { RefNumber: data.RefSupplierNo, BillLadNOType: 'none', ExhibitionName: oCurData.Exhibitioname_TW || '', ExhibitionEName: oCurData.Exhibitioname_EN || '', Shipment: $('#ShipmentPortCode').val(), Destination: $('#DestinationCode').val(), Number: data.ExportData !== undefined && data.ExportData.Intowarehouse !== undefined ? (data.ExportData.Intowarehouse.Number + ' ' + data.ExportData.Intowarehouse.Unit) : '' } } }, function (res) { if (res.d === '1') { showMsg(i18next.t("message.SendEmail_Success"), 'success'); // ╠message.SendEmail_Success⇒郵件寄送成功╣
if (flag) { var sIsSendMail = oCurData.IsSendMail + ',' + data.guid; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { IsSendMail: sIsSendMail }, keys: { ExportBillNO: sDataId } } } }, function (res1) { if (res1.d > 0) { oCurData.IsSendMail = sIsSendMail; $('.' + data.guid).removeClass('a-url').addClass('a-mailurl'); } }); } } else { showMsg(i18next.t("message.SendEmail_Failed"), 'error'); // ╠message.SendEmail_Failed⇒郵件寄送失敗╣
} }, function () { showMsg(i18next.t("message.SendEmail_Failed"), 'error'); // ╠message.SendEmail_Failed⇒郵件寄送失敗╣
}); }; if (isEmail(data.Email)) { if ((oCurData.IsSendMail || '').indexOf(data.guid) === -1) { toSendMail(true); } else { // ╠message.IsSendTrackingNumberEmail⇒已寄送过,是否再次寄送?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendTrackingNumberEmail'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { toSendMail(false); layer.close(index); }); } } else { showMsg(i18next.t("message.IncorrectEmail"), 'error'); // ╠message.IncorrectEmail⇒郵箱格式不正確╣
} }, /** * 批次發送Tracking number給客戶格式 */ fnBatchMail = function () { var toSendMail = function (data, name) { return CallAjax(ComFn.W_Com, ComFn.SendMail, { Params: { FromOrgID: parent.OrgID, FromUserName: parent.SysSet.FromName || '系統郵件', EmailTo: [{ ToUserName: data.SupplierName, ToEmail: data.Email, Type: 'to' }], MailTempId: 'TrackingNumberNotice', MailData: { RefNumber: data.RefSupplierNo, BillLadNOType: 'none', ExhibitionName: oCurData.Exhibitioname_TW || '', ExhibitionEName: oCurData.Exhibitioname_EN || '', Shipment: $('#ShipmentPortCode').val(), Destination: $('#DestinationCode').val(), Number: data.ExportData !== undefined && data.ExportData.Intowarehouse !== undefined ? (data.ExportData.Intowarehouse.Number + ' ' + data.ExportData.Intowarehouse.Unit) : '' } } }, function (res) { if (res.d === '1') { $('.' + data.guid).removeClass('a-url').addClass('a-mailurl'); showMsg(name + i18next.t("message.SendEmail_Success"), 'success'); // ╠message.SendEmail_Success⇒郵件寄送成功╣
} else { showMsg(name + i18next.t("message.SendEmail_Failed"), 'error'); // ╠message.SendEmail_Failed⇒郵件寄送失敗╣
} }, function () { showMsg(name + i18next.t("message.SendEmail_Failed"), 'error'); // ╠message.SendEmail_Failed⇒郵件寄送失敗╣
}); }, fnGetData = function () { var d = $.Deferred(), saList = [], iIndex = 1, sName = $('#Pop_SupplierName').val(), sEName = $('#Pop_SupplierEName').val();
$.each(saGridData, function (idx, item) { if ((((item.SupplierName || '').indexOf(sName) > -1 || sName === '') && ((item.SupplierEName || '').indexOf(sEName) > -1 || sEName === ''))) { saList.push({ RowIndex: iIndex, guid: item.guid, SupplierID: item.SupplierID, CustomerNO: item.CustomerNO, UniCode: item.UniCode, Email: item.Email, RefSupplierNo: item.RefSupplierNo, ExportData: item.ExportData, SupplierName: item.SupplierName || '', SupplierEName: item.SupplierEName || '' }); iIndex++; } });
d.resolve({ data: saList, itemsCount: saList.length }); return d.promise(); }, oConfig = { Id: 'PopIsBatch', Title: i18next.t('common.SelectBatchList'),// ╠common.SelectBatchList⇒請選擇要批次操作的資料╣
PageSize: 10000, Get: fnGetData, SearchFields: [ { id: "Pop_SupplierName", type: 'text', i18nkey: 'common.SupplierCName' }, { id: "Pop_SupplierEName", type: 'text', i18nkey: 'common.SupplierEName' } ], Fields: [ { name: "RowIndex", title: 'common.RowNumber', sorting: false, align: 'center', width: 50 },// ╠common.RowNumber⇒項次╣
{ name: "CustomerNO", title: 'Customers_Upd.CustomerNO', width: 80 }, { name: "SupplierName", title: 'common.SupplierCName', width: 150 }, { name: "SupplierEName", title: 'common.SupplierEName', width: 150 } ], Callback: function (items) { var sMsg = '', bEmail = true, oPost = [], sIsSendMail = ''; $.each(items, function (idx, item) { if (!item.Email || !isEmail(item.Email)) { sMsg = item.SupplierName === '' ? item.SupplierEName : item.SupplierName; bEmail = false; return false; } }); if (!bEmail) { showMsg(sMsg + i18next.t("message.IncorrectEmail"), 'error'); // ╠message.IncorrectEmail⇒郵箱格式不正確╣
return false; }
$.each(items, function (idx, item) { var sSupplierName = item.SupplierName === '' ? item.SupplierEName : item.SupplierName; if ((oCurData.IsSendMail || '').indexOf(item.guid) === -1) { sIsSendMail += item.guid + ','; oPost.push(toSendMail(item, sSupplierName)); } else { toSendMail(item, sSupplierName); } }); $.whenArray(oPost).done(function () { sIsSendMail = oCurData.IsSendMail + ',' + sIsSendMail; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { IsSendMail: sIsSendMail }, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { oCurData.IsSendMail = sIsSendMail; } }); }); } }; oPenPopm(oConfig); }, /** * 批次匯入廠商列表 */ fnBatchImport = function () { var fnGetData = function () { var sId = $('#Pop_ExhibitionName').val(), d = $.Deferred(); if (!sId) { return; } g_api.ConnectLite(sQueryPrgId, ComFn.GetOne, { Guid: sId }, function (res) { if (res.RESULT) { var oRes = res.DATA.rel; if (oRes.ExportBillNO) { var saExhibitors = $.parseJSON(oRes.Exhibitors), saNewExhibitors = [];
$.each(saExhibitors, function (idx, supplier) { var oNewExhibitor = {}, sRefSupplierNo = $('#RefNumber').val() + rndnum(3); oNewExhibitor.RowIndex = idx + 1; oNewExhibitor.guid = guid(); oNewExhibitor.SupplierID = supplier.SupplierID; oNewExhibitor.CustomerNO = supplier.CustomerNO || ''; oNewExhibitor.UniCode = supplier.UniCode; oNewExhibitor.SupplierName = supplier.SupplierName; oNewExhibitor.SupplierEName = supplier.SupplierEName || ''; oNewExhibitor.RefSupplierNo = sRefSupplierNo; oNewExhibitor.Contactor = supplier.Contactor || ''; oNewExhibitor.Telephone = supplier.Telephone || ''; oNewExhibitor.Email = supplier.Email || ''; oNewExhibitor.ContactorName = supplier.ContactorName || ''; oNewExhibitor.CreateUser = parent.UserID; oNewExhibitor.CreateDate = new Date().formate("yyyy/MM/dd HH:mm:ss"); saNewExhibitors.push(oNewExhibitor); }); d.resolve({ data: saNewExhibitors, itemsCount: saNewExhibitors.length }); } } }); return d.promise(); }, oConfig = { Id: 'PopIsBatch', Title: i18next.t('ExhibitionExport_Upd.SupplierBatchList'),// ╠ExhibitionExport_Upd.SupplierBatchList⇒批次匯入廠商╣
Width: '1000px', PageSize: 10000, Get: fnGetData, SearchFields: [ { id: "Pop_ExhibitionName", type: 'select', i18nkey: 'ExhibitionExport_Upd.ExportBillName' } ], Fields: [ { name: "RowIndex", title: 'common.RowNumber', sorting: false, align: 'center', width: 50 }, { name: "SupplierName", title: 'common.SupplierName', width: 200 }, { name: "SupplierEName", title: 'common.SupplierEName', width: 200 }, { name: "ContactorName", title: 'common.Contactor', width: 100 }, { name: "Telephone", title: 'common.Telephone', width: 100 }, { name: "Email", title: 'common.Email', width: 150 } ], Callback: function (items) { saGridData = clone(items); oGrid.loadData(); } }; CallAjax(ComFn.W_Com, ComFn.GetList, { Type: '', Params: { exportexhibition: { IsVoid: 'N', OrgID: parent.OrgID } } }, function (res) { var saList = $.parseJSON(res.d); oConfig.SearchFields[0].html = createOptions(saList, 'ExportBillNO', 'ExportBillName'); oConfig.ContentPlush = '<style>.select2-container--open {z-index: 1000000001; }</style>'; oConfig.PopSuccessCallback = function (layero) { setTimeout(function () { $('#Pop_ExhibitionName').select2({ width: '240px' }); }, 100); }; oPenPopm(oConfig); }); }, /** * 設定完成按鈕 * @param {Object} flow 父層dom對象 * @param {Boolean} bcomplete 是否完成 */ setSuccessBtn = function (flow, bcomplete) { var iCheckBox = flow.find(':input[type=checkbox]').length, iChecked = flow.find(':input[type=checkbox]').not("input:checked").length; if (iChecked === 0 && (iCheckBox !== iChecked || !bcomplete)) { flow.find(':input.complete').removeAttr('disabled'); } else { flow.find(':input.complete').attr('disabled', true); } }, /** * 設定完成按鈕 * @param {Object}that 父層dom對象 */ setTime = function (checkbox) { let sDate = newDate(null, true); let divFormGroup = checkbox.parentNode.parentNode; let FormGroupDate = divFormGroup.querySelector('.date-picker');
if (checkbox.checked) { switch (checkbox.id) { case 'ExportData_InTransit1_Checked': //運輸中
let DesPortCode = document.querySelector('#DestinationCode'); //目的地
let InTransitETA = divFormGroup.querySelector('#ExportData_InTransit1_ETA'); //運送中-ETA
InTransitETA.value = DesPortCode.value; break; }
FormGroupDate.value = sDate; } else { FormGroupDate.value = '';
switch (checkbox.id) { case 'ExportData_InTransit1_Checked': //運輸中
let InTransitETA = document.querySelector('#ExportData_InTransit1_ETA'); //運送中-ETA
let IntransitDate = divFormGroup.querySelector('#ExportData_InTransit1_ETADate'); //運輸中-日期
InTransitETA.value = ''; IntransitDate.value = ''; break; } } }, /** * 設定流程頁簽 * @param {Object}form 表單 * @param {Object} oData 資料json */ setFlowBox = function (form, oData) { if (oData.ExportData) { if (oData.ExportData.complete) { form.find('#ExportData').find('[name]').attr('disabled', true); form.find('#ExportData').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#ExportData'), false); } if (oData.ReturnType === 'H') { form.find('#ReImport').show(); form.find('.addreturns').attr('disabled', true); } else if (oData.ReturnType === 'T') { form.find('#TranserThird').show(); form.find('.addreturns').attr('disabled', true); } else if (oData.ReturnType === 'P') { form.find('#PartThirdAndReImport').show(); form.find('.addreturns').attr('disabled', true); } form.find('#ExportData').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#ExportData').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#ExportData').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#ExportData').find(':input.undo').attr('disabled', true); form.find('#ExportData').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ExportData"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#ExportData')); } if (oData.ReImport) { if (oData.ReImport.complete) { form.find('#ReImport').find('[name]').attr('disabled', true); form.find('#ReImport').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#ReImport'), false); } form.find('#ReImport').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#ReImport').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#ReImport').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#ReImport').find(':input.undo').attr('disabled', true); form.find('#ReImport').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ReImport"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#ReImport')); } if (oData.TranserThird) { if (oData.TranserThird.complete) { form.find('#TranserThird').find('[name]').attr('disabled', true); form.find('#TranserThird').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#TranserThird'), false); } if (oData.LastReturnType === 'F') { form.find('#TransferFour').show(); form.find('#TranserThird').find('.addnextreturn').attr('disabled', true); } else if (oData.LastReturnType === 'H') { form.find('#ReImportFour').show(); form.find('.addnextreturn').attr('disabled', true); } form.find('#TranserThird').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#TranserThird').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#TranserThird').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#TranserThird').find(':input.undo').attr('disabled', true); form.find('#TranserThird').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.TranserThird"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); });
if (oData.TransferFour) { if (oData.TransferFour.complete) { form.find('#TransferFour').find('[name]').attr('disabled', true); form.find('#TransferFour').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#TransferFour'), false); } if (oData.ReturnType_4 === 'F') { form.find('#TransferFive').show(); form.find('#TransferFour').find('.addnextreturn').attr('disabled', true); } else if (oData.ReturnType_4 === 'H') { form.find('#ReImportFive').show(); form.find('#TransferFour').find('.addnextreturn').attr('disabled', true); } form.find('#TransferFour').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#TransferFour').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#TransferFour').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#TransferFour').find(':input.undo').attr('disabled', true); form.find('#TransferFour').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.TransferFourPlace"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#TransferFour')); } if (oData.ReImportFour) { if (oData.ReImportFour.complete) { form.find('#ReImportFour').find('[name]').attr('disabled', true); form.find('#ReImportFour').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#ReImportFour'), false); } form.find('#ReImportFour').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#ReImportFour').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#ReImportFour').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#ReImportFour').find(':input.undo').attr('disabled', true); form.find('#ReImportFour').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ReImport"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#ReImportFour')); }
if (oData.TransferFive) { if (oData.TransferFive.complete) { form.find('#TransferFive').find('[name]').attr('disabled', true); form.find('#TransferFive').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#TransferFive'), false); } if (oData.ReturnType_5 === 'F') { form.find('#TransferSix').show(); form.find('#TransferFive').find('.addnextreturn').attr('disabled', true); } else if (oData.ReturnType_5 === 'H') { form.find('#ReImportSix').show(); form.find('#TransferFive').find('.addnextreturn').attr('disabled', true); } form.find('#TransferFive').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { form.find('#TransferFive').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#TransferFive').find(':input.undo').attr('disabled', true); form.find('#TransferFive').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.TransferFivePlace"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#TransferFive')); } if (oData.ReImportFive) { if (oData.ReImportFive.complete) { form.find('#ReImportFive').find('[name]').attr('disabled', true); form.find('#ReImportFive').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#ReImportFive'), false); } form.find('#ReImportFive').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { form.find('#ReImportFive').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#ReImportFive').find(':input.undo').attr('disabled', true); form.find('#ReImportFive').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ReImport"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#ReImportFive')); }
if (oData.TransferSix) { if (oData.TransferSix.complete) { form.find('#TransferSix').find('[name]').attr('disabled', true); form.find('#TransferSix').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#TransferSix'), false); } form.find('#TransferSix').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { form.find('#TransferSix').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#TransferSix').find(':input.undo').attr('disabled', true); form.find('#TransferSix').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.TransferSixPlace"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#TransferSix')); } if (oData.ReImportSix) { if (oData.ReImportSix.complete) { form.find('#ReImportSix').find('[name]').attr('disabled', true); form.find('#ReImportSix').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#ReImportSix'), false); } form.find('#ReImportSix').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { form.find('#ReImportSix').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#ReImportSix').find(':input.undo').attr('disabled', true); form.find('#ReImportSix').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ReImport"), fnCallBack); layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#ReImportSix')); } } else { setSuccessBtn(form.find('#TranserThird')); } if (oData.PartThird) { if (oData.PartThird.complete) { form.find('#PartThird').find('[name]').attr('disabled', true); form.find('#PartThird').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#PartThird'), false); } form.find('#PartThird').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#PartThird').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#PartThird').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#PartThird').find(':input.undo').attr('disabled', true); form.find('#PartThird').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ReturnedHomeAndThirdPlace"), fnCallBack);// ╠ExhibitionExport_Upd.ReturnedHomeAndThirdPlace⇒部份轉運其他地區;部份退運回台╣
layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#PartThird')); } if (oData.PartReImport) { if (oData.PartReImport.complete) { form.find('#PartReImport').find('[name]').attr('disabled', true); form.find('#PartReImport').find(':input.complete').attr('disabled', true); } else { setSuccessBtn(form.find('#PartReImport'), false); } form.find('#PartReImport').find(':input.undo').removeAttr('disabled').click(function () { var fnCallBack = function () { //form.find('#PartReImport').find(':input[type=checkbox]:last').parents('.form-group').find(':input').removeAttr('disabled');
form.find('#PartReImport').find(':input[type=checkbox],:input[type=text],.complete,select').removeAttr('disabled'); form.find('#PartReImport').find(':input.undo').attr('disabled', true); form.find('#PartReImport').find(':input[type=hidden]').val(''); }; // ╠message.IsSendEmailToCharGer⇒是否要寄送郵件通知負責業務人員?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.IsSendEmailToCharGer'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnSendEmail(i18next.t("ExhibitionExport_Upd.ReturnedHomeAndThirdPlace"), fnCallBack);// ╠ExhibitionExport_Upd.ReturnedHomeAndThirdPlace⇒部份轉運其他地區;部份退運回台╣
layer.close(index); }, function () { fnCallBack(); }); }); } else { setSuccessBtn(form.find('#PartReImport')); }
form.find('.complete').click(function () { var oBtn = this, sId = $(oBtn).parents('.flow').attr('id'), data = getFormSerialize(form);
data[sId].complete = 'Y';
form.find('#' + sId + '_complete').val('Y'); form.find(oBtn).attr('disabled', true); form.find('#' + sId).find('[name]').attr('disabled', true); if ($(oBtn).parents('.flow').next('.flow').length > 0) { $(oBtn).parents('.flow').find('.addreturns,.addnextreturn').removeAttr('disabled'); } });
form.find('.addreturns').click(function () { layer.open({ type: 1, title: i18next.t('common.ReturnType'),// ╠common.ReturnType⇒請選擇運送類型╣
area: ['500px', '120px'],//寬度
shade: 0.75,//遮罩
shadeClose: true,// ╠ExhibitionExport_Upd.ReturnedHome⇒退運回國╣ ╠ExhibitionExport_Upd.TransferThirdPlace⇒出貨至第三地╣ ╠ExhibitionExport_Upd.ReturnedHomeAndThirdPlace⇒部分運至第三地部分退運回國╣
content: '<div class="pop-box">\ <button type="button" data-i18n="ExhibitionExport_Upd.ReturnedHome" id="btn_ReturnedHome" class="btn-custom green">退運回國</button>\ <button type="button" data-i18n="ExhibitionExport_Upd.TransferThirdPlace" id="btn_TransferThirdPlace" class="btn-custom green">出貨至第三地</button>\ <button type="button" data-i18n="ExhibitionExport_Upd.ReturnedHomeAndThirdPlace" id="btn_ReturnedHomeAndThirdPlace" class="btn-custom green">部分運至第三地部分退運回國</button>\ </div>', success: function (layero, idx) { layero.find('#btn_ReturnedHome').click(function () { form.find('#ReImport').show(); form.find('#TranserThird,#PartThirdAndReImport,#TransferFour,#ReImportFour').hide(); form.find('.addreturns').attr('disabled', true); form.find('#ReturnType').val('H'); layer.close(idx); }); layero.find('#btn_TransferThirdPlace').click(function () { form.find('#TranserThird').show(); form.find('#ReImport,#PartThirdAndReImport,#TransferFour,#ReImportFour').hide(); form.find('.addreturns').attr('disabled', true); form.find('#ReturnType').val('T'); layer.close(idx); }); layero.find('#btn_ReturnedHomeAndThirdPlace').click(function () { form.find('#PartThirdAndReImport').show(); form.find('#ReImport,#TranserThird,#TransferFour,#ReImportFour').hide(); form.find('.addreturns').attr('disabled', true); form.find('#ReturnType').val('P'); layer.close(idx); }); transLang(layero); } }); });
form.find('.addnextreturn').click(function () { var iIndex = $(this).attr('data-index'); layer.open({ type: 1, title: i18next.t('common.AddReimport'),// ╠common.AddReimport⇒增加退運╣
area: ['300px', '120px'],//寬度
shade: 0.75,//遮罩
shadeClose: true,// ╠common.ReturnedHome⇒退運回國╣ ╠common.TransferFourPlace⇒出貨至第四地╣ ╠common.TransferFivePlace⇒出貨至第五地╣ ╠common.TransferSixPlace⇒出貨至第六地╣
content: '<div class="pop-box">\ <button type="button" data-i18n="ExhibitionExport_Upd.ReturnedHome" id="btn_ReturnedHome" class="btn-custom green">退運回國</button>\ <button type="button" data-i18n="ExhibitionExport_Upd.' + (iIndex === '3' ? 'TransferFourPlace' : iIndex === '4' ? 'TransferFivePlace' : 'TransferSixPlace') + '" id="btn_Transfer" class="btn-custom green">出貨至第n地</button>\ </div>', success: function (layero, idx) { layero.find('#btn_ReturnedHome').click(function () { switch (iIndex) { case '3': form.find('#TransferFour').hide(); form.find('#ReImportFour').show(); form.find('#TranserThird').find('.addnextreturn').attr('disabled', true); form.find('#LastReturnType').val('H'); break; case '4': form.find('#TransferFive').hide(); form.find('#ReImportFive').show(); form.find('#TransferFour').find('.addnextreturn').attr('disabled', true); form.find('#ReturnType_4').val('H'); break; case '5': form.find('#TransferSix').hide(); form.find('#ReImportSix').show(); form.find('#TransferFive').find('.addnextreturn').attr('disabled', true); form.find('#ReturnType_5').val('H'); break; } layer.close(idx); }); layero.find('#btn_Transfer').click(function () { switch (iIndex) { case '3': form.find('#TransferFour').show(); form.find('#ReImportFour').hide(); form.find('#TranserThird').find('.addnextreturn').attr('disabled', true); form.find('#LastReturnType').val('F'); break; case '4': form.find('#TransferFive').show(); form.find('#ReImportFive').hide(); form.find('#TransferFour').find('.addnextreturn').attr('disabled', true); form.find('#ReturnType_4').val('F'); break; case '5': form.find('#TransferSix').show(); form.find('#ReImportSix').hide(); form.find('#TransferFive').find('.addnextreturn').attr('disabled', true); form.find('#ReturnType_5').val('F'); break; } layer.close(idx); }); transLang(layero); } }); });
form.find(':input[type=checkbox]').not('#IsBatch').on('click', function (e) { setTime(this); setSuccessBtn($(this).parents('.flow')); });
form.find(':input,select').on('change', function () { bRequestStorage = true; });
form.find('.ui-icon-close').on('click', function (e) { var sFlowId = $(this).parents('.flow')[0].id; switch (sFlowId) { case 'ExportData': $(this).parents('.form-group').remove(); break; case 'PartThird': form.find('#PartThirdAndReImport').hide(); form.find('.addreturns').removeAttr('disabled'); form.find('#ReturnType').val(''); break; case 'TranserThird': form.find('#TranserThird,#ReImportFour,#TransferFour,#ReImportFive,#TransferFive,#ReImportSix,#TransferSix').hide(); form.find('.addreturns').removeAttr('disabled'); form.find('#ReturnType').val(''); form.find('#LastReturnType').val(''); form.find('#ReturnType_4').val(''); form.find('#ReturnType_5').val(''); break; case 'ReImport': form.find('#ReImport').hide(); form.find('.addreturns').removeAttr('disabled'); form.find('#ReturnType').val(''); break; case 'TransferFour': form.find('#TransferFour,#ReImportFive,#TransferFive,#ReImportSix,#TransferSix').hide(); form.find('#TranserThird').find('.addnextreturn').removeAttr('disabled'); form.find('#LastReturnType').val(''); form.find('#ReturnType_4').val(''); form.find('#ReturnType_5').val(''); break; case 'ReImportFour': form.find('#ReImportFour').hide(); form.find('#TranserThird').find('.addnextreturn').removeAttr('disabled'); form.find('#LastReturnType').val(''); break; case 'TransferFive': form.find('#TransferFive,#ReImportSix,#TransferSix').hide(); form.find('#TransferFour').find('.addnextreturn').removeAttr('disabled'); form.find('#ReturnType_4').val(''); form.find('#ReturnType_5').val(''); break; case 'ReImportFive': form.find('#ReImportFive').hide(); form.find('#TransferFour').find('.addnextreturn').removeAttr('disabled'); form.find('#ReturnType_4').val(''); break; case 'TransferSix': form.find('#TransferSix').hide(); form.find('#TransferFive').find('.addnextreturn').removeAttr('disabled'); form.find('#ReturnType_5').val(''); break; case 'ReImportSix': form.find('#ReImportSix').hide(); form.find('#TransferFive').find('.addnextreturn').removeAttr('disabled'); form.find('#ReturnType_5').val(''); break; } }); },
/** * 取得帳單log資料 * @return {Object} */ fnGetBillLogData = function (Bill) { var LogData = {}; LogData.OrgID = parent.OrgID; LogData.BillNO = Bill.BillNO; LogData.ExhibitioName = oCurData.Exhibitioname_TW; //ExhibitioName
LogData.PayerName = ''; if (Bill.Payer) { var PayerData = Enumerable.From(saCustomers).Where(function (e) { return e.id === Bill.Payer; }).First(); LogData.PayerName = PayerData.text; } LogData.ResponsiblePersonName = oCurData.ResponsiblePerson; LogData.Currency = Bill.Currency; LogData.ExchangeRate = Bill.ExchangeRate; LogData.Advance = Bill.Advance; LogData.AmountSum = Bill.AmountSum; LogData.TaxSum = Bill.TaxSum; LogData.AmountTaxSum = Bill.AmountTaxSum; LogData.TotalReceivable = Bill.TotalReceivable; LogData.OpmBillCreateUserName = oCurData.CreateUser; LogData.ModifyUser = parent.UserID; return LogData; },
/** * 設定客戶下拉選單 * @return {Object} ajax物件 */ fnSetCustomersDrop = function () { return g_api.ConnectLite(Service.sys, 'GetCustomerlist', {}, function (res) { if (res.RESULT) { saCustomers = res.DATA.rel; var saContactors = [] if (saCustomers.length > 0) { sCustomersOptionsHtml = createOptions(saCustomers, 'id', 'text'); $('#Agent').html(sCustomersOptionsHtml).on('change', function () { var sAgent = this.value; if (sAgent) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === sAgent; }).First(); saContactors = JSON.parse(oCur.Contactors || '[]'); $('#AgentContactor').html(createOptions(saContactors, 'guid', 'FullName')).off('change').on('change', function () { var sContactor = this.value; if (sContactor) { var oContactor = Enumerable.From(saContactors).Where(function (e) { return e.guid === sContactor; }).First(); $('#AgentEamil').val(oContactor.Email); $('#AgentTelephone').val(oContactor.TEL1); } else { $('#AgentEamil').val(''); $('#AgentTelephone').val(''); } bRequestStorage = true; }); } else { $('#AgentContactor').html(createOptions([])); } }); $('#Organizer1,#Organizer2,#Organizer3,#Organizer4').html(sCustomersOptionsHtml); var saNotAuditCurs = Enumerable.From(saCustomers).Where(function (e) { return e.IsAudit === 'Y'; }).ToArray(); sCustomersNotAuditOptionsHtml = createOptions(saNotAuditCurs, 'id', 'text'); } select2Init(); $("#Organizer1,#Organizer2,#Organizer3,#Organizer4").select2(); $.each($("#Organizer1,#Organizer2,#Organizer3,#Organizer4"), function (idx, item) { //組團單位-動態產生
let OrganizerIdex = idx + 1; $("#Organizer" + OrganizerIdex).on('select2:select', function (e) { var data = e.params.data; sSelectedOrganizers[OrganizerIdex] = { id: data.id, text: data.text, title: data.title }; $('[data-id="BillOrganizer"]').html(createOptions(sSelectedOrganizers.filter(e => e != null), 'id', 'text')); //加入到儲存資料內
sOrganizers = []; $.each(sSelectedOrganizers, function (idx, e) { if (e && e.id.length === 36) sOrganizers.push(e.id); }) }); }) //後端對應也要改
sSelectedOrganizers[MaxOrganizerCount] = { id: "SelfCome", text: "自來", title: "自來" }; } }); }, /** * 批次操作獲取廠商資料 * @return {Object} promise物件 */ fnGetPop_CusSupplier = function () { var saList = [], iIndex = 1, sSupplierName = $('#Pop_SupplierName').val(), sSupplierEName = $('#Pop_SupplierEName').val(), fnCheck = function (itemMatch) { var bMatch = true; if (!((itemMatch.LastReturnType || '') === (oCurSupplierData.LastReturnType || '') && (itemMatch.ReturnType || '') === (oCurSupplierData.ReturnType || ''))) { bMatch = false; } return bMatch; }, d = $.Deferred();
$.each(saGridData, function (idx, item) { if ((((item.SupplierName || '').indexOf(sSupplierName) > -1 || sSupplierName === '') && ((item.SupplierEName || '').indexOf(sSupplierEName) > -1 || sSupplierEName === '') && fnCheck(item))) { saList.push({ RowIndex: iIndex, guid: item.guid, SupplierID: item.SupplierID, CustomerNO: item.CustomerNO, UniCode: item.UniCode, SupplierName: item.SupplierName || '', SupplierEName: item.SupplierEName || '' }); iIndex++; } }); d.resolve({ data: saList, itemsCount: saList.length }); return d.promise(); }, /* * 取得當年度幣值設定 */ fnGetCurrencyThisYear = function (BillCreateTime) { return fnGetCurrencyByYear({ Year: BillCreateTime, CallBack: function (data) { saAccountingCurrency = data; sAccountingCurrencyOptionsHtml = createOptions(saAccountingCurrency, 'ArgumentID', 'ArgumentValue', false, 'Correlation'); } }); }, /**------------------------帳單部分---------------------------Start*/
/** * 審核通過後禁用頁面欄位 * @param {Object}dom 當前區塊 * @param {Object}data 當前資料 */ fnSetDisabled = function (dom, data) { if (data) { if (data.BillNO) { switch (data.AuditVal) { case '0':// ╠common.NotAudit⇒未提交審核╣
dom.find('.status-font').text(i18next.t("common.NotAudit")).css('color', 'red'); break; case '1':// ╠common.InAudit⇒提交審核中╣
dom.find('.status-font').text(i18next.t("common.InAudit")).css('color', 'blue'); break; case '2':// ╠common.Audited⇒已審核╣
dom.find('.status-font').text(i18next.t("common.Audited")).css('color', 'green'); break; case '3':// ╠common.NotPass⇒不通過╣
dom.find('.status-font').text(i18next.t("common.NotPass")).css('color', 'red'); break; case '4':// ╠common.NotPass⇒已銷帳╣
dom.find('.status-font').text(i18next.t("common.HasBeenRealized")).css('color', 'red'); break; case '5':// ╠common.HasBeenPost⇒已過帳╣
dom.find('.status-font').text(i18next.t("common.HasBeenPost")).css('color', 'green'); break; case '6':// ╠common.HasVoid⇒已作廢╣
dom.find('.status-font').text(i18next.t("common.HasVoid")).css('color', '#b2b1b1'); break; case '7':// ╠common.HasReEdit⇒抽單中╣
dom.find('.status-font').text(i18next.t("common.HasReEdit")).css('color', 'blue'); break; } } dom.find('.bill-status-box').show(); dom.find('.notpass-reason-box').hide(); let DraftRecipt = false; switch (data.AuditVal) { case '0':// ╠common.NotAudit⇒未提交審核╣
dom.find('.bill-status').text(i18next.t("common.NotAudit")).css('color', 'red'); dom.find('.billpost,.cancelpost,.writeoff,.canceloff,.reedit,.cancelreedit').hide(); dom.find('.submittoaudit,.synquote,.alreadyaudit').show(); dom.find('.alreadyaudit,.cancelaudi,.cancelpost,.writeoff').attr('disabled', 'disabled'); if (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser) { if (data.FeeItems.length > 0) { dom.find('.submittoaudit').removeAttr('disabled'); dom.parent().next().find('.synquote').removeAttr('disabled'); } else { dom.find('.submittoaudit').prop('disabled', true); dom.parent().next().find('.synquote').prop('disabled', true); } } else { if (data.KeyName === 'Bill') { dom.find(':input,textarea,.alreadyaudit,.cancelaudi,.cancelpost,.writeoff').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); } } if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.prepay,.mprepay,.billvoid').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); } else { dom.find('.billdelete').hide(); } dom.find('.bills-print').removeAttr('disabled');//新增列印草稿
DraftRecipt = true; break; case '1':// ╠common.InAudit⇒提交審核中╣
dom.find('.bill-status').text(i18next.t("common.InAudit")).css('color', 'blue'); dom.find('.billpost,.cancelpost,.writeoff,.canceloff,.cancelaudi').hide(); dom.find('.submittoaudit,.synquote,.alreadyaudit,.reedit,.cancelreedit').show(); dom.find(':input,textarea,.plusfeeitem,.importfeeitem,.copyfeeitem,.plusfeeitemstar,select,.submittoaudit,.synquote,.billpost,.cancelaudi,.cancelpost,.writeoff').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); if (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser) { dom.find('.reedit').removeAttr('disabled'); } if (parent.UserInfo.UsersDown.indexOf(oCurData.ResponsiblePerson) > -1 || parent.UserInfo.UsersBranch.indexOf(oCurData.ResponsiblePerson) > -1 || parent.SysSet.BillAuditor.indexOf(parent.UserInfo.MemberID) > -1) { dom.find('.alreadyaudit').removeAttr('disabled'); } if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.reedit,.cancelreedit').hide(); dom.find('.prepay,.mprepay,.billvoid').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); } else { dom.find('.billdelete').hide(); } dom.find('.bills-print').removeAttr('disabled');//新增列印草稿
break; case '2':// ╠common.Audited⇒已審核╣
dom.find('.bill-status').text(i18next.t("common.Audited")).css('color', 'green'); dom.find('.submittoaudit,.synquote,.alreadyaudit,.writeoff,.canceloff,.reedit,.cancelreedit').hide(); dom.find('.billpost,.cancelpost,.cancelaudi,.writeoff').show(); dom.find(':input,textarea,.plusfeeitem,.importfeeitem,.copyfeeitem,.plusfeeitemstar,select,.submittoaudit,.synquote,.billpost,.alreadyaudit,.cancelpost,.writeoff,[data-id="Payer"]').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); dom.find('.bills-print').removeAttr('disabled'); if (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser) { dom.find('.billpost,.receiptnumberbtn,.checkauditdate').removeAttr('disabled'); } if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.prepay,.mprepay,.cancelaudi,.billvoid,.writeoff').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); dom.find('.billpost,.cancelpost').hide(); } else { dom.find('.billdelete').hide(); } break; case '3':// ╠common.NotPass⇒不通過╣
dom.find('.notpass-reason-text').text(data.NotPassReason || ''); dom.find('.bill-status').text(i18next.t("common.NotPass")).css('color', 'red'); dom.find('.billpost,.cancelpost,.writeoff,.canceloff,.reedit,.cancelreedit').hide(); dom.find('.submittoaudit,.synquote,.alreadyaudit,.notpass-reason-box').show(); if (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser) { if (data.FeeItems.length > 0) { dom.find('.submittoaudit').removeAttr('disabled'); dom.parent().next().find('.synquote').removeAttr('disabled'); } else { dom.find('.submittoaudit').prop('disabled', true); dom.parent().next().find('.synquote').prop('disabled', true); } } else { dom.find(':input,textarea,.alreadyaudit,.cancelaudi,.cancelpost,.writeoff').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); } if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.prepay,.mprepay,.billvoid').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); } else { dom.find('.billdelete').hide(); } break; case '4':// ╠common.NotPass⇒已銷帳╣
dom.find('.bill-status').text(i18next.t("common.HasBeenRealized")).css('color', 'red'); dom.find('.submittoaudit,.synquote,.alreadyaudit,.cancelaudi,.billpost,.cancelpost,.writeoff,.reedit,.cancelreedit').hide(); dom.find('.canceloff').show(); dom.find(':input,textarea,.plusfeeitem,.importfeeitem,.copyfeeitem,.plusfeeitemstar,select,.alreadyaudit,.cancelaudi,.cancelpost,.writeoff,.submittoaudit,.synquote,.billpost').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); dom.find('.bills-print').removeAttr('disabled'); if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.canceloff,.billvoid').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); } else { dom.find('.billdelete').hide(); } break; case '5':// ╠common.HasBeenPost⇒已過帳╣
dom.find('.bill-status').text(i18next.t("common.HasBeenPost")).css('color', 'green'); dom.find('.billpost,.submittoaudit,.synquote,.alreadyaudit,.cancelaudi,.reedit,.cancelreedit').hide(); dom.find('.cancelpost,.writeoff,.canceloff').show(); dom.find(':input,textarea,.plusfeeitem,.importfeeitem,.copyfeeitem,.plusfeeitemstar,select,.alreadyaudit,.cancelaudi,.cancelpost,.writeoff,.bills-print,.submittoaudit,.synquote,.billpost').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); dom.find('.bills-print').removeAttr('disabled'); if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.cancelpost,.writeoff,.billvoid').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); } else { dom.find('.billdelete').hide(); } break; case '6':// ╠common.HasVoid⇒已作廢╣
dom.find('.notpass-reason-text').text(data.VoidReason || ''); dom.find('.bill-status').text(i18next.t("common.HasVoid")).css('color', '#b2b1b1'); dom.find('button').not('.plusfeeitem').hide(); dom.find('.notpass-reason-box').show(); dom.find(':input,textarea').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.billvoid').removeAttr('disabled'); } break; case '7':// ╠common.HasReEdit⇒抽單中╣
dom.find(':input,textarea').removeAttr('disabled'); dom.find('.icon-p').removeClass('disabled'); dom.find('.bill-status').text(i18next.t("common.HasReEdit")).css('color', 'blue'); dom.find('.submittoaudit,.synquote,.alreadyaudit').show(); dom.find('.billpost,.cancelpost,.writeoff,.canceloff').hide(); dom.find('.alreadyaudit,.cancelaudi,.cancelpost,.writeoff,.bills-print,.submittoaudit,.synquote,.reedit').attr('disabled', 'disabled'); if (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser) {//如果有資料且是null或者N
dom.find('.cancelreedit').removeAttr('disabled'); } else { if (data.KeyName === 'Bill') { dom.find(':input,textarea,.alreadyaudit,.cancelaudi,.cancelpost,.writeoff').attr('disabled', 'disabled'); dom.find('.icon-p').addClass('disabled'); } } if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
dom.find('.prepay,.mprepay,.billvoid').removeAttr('disabled'); } else { dom.find('.billvoid').hide(); } if (parent.UserInfo.roles.indexOf('Admin') > -1) {//超級管理員
dom.find('.billdelete').removeAttr('disabled'); } else { dom.find('.billdelete').hide(); } break; } if (DraftRecipt) { dom.find("[data-action='Print_Receipt']").hide(); dom.find("[data-action='Download_Receipt']").hide(); } else { dom.find("[data-action='Print_Receipt']").show(); dom.find("[data-action='Download_Receipt']").show(); } if (parent.UserInfo.roles.indexOf('Business') > -1) { dom.find('[data-id="ExchangeRate"]').attr('disabled', 'disabled'); } fnOpenAccountingArea(dom.find('.OnlyForAccounting'), parent.UserInfo.roles); fnOpenAccountingArea(dom.find('.BillOrganizers'), parent.UserInfo.roles); } }, /** * 綁定費用項目 * @param {HTMLELment} dom 當前標籤 * @param {HTMLELment} parentdata 父層標籤 * @param {Object} data 當前資料 * @param {String} flag 綁定狀態 */ fnBindFeeItem = function (dom, parentdata, data, flag) { $.each(data.FeeItems, function (idx, item) { item.OrderBy = idx + 1; item.FinancialUnitPrice = parseFloat((item.FinancialUnitPrice || '0').toString().replaceAll(',', '')); item.FinancialAmount = parseFloat((item.FinancialAmount || '0').toString().replaceAll(',', '')); item.FinancialTWAmount = parseFloat((item.FinancialTWAmount || '0').toString().replaceAll(',', '')); item.FinancialTax = parseFloat((item.FinancialTax || '0').toString().replaceAll(',', '')); }); data.FeeItems = Enumerable.From(data.FeeItems).OrderBy("x=>x.OrderBy").ToArray(); var sFeeItemsHtml = '', iSubtotal = 0, // 未稅總計
iSubtotal_Tax = 0,// 未稅總計-有稅率
iSubtotal_NoTax = 0,// 未稅總計-沒稅率
iTaxtotal = 0,// (純)稅金總計
iTaxSubtotal = 0, //總金額(未稅+稅)
oFinancial = dom.parents('.financial'), sDomId = dom.attr('data-id'), bForn = (data.Currency === undefined || data.Currency === 'NTD'), iOldBoxTotal = parseFloat((oFinancial.find('.boxtotal').val() || '0').replaceAll(',', '')), oTab = dom.parents('.tab-pane');
$.each(data.FeeItems, function (idx, item) { sFeeItemsHtml += '<tr>' + '<td class="wcenter">' + (idx + 1) + '</td>' + '<td class="wcenter">' + item.FinancialCode + '</td>' + '<td>' + (!item.FinancialCostStatement ? item.Memo : item.FinancialCostStatement + (!item.Memo ? '' : '(' + item.Memo + ')')) + '</td>' + '<td class="wcenter">' + item.FinancialCurrency + '</td>' + '<td class="wright">' + fMoney(item.FinancialUnitPrice, 2) + '</td>' + '<td class="wcenter">' + item.FinancialNumber + '</td>' + '<td>' + item.FinancialUnit + '</td>' + '<td class="wright">' + fMoney(item.FinancialAmount, 2) + '</td>' + '<td class="wcenter">' + item.FinancialExchangeRate + '</td>' + '<td class="wright">' + fMoney(item.FinancialTWAmount, 2) + '</td>' + '<td class="wcenter">' + item.FinancialTaxRate + '</td>' + '<td class="wright">' + fMoney(item.FinancialTax, 2) + '</td>' + (data.KeyName === 'ActualCost' ? '<td class="wcenter billpayer w15p " data-billno="' + (item.BillNO || '') + '" data-value="' + item.guid + '"></td>' : '') + (!flag ? '<td class="wcenter">' + '<div class="fa-item col-sm-3"><i class="glyphicon glyphicon-pencil icon-p" data-value="' + item.guid + '" title="編輯"></i></div>' + '<div class="fa-item col-sm-3"><i class="glyphicon glyphicon-trash icon-p" data-value="' + item.guid + '" title="刪除"></i></div>' + ((data.FeeItems.length !== idx + 1) ? '<div class="fa-item col-sm-3"><i class="glyphicon glyphicon-arrow-down icon-p" data-value="' + item.guid + '" title="下移"></i></div>' : '<div class="fa-item col-sm-3"><i class="icon-p"></i></div>') + ((idx !== 0) ? '<div class="fa-item col-sm-3"><i class="glyphicon glyphicon-arrow-up icon-p" data-value="' + item.guid + '" title="上移"></i></div>' : '<div class="fa-item col-sm-3"><i class="icon-p"></i></div>') + '</td>' : '') + +'</tr>'; if (item.FinancialTaxRate.toString().replace('%', '') !== '0') { iSubtotal_Tax += parseFloat(item.FinancialTWAmount); } else { iSubtotal_NoTax += parseFloat(item.FinancialTWAmount); } }); //計算總計(total)依序:1.參數的幣值 2.抓到財務的Currency設定 3.再來設定台幣。
var CurrencyType = (data.Currency || oFinancial.find('[data-id="Currency"]').val()) || FeeItemCurrency; dom.html(sFeeItemsHtml); iSubtotal_Tax = fnRound(iSubtotal_Tax, data.Currency); iSubtotal_NoTax = fnRound(iSubtotal_NoTax, data.Currency); iSubtotal = fnRound(iSubtotal_Tax + iSubtotal_NoTax, CurrencyType); var iTaxRate = parent.SysSet.TaxRate.toPoint(); iTaxtotal = fnRound(iSubtotal_Tax * (iTaxRate === 0 ? 0.05 : iTaxRate), CurrencyType); iTaxSubtotal = iSubtotal + iTaxtotal; oFinancial.find('.subtotal').val(fMoney(iSubtotal, 2, CurrencyType)); oFinancial.find('.taxtotal').val(fMoney(iTaxtotal, 2, CurrencyType)); oFinancial.find('.boxtotal').val(fMoney(iTaxSubtotal, 2, CurrencyType));
data.AmountSum = iSubtotal; data.TaxSum = iTaxtotal; data.AmountTaxSum = iTaxSubtotal;
switch (data.KeyName) { case 'ActualCost': if (oTab[0].id === 'tab4') { $('#tab4 .topshowsum').show(); $('#tab4 .actualsum').val(fMoney(iSubtotal, 2, data.Currency)); if (parentdata.ActualCost.AmountTaxSum > parentdata.EstimatedCost.AmountTaxSum) { $('#tab4 #warnning_tips').show(); } else { $('#tab4 #warnning_tips').hide(); } } else if (oTab[0].id === 'tab6') { oFinancial.find('.actualsum').val(fMoney(iSubtotal, 2, data.Currency)); var iAcount = 0; $.each(parentdata.Bills, function (idx, _bill) { if (_bill.AuditVal !== '6') { iAcount += _bill.AmountSum; } }); oFinancial.find('.amountsum').val(fMoney(iAcount, 2, data.Currency)); if (parentdata.ActualCost.AmountTaxSum > parentdata.EstimatedCost.AmountTaxSum) { oFinancial.parent().prev().find('.warnningtips').show(); } else { oFinancial.parent().prev().find('.warnningtips').hide(); } } break; case 'EstimatedCost': if (oTab[0].id === 'tab3') { $('#tab3 .estimatedcostsum').val(fMoney(iSubtotal, 2, data.Currency)); } else if (oTab[0].id === 'tab5') { //增加退運報價/預估成本-預估成本累加
let Return_Estimatedcostsum = $('#tab5 .return_estimatedcostsum').val(); let Current_Return_Estimatedcostsum = parseFloat((Return_Estimatedcostsum || '0').toString().replaceAll(',', '')); $('#tab5 .return_estimatedcostsum').val(fMoney(Current_Return_Estimatedcostsum + iSubtotal, 2, data.Currency)); } break; case 'Bill': var iAdvance = parseFloat(oFinancial.find('.prepay').val().replaceAll(',', '')), iExchangeRate = data.ExchangeRate || 1; data.TotalReceivable = iTaxSubtotal - iAdvance;
oFinancial.find('.subtotal').val(fMoney(iSubtotal, 2, data.Currency)); oFinancial.find('.taxtotal').val(fMoney(iTaxtotal, 2, data.Currency)); oFinancial.find('.boxtotal').val(fMoney(iTaxSubtotal, 2, data.Currency)); oFinancial.find('.paytotal').val(fMoney(iTaxSubtotal - iAdvance, 2, data.Currency));
// 匯率
let TabTipExchangeRate = (bForn ? 1 : iExchangeRate); // 純稅金(本幣別)
let TabTipTaxtotal = fnRound(iTaxtotal * TabTipExchangeRate, FeeItemCurrency); // 未稅總額(本幣別)
let TabTipUntaxtotal = fnRound(iSubtotal * TabTipExchangeRate, FeeItemCurrency);
iOldBoxTotal = iOldBoxTotal * (bForn ? 1 : iExchangeRate); //加總 = 上個帳單加總 + 此次帳單的未稅金額
if (oTab[0].id === 'tab3') { if (data.AuditVal !== '6') { let LastRowActualsum = parseFloat($('#tab3 .amountsum').val().replaceAll(',', '')) - iOldBoxTotal; $('#tab3 .amountsum').val(fMoney(LastRowActualsum + TabTipUntaxtotal, 2, FeeItemCurrency)); $('#tab4 .amountsum').val($('#tab3 .amountsum').val()); } } else if (oTab[0].id === 'tab5') { // 每筆退運帳單的預估成本
oFinancial.find('.topshowsum').show(); oFinancial.find('.estimatedcostsum').val(fMoney(parentdata.EstimatedCost.AmountSum, 2, data.Currency)); if (data.AuditVal !== '6') { //退運帳單加總
let LastRowActualsum = parseFloat(oFinancial.find('.amountsum').val().replaceAll(',', '')) - iOldBoxTotal; oFinancial.find('.amountsum').val(fMoney(LastRowActualsum + TabTipUntaxtotal, 2, FeeItemCurrency)); $('.bill-box-' + data.BillNO).find('.amountsum').val(oFinancial.find('.amountsum').val()); //增加退運報價/預估成本-帳單金額累加(有先後順序,無法對調)
let LastRow_Return_Amountsum = parseFloat($('#tab5 .return_amountsum').val().replaceAll(',', '')); $('#tab5 .return_amountsum').val(fMoney(LastRow_Return_Amountsum + TabTipUntaxtotal, 2, FeeItemCurrency));
} } break; }
/*計算$$*/ if (oTab[0].id === 'tab3') { if (data.KeyName === 'Bill') fnCalcuBillsFee(oFinancial, '.BillForeignCurrency', '.BillMainCurrency', data.Currency, data.ExchangeRate); else fnCalcuQuotationFee(oFinancial.find('.QuotationForeignCurrency'), oFinancial.find('.QuotationMainCurrency'), parentdata.Quote.QuotationOrBillingCurrency, parentdata.Quote.AccountingExchangeRate);
} else if (oTab[0].id === 'tab5') { if (data.KeyName === 'Bill') fnCalcuBillsFee(oFinancial, '.ReturnBillForeignCurrency', '.ReturnBillMainCurrency', data.Currency, data.ExchangeRate); else { fnCalcuQuotationFee(oFinancial.find('.ReturnQuotationForeignCurrency'), oFinancial.find('.ReturnQuotationMainCurrency'), parentdata.ReturnQuotationOrBillingCurrency, parentdata.ReturnAccountingExchangeRate); } }
dom.parents('.financial').find('.plusfeeitem').prop('disabled', false); fnSetDisabled(oFinancial, data);
oFinancial.find('.input-value').on('change', function () { var that = this, sId = $(that).attr('data-id'); data[sId] = $(that).val(); bRequestStorage = true; });
if (data.KeyName === 'ActualCost') { var saBillPayers = function () { var saRetn = []; $.each(parentdata.Bills, function (idx, bill) { if (!bill.VoidReason) { var sPayer = '', oCur = {}; if (bill.Payer) { oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === bill.Payer; }).First(); } saRetn.push({ id: bill.BillNO, text: oCur.text, val: bill.BillNO + '-' + (oCur.text || '') + '-' + bill.BillCreateDate }); } }); return saRetn; }(); dom.find('.billpayer').each(function () { var sGuid = $(this).attr('data-value'), sBillNO = $(this).attr('data-billno'), Selector = 'oBillPayers-' + sGuid; $(this).append($('<select>', { class: 'form-control w100p ' + Selector, 'multiple': 'multiple', html: createOptions(saBillPayers, 'id', 'id', false), change: function () { var sBill = this.value; $.each(parentdata.ActualCost.FeeItems, function (idx, item) { if (sGuid === item.guid) { var SelectedValues = getSelectedValues('.oBillPayers-' + this.guid); var MappedPayers = Enumerable.From(saBillPayers).Where(function (e) { return SelectedValues.indexOf(e.id) > -1; }).ToArray(); item.BillNO = MappedPayers.map(c => c.id).join(','); item.BillPayer = MappedPayers.map(c => c.val).join(','); return false; } }); } })); $(this).find('.' + Selector + ' option:first').remove(); let mySelect = new vanillaSelectBox('.' + Selector, { search: true, maxHeight: 160, maxWidth: 200, }); mySelect.multipleSize = 2; mySelect.setValue(sBillNO); $('#btn-group-\\.' + Selector).click(function (e) { $('.vsb-menu').css('display', 'none'); $('#btn-group-\\.' + Selector).find('.vsb-menu').css('display', 'block'); }) }); }
dom.find('.glyphicon-pencil').off('click').on('click', function () { var that = this, sGuid = $(that).attr('data-value'), oCurFee = {}, sBillNO = dom.attr('data-billno') || '';
if ($(that).hasClass('disabled')) { return; }//如果禁用後就不執行
switch (sDomId) { case 'quote-box': $.each(parentdata.Quote.FeeItems, function (idx, item) { if (sGuid === item.guid) { oCurFee = item; return false; } }); break; case 'estimatedcost-box': $.each(parentdata.EstimatedCost.FeeItems, function (idx, item) { if (sGuid === item.guid) { oCurFee = item; return false; } }); break; case 'bill_fees_' + sBillNO: $.each(parentdata.Bills, function (idx, bill) { if (sBillNO === bill.BillNO) { $.each(bill.FeeItems, function (idx, item) { if (sGuid === item.guid) { oCurFee = item; return false; } }); return false; } }); break; case 'actualcost-box': $.each(parentdata.ActualCost.FeeItems, function (idx, item) { if (sGuid === item.guid) { oCurFee = item; return false; } }); break; } fnPlusFeeItem(that, parentdata, oCurFee, data.Currency); }); dom.find('.glyphicon-trash').off('click').on('click', function () { var that = this, sGuid = $(that).attr('data-value'), saNewList = [], sBillNO = dom.attr('data-billno') || '';
if ($(that).hasClass('disabled')) { return; }//如果禁用後就不執行
switch (sDomId) { case 'quote-box': $.each(parentdata.Quote.FeeItems, function (idx, item) { if (sGuid !== item.guid) { saNewList.push(item); } }); parentdata.Quote.FeeItems = saNewList; fnBindFeeItem(dom, parentdata, parentdata.Quote); break; case 'estimatedcost-box': $.each(parentdata.EstimatedCost.FeeItems, function (idx, item) { if (sGuid !== item.guid) { saNewList.push(item); } }); parentdata.EstimatedCost.FeeItems = saNewList; fnBindFeeItem(dom, parentdata, parentdata.EstimatedCost); break; case 'bill_fees_' + sBillNO: $.each(parentdata.Bills, function (idx, bill) { if (sBillNO === bill.BillNO) { $.each(bill.FeeItems, function (idx, item) { if (sGuid !== item.guid) { saNewList.push(item); } }); bill.FeeItems = saNewList; fnBindFeeItem(dom, parentdata, bill); return false; } }); break; case 'actualcost-box': $.each(parentdata.ActualCost.FeeItems, function (idx, item) { if (sGuid !== item.guid) { saNewList.push(item); } }); parentdata.ActualCost.FeeItems = saNewList; fnBindFeeItem(dom, parentdata, parentdata.ActualCost); break; } $(that).parents('tr').remove(); });
dom.find('.glyphicon-arrow-down').off('click').on('click', function () { var that = this, sGuid = $(that).attr('data-value'), iOrderBy = 0;
if ($(that).hasClass('disabled')) { return; }//如果禁用後就不執行
$.each(data.FeeItems, function (n, item) { if (sGuid === item.guid) { iOrderBy = item.OrderBy; item.OrderBy++; } if (iOrderBy !== 0 && iOrderBy === n) { item.OrderBy--; return false; } }); data.FeeItems = Enumerable.From(data.FeeItems).OrderBy("x=>x.OrderBy").ToArray(); fnBindFeeItem(dom, parentdata, data); });
dom.find('.glyphicon-arrow-up').off('click').on('click', function () { var that = this, sGuid = $(that).attr('data-value'), iOrderBy = Enumerable.From(data.FeeItems).Where(function (e) { return e.guid === sGuid; }).First().OrderBy;
if ($(that).hasClass('disabled')) { return; }//如果禁用後就不執行
$.each(data.FeeItems, function (n, item) { if (iOrderBy - 2 === n) { item.OrderBy++; } if (sGuid === item.guid) { item.OrderBy--; return false; } }); data.FeeItems = Enumerable.From(data.FeeItems).OrderBy("x=>x.OrderBy").ToArray(); fnBindFeeItem(dom, parentdata, data); }); }, /** * 添加費用項目 * @param:that(Object)當前dom對象 * @return:data(Object)當前費用項目 */ fnPlusFeeItem = function (that, parentdata, feeinfo, currency) { var oFinancial = $(that).parents('.financial'), oTable = oFinancial.find('tbody'), sId = oTable.attr('data-id'), sBillNO = oTable.attr('data-billno') || '', sMainCurrency = oFinancial.find('[data-id="Currency"]').val() || FeeItemCurrency;
oTable.find('tr').not('.fee-add').find('.jsgrid-cancel-edit-button').click(); var fnSum = function () { var iPrice = oUnitPrice.attr('data-value') || 0, iNumber = oNumber.val().replaceAll(',', ''), iExchangeRate = oExchangeRate.val(), sFinancialCurrency = oCurrency.val(), iAmount = 0, bForn = (currency === undefined || currency === 'NTD'); bForn = true; iPrice = iPrice === '' ? 0 : parseFloat(iPrice); iExchangeRate = iExchangeRate === '' ? 1 : parseFloat(iExchangeRate); iNumber = iNumber === '' ? 0 : parseFloat(iNumber); iAmount = iPrice * iNumber; oAmount.attr('data-value', iAmount.toFloat(2)).val(fMoney(iAmount, 2)); oTWAmount.attr('data-value', (iAmount * iExchangeRate).toFloat(2)).val(fMoney(iAmount * iExchangeRate, 2)); if (oTaxRate.val()) { var iTaxRate = oTaxRate.val().toPoint(); oTax.attr('data-value', (iAmount * iTaxRate * (bForn ? iExchangeRate : 1)).toFloat(2)).val(fMoney(iAmount * iTaxRate * (bForn ? iExchangeRate : 1), 2)); } }, oTR_Old = null, oTR = $('<tr />', { class: 'jsgrid' }), oTD = $('<td />', { class: 'wcenter', 'style': 'padding: 2px !important;' }), oCode = $('<select />', { class: 'form-control w100p', change: function () { var sFeeVal = this.value, sFeeText = $(this).find("option:selected").text(); oCostStatement.val(sFeeText.replace(sFeeVal + '-', '').replace('*', '')); if ('TE001,TE199,TE299,TG001,TG199,TG299,SG001,SG199,SG299'.indexOf(sFeeVal) > -1) { oCostStatement.removeAttr('disabled'); } else { oCostStatement.prop('disabled', true); } } }), oCostStatement = $('<input />', { class: 'form-control w100p', 'style': 'width:260px !important;' }), oMemo = $('<textarea />', { class: 'form-control w100p', rows: '2', cols: '10' }), oCurrency = $('<select />', { class: 'form-control w100p', html: sCurrencyOptionsHtml, change: function () { var sCurrencyId = this.value; if (sCurrencyId) { var oCurrency = Enumerable.From(saCurrency).Where(function (e) { return e.id === sCurrencyId; }).First(); oExchangeRate.val(oCurrency.Correlation || '').change(); } } }).css('cssText', 'width:80px !important').val(sMainCurrency), oUnitPrice = $('<input />', { class: 'form-control w100p', 'data-type': 'int', 'data-name': 'int', keyup: function () { fnSum(); }, change: function () { fnSum(); } }), oNumber = $('<input />', { class: 'form-control w100p', 'data-type': 'int', 'data-name': 'int', keyup: function () { fnSum(); }, change: function () { fnSum(); } }), oUnit = $('<input />', { class: 'form-control w100p' }), oAmount = $('<input />', { class: 'form-control w100p', 'data-type': 'int', 'data-name': 'int', 'readonly': 'readonly' }), oExchangeRate = $('<input />', { class: 'form-control w100p', value: '1.000', keyup: function () { fnSum(); }, change: function () { fnSum(); } }), oTWAmount = $('<input />', { class: 'form-control w100p', 'data-type': 'int', 'data-name': 'int', 'readonly': 'readonly' }), oTaxRate = $('<input />', { class: 'form-control w100p', keyup: function () { fnSum(); }, change: function () { fnSum(); } }), oTax = $('<input />', { class: 'form-control w100p', 'data-type': 'int', 'data-name': 'int', 'readonly': 'readonly' }); let Selector = feeinfo ? 'oBillPayers-' + feeinfo.guid : 'oBillPayers'; var oBillPayers = $('<select />', { class: 'form-control w100p ' + Selector, 'multiple': 'multiple' }); var oConfirm = $('<input />', { class: 'jsgrid-button jsgrid-update-button', type: 'button', title: i18next.t('common.Confirm'), click: function () {// ╠common.Confirm⇒確認╣
var sError = ''; if (!oCode.val()) { sError += i18next.t("common.FinancialCode_required") + '<br/>'; // ╠common.FinancialCode_required⇒請選擇費用代號╣
} if (!oCostStatement.val() && !oMemo.val()) { sError += i18next.t("common.FinancialCostStatement_required") + '<br/>'; // ╠common.FinancialCostStatement_required⇒請輸入費用說明或備註╣
} if (!oCurrency.val()) { sError += i18next.t("common.Currency_required") + '<br/>'; // ╠common.Currency_required⇒請選擇幣別╣
}
if (sError) { showMsg(sError); return false; }
var data = {}; data.FinancialCode = oCode.val(); data.FinancialCostStatement = oCostStatement.val(); data.Memo = oMemo.val(); data.FinancialCurrency = oCurrency.val(); data.FinancialUnitPrice = oUnitPrice.val(); data.FinancialNumber = oNumber.val(); data.FinancialUnit = oUnit.val(); data.FinancialAmount = oAmount.val(); data.FinancialExchangeRate = oExchangeRate.val(); data.FinancialTWAmount = oTWAmount.val(); data.FinancialTaxRate = oTaxRate.val() === '' ? 0 : oTaxRate.val(); data.FinancialTax = oTax.val(); if (sId === 'actualcost-box') { data.BillNO = oBillPayers.val(); data.BillPayer = oBillPayers.attr('_payer') || ''; } if (data.FinancialNumber.indexOf('.00') > 0) data.FinancialNumber = data.FinancialNumber.replace('.00', ''); switch (sId) { case 'quote-box': if (feeinfo) { $.each(parentdata.Quote.FeeItems, function (idx, item) { if (feeinfo.guid === item.guid) { data = packParams(data, 'upd'); $.extend(item, item, data); return false; } }); } else { data = packParams(data); data.guid = guid(); parentdata.Quote.FeeItems.push(data); } fnBindFeeItem(oTable, parentdata, parentdata.Quote); break; case 'estimatedcost-box': if (feeinfo) { $.each(parentdata.EstimatedCost.FeeItems, function (idx, item) { if (feeinfo.guid === item.guid) { data = packParams(data, 'upd'); $.extend(item, item, data); return false; } }); } else { data = packParams(data); data.guid = guid(); parentdata.EstimatedCost.FeeItems.push(data); } fnBindFeeItem(oTable, parentdata, parentdata.EstimatedCost); break; case 'bill_fees_' + sBillNO: $.each(parentdata.Bills, function (idx, bill) { if (sBillNO === bill.BillNO) { if (feeinfo) { $.each(bill.FeeItems, function (idx, item) { if (feeinfo.guid === item.guid) { data = packParams(data, 'upd'); $.extend(item, item, data); return false; } }); } else { data = packParams(data); data.guid = guid(); bill.FeeItems.push(data); } fnBindFeeItem(oTable, parentdata, bill); return false; } }); break; case 'actualcost-box': if (feeinfo) { $.each(parentdata.ActualCost.FeeItems, function (idx, item) { if (feeinfo.guid === item.guid) { data = packParams(data, 'upd'); $.extend(item, item, data); return false; } }); } else { data = packParams(data); data.guid = guid(); parentdata.ActualCost.FeeItems.push(data); } fnBindFeeItem(oTable, parentdata, parentdata.ActualCost); break; } bRequestStorage = true; oTR.remove(); } }), oCancel = $('<input />', { class: 'jsgrid-button jsgrid-cancel-edit-button', type: 'button', title: i18next.t('common.Cancel'), click: function () {// ╠common.Cancel⇒取消╣
if (feeinfo) { if (feeinfo.BillNO) { oTR_Old.find('select').val(feeinfo.BillNO); } oTR.after(oTR_Old).remove(); oTR_Old = null; } else { oTR.remove(); $(that).prop('disabled', false); } } }); oTR.append(oTD.clone()); oTR.append(oTD.clone().append(oCode)); oTR.append(oTD.clone().append([oCostStatement, oMemo])); oTR.append(oTD.clone().append(oCurrency)); oTR.append(oTD.clone().append(oUnitPrice)); oTR.append(oTD.clone().append(oNumber)); oTR.append(oTD.clone().append(oUnit)); oTR.append(oTD.clone().append(oAmount)); oTR.append(oTD.clone().append(oExchangeRate)); oTR.append(oTD.clone().append(oTWAmount)); oTR.append(oTD.clone().append(oTaxRate)); oTR.append(oTD.clone().append(oTax)); if (sId === 'actualcost-box') { var saBillPayers = function () { var saRetn = []; $.each(parentdata.Bills, function (idx, bill) { if (!bill.VoidReason) { var sPayer = '', oCur = {}; if (bill.Payer) { oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === bill.Payer; }).First(); } saRetn.push({ id: bill.BillNO, text: oCur.text, val: bill.BillNO + '-' + (oCur.text || '') + '-' + bill.BillCreateDate }); } }); return saRetn; }(); oTR.append(oTD.clone().append(oBillPayers.html(createOptions(saBillPayers, 'id', 'id', false)).change(function () { var sBill = this.value; if (sBill) { var oBillPayer = Enumerable.From(saBillPayers).Where(function (e) { return e.id === sBill; }).First(); $(this).attr('_payer', oBillPayer.val || ''); } else { $(this).attr('_payer', ''); } }))); } oTR.append(oTD.clone().css('cssText', 'padding-top:30px !important;').append([oConfirm, oCancel]));
oCode.html(createOptions(saFeeClass, 'id', 'text', true)).val(!feeinfo ? '' : feeinfo.FinancialCode).select2({ width: '160px' }); if (parent.SysSet.TaxRate) { oTaxRate.val(parent.SysSet.TaxRate); }
if (feeinfo) { oCode.val(feeinfo.FinancialCode); oCostStatement.val(feeinfo.FinancialCostStatement.replace(feeinfo.FinancialCode + '-', '')); oMemo.val(feeinfo.Memo); oCurrency.val(feeinfo.FinancialCurrency); oUnitPrice.val(feeinfo.FinancialUnitPrice); oNumber.val(feeinfo.FinancialNumber); oUnit.val(feeinfo.FinancialUnit); oAmount.val(feeinfo.FinancialAmount); oExchangeRate.val(feeinfo.FinancialExchangeRate); oTWAmount.val(feeinfo.FinancialTWAmount); oTaxRate.val(feeinfo.FinancialTaxRate); oTax.val(feeinfo.FinancialTax); if (sId === 'actualcost-box') { oBillPayers.val(feeinfo.BillNO); } oTR_Old = $(that).parents('tr').clone(true); $(that).parents('tr').after(oTR).remove(); if ('TE001,TE199,TE299,TG001,TG199,TG299,SG001,SG199,SG299'.indexOf(feeinfo.FinancialCode) > -1) { oCostStatement.prop('disabled', false); } else { oCostStatement.prop('disabled', true); } } else { oTable.append(oTR.addClass('fee-add')); $(that).prop('disabled', true); } moneyInput($('[data-type="int"]'), 2, true); oTR.find('.' + Selector + ' option:first').remove(); if (sId === 'actualcost-box') { let mySelect = new vanillaSelectBox("." + Selector, { search: true }); mySelect.multipleSize = 2; if (feeinfo) { mySelect.setValue(feeinfo.BillNO); } }
}, /** * 批次添加費用項目&收藏 * @param that(Object)當前dom對象 * @return data(Object)當前費用項目 */ fnPlusFeeItemStar = function (that, handle, parentdata) { var oFinancial = $(that).parents('.financial'), oTable = oFinancial.find('tbody'), sId = oTable.attr('data-id'), sBillNO = oTable.attr('data-billno') || '', oOption = {};
oOption.Callback = function (data) { if (data.length > 0) { parentdata.Quote.FeeItems = clone(data); fnBindFeeItem(handle, parentdata, parentdata.Quote); $(that).prev().prop('disabled', false); } }; fnStarFeeItems(oOption); }, /** * 匯入費用項目 * @param:that(Object)當前dom對象 * @return:data(Object)當前費用項目 */ fnImportFeeitems = function (type, parentdom, parentdata) { $('#importfile').val('').off('change').on('change', function () { if (this.value.indexOf('.xls') > -1 || this.value.indexOf('.xlsx') > -1) { var sFileId = guid(), sFileName = this.value; $.ajaxFileUpload({ url: '/Controller.ashx?action=importfile&FileId=' + sFileId, secureuri: false, fileElementId: 'importfile', success: function (data, status) { var that = this; g_api.ConnectLite('Exhibition', 'GetImportFeeitems', {//匯入費用項目
OrgID: parent.OrgID, FileId: sFileId, FileName: sFileName }, function (res) { if (res.RESULT) { if (res.DATA.rel.length > 0) { if (type === 'quote') { parentdata.Quote.FeeItems = res.DATA.rel; fnBindFeeItem(parentdom.find('[data-id="quote-box"]'), parentdata, parentdata.Quote); } else if (type === 'estimatedcost') { parentdata.EstimatedCost.FeeItems = res.DATA.rel; fnBindFeeItem(parentdom.find('[data-id="estimatedcost-box"]'), parentdata, parentdata.EstimatedCost); } else if (type === 'actualcost') { parentdata.ActualCost.FeeItems = res.DATA.rel; fnBindFeeItem(parentdom.find('[data-id="actualcost-box"]'), parentdata, parentdata.ActualCost); } } else { showMsg(i18next.t("message.NoMatchData")); // ╠message.NoMatchData⇒找不到相關資料╣
} } else { showMsg(i18next.t('message.ProgressError') + '<br>' + res.MSG, 'error'); // ╠message.ProgressError⇒資料處理異常╣
} }, function () { showMsg(i18next.t("message.ProgressError"), 'error'); // ╠message.ProgressError⇒資料處理異常╣
}); }, error: function (data, status, e) { showMsg(i18next.t("message.ProgressError"), 'error'); // ╠message.ProgressError⇒資料處理異常╣
} }); bRequestStorage = true; } else { showMsg(i18next.t("message.FileTypeError"), 'error'); // ╠message.FileTypeError⇒文件格式錯誤╣
} }).click(); }, /** * 複製費用項目 * @param that(Object)當前dom對象 * @return quote(Object)當前費用項目 */ fnCopyFeeitems = function (type, parentdom, parentdata) { var oOption = {}; oOption.Callback = function (data) { if (data.length > 0) { $.each(data, function (idx, item) { item.FinancialUnitPrice = 0; item.FinancialNumber = 0; item.FinancialAmount = 0; item.FinancialTWAmount = 0; item.FinancialTaxRate = '0%'; item.FinancialTax = 0; item.CreateUser = parent.UserID; item.CreateDate = newDate(null, true); }); if (type === 'quote') { parentdata.Quote.FeeItems = data; fnBindFeeItem(parentdom.find('[data-id="quote-box"]'), parentdata, parentdata.Quote); } } }; fnCopyFee(oOption); }, /** * 添加新帳單 * @param:supplier(object) 廠商資料 */ fnPushBill = function (supplier, data, parentid, bRetn) { var fnBill = function (billno) { var oNewBill = {}; oNewBill.guid = guid(); oNewBill.IsRetn = bRetn ? 'Y' : 'N'; oNewBill.parentid = parentid || ''; oNewBill.KeyName = 'Bill'; oNewBill.AuditVal = '0'; oNewBill.BillNO = billno; oNewBill.BillCreateDate = newDate(); oNewBill.BillFirstCheckDate = ''; oNewBill.BillCheckDate = ''; oNewBill.Currency = 'NTD'; oNewBill.ExchangeRate = 1; if (bRetn) { var sRtnQuotationOrBillingCurrency = $('#ReturnQuotationOrBillingCurrency-' + parentid + ' option:selected'); oNewBill.ExchangeRate = sRtnQuotationOrBillingCurrency.attr('Correlation'); oNewBill.Currency = sRtnQuotationOrBillingCurrency.val(); } else { var sQuotationOrBillingCurrency = $('#QuotationOrBillingCurrency option:selected'); oNewBill.ExchangeRate = sQuotationOrBillingCurrency.attr('Correlation'); oNewBill.Currency = sQuotationOrBillingCurrency.val(); } oNewBill.Advance = 0; oNewBill.Memo = data.Quote.Memo || ''; oNewBill.FeeItems = clone(data.Quote.FeeItems); oNewBill.InvoiceNumber = ''; oNewBill.InvoiceDate = ''; oNewBill.ReceiptNumber = ''; oNewBill.ReceiptDate = ''; oNewBill.SupplierGuid = supplier.guid; oNewBill.Payer = supplier.SupplierID; oNewBill.Number = ''; oNewBill.Unit = ''; oNewBill.Weight = ''; oNewBill.Volume = ''; oNewBill.CustomerGuid = supplier.SupplierID; oNewBill.CustomerCode = supplier.CustomerNO; oNewBill.UniCode = supplier.UniCode; oNewBill.SupplierName = supplier.SupplierName; oNewBill.SupplierEName = supplier.SupplierEName; oNewBill.RefNumber = supplier.RefSupplierNo; oNewBill.Contactor = supplier.Contactor; oNewBill.ContactorName = supplier.ContactorName; oNewBill.Telephone = supplier.Telephone || ''; oNewBill.Email = supplier.Email; oNewBill.ReFlow = bRetn ? 'ReImport' : ''; data.Bills.push(oNewBill); if (!bRetn) { supplier.BillNO = billno; } }; return g_api.ConnectLite(Service.com, ComFn.GetSerial, { Type: parent.UserInfo.OrgID + 'E', Flag: 'MinYear', Len: 3, Str: sServiceCode, AddType: sServiceCode, PlusType: '' }, function (res) { if (res.RESULT) { fnBill(res.DATA.rel); } else { showMsg(i18next.t('message.CreateBill_Failed') + '<br>' + res.MSG, 'error'); // ╠message.CreateBill_Failed⇒帳單新增失敗╣
} }, function () { showMsg(i18next.t('message.CreateBill_Failed'), 'error'); // ╠message.CreateBill_Failed⇒帳單新增失敗╣
}); }, /** * 初始化:報價/帳單幣別、匯率 */ fnInitialAccountCurrency = function (tabName) { $('#QuotationOrBillingCurrency').html(sAccountingCurrencyOptionsHtml).on('change', function () { var sQuotationOrBillingCurrency = $('#QuotationOrBillingCurrency option:selected'); var sExchangeRate = sQuotationOrBillingCurrency.attr('Correlation'); var fExchangeRate = parseFloat(sExchangeRate); let CurrencyID = this.value; oCurData.Quote.QuotationOrBillingCurrency = CurrencyID; oCurData.Quote.AccountingExchangeRate = sExchangeRate; $('#AccountingExchangeRate').val(sExchangeRate); bRequestStorage = true;//要變更儲存
//是主幣別(TE、TG:NTD;SG:CNY),僅顯示主幣別資訊。
var MainCurrency = fnCheckMainOrForeignCurrency(CurrencyID); var TitleAttr = ''; if (MainCurrency) { TitleAttr = 'common.MainCurrencyNontaxedAmountV2'; $(tabName + ' .QuotationForeignCurrency').hide(); } else { TitleAttr = 'common.ForeignCurrencyNontaxedAmountV2'; $(tabName + ' .QuotationForeignCurrency').show(); } $(tabName + ' .QuotationAmountTiltle').attr('data-i18n', TitleAttr).text(i18next.t(TitleAttr)); //重算
fnCalcuQuotationFee($('.QuotationForeignCurrency'), $('.QuotationMainCurrency'), CurrencyID, fExchangeRate); }); $('#QuotationOrBillingCurrency').val(oCurData.Quote.QuotationOrBillingCurrency); $('#AccountingExchangeRate').val(oCurData.Quote.AccountingExchangeRate); $('#QuotationOrBillingCurrency').change();
}, /** * 初始化:退運報價/帳單幣別、匯率 */ fnInitialReturnAccountCurrency = function (tabName, Guid) { $('#ReturnQuotationOrBillingCurrency' + Guid).html(sAccountingCurrencyOptionsHtml).on('change', function () { var sRtnQuotationOrBillingCurrency = $('#ReturnQuotationOrBillingCurrency' + Guid + ' option:selected'); var sCurrencyID = this.value; var sExchangeRate = sRtnQuotationOrBillingCurrency.attr('Correlation'); var fExchangeRate = parseFloat(sExchangeRate); $('#ReturnAccountingExchangeRate' + Guid).val(sExchangeRate); bRequestStorage = true;//要變更儲存
var MainCurrency = fnCheckMainOrForeignCurrency(this.value); var TitleAttr = ''; if (MainCurrency) { TitleAttr = 'common.MainCurrencyNontaxedAmountV2'; $(tabName + ' .ReturnQuotationForeignCurrency').hide(); } else { TitleAttr = 'common.ForeignCurrencyNontaxedAmountV2'; $(tabName + ' .ReturnQuotationForeignCurrency').show(); } $(tabName + ' .ReturnQuotationAmountTiltle' + Guid).attr('data-i18n', TitleAttr).text(i18next.t(TitleAttr)); //儲存資料(forJson)
$.each(oCurData.ReturnBills, function (idx, item) { if (Guid.indexOf(item.guid) > -1) { item.ReturnQuotationOrBillingCurrency = sCurrencyID; item.ReturnAccountingExchangeRate = sExchangeRate; } }); //重算價格
fnCalcuQuotationFee($(tabName + ' .ReturnQuotationForeignCurrency'), $(tabName + ' .ReturnQuotationMainCurrency'), sCurrencyID, fExchangeRate); }); //loading data
$.each(oCurData.ReturnBills, function (idx, item) { var SuffixSelector = '-' + item.guid; $(tabName + ' #ReturnQuotationOrBillingCurrency' + SuffixSelector).val(item.ReturnQuotationOrBillingCurrency); $(tabName + ' #ReturnAccountingExchangeRate' + SuffixSelector).val(item.ReturnAccountingExchangeRate); $(tabName + ' #ReturnQuotationOrBillingCurrency' + SuffixSelector).change(); });
}, /** * 綁定會計區塊 */ fnBindFinancial = function () { fnBindFeeItem($('#tab3 [data-id="quote-box"]'), oCurData, oCurData.Quote);//綁定報價
fnBindFeeItem($('#tab3 [data-id="estimatedcost-box"]'), oCurData, oCurData.EstimatedCost);//綁定預估成本
if (oCurData.EstimatedCost.AuditVal && oCurData.EstimatedCost.AuditVal === '2') {//業務審核完
fnBindFeeItem($('#tab4 [data-id="actualcost-pre-box"]'), oCurData, oCurData.EstimatedCost, true); $('#tab4 .estimatedcost-memo').text(oCurData.EstimatedCost.Memo || ''); } fnBindFeeItem($('#tab4 [data-id="actualcost-box"]'), oCurData, oCurData.ActualCost);//實際成本
fnInitialAccountCurrency('#tab3');//會計用匯率
$('#tab3 [data-source="quote"]').text(oCurData.Quote.Memo || ''); $('#tab3 [data-source="estimatedcost"]').text(oCurData.EstimatedCost.Memo || ''); $('#tab4 [data-source="actualcost"]').text(oCurData.ActualCost.Memo || '');
$('#tab3 .plusfeeitem,#tab4 .plusfeeitem').not('disabled').off('click').on('click', function () { fnPlusFeeItem(this, oCurData); });
$('#tab3 .importfeeitem').not('disabled').off('click').on('click', function () { var sType = $(this).attr('data-type'); fnImportFeeitems(sType, $('#tab3'), oCurData); }); $('#tab4 .importfeeitem').not('disabled').off('click').on('click', function () { var sType = $(this).attr('data-type'); fnImportFeeitems(sType, $('#tab4'), oCurData); });
$('#tab3 .copyfeeitem').not('disabled').off('click').on('click', function () { var sType = $(this).attr('data-type'); fnCopyFeeitems(sType, $('#tab3'), oCurData); });
$('#tab3 .plusfeeitemstar').not('disabled').off('click').on('click', function () { fnPlusFeeItemStar(this, $('#tab3').find('[data-id="quote-box"]'), oCurData); });
$('#tab3 #estimated_submitaudit').not('disabled').off('click').on('click', function () { if (oCurData.EstimatedCost.FeeItems.length === 0 && !oCurData.EstimatedCost.Memo) { showMsg(i18next.t("message.EstimatedCostMemo_Required")); // ╠message.EstimatedCostMemo_Required⇒預估成本沒有費用明細,請至少填寫備註╣
return false; } if (!oCurData.Quote.QuotationOrBillingCurrency || !oCurData.Quote.AccountingExchangeRate) { showMsg(i18next.t("message.QuotationOrBillingCurrencyField_Required")); // ╠message.QuotationOrBillingCurrencyField_Required⇒報價/帳單幣或匯率未選擇╣
return false; }
oCurData.Quote.AuditVal = '1'; oCurData.EstimatedCost.AuditVal = '1'; g_api.ConnectLite(sProgramId, 'ToAuditForQuote', { ExportBillNO: sDataId, Quote: oCurData.Quote, EstimatedCost: oCurData.EstimatedCost }, function (res) { if (res.RESULT) { fnSetDisabled($('#tab3 .quoteandprecost'), oCurData.Quote); showMsg(i18next.t("message.ToAudit_Success"), 'success'); // ╠message.ToAudit_Success⇒提交審核成功╣
parent.msgs.server.pushTips(parent.fnReleaseUsers(res.DATA.rel)); } else { oCurData.Quote.AuditVal = '0'; oCurData.EstimatedCost.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
} }, function () { oCurData.Quote.AuditVal = '0'; oCurData.EstimatedCost.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed'), 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
}); }); $('#tab3 #estimated_audit').not('disabled').off('click').on('click', function () { layer.open({ type: 1, title: i18next.t('common.Leader_Audit'),// ╠common.Leader_Audit⇒主管審核╣
area: ['400px', '260px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣ ╠common.Pass⇒通過╣ ╠common.NotPass⇒不通過╣
content: '<div class="pop-box">\ <textarea name="NotPassReason" id="NotPassReason" style="min-width:300px;" class="form-control" rows="5" cols="20" placeholderid="common.NotPassReason" placeholder="不通過原因..."></textarea><br>\ <button type="button" data-i18n="common.Pass" id="audit_pass" class="btn-custom green">通過</button>\ <button type="button" data-i18n="common.NotPass" id="audit_notpass" class="btn-custom red">不通過</button>\ </div>', success: function (layero, idx) { $('.pop-box :button').click(function () { var sNotPassReason = $('#NotPassReason').val(); if (this.id === 'audit_pass') { oCurData.Quote.AuditVal = '2'; oCurData.EstimatedCost.AuditVal = '2'; oCurData.Quote.NotPassReason = ''; oCurData.EstimatedCost.NotPassReason = ''; } else { if (!sNotPassReason) { showMsg(i18next.t("message.NotPassReason_Required")); // ╠message.NotPassReason_Required⇒請填寫不通過原因╣
return false; } else { oCurData.Quote.AuditVal = '3'; oCurData.EstimatedCost.AuditVal = '3'; oCurData.Quote.NotPassReason = sNotPassReason; oCurData.EstimatedCost.NotPassReason = sNotPassReason; } }
g_api.ConnectLite(sProgramId, 'AuditForQuote', { ExportBillNO: sDataId, Quote: oCurData.Quote, EstimatedCost: oCurData.EstimatedCost, Bills: oCurData.Bills }, function (res) { if (res.RESULT) { showMsg(i18next.t("message.Audit_Completed"), 'success'); // ╠message.Audit_Completed⇒審核完成╣
if (oCurData.Quote.AuditVal === '2') { var oTable2 = $('#tab4 [data-id="actualcost-pre-box"]'); fnBindFeeItem(oTable2, oCurData, oCurData.EstimatedCost, true); $('#tab4 .estimatedcost-memo').text(oCurData.EstimatedCost.Memo || ''); } parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnSetDisabled($('#tab3 .quoteandprecost'), oCurData.Quote); } else { oCurData.Quote.AuditVal = '1'; oCurData.EstimatedCost.AuditVal = '1'; showMsg(i18next.t('message.Audit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Audit_Failed⇒審核失敗╣
} }, function () { oCurData.Quote.AuditVal = '1'; oCurData.EstimatedCost.AuditVal = '1'; showMsg(i18next.t('message.Audit_Failed'), 'error'); // ╠message.Audit_Failed⇒審核失敗╣
}); layer.close(idx); }); transLang(layero); } }); }); $('#tab3 #estimated_synquote').not('disabled').off('click').on('click', function () { oCurData.EstimatedCost.FeeItems = clone(oCurData.Quote.FeeItems); $.each(oCurData.EstimatedCost.FeeItems, function (idx, item) { //item.FinancialUnitPrice = 0;
//item.FinancialNumber = 0;
//item.FinancialAmount = 0;
//item.FinancialTWAmount = 0;
//item.FinancialTaxRate = '0%';
//item.FinancialTax = 0;
item.CreateUser = parent.UserID; item.CreateDate = newDate(null, true); }); fnBindFeeItem($('#tab3').find('[data-id="estimatedcost-box"]'), oCurData, oCurData.EstimatedCost); }); console.log(new Date()); fnBindBillLists(); console.log(new Date());
}, /** * 獲取收據號碼 * @param btn(object)產生收據號碼按鈕 * @return bill(object)當前帳單資料 */ fnGetReceiptNumber = function (btn, bill) { return g_api.ConnectLite(Service.com, ComFn.GetSerial, { Type: 'SE', Flag: 'MinYear', Len: 6, Str: '', AddType: '', PlusType: '' }, function (res) { if (res.RESULT) { var oBillBox = $(btn).parents('.bill-box-' + bill.BillNO); bill.ReceiptNumber = res.DATA.rel; bill.ReceiptDate = newDate(null, true); oBillBox.find('[data-id="ReceiptNumber"]').val(bill.ReceiptNumber); oBillBox.find('[data-id="ReceiptDate"]').val(bill.ReceiptDate); $(btn).remove(); } else { showMsg(i18next.t('message.CreateReceiptNumber_Failed') + '<br>' + res.MSG, 'error'); // ╠message.CreateReceiptNumber_Failed⇒收據號碼產生失敗╣
} }, function () { showMsg(i18next.t('message.CreateReceiptNumber_Failed'), 'error'); // ╠message.CreateReceiptNumber_Failed⇒收據號碼產生失敗╣
}); }, /** * 帳單提交審核 * @param bill(object)帳單資料 */ fnBillToAudit = function (bill, el) { var sMsg = '', elBillBox = $(el).parents('.financial'); if (!bill.Currency) { sMsg += i18next.t("ExhibitionImport_Upd.Currency_required") + '<br/>'; // ╠common.Currency_required⇒請輸入帳單幣別╣
} if (!bill.Payer) { sMsg += i18next.t("ExhibitionImport_Upd.Payer_required") + '<br/>'; // ╠ExhibitionImport_Upd.SupplierEamil_required⇒請輸入付款人╣
} if (!bill.Number) { sMsg += i18next.t("message.Number_required") + '<br/>'; // ╠message.Number_required⇒請輸入件數╣
} if (!bill.Weight) { sMsg += i18next.t("message.Weight_required") + '<br/>'; // ╠message.Weight_required⇒請輸入重量╣
} if (!bill.Volume) { sMsg += i18next.t("message.Volume_required") + '<br/>'; // ╠message.Volume_required⇒請輸入材積(CBM)╣
} if (elBillBox.find('.jsgrid-update-button').length > 0) { sMsg += i18next.t("message.DataEditing") + '<br/>'; // ╠message.DataEditing⇒該賬單處於編輯中╣
} if (sMsg) { showMsg(sMsg); // 必填欄位
return; } bill.AuditVal = '1'; g_api.ConnectLite(sProgramId, 'ToAuditForBill', { ExportBillNO: sDataId, Exhibitors: saGridData, Bills: oCurData.Bills, Bill: bill }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO).parents('.financial'), bill); showMsg(i18next.t("message.ToAudit_Success"), 'success'); // ╠message.ToAudit_Success⇒提交審核成功╣
parent.msgs.server.pushTips(parent.fnReleaseUsers(res.DATA.rel)); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
} }, function () { bill.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed'), 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
}); }, /** * 帳單審核 * @param bill(object)帳單資料 */ fnBillAudit = function (bill) { layer.open({ type: 1, title: i18next.t('common.Leader_Audit'),// ╠common.Leader_Audit⇒主管審核╣
area: ['400px', '260px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <textarea name="NotPassReason" id="NotPassReason" style="min-width:300px;" class="form-control" rows="5" cols="20" placeholderid="common.NotPassReason" placeholder="不通過原因..."></textarea><br>\ <button type="button" data-i18n="common.Pass" id="audit_pass" class="btn-custom green">通過</button>\ <button type="button" data-i18n="common.NotPass" id="audit_notpass" class="btn-custom red">不通過</button>\ </div>', success: function (layero, idx) { $('.pop-box :button').click(function () { var sNotPassReason = $('#NotPassReason').val(); if (this.id === 'audit_pass') { bill.AuditVal = '2'; bill.NotPassReason = ''; } else { if (!sNotPassReason) { showMsg(i18next.t("message.NotPassReason_Required")); // ╠message.NotPassReason_Required⇒請填寫不通過原因╣
return false; } else { bill.AuditVal = '3'; bill.NotPassReason = sNotPassReason; } } bill.BillCheckDate = newDate(); bill.CreateDate = newDate(); if (!bill.BillFirstCheckDate) { bill.BillFirstCheckDate = bill.BillCheckDate; } g_api.ConnectLite(sProgramId, 'AuditForBill', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill }, function (res) { if (res.RESULT) { $('.bill-box-' + bill.BillNO).find('.bill-chewckdate').text(bill.BillCheckDate); fnSetDisabled($('.bill-box-' + bill.BillNO).parents('.financial'), bill); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); showMsg(i18next.t("message.Audit_Completed"), 'success'); // ╠message.Audit_Completed⇒審核完成╣
if (bill.AuditVal === '2') { parent.msgs.server.pushTransfer(parent.OrgID, parent.UserID, bill.BillNO, 1); } fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '1'; if (bill.BillCheckDate === bill.BillFirstCheckDate) { bill.BillFirstCheckDate = ''; } bill.BillCheckDate = ''; showMsg(i18next.t('message.Audit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Audit_Failed⇒審核失敗╣
} }, function () { bill.AuditVal = '1'; if (bill.BillCheckDate === bill.BillFirstCheckDate) { bill.BillFirstCheckDate = ''; } bill.BillCheckDate = ''; showMsg(i18next.t('message.Audit_Failed'), 'error'); // ╠message.Audit_Failed⇒審核失敗╣
}); layer.close(idx); }); transLang(layero); } }); }, /** * 會計取消審核 * @param bill(object)帳單資料 */ fnBillCancelAudit = function (bill) { var sBillCheckDate = bill.BillCheckDate; bill.AuditVal = '0'; bill.BillCheckDate = ''; g_api.ConnectLite(sProgramId, 'CancelAudit', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { $('.bill-box-' + bill.BillNO).find('.bill-chewckdate').text(''); fnSetDisabled($('.bill-box-' + bill.BillNO).parents('.financial'), bill); showMsg(i18next.t("message.CancelAudit_Success"), 'success'); // ╠message.CancelAudit_Success⇒取消審核完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '2'; bill.BillCheckDate = sBillCheckDate; showMsg(i18next.t('message.CancelAudit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.CancelAudit_Failed⇒取消審核失敗╣
} }, function () { bill.AuditVal = '2'; bill.BillCheckDate = sBillCheckDate; showMsg(i18next.t('message.CancelAudit_Failed'), 'error'); // ╠message.CancelAudit_Failed⇒取消審核失敗╣
}); }, /** * 列印事件 * @param:templid (string) 模版id * @param:action (string) 動作標識 * @param:bill (objec) 帳單資料 */ fnPrint = function (templid, action, bill) { var bReceipt = action.indexOf('Receipt') > -1, fnToPrint = function (idx, paydatetext) { g_api.ConnectLite(sProgramId, bReceipt ? 'PrintReceipt' : 'PrintBill', { ExportBillNO: sDataId, TemplID: templid, Bill: bill, Action: action, PayDateText: paydatetext || '' }, function (res) { if (res.RESULT) { if (idx) { layer.close(idx); } var saPath = res.DATA.rel, sTitle = bReceipt ? 'common.Receipt_Preview' : 'common.Bill_Preview'; if (action.indexOf('Print_') > -1) { var index = layer.open({ type: 2, title: i18next.t(sTitle), content: gServerUrl + '/' + (typeof saPath === 'string' ? saPath : saPath[0]), area: ['900px', '500px'], maxmin: true }); //layer.full(index); //弹出即全屏
} else { if (typeof saPath === 'string') { DownLoadFile(saPath); } else { $.each(saPath, function (i, path) { setTimeout(function () { DownLoadFile(path); }, 500 * i); }); } } } else { // ╠common.Preview_Failed⇒預覽失敗╣ ╠common.DownLoad_Failed⇒下載失敗╣
showMsg(i18next.t('common.Preview_Failed') + '<br>' + res.MSG, 'error'); } }, function () { // ╠common.Preview_Failed⇒預覽失敗╣ ╠common.DownLoad_Failed⇒下載失敗╣
showMsg(i18next.t('common.Preview_Failed'), 'error'); }, true, i18next.t('message.Dataprocessing'));// ╠message.Dataprocessing⇒資料處理中...╣
}; if (bReceipt) { fnToPrint(); } else { layer.open({ type: 1, title: i18next.t('common.PayDatePopTitle'),// ╠common.PayDatePopTitle⇒付款日期設定╣
area: ['300px', '170px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <div class="col-sm-12" hidden>\ <input id="radio_1" type="radio" name="printitem" value="a"/>\ <label for="radio_1" data-i18n="common.PayDateText1">請立即安排付款</label>\ <input id="radio_2" type="radio" name="printitem" value="b" />\ <label for="radio_2" data-i18n="common.PayDateText2">a.s.a.p</label>\ <input id="radio_3" type="radio" name="printitem" value="c" checked="checked"/>\ <label for="radio_3" data-i18n="common.PayDateText3">日期</label>\ </div>\ <div class="col-sm-12 print-paydate">\ <input name="PayDate" type="text" maxlength="100" id="PayDate" class="form-control date-picker w100p" />\ </div>\ </div>',// ╠common.PayDateText1⇒請立即安排付款╣ ╠common.PayDateText2⇒a.s.a.p╣ ╠common.PayDateText3⇒日期╣ success: function (layero, idx) { var BillCheckDate = bill.BillCheckDate ? bill.BillCheckDate : new Date(); var sDefultDate = newDate(new Date(BillCheckDate).dateAdd('d', 15), true); $('[name=printitem]').click(function () { if (this.value === 'c') { $('.print-paydate').show(); } else { $('.print-paydate').hide(); } }); $('#PayDate').val(sDefultDate).datepicker({ changeYear: true, changeMonth: true, altFormat: 'yyyy/MM/dd', onSelect: function (d, e) { }, afterInject: function (d, e) { } }); transLang(layero); }, yes: function (index, layero) { var sPayDate = $('#PayDate').val(), sPayDateType = $('[name=printitem]:checked').val(), sPayDateText = $('[name=printitem]:checked').next().text(); if (sPayDateType === 'c' && !sPayDate) { showMsg(i18next.t("message.PayDate_required")); // ╠message.PayDate_required⇒請選擇付款日期╣
return false; } fnToPrint(index, sPayDateType === 'c' ? sPayDate : sPayDateText); } }); } }, /** * 過帳 * @param bill(object)帳單資料 */ fnBillPost = function (bill) { bill.AuditVal = '5'; bill.CreateDate = newDate(); g_api.ConnectLite(sProgramId, 'BillPost', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillPost_Success"), 'success'); // ╠message.BillPost_Success⇒過帳完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); parent.msgs.server.pushTransfer(parent.OrgID, parent.UserID, bill.BillNO, 1); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '2'; showMsg(i18next.t('message.BillPost_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillPost_Failed⇒過帳失敗╣
} }, function () { bill.AuditVal = '2'; showMsg(i18next.t('message.BillPost_Failed'), 'error'); // ╠message.BillPost_Failed⇒過帳失敗╣
}); }, /** * 取消過帳 * @param bill(object)帳單資料 */ fnBillCancelPost = function (bill) { bill.AuditVal = '2'; g_api.ConnectLite(sProgramId, 'BillCancelPost', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillCancePost_Success"), 'success'); // ╠message.BillCancePost_Success⇒取消過帳完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '5'; showMsg(i18next.t('message.BillCancePost_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillCancePost_Failed⇒取消過帳失敗╣
} }, function () { bill.AuditVal = '5'; showMsg(i18next.t('message.BillCancePost_Failed'), 'error'); // ╠message.BillCancePost_Failed⇒取消過帳失敗╣
}); }, /** * 會計銷帳 * @param bill(object)帳單資料 */ fnBillWriteOff = function (bill) { bill.AuditVal = '4'; bill.BillWriteOffDate = newDate(); g_api.ConnectLite(sProgramId, 'WriteOff', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillWriteOff_Success"), 'success'); // ╠message.BillWriteOff_Success⇒銷帳完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '5'; showMsg(i18next.t('message.BillWriteOff_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillWriteOff_Failed⇒銷帳失敗╣
} }, function () { bill.AuditVal = '5'; showMsg(i18next.t('message.BillWriteOff_Failed'), 'error'); // ╠message.BillWriteOff_Failed⇒銷帳失敗╣
}); }, /** * 會計取消銷帳 * @param bill(object)帳單資料 */ fnBillCancelWriteOff = function (bill) { bill.AuditVal = '5'; bill.BillWriteOffDate = ''; g_api.ConnectLite(sProgramId, 'CancelWriteOff', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillCancelWriteOff_Success"), 'success'); // ╠message.BillCancelWriteOff_Success⇒取消銷帳完成╣
fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '4'; showMsg(i18next.t('message.BillCancelWriteOff_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillCancelWriteOff_Failed⇒取消銷帳失敗╣
} }, function () { bill.AuditVal = '4'; showMsg(i18next.t('message.BillCancelWriteOff_Failed'), 'error'); // ╠message.BillCancelWriteOff_Failed⇒取消銷帳失敗╣
}); }, /** * 帳單作廢 * @param bill(object)帳單資料 */ fnBillVoid = function (bill) { layer.open({ type: 1, title: i18next.t('common.VoidBill'),// ╠common.VoidBill⇒作廢帳單╣
area: ['400px', '220px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <textarea name="VoidReason" id="VoidReason" style="min-width:300px;" class="form-control" rows="5" cols="20" placeholderid="common.VoidReason" placeholder="作廢原因..."></textarea>\ </div>', success: function (layero, idx) { transLang(layero); }, yes: function (index, layero) { var sAuditVal = bill.AuditVal, sVoidReason = layero.find('#VoidReason').val(); if (sVoidReason) { bill.VoidReason = sVoidReason; bill.AuditVal = '6'; g_api.ConnectLite(sProgramId, 'BillVoid', { ExportBillNO: sDataId, Bills: oCurData.Bills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { layer.close(index); showMsg(i18next.t("message.Void_Success"), 'success'); // ╠message.Void_Success⇒作廢成功╣
fnBindBillLists(); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = sAuditVal; bill.VoidReason = ''; showMsg(i18next.t('message.Void_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Void_Failed⇒作廢失敗╣
} }, function () { bill.AuditVal = sAuditVal; bill.VoidReason = ''; showMsg(i18next.t('message.Void_Failed'), 'error'); // ╠message.Void_Failed⇒作廢失敗╣
}); } else { showMsg(i18next.t("message.VoidReason_Required")); // ╠message.VoidReason_Required⇒請填寫作廢原因╣
} } }); }, /** * 帳單刪除 * @param bill(object)帳單資料 */ fnBillDelete = function (bill) { // ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t("message.ConfirmToDelete"), { icon: 3, title: i18next.t('common.Tips') }, function (index) { var saNewBills = []; $.each(oCurData.Bills, function (idx, _bill) { if (_bill.BillNO !== bill.BillNO) { saNewBills.push(_bill); } }); g_api.ConnectLite(sProgramId, 'BillDelete', { ExportBillNO: sDataId, Bills: saNewBills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { showMsg(i18next.t("message.Delete_Success"), 'success'); // ╠message.Delete_Success⇒刪除成功╣
oCurData.Bills = saNewBills; fnBindBillLists(); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnDeleteBillInfo(bill.BillNO); } else { showMsg(i18next.t("message.Delete_Failed") + '<br>' + res.MSG, 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
} }, function () { showMsg(i18next.t("message.Delete_Failed"), 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
}); layer.close(index); }); }, /** * 抽單 * @param bill(object)帳單資料 */ fnBillReEdit = function (bill) { bill.AuditVal = '7'; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { Bills: JSON.stringify(oCurData.Bills) }, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.ReEdit_Success"), 'success'); // ╠message.ReEdit_Success⇒抽單成功╣
fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '1'; showMsg(i18next.t('message.ReEdit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.ReEdit_Failed⇒抽單失敗╣
} }, function () { bill.AuditVal = '1'; showMsg(i18next.t('message.ReEdit_Failed'), 'error'); // ╠message.ReEdit_Failed⇒抽單失敗╣
}); }, /** * 取消抽單 * @param bill(object)帳單資料 */ fnBillCancelReEdit = function (bill) { bill.AuditVal = '1'; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { Bills: JSON.stringify(oCurData.Bills) }, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.CancelReEdit_Success"), 'success'); // ╠message.CancelReEdit_Success⇒取消抽單成功╣
fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '7'; showMsg(i18next.t('message.CancelReEdit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.CancelReEdit_Failed⇒取消抽單失敗╣
} }, function () { bill.AuditVal = '7'; showMsg(i18next.t('message.CancelReEdit_Failed'), 'error'); // ╠message.CancelReEdit_Failed⇒取消抽單失敗╣
}); }, /** * 綁定帳單 */ fnBindBillLists = function () { var oBillsBox = $('#accordion'); //oBillsBox.html('');
//$('#tab3 .amountsum').val(0);
if (oCurData.Bills.length > 0) {//實際帳單
oCurData.Bills = Enumerable.From(oCurData.Bills).OrderBy("x=>x.BillCreateDate").ToArray(); $.each(oCurData.Bills, function (idx, bill) { if ($('.bill-box-' + bill.BillNO).length === 0) { bill.Index = idx + 1; bill.Advance = bill.Advance || 0; var sHtml = $("#temp_billbox").render([bill]); oBillsBox.append(sHtml); var oBillBox = $('.bill-box-' + bill.BillNO); $('.bills-box').show(); oBillBox.find('[data-id="Currency"]').html(sAccountingCurrencyOptionsHtml).on('change', function () { var sCurrencyId = this.value, oCurrency = Enumerable.From(saAccountingCurrency).Where(function (e) { return e.ArgumentID === sCurrencyId; }).FirstOrDefault(); if (oCurrency === undefined) oCurrency = {}; let TitleAttr = ''; let MainCurrency = fnCheckMainOrForeignCurrency(sCurrencyId); if (MainCurrency) { TitleAttr = 'common.MainCurrencyNontaxedAmountV2'; oBillBox.find('.BillMainCurrencyAdd [data-id="plusfeeitem"]').show(); oBillBox.find('.BillForeignCurrency').hide(); } else { TitleAttr = 'common.ForeignCurrencyNontaxedAmountV2'; oBillBox.find('.BillMainCurrencyAdd [data-id="plusfeeitem"]').hide(); oBillBox.find('.BillForeignCurrency').show(); } bill.Currency = sCurrencyId; bill.ExchangeRate = oCurrency.Correlation || ''; oBillBox.find('[data-id="ExchangeRate"]').val(oCurrency.Correlation || ''); oBillBox.find('.BillAmountTiltle').attr('data-i18n', TitleAttr).text(i18next.t(TitleAttr)); let ExchangeRate = oBillBox.find('[data-id="ExchangeRate"]').val(); fnCalcuBillsFee(oBillBox, '.BillForeignCurrency', '.BillMainCurrency', sCurrencyId, ExchangeRate); bRequestStorage = true; }).val(bill.Currency); oBillBox.find('[data-id="Currency"]').change(); //oBillBox.find('[data-id="Currency"] option:first').remove();
fnBindFeeItem($('[data-id=bill_fees_' + bill.BillNO + ']'), oCurData, bill); //觸發點擊項目 產生資料內容
oBillBox.click(function () { if ($(this).attr('aria-expanded') === 'false') { oBillBox.find('[data-id="Payer"]').html(sCustomersNotAuditOptionsHtml).val(bill.Payer); setTimeout(function () { oBillBox.find('[data-id="Payer"]').select2({ width: '250px' }); }, 1000); if (bill.Payer) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === bill.Payer; }), saContactors = []; if (oCur.Count() > 0) { saContactors = JSON.parse(oCur.First().Contactors || '[]'); } oBillBox.find('[data-id="Contactor"]').html(createOptions(saContactors, 'guid', 'FullName')).val(bill.Contactor).off('change').on('change', function (e) { var sContactor = this.value; if (sContactor) { CallAjax(ComFn.W_Com, ComFn.GetOne, { Type: '', Params: { customers: { guid: bill.Payer }, } }, function (res) { var oRes = $.parseJSON(res.d); if (oRes.Contactors) { oRes.Contactors = $.parseJSON(oRes.Contactors || '[]'); var oContactor = Enumerable.From(oRes.Contactors).Where(function (e) { return e.guid === sContactor; }).First(); bill.ContactorName = oContactor.FullName; bill.Contactor = sContactor; } }); } else { bill.ContactorName = ''; bill.Contactor = ''; } bRequestStorage = true; });; oBillBox.find('[data-id="Contactor"]').select2(); } else { oBillBox.find('[data-id="Contactor"]').html(createOptions([])); } oBillBox.find('[data-id="Telephone"]').val(bill.Telephone); oBillBox.find('[data-id="ExchangeRate"]').val(bill.ExchangeRate || 1.00); oBillBox.find('[data-id="Number"]').val(bill.Number).on('keyup blur', function (e) { this.value = this.value.replace(/\D/g, ''); }); oBillBox.find('[data-id="Unit"]').val(bill.Unit); moneyInput(oBillBox.find('[data-id="Advance"]'), 2); moneyInput(oBillBox.find('[data-id="mAdvance"]'), 0); oBillBox.find('[data-id="Advance"]').val(bill.Advance); SetBillPrepayEvent(oBillBox, bill);
oBillBox.find('[data-id="Weight"]').val(bill.Weight).on('keyup blur', function (e) { keyIntp(e, this, 3); }); oBillBox.find('[data-id="Volume"]').val(bill.Volume).on('keyup blur', function (e) { keyIntp(e, this, 2); }); if (bill.ReceiptNumber) {//如果收據號碼已經產生就移除該按鈕
oBillBox.find('[data-id="ReceiptNumber"]').val(bill.ReceiptNumber); oBillBox.find('[data-id="ReceiptDate"]').val(bill.ReceiptDate); oBillBox.find('[data-id="createreceiptnumber"]').remove(); } oBillBox.find('[data-id="Memo"]').val(bill.Memo); oBillBox.find('[data-id="InvoiceNumber"]').val(bill.InvoiceNumber).on('blur', function (e) { var that = this, sInvoiceNumber = that.value; if (sInvoiceNumber) { return g_api.ConnectLite(Service.opm, ComFn.CheckInvoiceNum, { InvoiceNumber: sInvoiceNumber }, function (res) { if (res.RESULT) { var bExsit = res.DATA.rel; if (bExsit) { // ╠message.InvoiceNumberRepeat⇒發票號碼重複,請重新輸入!╣ ╠message.Tips⇒提示╣
layer.alert(i18next.t("message.InvoiceNumberRepeat"), { icon: 0, title: i18next.t("common.Tips") }, function (index) { $(that).val(''); layer.close(index); }); } } }); } }); oBillBox.find('[data-id="InvoiceDate"]').val(bill.InvoiceDate); oBillBox.find('.date-picker').datepicker({ changeYear: true, changeMonth: true, altFormat: 'yyyy/MM/dd' });
oBillBox.find('[data-id="Payer"]').on('change', function () { var sCustomerId = this.value, saContactors = []; if (sCustomerId) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === sCustomerId; }).First(); saContactors = JSON.parse(oCur.Contactors || '[]'); //bill.CustomerCode = oCur.CustomerNO;
oBillBox.find('[data-id="Contactor"]').html(createOptions(saContactors, 'guid', 'FullName')).off('change').on('change', function () { var sContactor = this.value; if (sContactor) { CallAjax(ComFn.W_Com, ComFn.GetOne, { Type: '', Params: { customers: { guid: sCustomerId }, } }, function (res) { var oRes = $.parseJSON(res.d); if (oRes.Contactors) { oRes.Contactors = $.parseJSON(oRes.Contactors || '[]'); var oContactor = Enumerable.From(oRes.Contactors).Where(function (e) { return e.guid === sContactor; }).First(); bill.ContactorName = oContactor.FullName; bill.Contactor = sContactor; } }); } else { bill.ContactorName = ''; bill.Contactor = ''; } bRequestStorage = true; }); oBillBox.find('[data-id="Telephone"]').val(oCur.Telephone); oBillBox.find('[data-id="Contactor"]').select2(); } else { oBillBox.find('[data-id="Contactor"]').html(createOptions([])); oBillBox.find('[data-id="Telephone"]').val(''); } oBillBox.find('[data-id="Telephone"]').change(); bRequestStorage = true; });
oBillBox.find('.bill-print').each(function () { var that = this, sTypeId = $(that).attr('data-action'), oToolBar = null; switch (sTypeId) { case 'Print_Bill': oToolBar = oPrintMenu.InvoicePrintMenu.tmpl break; case 'Print_Receipt': oToolBar = oPrintMenu.ReceiptPrintMenu.tmpl break; case 'Download_Bill': case 'Download_BatchBill': oToolBar = oPrintMenu.InvoiceDownLoadMenu.tmpl break; case 'Download_Receipt': oToolBar = oPrintMenu.ReceiptDownLoadMenu.tmpl break; } $(that).toolbar({ content: oToolBar, position: 'left', adjustment: 10, style: 'yida', }).on('toolbarItemClick', function (e, ele) { fnPrint($(ele).attr('data-id'), sTypeId, bill); } ); }); oBillBox.find('.btn-custom').not('disabled').off('click').on('click', function () { var that = this, sId = $(that).attr('data-id'); switch (sId) { case 'plusfeeitem'://新增費用項目
fnPlusFeeItem(that, oCurData, null, bill.Currency); break; case 'createreceiptnumber'://產生收據號碼
fnGetReceiptNumber(that, bill).done(function () { CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { Bills: JSON.stringify(oCurData.Bills) }, keys: { ExportBillNO: sDataId } } } }); }); break; case 'bill_submitaudit'://提交審核
fnBillToAudit(bill, that); break; case 'bill_audit'://主管審核
fnBillAudit(bill); break; case 'bill_cancelaudit'://取消審核
fnBillCancelAudit(bill); break; case 'bill_post'://過帳
fnBillPost(bill); break; case 'bill_cancelpost'://取消過帳
fnBillCancelPost(bill); break; case 'bill_writeoff'://銷帳
fnBillWriteOff(bill); break; case 'bill_canceloff'://銷帳
fnBillCancelWriteOff(bill); break; case 'bill_void'://作廢
fnBillVoid(bill); break; case 'bill_delete'://刪除
fnBillDelete(bill); break; case 'bill_reedit'://抽單
fnBillReEdit(bill); break; case 'bill_cancelreedit'://取消抽單
fnBillCancelReEdit(bill); break; } }); } }); //createOptions(sSelectedOrganizers.filter(e => e != null ), 'id', 'text')
//組團單位
oBillBox.find('[data-id="BillOrganizer"]').html(createOptions(sSelectedOrganizers.filter(e => e != null), 'id', 'text')).on('change', function () { bill.BillOrganizer = this.value; bRequestStorage = true; }).val(bill.BillOrganizer); } }); } fnSetPermissions();//設置權限
$('#tab3').css({ 'padding-top': 40 }); $('#topshow_box').show();//當審通過之後才顯示總金額
transLang(oBillsBox); }, /** * 設置操作權限 */ fnSetPermissions = function () { if (parent.UserInfo.roles.indexOf('Admin') === -1) { if ((parent.UserInfo.roles.indexOf('CDD') > -1 && (oCurData.ResponsiblePerson === parent.UserID || oCurData.DepartmentID === parent.UserInfo.DepartmentID)) || parent.UserInfo.roles.indexOf('CDD') === -1 || parent.SysSet.CDDProUsers.indexOf(parent.UserID) > -1) {//報關作業
$('[href="#tab3"],[href="#tab4"],[href="#tab5"],[href="#tab6"]').parent().show(); } else { $('[href="#tab3"],[href="#tab4"],[href="#tab5"],[href="#tab6"]').parent().hide(); } if (!(parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser)) {//其他
$('#tab3,#tab5').find(':input,button,textarea').not('.alreadyaudit,.cancelaudi,.writeoff,.bills-print,.estimated_addreturnbills,.prepay,.mprepay,.billvoid,.canceloff,.cancelpost').attr('disabled', 'disabled'); $('#tab3,#tab5').find('.icon-p').addClass('disabled'); } if (parent.UserInfo.roles.indexOf('Business') > -1) {//業務
$('#tab4,#tab6').find(':input,button,textarea').attr('disabled', 'disabled'); $('#tab4,#tab6').find('.icon-p').addClass('disabled'); } if (parent.UserInfo.roles.indexOf('Account') > -1) {//會計
$('#tab1,#tab2,#tab3,#tab5').find(':input,button,textarea').not('.alreadyaudit,.cancelaudi,.writeoff,.bills-print,.jsgrid-button,.estimated_addreturnbills,.prepay,.mprepay,.billvoid,.canceloff,.cancelpost,.importfeeitem,.plusfeeitem').attr('disabled', 'disabled'); $('#tab3,#tab5').find('.icon-p').addClass('disabled'); } } }, /**------------------------帳單部分---------------------------End*/
/**------------------------退運帳單部分---------------------------Start*/
/** * 添加新帳單 */ fnRenderReturnBills = function () { oCurData.ReturnBills = Enumerable.From(oCurData.ReturnBills).OrderBy("x=>x.CreateDate").ToArray(); var oReturnQuoteBox = $('.return-quote-box'), oReturnActualcostBox = $('.return-actualcost-box'), sReturnQuoteBoxHtml = $("#temp_return_quote_box").render(oCurData.ReturnBills), sReturnActualcostBoxHtml = $("#temp_return_actualcost_box").render(oCurData.ReturnBills); oReturnQuoteBox.html(sReturnQuoteBoxHtml); oReturnActualcostBox.html(sReturnActualcostBoxHtml);
$.each(oCurData.ReturnBills, function (idx, Returns) { var oFieldset_Return = $('.fieldset-' + Returns.guid);
fnBindFeeItem(oFieldset_Return.find('[data-id="quote-box"]'), Returns, Returns.Quote);//綁定報價
fnBindFeeItem(oFieldset_Return.find('[data-id="estimatedcost-box"]'), Returns, Returns.EstimatedCost);//綁定預估成本
if (Returns.EstimatedCost.AuditVal && Returns.EstimatedCost.AuditVal === '2') {//業務審核完
fnBindFeeItem(oFieldset_Return.find('[data-id="actualcost-pre-box"]'), Returns, Returns.EstimatedCost, true); oFieldset_Return.find('.estimatedcost-memo').text(Returns.EstimatedCost.Memo || ''); } fnBindFeeItem(oFieldset_Return.find('[data-id="actualcost-box"]'), Returns, Returns.ActualCost);//實際成本
fnInitialReturnAccountCurrency('.fieldset-' + Returns.guid, '-' + Returns.guid);//會計用匯率
oFieldset_Return.find('[data-source="quote"]').text(Returns.Quote.Memo || ''); oFieldset_Return.find('[data-source="estimatedcost"]').text(Returns.EstimatedCost.Memo || ''); oFieldset_Return.find('[data-source="actualcost"]').text(Returns.ActualCost.Memo || '');
oFieldset_Return.find('.plusfeeitem').not('disabled').off('click').on('click', function () { fnPlusFeeItem(this, Returns); });
oFieldset_Return.find('.importfeeitem').not('disabled').off('click').on('click', function () { var sType = $(this).attr('data-type'); fnImportFeeitems(sType, oFieldset_Return, Returns); });
oFieldset_Return.find('.copyfeeitem').not('disabled').off('click').on('click', function () { var sType = $(this).attr('data-type'); fnCopyFeeitems(sType, oFieldset_Return, Returns); });
oFieldset_Return.find('.plusfeeitemstar').not('disabled').off('click').on('click', function () { fnPlusFeeItemStar(this, oFieldset_Return.find('[data-id="quote-box"]'), Returns); });
oFieldset_Return.find('.estimated_submitaudit').not('disabled').off('click').on('click', function () { if (Returns.EstimatedCost.FeeItems.length === 0 && !Returns.EstimatedCost.Memo) { showMsg(i18next.t("message.EstimatedCostMemo_Required")); // ╠message.EstimatedCostMemo_Required⇒預估成本沒有費用明細,請至少填寫備註╣
return false; } if (!Returns.ReturnAccountingExchangeRate || !Returns.ReturnQuotationOrBillingCurrency) { showMsg(i18next.t("message.QuotationOrBillingCurrencyField_Required")); // ╠message.QuotationOrBillingCurrencyField_Required⇒報價/帳單幣或匯率未選擇╣
return false; }
Returns.Quote.AuditVal = '1'; Returns.EstimatedCost.AuditVal = '1'; g_api.ConnectLite(sProgramId, 'ReturnToAuditForQuote', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, SourceID: Returns.Quote.guid, Index: idx + 1 }, function (res) { if (res.RESULT) { fnSetDisabled(oFieldset_Return.find('.quoteandprecost'), Returns.Quote); showMsg(i18next.t("message.ToAudit_Success"), 'success'); // ╠message.ToAudit_Success⇒提交審核成功╣
parent.msgs.server.pushTips(parent.fnReleaseUsers(res.DATA.rel)); } else { Returns.Quote.AuditVal = '0'; Returns.EstimatedCost.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
} }, function () { Returns.Quote.AuditVal = '0'; Returns.EstimatedCost.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed'), 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
}); }); oFieldset_Return.find('.estimated_audit').not('disabled').off('click').on('click', function () { layer.open({ type: 1, title: i18next.t('common.Leader_Audit'),// ╠common.Leader_Audit⇒主管審核╣
area: ['400px', '260px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <textarea name="NotPassReason" id="NotPassReason" style="min-width:300px;" class="form-control" rows="5" cols="20" placeholderid="common.NotPassReason" placeholder="不通過原因..."></textarea><br>\ <button type="button" data-i18n="common.Pass" id="audit_pass" class="btn-custom green">通過</button>\ <button type="button" data-i18n="common.NotPass" id="audit_notpass" class="btn-custom red">不通過</button>\ </div>', success: function (layero, index) { $('.pop-box :button').click(function () { var fnAuditForQuote = function () { g_api.ConnectLite(sProgramId, 'ReturnAuditForQuote', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, AuditVal: Returns.Quote.AuditVal, SourceID: Returns.Quote.guid, Index: idx + 1 }, function (res) { if (res.RESULT) { showMsg(i18next.t("message.Audit_Completed"), 'success'); // ╠message.Audit_Completed⇒審核完成╣
fnSetDisabled(oFieldset_Return.find('.quoteandprecost'), Returns.Quote); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); } else { Returns.Quote.AuditVal = '1'; Returns.EstimatedCost.AuditVal = '1'; showMsg(i18next.t('message.Audit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Audit_Failed⇒審核失敗╣
} }, function () { Returns.Quote.AuditVal = '1'; Returns.EstimatedCost.AuditVal = '1'; showMsg(i18next.t('message.Audit_Failed'), 'error'); // ╠message.Audit_Failed⇒審核失敗╣
}); }, sNotPassReason = $('#NotPassReason').val(); if (this.id === 'audit_pass') { Returns.Quote.AuditVal = '2'; Returns.EstimatedCost.AuditVal = '2'; Returns.Quote.NotPassReason = ''; Returns.EstimatedCost.NotPassReason = ''; } else { ; if (!sNotPassReason) { showMsg(i18next.t("message.NotPassReason_Required")); // ╠message.NotPassReason_Required⇒請填寫不通過原因╣
return false; } else { Returns.Quote.AuditVal = '3'; Returns.EstimatedCost.AuditVal = '3'; Returns.Quote.NotPassReason = sNotPassReason; Returns.EstimatedCost.NotPassReason = sNotPassReason; } } fnAuditForQuote(); layer.close(index); }); transLang(layero); } }); }); oFieldset_Return.find('.estimated_synquote').not('disabled').off('click').on('click', function () { Returns.EstimatedCost.FeeItems = clone(Returns.Quote.FeeItems); $.each(Returns.EstimatedCost.FeeItems, function (idx, item) { item.FinancialUnitPrice = 0; item.FinancialNumber = 0; item.FinancialAmount = 0; item.FinancialTWAmount = 0; item.FinancialTaxRate = '0%'; item.FinancialTax = 0; item.CreateUser = parent.UserID; item.CreateDate = newDate(null, true); }); fnBindFeeItem(oFieldset_Return.find('[data-id="estimatedcost-box"]'), Returns, Returns.EstimatedCost); });
if (Returns.Quote.AuditVal === '2' && (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser)) { oFieldset_Return.find('.estimated_addreturnbills').removeAttr('disabled').show().off('click').on('click', function () { var fnGetBillsAdd = function () { var saBillsAdd = [], iNum = 1, oSame = {}, d = $.Deferred(); $.each(saGridData, function (m, item) { var iExsit = Enumerable.From(Returns.Bills).Where(function (e) { return (e.CustomerGuid === item.SupplierID && !e.VoidReason); }).Count(); if (!oSame[item.SupplierID]) { oSame[item.SupplierID] = 1; } else { oSame[item.SupplierID]++; } if (iExsit === 0 || oSame[item.SupplierID] > iExsit) { item.RowIndex = iNum; saBillsAdd.push(item); iNum++; oSame[item.SupplierID]--; } }); d.resolve({ data: saBillsAdd, itemsCount: saBillsAdd.length }); return d.promise(); }, oConfig = { Id: 'PopIsBatch', Title: i18next.t('common.SelectBatchList'),// ╠message.SelectBatchList⇒請選擇要批次操作的資料╣
PageSize: 10000, Get: fnGetBillsAdd, SearchFields: [ { id: "Pop_SupplierName", type: 'text', i18nkey: 'common.SupplierCName' }, { id: "Pop_SupplierEName", type: 'text', i18nkey: 'common.SupplierEName' } ], Fields: [ { name: "RowIndex", title: 'common.RowNumber', sorting: false, align: 'center', width: 40 }, { name: "CustomerNO", title: 'Customers_Upd.CustomerNO', width: 80 }, { name: "SupplierName", title: 'common.SupplierCName', width: 150 }, { name: "SupplierEName", title: 'common.SupplierEName', width: 150 } ], Callback: function (items) { if (items.length > 0) { var saPost = []; $.each(items, function (e, _item) { saPost.push(fnPushBill(_item, Returns, Returns.guid, true)); }); $.whenArray(saPost).done(function () { fnRenderReturnBills(); }); } } }; oPenPopm(oConfig); }); } else { oFieldset_Return.find('.estimated_addreturnbills').hide() }
$.each(Returns.Bills, function (i, bill) { bill.Advance = bill.Advance || 0; var oBillsBox = $('.return-bill-' + bill.parentid), sHtml = $("#temp_returnbillbox").render([bill]); oBillsBox.append(sHtml); var oBillBox = $('.bill-box-' + bill.BillNO); oBillBox.find('[data-id="Currency"]').html(sAccountingCurrencyOptionsHtml).on('change', function () { var sCurrencyId = this.value, oCurrency = Enumerable.From(saAccountingCurrency).Where(function (e) { return e.ArgumentID === sCurrencyId; }).FirstOrDefault(); if (oCurrency === undefined) oCurrency = {}; let TitleAttr = ''; let MainCurrency = fnCheckMainOrForeignCurrency(sCurrencyId); if (MainCurrency) { TitleAttr = 'common.MainCurrencyNontaxedAmountV2'; oBillBox.find('.ReturnBillMainCurrencyAdd [data-id="plusfeeitem"]').show(); oBillBox.find('.ReturnBillForeignCurrency').hide(); } else { TitleAttr = 'common.ForeignCurrencyNontaxedAmountV2'; oBillBox.find('.ReturnBillMainCurrencyAdd [data-id="plusfeeitem"]').hide(); oBillBox.find('.ReturnBillForeignCurrency').show();
} oBillBox.find('.ReturnBillAmountTiltle-' + bill.guid).attr('data-i18n', TitleAttr).text(i18next.t(TitleAttr)); bill.Currency = sCurrencyId; bill.ExchangeRate = oCurrency.Correlation || ''; oBillBox.find('[data-id="ExchangeRate"]').val(oCurrency.Correlation || ''); let ExchangeRate = oBillBox.find('[data-id="ExchangeRate"]').val(); fnCalcuBillsFee(oBillBox, '.ReturnBillForeignCurrency', '.ReturnBillMainCurrency', sCurrencyId, ExchangeRate); bRequestStorage = true; }).val(bill.Currency); oBillBox.find('[data-id="Currency"]').change(); //oBillBox.find('[data-id="Currency"] option:first').remove();
oBillBox.find('[data-id="Payer"]').html(sCustomersNotAuditOptionsHtml).val(bill.Payer); oBillBox.find('[data-id="ReFlow"]').val(bill.ReFlow || ''); setTimeout(function () { oBillBox.find('[data-id="Payer"]').select2({ width: '250px' }); }, 1000);
if (bill.Payer) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === bill.Payer; }), saContactors = []; if (oCur.Count() > 0) { saContactors = JSON.parse(oCur.First().Contactors || '[]'); } oBillBox.find('[data-id="Contactor"]').html(createOptions(saContactors, 'guid', 'FullName')).val(bill.Contactor).off('change').on('change', function (e) { var sContactor = this.value; if (sContactor) { CallAjax(ComFn.W_Com, ComFn.GetOne, { Type: '', Params: { customers: { guid: bill.Payer }, } }, function (res) { var oRes = $.parseJSON(res.d); if (oRes.Contactors) { oRes.Contactors = $.parseJSON(oRes.Contactors || '[]'); var oContactor = Enumerable.From(oRes.Contactors).Where(function (e) { return e.guid === sContactor; }).First(); bill.ContactorName = oContactor.FullName; bill.Contactor = sContactor; } }); } else { bill.ContactorName = ''; bill.Contactor = ''; } bRequestStorage = true; }); oBillBox.find('[data-id="Contactor"]').select2(); } else { oBillBox.find('[data-id="Contactor"]').html(createOptions([])); } oBillBox.find('[data-id="Telephone"]').val(bill.Telephone);
moneyInput(oBillBox.find('[data-id="Advance"]'), 2); moneyInput(oBillBox.find('[data-id="mAdvance"]'), 0); oBillBox.find('[data-id="Advance"]').val(bill.Advance); SetBillPrepayEvent(oBillBox, bill);
oBillBox.find('[data-id="ExchangeRate"]').val(bill.ExchangeRate || 1.00); oBillBox.find('[data-id="Number"]').val(bill.Number).on('keyup blur', function (e) { this.value = this.value.replace(/\D/g, ''); }); oBillBox.find('[data-id="Unit"]').val(bill.Unit); oBillBox.find('[data-id="Weight"]').val(bill.Weight).on('keyup blur', function (e) { keyIntp(e, this, 3); }); oBillBox.find('[data-id="Volume"]').val(bill.Volume).on('keyup blur', function (e) { keyIntp(e, this, 2); }); fnBindFeeItem($('[data-id=bill_fees_' + bill.BillNO + ']'), Returns, bill); if (bill.ReceiptNumber) {//如果收據號碼已經產生就移除該按鈕
oBillBox.find('[data-id="ReceiptNumber"]').val(bill.ReceiptNumber); oBillBox.find('[data-id="ReceiptDate"]').val(bill.ReceiptDate); oBillBox.find('[data-id="createreceiptnumber"]').remove(); } oBillBox.find('[data-id="Memo"]').val(bill.Memo); oBillBox.find('[data-id="InvoiceNumber"]').val(bill.InvoiceNumber).on('blur', function (e) { var that = this, sInvoiceNumber = that.value; if (sInvoiceNumber) { return g_api.ConnectLite(Service.opm, ComFn.CheckInvoiceNum, { InvoiceNumber: sInvoiceNumber }, function (res) { if (res.RESULT) { var bExsit = res.DATA.rel; if (bExsit) { // ╠message.InvoiceNumberRepeat⇒發票號碼重複,請重新輸入!╣ ╠message.Tips⇒提示╣
layer.alert(i18next.t("message.InvoiceNumberRepeat"), { icon: 0, title: i18next.t("common.Tips") }, function (index) { $(that).val(''); layer.close(index); }); } } }); } }); oBillBox.find('[data-id="InvoiceDate"]').val(bill.InvoiceDate); oBillBox.find('.date-picker').datepicker({ changeYear: true, changeMonth: true, altFormat: 'yyyy/MM/dd' }); inputChange(oBillBox.find('[data-source="bill"]'), bill);
oBillBox.find('[data-id="Payer"]').on('change', function () { var sCustomerId = this.value, saContactors = []; if (sCustomerId) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === sCustomerId; }).First(); saContactors = JSON.parse(oCur.Contactors || '[]'); //bill.CustomerCode = oCur.CustomerNO;
//bill.UniCode = oCur.UniCode;
oBillBox.find('[data-id="Contactor"]').html(createOptions(saContactors, 'guid', 'FullName')).off('change').on('change', function () { var sContactor = this.value; if (sContactor) { CallAjax(ComFn.W_Com, ComFn.GetOne, { Type: '', Params: { customers: { guid: sCustomerId }, } }, function (res) { var oRes = $.parseJSON(res.d); if (oRes.Contactors) { oRes.Contactors = $.parseJSON(oRes.Contactors || '[]'); var oContactor = Enumerable.From(oRes.Contactors).Where(function (e) { return e.guid === sContactor; }).First(); bill.ContactorName = oContactor.FullName; bill.Contactor = sContactor; } }); } else { bill.ContactorName = ''; bill.Contactor = ''; } bRequestStorage = true; }); oBillBox.find('[data-id="Telephone"]').val(oCur.Telephone); oBillBox.find('[data-id="Contactor"]').select2(); } else { oBillBox.find('[data-id="Contactor"]').html(createOptions([])); oBillBox.find('[data-id="Telephone"]').val(''); } oBillBox.find('[data-id="Telephone"]').change(); bRequestStorage = true; });
oBillBox.find('.bill-print').each(function () { var that = this, sTypeId = $(that).attr('data-action'), oToolBar = null; switch (sTypeId) { case 'Print_Bill': oToolBar = oPrintMenu.InvoicePrintMenu.tmpl break; case 'Print_Receipt': oToolBar = oPrintMenu.ReceiptPrintMenu.tmpl break; case 'Download_Bill': case 'Download_BatchBill': oToolBar = oPrintMenu.InvoiceDownLoadMenu.tmpl break; case 'Download_Receipt': oToolBar = oPrintMenu.ReceiptDownLoadMenu.tmpl break; } $(that).toolbar({ content: oToolBar, position: 'left', adjustment: 10, style: 'yida', }).on('toolbarItemClick', function (e, ele) { fnPrint($(ele).attr('data-id'), sTypeId, bill); } ); }); oBillBox.find('.btn-custom').not('disabled').off('click').on('click', function () { var that = this, sId = $(that).attr('data-id'); switch (sId) { case 'plusfeeitem'://新增費用項目
fnPlusFeeItem(that, Returns, null, bill.Currency); break; case 'createreceiptnumber'://產生收據號碼
fnGetReceiptNumber(that, bill).done(function () { CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { ReturnBills: JSON.stringify(oCurData.ReturnBills) }, keys: { ExportBillNO: sDataId } } } }); }); break; case 'bill_submitaudit'://提交審核
fnReturnBillToAudit(bill, that); break; case 'bill_audit'://主管審核
fnReturnBillAudit(bill); break; case 'bill_cancelaudit'://取消審核
fnReturnBillCancelAudit(bill); break; case 'bill_post'://過帳
fnReturnBillPost(bill); break; case 'bill_cancelpost'://取消過帳
fnReturnBillCancelPost(bill); break; case 'bill_writeoff'://銷帳
fnReturnBillWriteOff(bill); break; case 'bill_canceloff'://取消銷帳
fnReturnBillCancelWriteOff(bill); break; case 'bill_void'://作廢
fnReturnBillVoid(bill); break; case 'bill_delete'://刪除
fnReturnBillDelete(bill); break; case 'bill_reedit'://抽單
fnReturnBillReEdit(bill); break; case 'bill_cancelreedit'://取消抽單
fnReturnBillCancelReEdit(bill); break; } }); }); });
fnSetPermissions();//設置權限
$('#topshow_box_return').show();//當審通過之後才顯示總金額
transLang($('#tab5,#tab6')); }, /** * 添加新帳單 */ fnPushReturnBill = function () { var oNewReturnBill = {}; oNewReturnBill.guid = guid(); oNewReturnBill.index = oCurData.ReturnBills.length + 1; oNewReturnBill.Quote = { guid: guid(), KeyName: 'Quote', AuditVal: '0', FeeItems: [] }; oNewReturnBill.EstimatedCost = { guid: guid(), KeyName: 'EstimatedCost', AuditVal: '0', FeeItems: [] }; oNewReturnBill.ActualCost = { guid: guid(), KeyName: 'ActualCost', AuditVal: '0', FeeItems: [] }; oNewReturnBill.Bills = []; oNewReturnBill.CreateDate = newDate(); oNewReturnBill.ReturnQuotationOrBillingCurrency = '' oNewReturnBill.ReturnAccountingExchangeRate = ''; oCurData.ReturnBills.push(oNewReturnBill); fnRenderReturnBills(); }, fnReturnBillToAudit = function (bill, el) { var sMsg = '', elBillBox = $(el).parents('.financial'); if (!bill.Currency) { sMsg += i18next.t("ExhibitionImport_Upd.Currency_required") + '<br/>'; // ╠common.Currency_required⇒請輸入帳單幣別╣
} if (!bill.Payer) { sMsg += i18next.t("ExhibitionImport_Upd.Payer_required") + '<br/>'; // ╠ExhibitionImport_Upd.SupplierEamil_required⇒請輸入付款人╣
} if (!bill.Number) { sMsg += i18next.t("message.Number_required") + '<br/>'; // ╠message.Number_required⇒請輸入件數╣
} if (!bill.Weight) { sMsg += i18next.t("message.Weight_required") + '<br/>'; // ╠message.Weight_required⇒請輸入重量╣
} if (!bill.Volume) { sMsg += i18next.t("message.Volume_required") + '<br/>'; // ╠message.Volume_required⇒請輸入材積(CBM)╣
} if (!bill.ReFlow) { sMsg += i18next.t("message.ReFlow_required"); // ╠message.ReFlow_required⇒請輸入退運流程╣
} if (elBillBox.find('.jsgrid-update-button').length > 0) { sMsg += i18next.t("message.DataEditing") + '<br/>'; // ╠message.DataEditing⇒該賬單處於編輯中╣
} if (sMsg) { showMsg(sMsg); // 必填欄位
return; }
bill.AuditVal = '1'; g_api.ConnectLite(sProgramId, 'ReturnToAuditForBill', { ExportBillNO: sDataId, Exhibitors: saGridData, ReturnBills: oCurData.ReturnBills, Bill: bill }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.ToAudit_Success"), 'success'); // ╠message.ToAudit_Success⇒提交審核成功╣
parent.msgs.server.pushTips(parent.fnReleaseUsers(res.DATA.rel)); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
} }, function () { bill.AuditVal = '0'; showMsg(i18next.t('message.ToAudit_Failed'), 'error'); // ╠message.ToAudit_Failed⇒提交審核失敗╣
}); }, /** * 帳單審核 * @param bill(object)帳單資料 */ fnReturnBillAudit = function (bill) { layer.open({ type: 1, title: i18next.t('common.Leader_Audit'),// ╠common.Leader_Audit⇒主管審核╣
area: ['400px', '260px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Cancel')],// ╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <textarea name="NotPassReason" id="NotPassReason" style="min-width:300px;" class="form-control" rows="5" cols="20" placeholderid="common.NotPassReason" placeholder="不通過原因..."></textarea><br>\ <button type="button" data-i18n="common.Pass" id="audit_pass" class="btn-custom green">通過</button>\ <button type="button" data-i18n="common.NotPass" id="audit_notpass" class="btn-custom red">不通過</button>\ </div>', success: function (layero, idx) { $('.pop-box :button').click(function () { var sNotPassReason = $('#NotPassReason').val(); if (this.id === 'audit_pass') { bill.AuditVal = '2'; bill.NotPassReason = ''; } else { if (!sNotPassReason) { showMsg(i18next.t("message.NotPassReason_Required")); // ╠message.NotPassReason_Required⇒請填寫不通過原因╣
return false; } else { bill.AuditVal = '3'; bill.NotPassReason = sNotPassReason; } } bill.BillCheckDate = newDate(); bill.CreateDate = newDate(); if (!bill.BillFirstCheckDate) { bill.BillFirstCheckDate = bill.BillCheckDate; } g_api.ConnectLite(sProgramId, 'ReturnAuditForBill', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill }, function (res) { if (res.RESULT) { $('.bill-box-' + bill.BillNO).find('.bill-chewckdate').text(bill.BillCheckDate); fnSetDisabled($('.bill-box-' + bill.BillNO), bill); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); showMsg(i18next.t("message.Audit_Completed"), 'success'); // ╠message.Audit_Completed⇒審核完成╣
if (bill.AuditVal === '2') { parent.msgs.server.pushTransfer(parent.OrgID, parent.UserID, bill.BillNO, 1); } fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '1'; if (bill.BillCheckDate === bill.BillFirstCheckDate) { bill.BillFirstCheckDate = ''; } bill.BillCheckDate = ''; showMsg(i18next.t('message.Audit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Audit_Failed⇒審核失敗╣
} }, function () { bill.AuditVal = '1'; if (bill.BillCheckDate === bill.BillFirstCheckDate) { bill.BillFirstCheckDate = ''; } bill.BillCheckDate = ''; showMsg(i18next.t('message.Audit_Failed'), 'error'); // ╠message.Audit_Failed⇒審核失敗╣
}); layer.close(idx); }); transLang(layero); } }); }, /** * 會計審核 * @param bill(object)帳單資料 */ fnReturnBillAccountAudit = function (bill) { }, /** * 會計取消審核 * @param bill(object)帳單資料 */ fnReturnBillCancelAudit = function (bill) { var sBillCheckDate = bill.BillCheckDate; bill.AuditVal = '0'; bill.BillCheckDate = ''; g_api.ConnectLite(sProgramId, 'ReturnCancelAudit', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { $('.bill-box-' + bill.BillNO).find('.bill-chewckdate').text(''); fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.CancelAudit_Success"), 'success'); // ╠message.CancelAudit_Success⇒取消審核完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '2'; bill.BillCheckDate = sBillCheckDate; showMsg(i18next.t('message.CancelAudit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.CancelAudit_Failed⇒取消審核失敗╣
} }, function () { bill.AuditVal = '2'; bill.BillCheckDate = sBillCheckDate; showMsg(i18next.t('message.CancelAudit_Failed'), 'error'); // ╠message.CancelAudit_Failed⇒取消審核失敗╣
}); }, /** * 過帳 * @param bill(object)帳單資料 */ fnReturnBillPost = function (bill) { bill.AuditVal = '5'; bill.CreateDate = newDate(); g_api.ConnectLite(sProgramId, 'ReturnBillPost', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillPost_Success"), 'success'); // ╠message.BillPost_Success⇒過帳完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); parent.msgs.server.pushTransfer(parent.OrgID, parent.UserID, bill.BillNO, 1); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '2'; showMsg(i18next.t('message.BillPost_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillPost_Failed⇒過帳失敗╣
} }, function () { bill.AuditVal = '2'; showMsg(i18next.t('message.BillPost_Failed'), 'error'); // ╠message.BillPost_Failed⇒過帳失敗╣
}); }, /** * 取消過帳 * @param bill(object)帳單資料 */ fnReturnBillCancelPost = function (bill) { bill.AuditVal = '2'; g_api.ConnectLite(sProgramId, 'ReturnBillCancelPost', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillCancePost_Success"), 'success'); // ╠message.BillCancePost_Success⇒取消過帳完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '5'; showMsg(i18next.t('message.BillCancePost_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillCancePost_Failed⇒取消過帳失敗╣
} }, function () { bill.AuditVal = '5'; showMsg(i18next.t('message.BillCancePost_Failed'), 'error'); // ╠message.BillCancePost_Failed⇒取消過帳失敗╣
}); }, /** * 會計銷帳 * @param bill(object)帳單資料 */ fnReturnBillWriteOff = function (bill) { bill.AuditVal = '4'; bill.BillWriteOffDate = newDate(); g_api.ConnectLite(sProgramId, 'ReturnWriteOff', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillWriteOff_Success"), 'success'); // ╠message.BillWriteOff_Success⇒銷帳完成╣
parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '5'; showMsg(i18next.t('message.BillWriteOff_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillWriteOff_Failed⇒銷帳失敗╣
} }, function () { bill.AuditVal = '5'; showMsg(i18next.t('message.BillWriteOff_Failed'), 'error'); // ╠message.BillWriteOff_Failed⇒銷帳失敗╣
}); }, /** * 會計取消銷帳 * @param bill(object)帳單資料 */ fnReturnBillCancelWriteOff = function (bill) { bill.AuditVal = '5'; bill.BillWriteOffDate = ''; g_api.ConnectLite(sProgramId, 'ReturnCancelWriteOff', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.BillCancelWriteOff_Success"), 'success'); // ╠message.BillCancelWriteOff_Success⇒取消銷帳完成╣
fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '4'; showMsg(i18next.t('message.BillCancelWriteOff_Failed') + '<br>' + res.MSG, 'error'); // ╠message.BillCancelWriteOff_Failed⇒取消銷帳失敗╣
} }, function () { bill.AuditVal = '4'; showMsg(i18next.t('message.BillCancelWriteOff_Failed'), 'error'); // ╠message.BillCancelWriteOff_Failed⇒取消銷帳失敗╣
}); }, /** * 帳單作廢 * @param bill(object)帳單資料 */ fnReturnBillVoid = function (bill) { layer.open({ type: 1, title: i18next.t('common.VoidBill'),// ╠common.VoidBill⇒作廢帳單╣
area: ['400px', '220px'],//寬度
shade: 0.75,//遮罩
shadeClose: true, btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
content: '<div class="pop-box">\ <textarea name="VoidReason" id="VoidReason" style="min-width:300px;" class="form-control" rows="5" cols="20" placeholderid="common.VoidReason" placeholder="作廢原因..."></textarea>\ </div>', success: function (layero, idx) { transLang(layero); }, yes: function (index, layero) { var sAuditVal = bill.AuditVal, sVoidReason = layero.find('#VoidReason').val(); if (sVoidReason) { bill.VoidReason = sVoidReason; bill.AuditVal = '6'; g_api.ConnectLite(sProgramId, 'ReturnBillVoid', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { layer.close(index); showMsg(i18next.t("message.Void_Success"), 'success'); // ╠message.Void_Success⇒作廢成功╣
fnRenderReturnBills(); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = sAuditVal; bill.VoidReason = ''; showMsg(i18next.t('message.Void_Failed') + '<br>' + res.MSG, 'error'); // ╠message.Void_Failed⇒作廢失敗╣
} }, function () { bill.AuditVal = sAuditVal; bill.VoidReason = ''; showMsg(i18next.t('message.Void_Failed'), 'error'); // ╠message.Void_Failed⇒作廢失敗╣
}); } else { showMsg(i18next.t("message.VoidReason_Required")); // ╠message.VoidReason_Required⇒請填寫作廢原因╣
} } }); }, /** * 帳單刪除 * @param bill(object)帳單資料 */ fnReturnBillDelete = function (bill) { // ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t("message.ConfirmToDelete"), { icon: 3, title: i18next.t('common.Tips') }, function (index) { var saNewBills = []; $.each(oCurData.ReturnBills, function (idx, Returns) { if (Returns.guid === bill.parentid) { var saNewBills = []; $.each(Returns.Bills, function (i, _bill) { if (_bill.BillNO !== bill.BillNO) { saNewBills.push(_bill); } }); Returns.Bills = saNewBills; return false; } }); g_api.ConnectLite(sProgramId, 'ReturnBillDelete', { ExportBillNO: sDataId, ReturnBills: oCurData.ReturnBills, Bill: bill, LogData: fnGetBillLogData(bill) }, function (res) { if (res.RESULT) { showMsg(i18next.t("message.Delete_Success"), 'success'); // ╠message.Delete_Success⇒刪除成功╣
fnRenderReturnBills(); parent.msgs.server.pushTip(parent.OrgID, res.DATA.rel); fnDeleteBillInfo(bill.BillNO); } else { showMsg(i18next.t("message.Delete_Failed") + '<br>' + res.MSG, 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
} }, function () { showMsg(i18next.t("message.Delete_Failed"), 'error'); // ╠message.Delete_Failed⇒刪除失敗╣
}); layer.close(index); }); }, /** * 抽單 * @param bill(object)帳單資料 */ fnReturnBillReEdit = function (bill) { bill.AuditVal = '7'; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { ReturnBills: JSON.stringify(oCurData.ReturnBills) }, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.ReEdit_Success"), 'success'); // ╠message.ReEdit_Success⇒抽單成功╣
fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '1'; showMsg(i18next.t('message.ReEdit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.ReEdit_Failed⇒抽單失敗╣
} }, function () { bill.AuditVal = '1'; showMsg(i18next.t('message.ReEdit_Failed'), 'error'); // ╠message.ReEdit_Failed⇒抽單失敗╣
}); }, /** * 取消抽單 * @param bill(object)帳單資料 */ fnReturnBillCancelReEdit = function (bill) { bill.AuditVal = '1'; CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { ReturnBills: JSON.stringify(oCurData.ReturnBills) }, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { fnSetDisabled($('.bill-box-' + bill.BillNO), bill); showMsg(i18next.t("message.CancelReEdit_Success"), 'success'); // ╠message.CancelReEdit_Success⇒取消抽單成功╣
fnUpdateBillInfo(sProgramId, sDataId, bill.BillNO); } else { bill.AuditVal = '7'; showMsg(i18next.t('message.CancelReEdit_Failed') + '<br>' + res.MSG, 'error'); // ╠message.CancelReEdit_Failed⇒取消抽單失敗╣
} }, function () { bill.AuditVal = '7'; showMsg(i18next.t('message.CancelReEdit_Failed'), 'error'); // ╠message.CancelReEdit_Failed⇒取消抽單失敗╣
}); }, /**------------------------退運帳單部分---------------------------End*/ /** * Grid初始化 */ fnGridInit = function () { var iHeight = $('body').height() - $('.page-title').height() - $('#searchbar').height() - 120; $("#jsGrid").jsGrid({ width: "100%", height: "auto", autoload: true, filtering: true, pageLoading: true, inserting: true, editing: true, sorting: false, paging: false, pageIndex: 1, pageSize: parent.SysSet.GridRecords || 10, invalidMessage: i18next.t('common.InvalidData'),// ╠common.InvalidData⇒输入的数据无效!╣
confirmDeleting: true, deleteConfirm: i18next.t('message.ConfirmToDelete'),// ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣
pagePrevText: "<", pageNextText: ">", pageFirstText: "<<", pageLastText: ">>", rowClass: function (item) { if (item.VoidContent) { return 'data-void'; } }, fields: [ { name: "RowIndex", title: 'common.RowNumber', width: 50, align: "center", sorting: false, itemTemplate: function (val, item) { var sVal = val || ''; if (item.VoidContent) {// ╠common.Toolbar_Void⇒作廢╣
sVal = '<span class="tooltips" title="' + i18next.t('common.Toolbar_Void') + ':' + item.VoidContent + '">' + sVal + '</span>'; } return sVal; } }, {//╠common.SupplierName⇒客戶/參展廠商名稱╣
name: "SupplierName", title: 'common.SupplierName', width: 150, filtering: true, inserting: true, editing: false, validate: { validator: 'required', message: i18next.t('common.Supplier_required') }, insertTemplate: function () { var oSelect = $('<select/>', { change: function () { var sCustomerId = this.value, sRefSupplierNo = $('#RefNumber').val() + rndnum(3); if (sCustomerId) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === sCustomerId; }).First(); oAddItem.guid = guid(); oAddItem.SupplierID = oCur.id; oAddItem.CustomerNO = oCur.CusNO; oAddItem.UniCode = oCur.UniCode; oAddItem.SupplierName = oCur.textcn; oAddItem.SupplierEName = oCur.texteg; oAddItem.RefSupplierNo = sRefSupplierNo; oAddItem.Telephone = oCur.Telephone; oAddItem.Email = oCur.Email; oAddItem.ContactorName = ''; oAddItem.CreateUser = parent.UserID; oAddItem.CreateDate = new Date().formate("yyyy/MM/dd HH:mm:ss"); oSelect.parent().next().find(':input').val(oAddItem.SupplierEName); oSelect.parent().next().next().find(':input').val(sRefSupplierNo); var saContactors = JSON.parse(oCur.Contactors || '[]'); oSelect.parent().next().next().next().find('select').html(createOptions(saContactors, 'guid', 'FullName')).on('change', function () { var sContactor = this.value; if (sContactor) { var oContactor = Enumerable.From(saContactors).Where(function (e) { return e.guid === sContactor; }).First(); $(this).parent().next().find(':input').val(oContactor.TEL1); $(this).parent().next().next().find(':input').val(oContactor.Email); oAddItem.Contactor = sContactor; oAddItem.ContactorName = oContactor.FullName; oAddItem.Telephone = oContactor.TEL1; oAddItem.Email = oContactor.Email; } else { oAddItem.Contactor = ''; oAddItem.ContactorName = ''; oAddItem.Telephone = ''; oAddItem.Email = ''; $(this).parent().next().find(':input').val(''); $(this).parent().next().next().find(':input').val(''); } }); oSelect.parent().next().next().next().next().find(':input').val(oCur.Telephone); oSelect.parent().next().next().next().next().next().find(':input').val(oCur.Email); } else { oSelect.parent().next().next().next().find('select').html(createOptions([])); oAddItem = {}; } bRequestStorage = true; } }); setTimeout(function () { oSelect.html(sCustomersNotAuditOptionsHtml).select2({ width: '180px' }); }, 1000); return this.insertControl = oSelect; }, insertValue: function () { return this.insertControl.val(); }, filterTemplate: function () { var oSelect = $('<select/>', { change: function () { var sCustomerId = this.value; if (sCustomerId) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === sCustomerId; }).First(); var saContactors = JSON.parse(oCur.Contactors || '[]'); oSelect.parent().next().next().next().find('select').html(createOptions(saContactors, 'guid', 'FullName')) } else { oSelect.parent().next().next().next().find('select').html(createOptions([])); } bRequestStorage = true; } }); setTimeout(function () { oSelect.html(sCustomersOptionsHtml).select2({ width: '180px' }); }, 1000); return this.filterControl = oSelect; }, filterValue: function () { return this.filterControl.val() === '' ? '' : this.filterControl.find("option:selected").text(); } }, {//╠common.SupplierEName⇒客戶/參展廠商英文名稱╣
name: "SupplierEName", title: 'common.SupplierEName', width: 150, filtering: true, inserting: true, editing: false, insertTemplate: function () { return this.insertControl = $('<input/>', { type: 'text', class: 'form-control w100p', disabled: true }); }, insertValue: function () { return this.insertControl.val(); }, filterTemplate: function () { return this.filterControl = $('<input/>', { type: 'text' }); }, filterValue: function () { return this.filterControl.val(); } }, {//╠common.RefSupplierNo⇒客戶/廠商查詢號碼╣
name: "RefSupplierNo", title: 'common.RefSupplierNo', width: 100, filtering: true, inserting: true, editing: false, insertTemplate: function () { return this.insertControl = $('<input/>', { type: 'text', class: 'form-control w100p', disabled: true }); }, insertValue: function () { return this.insertControl.val(); }, filterTemplate: function () { return this.filterControl = $('<input/>', { type: 'text' }); }, filterValue: function () { return this.filterControl.val(); } }, { name: "Contactor", title: 'common.Contactor', type: "text", filtering: true, width: 100, itemTemplate: function (val, item) { return item.ContactorName; }, insertTemplate: function () { return this.insertControl = $('<select/>', { html: createOptions([]) }); }, insertValue: function () { return this.insertControl.val(); }, editTemplate: function (val, item) { var saContactors = []; if (item.SupplierID) { var saCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === item.SupplierID; }).ToArray(); if (saCur.length > 0) { saContactors = JSON.parse(saCur[0].Contactors || '[]'); } } return this.editControl = $('<select/>', { html: createOptions(saContactors, 'guid', 'FullName'), change: function () { var sContactor = this.value; if (sContactor) { var oContactor = Enumerable.From(saContactors).Where(function (e) { return e.guid === sContactor; }).First(); $(this).parent().next().find(':input').val(oContactor.TEL1); $(this).parent().next().next().find(':input').val(oContactor.Email); item.Contactor = sContactor; item.ContactorName = oContactor.FullName; item.Telephone = oContactor.TEL1; item.Email = oContactor.Email; } else { item.Contactor = ''; item.ContactorName = ''; item.Telephone = ''; item.Email = ''; $(this).parent().next().find(':input').val(''); $(this).parent().next().next().find(':input').val(''); } bRequestStorage = true; } }).val(val); }, editValue: function () { return this.editControl.val(); } }, { name: "Telephone", title: 'common.Telephone', type: "text", filtering: true, width: 100 }, { name: "Email", title: 'common.Email', type: "text", filtering: true, width: 130 }, { name: "Flow_Status", title: 'common.Flow_Status', type: "text", width: 80, filtering: true, editing: false, inserting: false, filterTemplate: function () { return this.filterControl = $('<select/>', { class: 'form-control w100p', html: '<option value="">請選擇...</option>' + '<option value="已收文件">已收文件</option>' + '<option value="貨物進倉">貨物進倉</option>' + '<option value="報關作業">報關作業</option>' + '<option value="出口放行">出口放行</option>' + '<option value="航行中">航行中</option>' + '<option value="貨物抵港">貨物抵港</option>' + '<option value="貨物放行">貨物放行</option>' + '<option value="等待進場">等待進場</option>' + '<option value="送達攤位">送達攤位</option>' + ' <option value="退運">退運</option>' }); }, filterValue: function () { return this.filterControl.val(); } }, {// ╠common.Other⇒其他╣
title: 'common.Other', width: 200, itemTemplate: function (val, item) { var oDom = [$("<a/>", { html: i18next.t('ExhibitionExport_Upd.ExportOperationFlow'),// ╠ExhibitionExport_Upd.ExportOperationFlow⇒出口作業流程╣
class: 'a-url', click: function () { showWaiting(); oCurSupplierData = item;
layer.open({ type: 2, title: i18next.t('ExhibitionExport_Upd.ExportOperationFlow'),// ╠ExhibitionExport_Upd.ExportOperationFlow⇒出口作業流程╣
shade: 0.75, maxmin: true, //开启最大化最小化按钮
area: ['90%', '80%'], content: '/Page/Pop/ExportFlowPop.html?' + new Date().valueOf(), btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
success: function (layero, index) { var iframe = $('iframe').contents(), oForm = iframe.find('#form_ExportFlowPop');
//加載運輸方式, 加載機場, 加載貨棧場, 加載倉庫
if (item.ClearanceData && !item.ClearanceData.WaitingApproach) { oForm.find('#ClearanceData_WaitingApproach_Checked').parents('.form-group').remove(); } fnSGMod(oForm.find('.shjy-box'));//上海駒驛須移除選項
oForm.find('.Control_Transport').html(sTransportOptionsHtml);
setFormVal(oForm, item); setFlowBox(oForm, item); saBatchArr = []; iframe.find('#IsBatch').click(function () { var that = this; if (that.checked) { if (saGridData.length > 1) { var oConfig = { Id: 'PopIsBatch', Title: i18next.t('common.SelectBatchList'),// ╠common.SelectBatchList⇒請選擇要批次操作的資料╣
PageSize: 10000, Get: fnGetPop_CusSupplier, SearchFields: [ { id: "Pop_SupplierName", type: 'text', i18nkey: 'common.SupplierName' }, { id: "Pop_SupplierEName", type: 'text', i18nkey: 'common.SupplierEName' } ], Fields: [ { name: "RowIndex", title: 'common.RowNumber', sorting: false, align: 'center', width: 50 }, { name: "CustomerNO", title: 'Customers_Upd.CustomerNO', width: 80 }, { name: "SupplierName", title: 'common.SupplierName', width: 150 }, { name: "SupplierEName", title: 'common.SupplierEName', width: 150 } ], Callback: function (items) { $.each(items, function (idx, _item) { saBatchArr.push(_item.guid); }); if (saBatchArr.length === 0) { $(that).click(); } }, CancelCallback: function () { $(that).click(); } }; oPenPopm(oConfig); } } else { saBatchArr = []; } });
iframe.find('.quickquery-city').off('keyup').on('keyup', function () { this.value = this.value.toUpperCase(); }).off('blur').on('blur', function () { var sId = this.value, oPort = Enumerable.From(saPort).Where(function (e) { return e.id === sId; }); if (oPort.Count() === 1) { $(this).parent().next().next().find(':input').val(oPort.First().text); } }).autocompleter({ // marker for autocomplete matches
highlightMatches: true, // object to local or url to remote search
source: saPort, // custom template
template: '{{ id }} <span>({{ label }})</span>', // show hint
hint: true, // abort source if empty field
empty: false, // max results
limit: 20, callback: function (value, index, selected) { if (selected) { var that = this; $(that).parent().find(':input').val(selected.id); $(that).parent().next().next().find(':input').val(selected.text); } } });
transLang(iframe); closeWaiting(); }, yes: function (index, layero) { var iframe = $('iframe').contents(), oForm = iframe.find('#form_ExportFlowPop'), newData = getFormSerialize(oForm);
delete item.ExportData; delete item.ClearanceData; delete item.ReImport; delete item.TranserThird; delete item.PartThird; delete item.PartReImport; delete item.ReImportFour; delete item.TransferFour; delete item.ReImportFive; delete item.TransferFive; delete item.ReImportSix; delete item.TransferSix; delete item.ReturnType; delete item.LastReturnType; delete item.ReturnType_4; delete item.ReturnType_5;
if (newData.ReturnType === '') { delete newData.ReImport; delete newData.TranserThird; delete newData.PartThird; delete newData.PartReImport; delete newData.TransferFour; delete newData.ReImportFour; delete newData.ReImportFive; delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.LastReturnType; delete newData.ReturnType_4; delete newData.ReturnType_5; } else if (newData.ReturnType === 'H') { delete newData.TranserThird; delete newData.PartThird; delete newData.PartReImport; delete newData.TransferFour; delete newData.ReImportFour; delete newData.ReImportFive; delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.LastReturnType; delete newData.ReturnType_4; delete newData.ReturnType_5; } else if (newData.ReturnType === 'T') { delete newData.ReImport; delete newData.PartThird; delete newData.PartReImport; if (newData.LastReturnType === '') { delete newData.TransferFour; delete newData.ReImportFour; delete newData.ReImportFive; delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.LastReturnType; delete newData.ReturnType_4; delete newData.ReturnType_5; } else if (newData.LastReturnType === 'H') { delete newData.TransferFour; delete newData.ReImportFive; delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.ReturnType_4; delete newData.ReturnType_5; } else if (newData.LastReturnType === 'F') { delete newData.ReImportFour; if (newData.ReturnType_4 === '') { delete newData.ReImportFive; delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.ReturnType_5; } else if (newData.ReturnType_4 === 'H') { delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.ReturnType_5; } else if (newData.ReturnType_4 === 'F') { delete newData.ReImportFive; if (newData.ReturnType_5 === '') { delete newData.ReImportSix; delete newData.TransferSix; delete newData.ReturnType_5; } else if (newData.ReturnType_5 === 'H') { delete newData.TransferSix; } else if (newData.ReturnType_5 === 'F') { delete newData.ReImportSix; } } } } else { delete newData.TranserThird; delete newData.ReImport; delete newData.TransferFour; delete newData.ReImportFour; delete newData.ReImportFive; delete newData.TransferFive; delete newData.ReImportSix; delete newData.TransferSix; delete newData.LastReturnType; delete newData.ReturnType_4; delete newData.ReturnType_5; } newData.Flow_Status = oCurData.Flow_Status = fnGetFlowStatus(newData); $.extend(item, item, newData); var saOthers = Enumerable.From(saGridData).Where(function (_item) { return _item.guid !== item.guid; }).ToArray(); saOthers.push(item); saGridData = saOthers; if (saBatchArr.length > 0) { $.each(saGridData, function (idx, _item) { if (saBatchArr.indexOf(_item.guid) > -1 && _item.guid !== oCurSupplierData.guid) { var oMach = clone(newData), iExportData_Intowarehouse_Number = 0, iTranserThird_Number = 0; if (oMach.ReturnType === '') { iExportData_Intowarehouse_Number = !(_item.ExportData) ? 0 : _item.ExportData.Intowarehouse.Number || 0; _item.ExportData = oMach.ExportData; _item.ClearanceData = oMach.ClearanceData; _item.ExportData.Intowarehouse.Number = iExportData_Intowarehouse_Number; } else if (oMach.ReturnType === 'H') { var iReImport_Number = !(_item.ReImport) ? 0 : _item.ReImport.Number || 0; iExportData_Intowarehouse_Number = !(_item.ExportData) ? 0 : _item.ExportData.Intowarehouse.Number || 0 _item.ExportData = oMach.ExportData; _item.ClearanceData = oMach.ClearanceData; _item.ReImport = oMach.ReImport; _item.ExportData.Intowarehouse.Number = iExportData_Intowarehouse_Number; _item.ReImport.Number = iReImport_Number; } else if (oMach.ReturnType === 'T' && oMach.LastReturnType === 'H') { var iReImportFour_Number = !(_item.ReImportFour) ? 0 : _item.ReImportFour.Number || 0; iExportData_Intowarehouse_Number = !(_item.ExportData) ? 0 : _item.ExportData.Intowarehouse.Number || 0; iTranserThird_Number = !(_item.TranserThird) ? 0 : _item.TranserThird.Number || 0;
_item.ExportData = oMach.ExportData; _item.ClearanceData = oMach.ClearanceData; _item.TranserThird = oMach.TranserThird; _item.ReImportFour = oMach.ReImportFour; _item.ExportData.Intowarehouse.Number = iExportData_Intowarehouse_Number; _item.TranserThird.Number = iTranserThird_Number; _item.ReImportFour.Number = iReImportFour_Number; } else if (oMach.ReturnType === 'T' && oMach.LastReturnType === 'F') { var iTransferFour_Number = !(_item.TransferFour) ? 0 : _item.TransferFour.Number || 0; iExportData_Intowarehouse_Number = !(_item.ExportData) ? 0 : _item.ExportData.Intowarehouse.Number || 0; iTranserThird_Number = !(_item.TranserThird) ? 0 : _item.TranserThird.Number || 0; _item.ExportData = oMach.ExportData; _item.ClearanceData = oMach.ClearanceData; _item.TranserThird = oMach.TranserThird; _item.TransferFour = oMach.TransferFour; _item.ExportData.Intowarehouse.Number = iExportData_Intowarehouse_Number; _item.TranserThird.Number = iTranserThird_Number; _item.TransferFour.Number = iTransferFour_Number; } else if (oMach.ReturnType === 'T') { iTranserThird_Number = !(_item.TranserThird) ? 0 : _item.TranserThird.Number || 0; iExportData_Intowarehouse_Number = !(_item.ExportData) ? 0 : _item.ExportData.Intowarehouse.Number || 0; _item.ExportData = oMach.ExportData; _item.ClearanceData = oMach.ClearanceData; _item.TranserThird = oMach.TranserThird; _item.ExportData.Intowarehouse.Number = iExportData_Intowarehouse_Number; _item.TranserThird.Number = iTranserThird_Number; } else if (oMach.ReturnType === 'P') { var iPartThird_Number = !(_item.PartThird) ? 0 : _item.PartThird.Number || 0, iPartReImport_Number = !(_item.PartReImport) ? 0 : _item.PartReImport.Number || 0; iExportData_Intowarehouse_Number = !(_item.ExportData) ? 0 : _item.ExportData.Intowarehouse.Number || 0; _item.ExportData = oMach.ExportData; _item.ClearanceData = oMach.ClearanceData; _item.PartThird = oMach.PartThird; _item.PartReImport = oMach.PartReImport; _item.ExportData.Intowarehouse.Number = iExportData_Intowarehouse_Number; _item.PartThird.Number = iPartThird_Number; _item.PartReImport.Number = iPartReImport_Number; } _item.ReturnType = oMach.ReturnType; _item.LastReturnType = oMach.LastReturnType; _item.Flow_Status = fnGetFlowStatus(_item); } }); oGrid.loadData(); }
layer.close(index); } });
return false; } }),//出口作業流程
$('<a/>', { html: i18next.t('common.MailTrackingNumber'),// ╠common.MailTrackingNumber⇒寄送客戶查詢碼╣
class: item.guid + ((oCurData.IsSendMail || '').indexOf(item.guid) > -1 ? ' a-mailurl' : ' a-url'), click: function () { fnSendTrackingNumberEmail(item); return false; } }) ], oVoid = $('<a/>', { // ╠common.Toolbar_OpenVoid⇒啟用╣ ╠common.Toolbar_Void⇒作廢╣
html: item.VoidContent !== undefined ? i18next.t('common.Toolbar_OpenVoid') : i18next.t('common.Toolbar_Void'), class: 'a-url', click: function () { var that = this; if (item.VoidContent) { delete item.VoidContent; $(that).text(i18next.t('common.Toolbar_Void'));// ╠common.Toolbar_Void⇒作廢╣
$(that).parents('tr').removeClass('data-void').removeAttr('title'); } else { layer.open({ type: 1, title: i18next.t('common.Toolbar_Void'),// ╠common.Toolbar_Void⇒作廢╣
shade: 0.75, maxmin: true, //开启最大化最小化按钮
area: ['500px', '250px'], content: '<div class="pop-box">\ <textarea name="VoidContent" id="VoidContent" style="min-width:300px;" class="form-control" rows="5" cols="20"></textarea>\ </div>', btn: [i18next.t('common.Confirm'), i18next.t('common.Cancel')],//╠common.Confirm⇒確定╣╠common.Cancel⇒取消╣
success: function (layero, index) { }, yes: function (index, layero) { var sVoidContent = $('#VoidContent').val(); item.VoidContent = sVoidContent; if (!sVoidContent) { showMsg(i18next.t("message.VoidReason_Required")); // ╠message.VoidReason_Required⇒請填寫作廢原因╣
return false; } $(that).text(i18next.t('common.Toolbar_OpenVoid'));// ╠common.Toolbar_OpenVoid⇒啟用╣
$(that).parents('tr').addClass('data-void').attr('title', i18next.t('common.Toolbar_Void') + ':' + sVoidContent);// ╠common.Toolbar_Void⇒作廢╣
layer.close(index); } }); } return false; } }), oCreateBill = $('<a/>', { html: i18next.t('common.CreateBill'),// ╠common.CreateBill⇒建立帳單╣
class: 'a-url', click: function () { var that = this; $(that).hide(); fnPushBill(item, oCurData, item.guid, false).done(function () { CallAjax(ComFn.W_Com, ComFn.GetUpd, { Params: { exportexhibition: { values: { Bills: JSON.stringify(oCurData.Bills), Exhibitors: JSON.stringify(saGridData) }, keys: { ExportBillNO: sDataId } } } }, function (res) { if (res.d > 0) { fnBindBillLists(); $(that).remove(); showMsg(i18next.t("common.Create_Success"), 'success'); // ╠common.Create_Success⇒創建成功╣
} else { $(that).show(); showMsg(i18next.t("common.Create_Failed"), 'error'); // ╠common.Create_Failed⇒創建失敗╣
} }); }); return false; } }); if ((item.VoidContent && parent.UserInfo.IsManager) || !item.VoidContent) { oDom.push(oVoid); } if (oCurData.Quote.AuditVal === '2' && !item.VoidContent) { var iExsitVoid = Enumerable.From(oCurData.Bills).Where(function (e) { return (e.parentid === item.guid && e.VoidReason); }).Count(); var iExsit = Enumerable.From(oCurData.Bills).Where(function (e) { return e.parentid === item.guid; }).Count(); if (iExsit === 0 || (iExsit - iExsitVoid) === 0) { oDom.push(oCreateBill); } } return $('<div>', { 'style': 'width:100%;text-align: center;' }).append(oDom); } }, { type: "control" } ], controller: { loadData: function (args) { if (sAction === 'Upd') { if (saGridData.length > 0) { $('.batch-mail').show(); $('.batch-import').hide(); } else { $('.batch-mail').hide(); $('.batch-import').show(); } }
if (args.Contactor !== undefined) { var filters = $.grep(saGridData, function (client) { return (!args.Contactor || client.ContactorName.indexOf(args.Contactor) > -1) && (!args.Telephone || client.Telephone.indexOf(args.Telephone) > -1) && (!args.Email || client.Email.indexOf(args.Email) > -1) && (!args.Flow_Status || (client.Flow_Status || '').indexOf(args.Flow_Status) > -1) && (!args.SupplierEName || client.SupplierEName.indexOf(args.SupplierEName) > -1) && (!args.SupplierName || args.SupplierName.indexOf(client.SupplierName) > -1) && (!args.RefSupplierNo || client.RefSupplierNo.indexOf(args.RefSupplierNo) > -1); }); if (filters.length > 0) { filters = Enumerable.From(filters).OrderBy("x=>x.CreateDate").ToArray(); } $.each(filters, function (idx, filter) { filter.RowIndex = idx + 1; }); return { data: filters, itemsCount: filters.length //data.length
}; } else { if (saGridData.length > 0) { saGridData = Enumerable.From(saGridData).OrderBy("x=>x.CreateDate").ToArray(); } $.each(saGridData, function (idx, filter) { filter.RowIndex = idx + 1; }); return { data: saGridData, itemsCount: saGridData.length //data.length
}; } }, insertItem: function (args) { oAddItem.Contactor = args.Contactor; oAddItem.Telephone = args.Telephone; oAddItem.Email = args.Email; saGridData.push(oAddItem); oAddItem = {}; if (sAction === 'Add') { showMsg(i18next.t("message.SaveCusFirst"))// ╠message.SaveCusFirst⇒請先儲存再新增廠商╣
saGridData = []; return $.Deferred().reject().promise(); } else { bRequestStorage = true; } }, updateItem: function (args) { $.each(saGridData, function (e, item) { if (item.guid === args.guid) { item = args; bRequestStorage = true; return false; } }); }, deleteItem: function (args) { if (args.BillNO || (oCurData.IsSendMail || '').indexOf(args.guid) > -1) { showMsg(i18next.t("message.NotToDelete_Supplier")); // ╠message.NotToDelete_Supplier⇒該筆廠商已經產生帳單或寄送過郵件,不可以刪除!╣
return $.Deferred().reject().promise(); } else { var saNewList = []; $.each(saGridData, function (idx, item) { if (item.guid !== args.guid) { saNewList.push(item); } }); saGridData = saNewList; } bRequestStorage = true; } }, onInit: function (args) { oGrid = args.grid; setTimeout(function () { $('.tooltips').each(function () { $(this).parents('tr').attr('title', this.title); }); }, 1000); } }); },
/** * ToolBar 按鈕事件 function * @param {Object}inst 按鈕物件對象 * @param {Object} e 事件對象 */ fnButtonHandler = function (inst, e) { var sId = inst.id; switch (sId) { case "Toolbar_Qry":
break; case "Toolbar_Save":
if (!$("#form_main").valid()) { oValidator.focusInvalid(); return; } if (sAction === 'Add') { fnAdd('add'); } else { fnUpd(); }
break; case "Toolbar_ReAdd":
if (!$("#form_main").valid()) { oValidator.focusInvalid(); return; } fnAdd('readd');
break; case "Toolbar_Clear":
clearPageVal();
break; case "Toolbar_Leave":
pageLeave();
break;
case "Toolbar_Add":
break; case "Toolbar_Upd":
break; case "Toolbar_Copy":
break; case "Toolbar_Imp":
fnImport();
break; case "Toolbar_Exp":
//fnOpenPopToExcel();
break; case "Toolbar_Void":
if (fnCheckBillEffective(oCurData.Bills) || fnCheckRtnBillEffective(oCurData.ReturnBills)) { showMsg(i18next.t("message.OpmNotToVoid")); // ╠message.OpmNotToVoid⇒已建立有效的賬單,暫時不可作廢╣
return; } fnVoid();
break; case "Toolbar_OpenVoid": // ╠message.ToOpenVoid⇒確定要啟用該筆資料嗎?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t('message.ToOpenVoid'), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnOpenVoid(); layer.close(index); });
break; case "Toolbar_Del": // ╠message.ConfirmToDelete⇒確定要刪除嗎 ?╣ ╠common.Tips⇒提示╣
layer.confirm(i18next.t("message.ConfirmToDelete"), { icon: 3, title: i18next.t('common.Tips') }, function (index) { fnDel(); layer.close(index); });
break; default:
alert("No handle '" + sId + "'");
break; } }, /** * 初始化 function */ init = function () { var saCusBtns = [], myHelpers = { setSupplierName: function (val1, val2) { return !val1 ? val2 : val1; }, dtformate: function (val) { return newDate(val); }, setStatus: function (status) { return sStatus; } }; $.views.helpers(myHelpers); if (sAction !== 'Upd') { saCusBtns = [{ id: 'Toolbar_Imp', value: 'common.Toolbar_Imp'// ╠common.Toolbar_Imp⇒匯入╣
}]; }
commonInit({ PrgId: sProgramId, ButtonHandler: fnButtonHandler, Buttons: saCusBtns, GoTop: true, tabClick: function (el) { switch (el.id) { case 'litab2': if (!$(el).data('action')) { fnGridInit(); oGrid.loadData(); $(el).data('action', true); } break; case 'litab3': case 'litab4': if (!$(el).data('action')) { fnBindFinancial(); $('#litab3').data('action', true); $('#litab4').data('action', true); fnOpenAccountingArea($('div .OnlyForAccounting'), parent.UserInfo.roles); fnOpenAccountingArea($('div .BillOrganizers'), parent.UserInfo.roles); } break; case 'litab5': case 'litab6': if (!$(el).data('action')) { if (oCurData.ReturnBills.length > 0) { fnRenderReturnBills(); } $('#litab5').data('action', true); $('#litab6').data('action', true); fnOpenAccountingArea($('div .OnlyForAccounting'), parent.UserInfo.roles); } break; } } });
//加載報關類別,加載成本頁簽
$.whenArray([ fnGet(), fnSetCustomersDrop(), fnGetOfficeTempls({ TemplID: parent.SysSet.InvoiceDownLoadMenu + parent.SysSet.InvoicePrintMenu + parent.SysSet.ReceiptDownLoadMenu + parent.SysSet.ReceiptPrintMenu, CallBack: function (data) { oPrintMenu.InvoiceDownLoadMenu = { tmpl: $('<div data-id="InvoiceDownLoadMenu">') }; oPrintMenu.InvoicePrintMenu = { tmpl: $('<div data-id="InvoicePrintMenu">') }; oPrintMenu.ReceiptDownLoadMenu = { tmpl: $('<div data-id="ReceiptDownLoadMenu">') }; oPrintMenu.ReceiptPrintMenu = { tmpl: $('<div data-id="ReceiptPrintMenu">') }; $.each(data, function (idx, item) { var sType = ''; if (parent.SysSet.InvoiceDownLoadMenu.indexOf(item.TemplID) > -1) { sType = 'InvoiceDownLoadMenu'; } else if (parent.SysSet.InvoicePrintMenu.indexOf(item.TemplID) > -1) { sType = 'InvoicePrintMenu'; } else if (parent.SysSet.ReceiptDownLoadMenu.indexOf(item.TemplID) > -1) { sType = 'ReceiptDownLoadMenu'; } else if (parent.SysSet.ReceiptPrintMenu.indexOf(item.TemplID) > -1) { sType = 'ReceiptPrintMenu'; } oPrintMenu[sType].tmpl.append('<a href="#" class="print-item" data-id="' + item.TemplID + '">' + item.TemplName + '</a>'); }); } }), fnSetEpoDrop({ Select: $('#ExhibitionNO'), Select2: true }), fnSetUserDrop([ { Select: $('#ResponsiblePerson'), ShowId: true, Select2: true, Action: sAction, ServiceCode: parent.SysSet.EXCode, CallBack: function (data) { var sCode = parent.UserInfo.ServiceCode; if (sAction === 'Add' && sCode && parent.SysSet.EXCode.indexOf(sCode) > -1) { $('#ResponsiblePerson').val(parent.UserInfo.MemberID); sServiceCode = sCode; sDeptCode = parent.UserInfo.DepartmentID; } } } ]), fnSetArgDrop([ { ArgClassID: 'Clearance', Select: $('#CustomsClearance'), ShowId: true }, { ArgClassID: 'Currency', CallBack: function (data) { saCurrency = data; sCurrencyOptionsHtml = createOptions(data, 'id', 'text'); } }, { ArgClassID: 'Transport', Select: $('#TransportationMode'), ShowId: true, CallBack: function (data) { sTransportOptionsHtml = createOptions(data, 'id', 'text', true); } }, { ArgClassID: 'Port', CallBack: function (data) { saPort = data; $('.quickquery-city').on('keyup', function () { this.value = this.value.toUpperCase(); }).on('blur', function () { var sId = this.value, oPort = Enumerable.From(saPort).Where(function (e) { return e.id === sId; }); if (oPort.Count() === 1) { $(this).parent().next().next().find(':input').val(oPort.First().text); } }).autocompleter({ // marker for autocomplete matches
highlightMatches: true, // object to local or url to remote search
source: saPort, // custom template
template: '{{ id }} <span>({{ label }})</span>', // show hint
hint: true, // abort source if empty field
empty: false, // max results
limit: 20, callback: function (value, index, selected) { if (selected) { var that = this; $(that).parent().find(':input').val(selected.id); $(that).parent().next().next().find(':input').val(selected.text); } } }); } }, { ArgClassID: 'FeeClass', CallBack: function (data) { saFeeClass = data; } } ]) ]) .done(function (res) { if (res && res[0].RESULT === 1) { var oRes = res[0].DATA.rel; fnGetCurrencyThisYear(oRes.CreateDate).done(function () { oRes.Exhibitors = saGridData = !oRes.Exhibitors ? [] : JSON.parse(oRes.Exhibitors);
oRes.Quote = JSON.parse(oRes.Quote || '{}'); oRes.EstimatedCost = JSON.parse(oRes.EstimatedCost || '{}'); oRes.ActualCost = JSON.parse(oRes.ActualCost || '{}'); oRes.Bills = JSON.parse(oRes.Bills || '[]'); oRes.ReturnBills = !oRes.ReturnBills ? [] : JSON.parse(oRes.ReturnBills); oRes.Quote.FeeItems = oRes.Quote.FeeItems || []; oRes.EstimatedCost.FeeItems = oRes.EstimatedCost.FeeItems || []; oRes.ActualCost.FeeItems = oRes.ActualCost.FeeItems || [];
oRes.Quote.guid = oRes.Quote.guid || guid(); oRes.Quote.KeyName = oRes.Quote.KeyName || 'Quote'; oRes.Quote.AuditVal = oRes.Quote.AuditVal || '0'; oRes.EstimatedCost.guid = oRes.EstimatedCost.guid || guid(); oRes.EstimatedCost.KeyName = oRes.EstimatedCost.KeyName || 'EstimatedCost'; oRes.EstimatedCost.AuditVal = oRes.EstimatedCost.AuditVal || '0'; oRes.ActualCost.guid = oRes.ActualCost.guid || guid(); oRes.ActualCost.KeyName = oRes.ActualCost.KeyName || 'ActualCost'; oRes.ActualCost.AuditVal = oRes.ActualCost.AuditVal || '0';
oCurData = oRes; nowResponsiblePerson = oCurData.ResponsiblePerson; //預設產生帳單組團單位
$.each(sOrganizers, function (idx, sO) { if (sO) { let OrganizersIndx = idx + 1 $('#Organizer' + OrganizersIndx).val(sO).trigger('change.select2'); var AKOf = Enumerable.From(saCustomers).Where(function (e) { return e.id === sO; }).FirstOrDefault(); if (AKOf) sSelectedOrganizers[OrganizersIndx] = { id: AKOf.id, text: AKOf.text, title: AKOf.text }; } }); $('[data-id="BillOrganizer"]').html(createOptions(sSelectedOrganizers.filter(e => e != null), 'id', 'text')); //預設產生帳單組團單位-END
if (oCurData.Agent) { var oCur = Enumerable.From(saCustomers).Where(function (e) { return e.id === oCurData.Agent; }).First(), saContactors = JSON.parse(oCur.Contactors || '[]'); $('#AgentContactor').html(createOptions(saContactors, 'guid', 'FullName')); } else { $('#AgentContactor').html(createOptions([])); } setFormVal(oForm, oRes); fnSetUserDrop([ { MemberID: oCurData.ResponsiblePerson, CallBack: function (data) { var oRes = data[0]; sServiceCode = oRes.ServiceCode; sDeptCode = oRes.DepartmentID; } } ]); setNameById().done(function () { getPageVal();//緩存頁面值,用於清除
}); $('#ExhibitionDateStart').val(newDate(oCurData.ExhibitionDateStart, 'date', true)); $('#ExhibitionDateEnd').val(newDate(oCurData.ExhibitionDateEnd, 'date', true));
if (saGridData.length > 0) { $.each(saGridData, function (idx, item) { if (!item.guid) { item.guid = guid(); } }); } $('#Batch_Mail').on('click', function () { fnBatchMail(); }); $('#Batch_Import').on('click', function () { fnBatchImport(); });
if (parent.UserInfo.MemberID === oCurData.ResponsiblePerson || parent.UserInfo.MemberID === oCurData.CreateUser) { $('#returnquote_add').removeAttr('disabled').click(function () { fnPushReturnBill(); }); $('.returnquote-add').show(); } moneyInput($('[data-type="int"]'), 0); var Authorized = ExhibitionBillAuthorize(oCurData); if (Authorized) { $('[href="#tab3"],[href="#tab4"],[href="#tab5"],[href="#tab6"]').parent().show(); if (sGoTab) { $('#litab' + sGoTab).find('a').click(); if (sBillNOGO && $('.bill-box-' + sBillNOGO).length > 0) { $('.bill-box-' + sBillNOGO).click(); goToJys($('.bill-box-' + sBillNOGO)); } } } else { $('[href="#tab3"],[href="#tab4"],[href="#tab5"],[href="#tab6"]').parent().hide(); } }); } else fnGetCurrencyThisYear(new Date()); });
$.validator.addMethod("compardate", function (value, element, parms) { if (new Date(value) < new Date($('#ExhibitionDateStart').val())) { return false; } return true; }); oValidator = $("#form_main").validate({ ignore: '', rules: { AgentEamil: { email: true } }, messages: { AgentEamil: i18next.t("message.IncorrectEmail")// ╠message.IncorrectEmail⇒郵箱格式不正確╣
} });
$.timepicker.dateRange($('#ExhibitionDateStart'), $('#ExhibitionDateEnd'), { minInterval: (1000 * 60 * 60 * 24 * 1), // 1 days
changeYear: true, changeMonth: true } );
//$('#Volume').on('blur', function () {
// var sVal = this.value;
// $('#VolumeWeight').val((Math.floor(sVal * 100) / 100 * 167).toFloat(2));
//});
$('#ResponsiblePerson').change(function () { var sVal = this.value; if (sVal) { fnSetUserDrop([ { MemberID: sVal, CallBack: function (data) { var oRes = data[0]; sServiceCode = oRes.ServiceCode; sDeptCode = oRes.DepartmentID; } } ]); } else { sServiceCode = ''; sDeptCode = ''; } });
$('#ExhibitionNO').change(function () { var sId = this.value; if (sId) { fnSetEpoDrop({ SN: sId, CallBack: function (data) { var oExhibition = data[0]; $('#ExportBillEName').val(oExhibition.Exhibitioname_EN); if (oExhibition.ExhibitionDateStart) { $('#ExhibitionDateStart').val(newDate(oExhibition.ExhibitionDateStart, 'date')); } if (oExhibition.ExhibitionDateEnd) { $('#ExhibitionDateEnd').val(newDate(oExhibition.ExhibitionDateEnd, 'date')); } } }); } else { $('#ExportBillEName').val(''); $('#ExhibitionDateStart').val(''); $('#ExhibitionDateEnd').val(''); } });
$(window).on('scroll', function () { var h = ($(document).height(), $(this).scrollTop()); if (h < 81) { $('.sum-box').css({ top: 125 - h }); $('.BatchBillsDownLoad').css({ top: 140 - h }); } else { $('.sum-box,.BatchBillsDownLoad').css({ top: 44 }); } }); $('#Batch_BillsDownLoad').on('click', function () { }); $('#Batch_RerurnBillsDownLoad').on('click', function () { }); };
init(); };
require(['base', 'select2', 'autocompleter', 'formatnumber', 'jquerytoolbar', 'timepicker', 'jsgrid', 'ajaxfile', 'common_opm', 'util'], fnPageInit, 'timepicker');
|