@@ -30,7 +30,9 @@ import * as DateUtils from "utils/DateUtils"; | |||||
import * as FormatUtils from "utils/FormatUtils"; | import * as FormatUtils from "utils/FormatUtils"; | ||||
import { | import { | ||||
isORGLoggedIn, | isORGLoggedIn, | ||||
// isDummyLoggedIn | |||||
} from "utils/Utils"; | } from "utils/Utils"; | ||||
import * as utils from "auth/utils" | |||||
// import BorderColorOutlinedIcon from '@mui/icons-material/BorderColorOutlined'; | // import BorderColorOutlinedIcon from '@mui/icons-material/BorderColorOutlined'; | ||||
// import DoneIcon from '@mui/icons-material/Done'; | // import DoneIcon from '@mui/icons-material/Done'; | ||||
@@ -189,7 +191,9 @@ const ApplicationDetailCard = ( | |||||
disabled={currentApplicationDetailData.status == "rejected" | disabled={currentApplicationDetailData.status == "rejected" | ||||
|| currentApplicationDetailData.status == "cancelled" | || currentApplicationDetailData.status == "cancelled" | ||||
|| currentApplicationDetailData.status == "paid" | || currentApplicationDetailData.status == "paid" | ||||
|| currentApplicationDetailData.creditor} | |||||
|| currentApplicationDetailData.creditor | |||||
|| currentApplicationDetailData.paymentMethod != "online" | |||||
} | |||||
startIcon={<EditNoteIcon />} | startIcon={<EditNoteIcon />} | ||||
aria-label={intl.formatMessage({ id: 'payFor' })} | aria-label={intl.formatMessage({ id: 'payFor' })} | ||||
> | > | ||||
@@ -501,9 +505,11 @@ const ApplicationDetailCard = ( | |||||
<Grid container alignItems={"center"}> | <Grid container alignItems={"center"}> | ||||
<Grid item xs={12} md={3} lg={3} | <Grid item xs={12} md={3} lg={3} | ||||
sx={{ display: 'flex', alignItems: 'center' }}> | sx={{ display: 'flex', alignItems: 'center' }}> | ||||
<FormLabel><Typography variant="pnspsFormParagraph"> | |||||
<FormattedMessage id="currencyAmount" />(HK$): | |||||
</Typography></FormLabel> | |||||
<FormLabel> | |||||
<Typography variant="pnspsFormParagraph"> | |||||
<FormattedMessage id="currencyAmountTitle" /> | |||||
</Typography> | |||||
</FormLabel> | |||||
</Grid> | </Grid> | ||||
<Grid item xs={12} md={9} lg={9}> | <Grid item xs={12} md={9} lg={9}> | ||||
@@ -527,52 +533,86 @@ const ApplicationDetailCard = ( | |||||
} | } | ||||
</Grid> | </Grid> | ||||
<Grid item xs={12} sm={12} md={9} lg={6} sx={{ mb: 1, }}> | |||||
<Grid container alignItems={"center"}> | |||||
<Grid item xs={12} md={3} lg={3} | |||||
sx={{ display: 'flex', alignItems: 'center' }}> | |||||
<FormLabel><Typography variant="pnspsFormParagraph"> | |||||
<FormattedMessage id="userFaxNumber" />: | |||||
</Typography></FormLabel> | |||||
</Grid> | |||||
<Grid container direction="row" justifyContent="space-between" | |||||
alignItems="center"> | |||||
<Grid item xs={12} sm={12} md={9} lg={6} sx={{ mb: 1, }}> | |||||
<Grid container alignItems={"center"}> | |||||
<Grid item xs={12} md={3} lg={3} | |||||
sx={{ display: 'flex', alignItems: 'center' }}> | |||||
<FormLabel><Typography variant="pnspsFormParagraph"> | |||||
<FormattedMessage id="userFaxNumber" />: | |||||
</Typography></FormLabel> | |||||
</Grid> | |||||
<Grid item xs={12} sm={12} md={9} lg={9}> | |||||
<Stack direction="row"> | |||||
<FormControl variant="outlined" sx={{ width: '25%' }} disabled> | |||||
<OutlinedInput | |||||
size="small" | |||||
{...register("countryCode", | |||||
{ | |||||
value: currentApplicationDetailData.contactFaxNo.countryCode, | |||||
})} | |||||
id='countryCode' | |||||
sx={{ | |||||
"& .MuiInputBase-input.Mui-disabled": { | |||||
WebkitTextFillColor: "#000000", | |||||
background: "#f8f8f8", | |||||
}, | |||||
}} | |||||
/> | |||||
</FormControl> | |||||
<FormControl variant="outlined" sx={{ width: '100%' }} disabled> | |||||
<OutlinedInput | |||||
size="small" | |||||
{...register("faxNumber", | |||||
{ | |||||
value: currentApplicationDetailData.contactFaxNo.faxNumber, | |||||
})} | |||||
id='faxNumber' | |||||
sx={{ | |||||
"& .MuiInputBase-input.Mui-disabled": { | |||||
WebkitTextFillColor: "#000000", | |||||
background: "#f8f8f8", | |||||
}, | |||||
}} | |||||
/> | |||||
</FormControl> | |||||
</Stack> | |||||
<Grid item xs={12} sm={12} md={9} lg={9}> | |||||
<Stack direction="row"> | |||||
<FormControl variant="outlined" sx={{ width: '25%' }} disabled> | |||||
<OutlinedInput | |||||
size="small" | |||||
{...register("countryCode", | |||||
{ | |||||
value: currentApplicationDetailData.contactFaxNo.countryCode, | |||||
})} | |||||
id='countryCode' | |||||
sx={{ | |||||
"& .MuiInputBase-input.Mui-disabled": { | |||||
WebkitTextFillColor: "#000000", | |||||
background: "#f8f8f8", | |||||
}, | |||||
}} | |||||
/> | |||||
</FormControl> | |||||
<FormControl variant="outlined" sx={{ width: '100%' }} disabled> | |||||
<OutlinedInput | |||||
size="small" | |||||
{...register("faxNumber", | |||||
{ | |||||
value: currentApplicationDetailData.contactFaxNo.faxNumber, | |||||
})} | |||||
id='faxNumber' | |||||
sx={{ | |||||
"& .MuiInputBase-input.Mui-disabled": { | |||||
WebkitTextFillColor: "#000000", | |||||
background: "#f8f8f8", | |||||
}, | |||||
}} | |||||
/> | |||||
</FormControl> | |||||
</Stack> | |||||
</Grid> | |||||
</Grid> | </Grid> | ||||
</Grid> | </Grid> | ||||
{ | |||||
fee > 0 ? | |||||
<Grid item xs={12} sm={12} md={9} lg={5} sx={{ mb: 1, }}> | |||||
<Grid container alignItems={"center"}> | |||||
<Grid item xs={12} md={3} lg={3} | |||||
sx={{ display: 'flex', alignItems: 'center' }}> | |||||
<FormLabel><Typography variant="pnspsFormParagraph"> | |||||
<FormattedMessage id="paymentMethod" />: | |||||
</Typography></FormLabel> | |||||
</Grid> | |||||
<Grid item xs={12} md={9} lg={9}> | |||||
<FormControl variant="outlined" fullWidth disabled> | |||||
<OutlinedInput | |||||
size="small" | |||||
value={currentApplicationDetailData.paymentMethod!=null?intl.formatMessage({ id: utils.getPaymentMethod(currentApplicationDetailData.paymentMethod)}):""} | |||||
id='paymentMethod' | |||||
sx={{ | |||||
"& .MuiInputBase-input.Mui-disabled": { | |||||
WebkitTextFillColor: "#000000", | |||||
background: "#f8f8f8", | |||||
}, | |||||
}} | |||||
/> | |||||
</FormControl> | |||||
</Grid> | |||||
</Grid> | |||||
</Grid> | |||||
: | |||||
<></> | |||||
} | |||||
</Grid> | </Grid> | ||||
<Grid container direction="row" justifyContent="space-between" | <Grid container direction="row" justifyContent="space-between" | ||||
alignItems="center"> | alignItems="center"> | ||||
@@ -80,6 +80,7 @@ export default function SubmittedTab({ setCount, url }) { | |||||
const handlePaymentBtn = () => { | const handlePaymentBtn = () => { | ||||
let appIdList = []; | let appIdList = []; | ||||
let paymentCheckList = []; | |||||
const _datas = rowList; | const _datas = rowList; | ||||
const datas = _datas?.filter((row) => | const datas = _datas?.filter((row) => | ||||
selectedRowItems.includes(row.id) | selectedRowItems.includes(row.id) | ||||
@@ -87,31 +88,41 @@ export default function SubmittedTab({ setCount, url }) { | |||||
// console.log(datas) | // console.log(datas) | ||||
for (var i = 0; i < datas?.length; i++) { | for (var i = 0; i < datas?.length; i++) { | ||||
appIdList.push(datas[i].id); | appIdList.push(datas[i].id); | ||||
if ( datas[i].paymentMethod != "online"){ | |||||
paymentCheckList.push(datas[i].paymentMethod) | |||||
} | |||||
} | } | ||||
if (appIdList.length < 1) { | |||||
setExpiryDateErrText(intl.formatMessage({ id: 'MSG.plzSelectApp' })); | |||||
// console.log(paymentCheckList) | |||||
if(paymentCheckList.length == 0){ | |||||
if (appIdList.length < 1) { | |||||
setExpiryDateErrText(intl.formatMessage({ id: 'MSG.plzSelectApp' })); | |||||
setExpiryDateErr(true); | |||||
return; | |||||
} | |||||
HttpUtils.post({ | |||||
url: POST_CHECK_APP_EXPRITY_DATE, | |||||
params: { | |||||
ids: appIdList | |||||
}, | |||||
onSuccess: (responData) => { | |||||
if (responData.success == true) { | |||||
// setIsPopUp(true); | |||||
handlePaymentCheck(appIdList) | |||||
return; | |||||
} | |||||
let str = ""; | |||||
responData.msg.forEach((item) => { | |||||
str += "App: " + item.appNo + ", 到期日: " + DateUtils.datetimeStr_Cht(item.expiryDate) + "\n"; | |||||
}); | |||||
setExpiryDateErrText(str.split('\n').map(str => <>{str}<br /></>)); | |||||
setExpiryDateErr(true); | |||||
} | |||||
}); | |||||
} else { | |||||
setExpiryDateErrText(intl.formatMessage({ id: 'MSG.plzonlinePayment' })); | |||||
setExpiryDateErr(true); | setExpiryDateErr(true); | ||||
return; | return; | ||||
} | } | ||||
HttpUtils.post({ | |||||
url: POST_CHECK_APP_EXPRITY_DATE, | |||||
params: { | |||||
ids: appIdList | |||||
}, | |||||
onSuccess: (responData) => { | |||||
if (responData.success == true) { | |||||
// setIsPopUp(true); | |||||
handlePaymentCheck(appIdList) | |||||
return; | |||||
} | |||||
let str = ""; | |||||
responData.msg.forEach((item) => { | |||||
str += "App: " + item.appNo + ", 到期日: " + DateUtils.datetimeStr_Cht(item.expiryDate) + "\n"; | |||||
}); | |||||
setExpiryDateErrText(str.split('\n').map(str => <>{str}<br /></>)); | |||||
setExpiryDateErr(true); | |||||
} | |||||
}); | |||||
}; | }; | ||||
const handlePaymentCheck = (appIdList) => { | const handlePaymentCheck = (appIdList) => { | ||||
@@ -361,11 +372,11 @@ export default function SubmittedTab({ setCount, url }) { | |||||
<Button | <Button | ||||
color="create" | color="create" | ||||
variant="contained" | variant="contained" | ||||
aria-label={intl.formatMessage({ id: 'pay' })} | |||||
aria-label={intl.formatMessage({ id: 'payOnlineBtn' })} | |||||
onClick={() => { handlePaymentBtn() }} | onClick={() => { handlePaymentBtn() }} | ||||
sx={{ mt: 2, ml: 1 }} | sx={{ mt: 2, ml: 1 }} | ||||
> | > | ||||
<FormattedMessage id="pay" /> | |||||
<FormattedMessage id="payOnlineBtn" /> | |||||
</Button> | </Button> | ||||
</ThemeProvider> | </ThemeProvider> | ||||
</div> | </div> | ||||
@@ -78,6 +78,7 @@ | |||||
"MSG.paymentHolded": "Application number {appNo} is currently in the process of payment. If the payment is unsuccessful, please try again after 20 minutes. We apologise for any inconvenience caused.", | "MSG.paymentHolded": "Application number {appNo} is currently in the process of payment. If the payment is unsuccessful, please try again after 20 minutes. We apologise for any inconvenience caused.", | ||||
"MSG.pay_credity1": "We have received your confirmed application for proofreading and printing instructions regarding application number {appNo}. We will arrange for its publication with in the Year {year}, Volume {issueVolume}, Issue {issueNo} of the Official Gazette.", | "MSG.pay_credity1": "We have received your confirmed application for proofreading and printing instructions regarding application number {appNo}. We will arrange for its publication with in the Year {year}, Volume {issueVolume}, Issue {issueNo} of the Official Gazette.", | ||||
"MSG.pay_credity2": "The fee for this public notice will be consolidated in the next Payment Notice. Please ensure timely payment.", | "MSG.pay_credity2": "The fee for this public notice will be consolidated in the next Payment Notice. Please ensure timely payment.", | ||||
"MSG.plzonlinePayment": "Please select online payment", | |||||
"registerTitle1": "Become", | "registerTitle1": "Become", | ||||
"registerTitle2": "Gazette Notice", | "registerTitle2": "Gazette Notice", | ||||
@@ -369,6 +370,7 @@ | |||||
"particulars": "Particulars", | "particulars": "Particulars", | ||||
"currencyPrice": "Price", | "currencyPrice": "Price", | ||||
"currencyAmount": "Amount", | "currencyAmount": "Amount", | ||||
"currencyAmountTitle": "Amount (HK$):", | |||||
"transactionRefNo": "Transaction Reference Number", | "transactionRefNo": "Transaction Reference Number", | ||||
"selectedPaymentMethod": "Selected payment method", | "selectedPaymentMethod": "Selected payment method", | ||||
"paymentMethodNotAvailable":"The payment function is currently not available", | "paymentMethodNotAvailable":"The payment function is currently not available", | ||||
@@ -428,6 +430,7 @@ | |||||
"payOnlineMethod":"Online", | "payOnlineMethod":"Online", | ||||
"payDnMethod":"Demand Note", | "payDnMethod":"Demand Note", | ||||
"payNPGOMethod":"NPGO Collection Office", | "payNPGOMethod":"NPGO Collection Office", | ||||
"payOnlineBtn":"Online Pay", | |||||
"payDnRemark": "Payment proof (e.g. ATM receipt, internet banking record) to be sent to [email protected] by {date}", | "payDnRemark": "Payment proof (e.g. ATM receipt, internet banking record) to be sent to [email protected] by {date}", | ||||
"payNPGORemark" :"Payment to be completed at Collection Office by {date}", | "payNPGORemark" :"Payment to be completed at Collection Office by {date}", | ||||
@@ -59,6 +59,7 @@ | |||||
"payOnlineMethod":"网上支付", | "payOnlineMethod":"网上支付", | ||||
"payDnMethod":"缴款单支付", | "payDnMethod":"缴款单支付", | ||||
"payNPGOMethod":"收款办公室付款", | "payNPGOMethod":"收款办公室付款", | ||||
"payOnlineBtn":"网上付款", | |||||
"payDnRemark": "在{date}之前将付款证明(如自动柜员机收据、网路银行记录)寄至 [email protected] ", | "payDnRemark": "在{date}之前将付款证明(如自动柜员机收据、网路银行记录)寄至 [email protected] ", | ||||
"payNPGORemark" :"在{date}之前在收款办公室完成付款", | "payNPGORemark" :"在{date}之前在收款办公室完成付款", | ||||
@@ -103,6 +104,7 @@ | |||||
"MSG.paymentHolded": "申请编号 {appNo} 已正在付款的流程中,如相关付款没有成功,请于20分钟后再尝试付款,不便之处,请见谅!", | "MSG.paymentHolded": "申请编号 {appNo} 已正在付款的流程中,如相关付款没有成功,请于20分钟后再尝试付款,不便之处,请见谅!", | ||||
"MSG.pay_credity1": "我们已收到你已确定申请编号: {appNo} 的稿件校对确定及可付印的指示,并将安排刊登于宪报期数{year} 年{issueVolume} 卷第{issueNo } 期内。", | "MSG.pay_credity1": "我们已收到你已确定申请编号: {appNo} 的稿件校对确定及可付印的指示,并将安排刊登于宪报期数{year} 年{issueVolume} 卷第{issueNo } 期内。", | ||||
"MSG.pay_credity2": "此公共启事申请的费用将于下期发出的缴费发票时收取,请依时缴费。", | "MSG.pay_credity2": "此公共启事申请的费用将于下期发出的缴费发票时收取,请依时缴费。", | ||||
"MSG.plzonlinePayment": "请选择网上支付", | |||||
"registerTitle1": "立即成为", | "registerTitle1": "立即成为", | ||||
"registerTitle2": "宪报刊登公共启事", | "registerTitle2": "宪报刊登公共启事", | ||||
@@ -386,9 +388,10 @@ | |||||
"particulars": "项目", | "particulars": "项目", | ||||
"currencyPrice": "金额 ($)", | "currencyPrice": "金额 ($)", | ||||
"currencyAmount": "金额", | "currencyAmount": "金额", | ||||
"transactionRefNo": "交易參考編號", | |||||
"selectedPaymentMethod": "已選擇付款方法", | |||||
"paymentMethodNotAvailable":"付款功能現在不可用", | |||||
"currencyAmountTitle": "金额 (HK$):", | |||||
"transactionRefNo": "交易参考编号", | |||||
"selectedPaymentMethod": "已选择付款方法", | |||||
"paymentMethodNotAvailable":"付款功能现在不可用", | |||||
"paymentLimitPrice1":"只适用于最小金额为 1.00 及最高金额为 9,999,999.99", | "paymentLimitPrice1":"只适用于最小金额为 1.00 及最高金额为 9,999,999.99", | ||||
"paymentLimitPrice2":"只适用于最小金额为 0.10 及最高金额为 9,999,999.99", | "paymentLimitPrice2":"只适用于最小金额为 0.10 及最高金额为 9,999,999.99", | ||||
"paymentLimitPPS":"付款不适用于流动装置的浏览器,请使用桌面电脑。", | "paymentLimitPPS":"付款不适用于流动装置的浏览器,请使用桌面电脑。", | ||||
@@ -59,7 +59,8 @@ | |||||
"payOnlineMethod":"網上支付", | "payOnlineMethod":"網上支付", | ||||
"payDnMethod":"繳款單支付", | "payDnMethod":"繳款單支付", | ||||
"payNPGOMethod":"收款辦公室付款", | "payNPGOMethod":"收款辦公室付款", | ||||
"payOnlineBtn":"網上付款", | |||||
"payDnRemark": "在{date}之前將付款證明(如自動櫃員機收據、網路銀行記錄)寄至 [email protected] ", | "payDnRemark": "在{date}之前將付款證明(如自動櫃員機收據、網路銀行記錄)寄至 [email protected] ", | ||||
"payNPGORemark" :"在{date}之前在收款辦公室完成付款", | "payNPGORemark" :"在{date}之前在收款辦公室完成付款", | ||||
@@ -103,6 +104,7 @@ | |||||
"MSG.paymentHolded": "申請編號 {appNo} 已正在付款的流程中,如相關付款沒有成功,請於20分鐘後再嘗試付款,不便之處,請見諒!", | "MSG.paymentHolded": "申請編號 {appNo} 已正在付款的流程中,如相關付款沒有成功,請於20分鐘後再嘗試付款,不便之處,請見諒!", | ||||
"MSG.pay_credity1": "我們已收到你已確定申請編號: {appNo} 的稿件校對確定及可付印的指示,並將安排刊登於憲報 期數 {year} 年 {issueVolume} 卷 第 {issueNo} 期內。", | "MSG.pay_credity1": "我們已收到你已確定申請編號: {appNo} 的稿件校對確定及可付印的指示,並將安排刊登於憲報 期數 {year} 年 {issueVolume} 卷 第 {issueNo} 期內。", | ||||
"MSG.pay_credity2": "此公共啟事申請的費用將於下期發出的繳費發票時收取,請依時繳費。", | "MSG.pay_credity2": "此公共啟事申請的費用將於下期發出的繳費發票時收取,請依時繳費。", | ||||
"MSG.plzonlinePayment": "請選擇網上支付", | |||||
"registerTitle1": "立即成為", | "registerTitle1": "立即成為", | ||||
"registerTitle2": "憲報刊登公共啟事", | "registerTitle2": "憲報刊登公共啟事", | ||||
@@ -391,6 +393,7 @@ | |||||
"particulars": "項目", | "particulars": "項目", | ||||
"currencyPrice": "金額 ($)", | "currencyPrice": "金額 ($)", | ||||
"currencyAmount": "金額", | "currencyAmount": "金額", | ||||
"currencyAmountTitle": "金額 (HK$):", | |||||
"transactionRefNo": "交易參考編號", | "transactionRefNo": "交易參考編號", | ||||
"selectedPaymentMethod": "已選擇付款方法", | "selectedPaymentMethod": "已選擇付款方法", | ||||
"paymentMethodNotAvailable":"付款功能現在不可用", | "paymentMethodNotAvailable":"付款功能現在不可用", | ||||