vbea 2 роки тому
батько
коміт
94472c656c

+ 1 - 0
Strides-APP/app.json

@@ -10,6 +10,7 @@
     "i18n": false,
     "bookmarks": true,
     "codePush": false,
+    "nationally": false,
     "notifications": false,
     "support": {
       "phone": "006597285916",

+ 5 - 0
Strides-APP/app/i18n/locales/en.js

@@ -304,6 +304,7 @@ export default {
     tabReserve: "Reserve",
     tipsDisconnectConnector: "Please disconnect and return connector to charging station",
     tipsRatesTax: "All rates Include 8% GST",
+    tipsRatesTax2: "All Rates Include Tax",
     titleOops: "Oops!",
     titleStopCharging: "Stop Charging",
     toBeUpdated: "To be updated",
@@ -439,15 +440,19 @@ export default {
     breakdownReservationFees: "Reservation Fees Breakdown",
     chargingSessionComplete: "Your charging session is complete.",
     labelChargTransSubtotal: "Charging Transaction Subtotal (w 8% GST):",
+    labelChargTransSubtotal2: "Charging Transaction Subtotal ($s):",
     labelDateTime: "Date Time:",
     labelDurationReservation: "Duration of Reservation:",
     labelFinalPaymentAmount: "Final Payment Amount:",
+    labelAfterDiscount: "Final Payment Amount (After Applicable Discount):",
     labelIdleDuration: "Idle Duration:",
     labelIdleFeeSubtotal: "Idle Fee Subtotal (w 8% GST):",
+    labelIdleFeeSubtotal2: "Idle Fee Subtotal ($s):",
     labelIdleStartTime: "Idle Fee Start Time:",
     labelReferenceID: "Reference ID:",
     labelRegistrationNo: "Registration No:",
     labelReservationFeeSubtotal: "Reservation Fee Subtotal (w 8% GST):",
+    labelReservationFeeSubtotal2: "Reservation Fee Subtotal ($s):",
     labelSiteName: "Site Name:",
     labelTimeReservation: "Time of Reservation:",
     labelTransactionID: "Transaction ID:",

+ 8 - 3
Strides-APP/app/i18n/locales/zh-TW.js

@@ -73,7 +73,7 @@
     termsOfUse: "使用條款",
     topUp: "餘額充值",
     topUpWithCard: "使用信用卡充值",
-    wallet: "餘額",
+    wallet: "我的餘額",
     applyMember: "申請會員",
     yourMembers: "我的會員"
   },
@@ -160,7 +160,7 @@
   drawer: {
     sign: "請登⼊",
     charging: "充電",
-    wallet: "餘額",
+    wallet: "我的餘額",
     topup: "餘額充值",
     feedback: "反饋",
     settings: "設定",
@@ -304,6 +304,7 @@
     tabReserve: "預訂",
     tipsDisconnectConnector: "請斷開連結並將插頭放回充電樁",
     tipsRatesTax: "所有費率均包括消費稅",
+    tipsRatesTax2: "所有費率均含稅",
     titleOops: "出錯啦!",
     titleStopCharging: "停止充電",
     toBeUpdated: "待更新",
@@ -320,7 +321,7 @@
     btnPurchase: "充值",
     btnTop_Up: "充值",
     creditIsBelow5: "您的餘額低于S$5.",
-    creditWallet: "餘額",
+    creditWallet: "信用餘額",
     creditWalletLabel: "餘額:",
     forWeekOf: "本周總結",
     labelBreakdown: "充電訊息",
@@ -439,15 +440,19 @@
     breakdownReservationFees: "預訂費用明細",
     chargingSessionComplete: "您的充電結費已完成",
     labelChargTransSubtotal: "充電費用小計(含消費稅):",
+    labelChargTransSubtotal2: "充電費用小計(含稅$s):",
     labelDateTime: "交易時間",
     labelDurationReservation: "預定時長:",
     labelFinalPaymentAmount: "最終支付:",
+    labelAfterDiscount: "最終支付(已計算折扣):",
     labelIdleDuration: "閑置時長:",
     labelIdleFeeSubtotal: "閑置費用小計(含消費稅):",
+    labelIdleFeeSubtotal2: "閑置費用小計(含稅$s):",
     labelIdleStartTime: "閑置開始時間:",
     labelReferenceID: "引用編號:",
     labelRegistrationNo: "公司代碼:",
     labelReservationFeeSubtotal: "預訂費用小計(含消費稅):",
+    labelReservationFeeSubtotal2: "預訂費用小計(含稅$s):",
     labelSiteName: "站點名稱:",
     labelTimeReservation: "預訂時間:",
     labelTransactionID: "交易編號:",

+ 8 - 3
Strides-APP/app/i18n/locales/zh.js

@@ -73,7 +73,7 @@ export default {
     termsOfUse: "使用条款",
     topUp: "余额充值",
     topUpWithCard: "使用信用卡充值",
-    wallet: "余额",
+    wallet: "我的余额",
     applyMember: "申请会员",
     yourMembers: "我的会员"
   },
@@ -160,7 +160,7 @@ export default {
   drawer: {
     sign: "请登录",
     charging: "充电",
-    wallet: "余额",
+    wallet: "我的余额",
     topup: "余额充值",
     feedback: "反馈",
     settings: "设置",
@@ -304,6 +304,7 @@ export default {
     tabReserve: "预订",
     tipsDisconnectConnector: "请断开连接并将插头放回充电桩",
     tipsRatesTax: "所有费率均包括消费税",
+    tipsRatesTax2: "所有费率均含税",
     titleOops: "出错啦!",
     titleStopCharging: "停止充电",
     toBeUpdated: "待更新",
@@ -320,7 +321,7 @@ export default {
     btnPurchase: "充值",
     btnTop_Up: "充值",
     creditIsBelow5: "您的余额低于S$5.",
-    creditWallet: "余额",
+    creditWallet: "信用余额",
     creditWalletLabel: "余额:",
     forWeekOf: "本周总结",
     labelBreakdown: "充电信息",
@@ -439,15 +440,19 @@ export default {
     breakdownReservationFees: "预订费用明细",
     chargingSessionComplete: "您的充电结费已完成",
     labelChargTransSubtotal: "充电费用小计(含消费税):",
+    labelChargTransSubtotal2: "充电费用小计(含税$s):",
     labelDateTime: "交易时间",
     labelDurationReservation: "预定时长:",
     labelFinalPaymentAmount: "最终支付:",
+    labelAfterDiscount: "最终支付(已计算折扣):",
     labelIdleDuration: "闲置时长:",
     labelIdleFeeSubtotal: "闲置费用小计(含消费税):",
+    labelIdleFeeSubtotal2: "闲置费用小计(含税$s):",
     labelIdleStartTime: "闲置开始时间:",
     labelReferenceID: "引用编号:",
     labelRegistrationNo: "公司代码:",
     labelReservationFeeSubtotal: "预订费用小计(含消费税):",
+    labelReservationFeeSubtotal2: "预订费用小计(含税$s):",
     labelSiteName: "站点名称:",
     labelTimeReservation: "预订时间:",
     labelTransactionID: "交易编号:",

+ 37 - 19
Strides-APP/app/pages/chargeV2/SummaryV2.js

@@ -10,6 +10,7 @@ import Dialog from '../../components/Dialog';
 import { MyRefreshProps } from '../../components/ThemesConfig';
 import utils from '../../utils/utils';
 import { PageList } from '../Router';
+import app from '../../../app.json';
 
 export default class Summary extends Component {
   constructor(props) {
@@ -105,6 +106,14 @@ export default class Summary extends Component {
     }
   }
 
+  getTaxTitle(title="") {
+    if (this.state.summaryInfo?.taxRate) {
+      return title.replace("$s", this.state.summaryInfo.taxRate)
+    } else {
+      return title;
+    }
+  }
+
   render() {
     return (
       <ScrollView
@@ -118,12 +127,14 @@ export default class Summary extends Component {
         }>
         { utils.isNotEmpty(this.state.summaryInfo.top) &&
           <View style={styles.headerView}>
-            <Octicons
-              name="check-circle-fill"
-              color={colorAccent}
-              size={56}/>
-            <Text style={styles.topTitle}>{$t('receipt.successful')}</Text>
-            <Text style={styles.topDesc}>{$t('receipt.chargingSessionComplete')}</Text>
+            { this.state.isActully && <>
+              <Octicons
+                name="check-circle-fill"
+                color={colorAccent}
+                size={56}/>
+              <Text style={styles.topTitle}>{$t('receipt.successful')}</Text>
+              <Text style={styles.topDesc}>{$t('receipt.chargingSessionComplete')}</Text>
+            </>}
             { utils.isNotEmpty(this.state.summaryInfo.top.company) &&
               <View style={styles.formRow}>
                 <Text style={styles.label}>{$t('sign.labelCompany')}:</Text>
@@ -181,15 +192,15 @@ export default class Summary extends Component {
           <View style={styles.sections}>
             <Text style={styles.formTitle}>{$t('wallet.labelYourConnector')}</Text>
             <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('charging.labelType')}</Text>
+              <Text style={styles.label}>{$t('charging.labelType')}:</Text>
               <Text style={styles.text}>{this.state.summaryInfo.connector.type}</Text>
             </View>
             <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('charging.labelPower')}</Text>
+              <Text style={styles.label}>{$t('charging.labelPower')}:</Text>
               <Text style={styles.text}>{this.state.summaryInfo.connector.power}</Text>
             </View>
             <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('charging.labelRates')}</Text>
+              <Text style={styles.label}>{$t('charging.labelRates')}:</Text>
               <Text style={styles.text}>{this.state.summaryInfo.connector.rates}</Text>
             </View>
           </View>
@@ -206,7 +217,7 @@ export default class Summary extends Component {
               <Text style={styles.text}>{this.state.summaryInfo.chargingFee.chargeDelivered ?? 0}</Text>
             </View>
             <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('receipt.labelChargTransSubtotal')}</Text>
+              <Text style={styles.label}>{this.getTaxTitle($t('receipt.labelChargTransSubtotal2'))}</Text>
               <Text style={styles.text}>{this.state.summaryInfo.chargingFee.transactionSubtotal}</Text>
             </View>
           </View>
@@ -223,7 +234,7 @@ export default class Summary extends Component {
               <Text style={styles.text}>{this.state.summaryInfo.idleFee.duration}</Text>
             </View>
             <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('receipt.labelIdleFeeSubtotal')}</Text>
+              <Text style={styles.label}>{this.getTaxTitle($t('receipt.labelIdleFeeSubtotal2'))}</Text>
               <Text style={styles.text}>{this.state.summaryInfo.idleFee.subtotal}</Text>
             </View>
           </View>
@@ -240,7 +251,7 @@ export default class Summary extends Component {
               <Text style={styles.text}>{this.state.summaryInfo.reservationFee.reservationDuration}</Text>
             </View>
             <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('receipt.labelReservationFeeSubtotal')}</Text>
+              <Text style={styles.label}>{this.getTaxTitle($t('receipt.labelReservationFeeSubtotal2'))}</Text>
               <Text style={styles.text}>{this.state.summaryInfo.reservationFee.reservationFeeSubtotal}</Text>
             </View>
           </View>
@@ -254,26 +265,33 @@ export default class Summary extends Component {
             </View>
             { utils.isNotEmpty(this.state.summaryInfo.payment.transactionSubtotal) &&
               <View style={styles.formRow}>
-                <Text style={styles.label}>{$t('receipt.labelChargTransSubtotal')}</Text>
+                <Text style={styles.label}>{this.getTaxTitle($t('receipt.labelChargTransSubtotal2'))}</Text>
                 <Text style={styles.text}>{this.state.summaryInfo.payment.transactionSubtotal}</Text>
               </View>
             }
             { utils.isNotEmpty(this.state.summaryInfo.payment.idleFeeSubtotal) &&
               <View style={styles.formRow}>
-                <Text style={styles.label}>{$t('receipt.labelIdleFeeSubtotal')}</Text>
+                <Text style={styles.label}>{this.getTaxTitle($t('receipt.labelIdleFeeSubtotal2'))}</Text>
                 <Text style={styles.text}>{this.state.summaryInfo.payment.idleFeeSubtotal}</Text>
               </View>
             }
             { utils.isNotEmpty(this.state.summaryInfo.payment.reservationFeeSubtotal) &&
               <View style={styles.formRow}>
-                <Text style={styles.label}>{$t('receipt.labelReservationFeeSubtotal')}</Text>
+                <Text style={styles.label}>{this.getTaxTitle($t('receipt.labelReservationFeeSubtotal2'))}</Text>
                 <Text style={styles.text}>{this.state.summaryInfo.payment.reservationFeeSubtotal}</Text>
               </View>
             }
-            <View style={styles.formRow}>
-              <Text style={styles.label}>{$t('receipt.labelFinalPaymentAmount')}</Text>
-              <Text style={styles.text}>{this.state.summaryInfo.payment.finalPayment ?? "-"}</Text>
-            </View>
+            { utils.isNotEmpty(this.state.summaryInfo.payment.finalPayment) &&
+              <View style={styles.formRow}>
+                <Text style={styles.label}>
+                  { utils.isNotEmpty(this.state.summaryInfo.payment.discountCredit)
+                  ? $t('receipt.labelAfterDiscount')
+                  : $t('receipt.labelFinalPaymentAmount')
+                  }
+                </Text>
+                <Text style={styles.text}>{this.state.summaryInfo.payment.finalPayment ?? "-"}</Text>
+              </View>
+            }
             {/* <View style={styles.formRow}>
               <Text style={styles.label}>{$t('wallet.labelChargeRates')}</Text>
               <Text style={styles.text}>{currency}{this.state.summaryInfo.chargeRates ?? '0.0'}</Text>

+ 2 - 1
Strides-APP/app/pages/charging/StepStartView.js

@@ -7,6 +7,7 @@ import { Image, StyleSheet, Text, View } from 'react-native';
 import Button from '../../components/Button';
 import { ChargeStyle, TypeImage } from '../chargeV2/Charging';
 import { PageList } from '../Router';
+import app from '../../../app.json';
 
 export default StepStartView = ({
   isPrivate,
@@ -17,7 +18,7 @@ export default StepStartView = ({
 }) => (
   <View>
     <View style={{minHeight: $vht(80)}}>
-      <Text style={styles.gstText}>{$t('charging.tipsRatesTax')}</Text>
+      <Text style={styles.gstText}>{app.modules.nationally ? $t('charging.tipsRatesTax2') : $t('charging.tipsRatesTax')}</Text>
       <Text style={styles.title}>{$t('charging.acChargers')} ({(stationInfo?.acConnector?.available ?? "0") + $t('charging.numberAvailable')})</Text>
       { stationInfo.acRates?.length > 0
         ? stationInfo.acRates.map((item, index) => {