correction des bugs paiement facture
This commit is contained in:
parent
3f614d5a38
commit
2ecdc04ada
File diff suppressed because one or more lines are too long
|
@ -40,6 +40,8 @@
|
|||
"ENTER_VALID_AMOUNT": "Enter a valid amount",
|
||||
"ENTER_AMOUNT_SUPERIOR_ZEROR": "Enter amount superior to zero",
|
||||
"AMOUNT_SUPERIOR_TO_PRINCIPAL_ACCOUNT": "Amount greater than that of the agent's main account",
|
||||
"PAYMENT_DONE": "Payment done",
|
||||
"PAYMENT_ERROR": "Payment error",
|
||||
"MAKE_DEPOSIT": "Make a deposit",
|
||||
"MAKE_WITHDRAWAL": "Make withdrawal",
|
||||
"WITHDRAWAL_TYPE": "Withdrawal mode",
|
||||
|
@ -196,6 +198,9 @@
|
|||
"PAIEMENT_FACTURE": "Bill payment",
|
||||
"NUMERO_ABONNE": "Subscriber number",
|
||||
"IDENTIFIANT_ETUDIANT": "Student ID",
|
||||
"ENTER_VALID_IDENTIFIANT_ETUDIANT": "Enter a valid student ID",
|
||||
"ENTER_VALID_NUMERO_ABONNE": "Enter a valid subscriber number",
|
||||
"ENTER_VALID_PHONE_NUMBER": "Enter a valid phone number",
|
||||
"DEMAND_SEND": "Demand send",
|
||||
"EPARGNE_DEPOSE": "Savings deposited",
|
||||
"BREAK_EPARGNE": "Break my saving",
|
||||
|
@ -356,6 +361,7 @@
|
|||
"PASSWORD": "Password",
|
||||
"CONFIRM_PASSWORD": "Confirm the password",
|
||||
"PLEASE_ENTER_THE_PASSWORD": "Please enter the password",
|
||||
"PLEASE_ENTER_CORRECT_PASSWORD": "Please enter correct password",
|
||||
"PASSWORD_MODIFY": "Change your password",
|
||||
"OLD_PASSWORD": "Old password",
|
||||
"NEW_PASSWORD": "New password",
|
||||
|
|
|
@ -61,6 +61,8 @@
|
|||
"MAKE_DEPOSIT": "Effectuer un dépôt",
|
||||
"MAKE_WITHDRAWAL": "Effectuer un retrait",
|
||||
"WITHDRAWAL_TYPE": "Mode de paiement",
|
||||
"PAYMENT_DONE": "Paiement effectué",
|
||||
"PAYMENT_ERROR": "Erreur de paiement",
|
||||
"CHOOSE_SOURCE": "Choisir la source",
|
||||
"CHANGE_SOURCE_CARD": "Changer le type du numéro de saisie",
|
||||
"CREDIT_CARD": "Carte de crédit",
|
||||
|
@ -95,13 +97,13 @@
|
|||
"TRANSFER_IN_ACCOUNT": "Transfert dans le compte",
|
||||
"WITHDRAWAL_IN_CASH": "Retrait en cash",
|
||||
"WITHDRAWAL_IN_CASH_DESCRIPTION": "Retrait d'argent en cash",
|
||||
"WITHDRAWAL_WALLET_TO_CASH": "Retrait de votre wallet vers cash",
|
||||
"WITHDRAWAL_WALLET_TO_CASH": "Wallet vers cash",
|
||||
"WITHDRAWAL_WALLET_TO_CASH_DESCRIPTION": "Retirer de l'argent de votre Wallet vers cash",
|
||||
"WITHDRAWAL_CARD_TO_WALLET": "Retrait de votre carte vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_WALLET": "Retrait de votre banque vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_CASH": "Retrait de votre banque vers cash",
|
||||
"WITHDRAWAL_CARD_TO_WALLET": "Carte vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_WALLET": "Banque vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_CASH": "Banque vers cash",
|
||||
"WITHDRAWAL_CARD_TO_WALLET_DESCRIPTION": "Retrait d'argent de votre carte vers wallet",
|
||||
"WITHDRAWAL_CARD_TO_CASH": "Retrait de votre carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH": "Carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH_AGENT": "Retrait carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH_DESCRIPTION": "Retrait de l'argent de votre carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH_DESCRIPTION_AGENT": "Retrait de l'argent de carte vers cash",
|
||||
|
@ -112,13 +114,13 @@
|
|||
"DEPOSIT_CASH_TO_VISA": "Cash vers carte visa",
|
||||
"DEPOSIT_CASH_TO_VISA_DESCRIPTION": "Envoie d'argent de Cash vers carte visa",
|
||||
"DEPOSIT_CASH_TO_BANK": "Cash vers banque",
|
||||
"DEPOSIT_WALLET_TO_WALLET": "Votre Wallet vers wallet",
|
||||
"DEPOSIT_WALLET_TO_WALLET": "Wallet vers wallet",
|
||||
"ENVOIE_WALLET_TO_WALLET": "Envoie Wallet vers wallet",
|
||||
"DEPOSIT_WALLET_TO_CASH": "Votre Wallet vers cash",
|
||||
"ENVOIE_WALLET_TO_CASH": "Envoie Wallet vers cash",
|
||||
"DEPOSIT_WALLET_TO_CARD": "Votre Wallet vers carte",
|
||||
"DEPOSIT_WALLET_TO_CASH": "Wallet vers cash",
|
||||
"ENVOIE_WALLET_TO_CASH": "Wallet vers cash",
|
||||
"DEPOSIT_WALLET_TO_CARD": "Wallet vers carte",
|
||||
"ENVOIE_WALLET_TO_CARD": "Envoie Wallet vers carte",
|
||||
"DEPOSIT_WALLET_TO_BANK": "Votre Wallet vers banque",
|
||||
"DEPOSIT_WALLET_TO_BANK": "Wallet vers banque",
|
||||
"ENVOIE_WALLET_TO_BANK": "Envoie Wallet vers banque",
|
||||
"DEPOSIT_CASH_TO_CASH": "Cash vers cash",
|
||||
"ENVOIE_CASH_TO_CASH": "Envoie d'argent en cash vers cash",
|
||||
|
@ -161,9 +163,9 @@
|
|||
"TYPE_IDENTIFIANT": "Type d'identifiant",
|
||||
"PAYS_DESTINATION": "Pays destination",
|
||||
"ACTIVE_WALLET": "Réseau payeur",
|
||||
"DEPOSIT_TO_CASH": "Votre Wallet vers cash",
|
||||
"DEPOSIT_TO_CARD": "Votre Wallet vers carte",
|
||||
"DEPOSIT_TO_BANK": "Votre Wallet vers banque",
|
||||
"DEPOSIT_TO_CASH": "Wallet vers cash",
|
||||
"DEPOSIT_TO_CARD": "Wallet vers carte",
|
||||
"DEPOSIT_TO_BANK": "Wallet vers banque",
|
||||
"NANO_CREDIT": "Nano crédit",
|
||||
"NANO_CREDIT_LIST": "Liste des nano crédit",
|
||||
"SAVINGS_LIST": "Liste des épargnes",
|
||||
|
@ -182,11 +184,11 @@
|
|||
"CAUTIONNEMENT_DONE": "Cautionnement effectué",
|
||||
"ID_DEMAND": "Identifiant de la demande",
|
||||
"ID_SAVINGS": "Identifiant de l'épargne",
|
||||
"PAIEMENT_EAU": "Paiement eau",
|
||||
"PAIEMENT_ELECTRICITY": "Paiement électricité",
|
||||
"PAIEMENT_ECOLE": "Paiement école",
|
||||
"PAIEMENT_CREDIT_TELEPHONIQUE": "Paiement crédit téléphonique",
|
||||
"PAIEMENT_ABONNEMENT_TV": "Paiement abonnement TV",
|
||||
"PAIEMENT_EAU": "Eau",
|
||||
"PAIEMENT_ELECTRICITY": "Electricité",
|
||||
"PAIEMENT_ECOLE": "Ecole",
|
||||
"PAIEMENT_CREDIT_TELEPHONIQUE": "Crédit téléphonique",
|
||||
"PAIEMENT_ABONNEMENT_TV": "Abonnement TV",
|
||||
"NON_APPLICABLE": "Non applicable",
|
||||
"DATE": "Date",
|
||||
"DEMAND_DATE": "Date de la demande",
|
||||
|
@ -203,6 +205,9 @@
|
|||
"PAIEMENT_FACTURE": "Paiement de facture",
|
||||
"NUMERO_ABONNE": "Numéro d'abonnée",
|
||||
"IDENTIFIANT_ETUDIANT": "Identifiant étudiant",
|
||||
"ENTER_VALID_IDENTIFIANT_ETUDIANT": "Entrer un identifiant étudiant valide",
|
||||
"ENTER_VALID_NUMERO_ABONNE": "Entrer un numéro d'abonné valide",
|
||||
"ENTER_VALID_PHONE_NUMBER": "Entrer un numéro de téléphone valide",
|
||||
"WITHDRAWAL_DESCRIPTION": "Effectuer un retrait",
|
||||
"COMMISSION_ACCOUNT_TITLE": "Cpt. commission",
|
||||
"CONFIRM": "Confirmer",
|
||||
|
@ -367,6 +372,7 @@
|
|||
"NEW_PASSWORD": "Nouveau mot de passe",
|
||||
"CONFIRM_NEW_PASSWORD": "Confirmerz le nouveau mot de passe",
|
||||
"PLEASE_ENTER_THE_PASSWORD": "Veuillez renseigner le mot de passe",
|
||||
"PLEASE_ENTER_CORRECT_PASSWORD": "Veuillez renseigner un mot de passe correct",
|
||||
"MODIFY_AMOUNT": " Modifier le montant",
|
||||
"ENTER_NEW_AMOUNT_TO_SEND": " Entrer le nouveau montant à envoyer",
|
||||
"AMOUNT": "Montant",
|
||||
|
|
|
@ -7,6 +7,10 @@ import {
|
|||
LINK_CARD_PENDING,
|
||||
LINK_CARD_RESET,
|
||||
LINK_CARD_SUCCESS,
|
||||
PAY_BILL_ERROR,
|
||||
PAY_BILL_PENDING,
|
||||
PAY_BILL_RESET,
|
||||
PAY_BILL_SUCCESS,
|
||||
WALLET_GET_COMMISSION_ERROR,
|
||||
WALLET_GET_COMMISSION_PENDING,
|
||||
WALLET_GET_COMMISSION_RESET,
|
||||
|
@ -211,3 +215,24 @@ export const fetchGetListOperatorError = (error) => ({
|
|||
type: GET_OPERATOR_LIST_ERROR,
|
||||
result: error
|
||||
});
|
||||
|
||||
/**
|
||||
* ---------------------------------------------------
|
||||
*/
|
||||
export const fetchPayBillPending = () => ({
|
||||
type: PAY_BILL_PENDING
|
||||
});
|
||||
|
||||
export const fetchPayBillReset = () => ({
|
||||
type: PAY_BILL_RESET
|
||||
});
|
||||
|
||||
export const fetchPayBillSuccess = (res) => ({
|
||||
type: PAY_BILL_SUCCESS,
|
||||
result: res,
|
||||
});
|
||||
|
||||
export const fetchPayBillError = (error) => ({
|
||||
type: PAY_BILL_ERROR,
|
||||
result: error
|
||||
});
|
|
@ -0,0 +1,37 @@
|
|||
import {PAY_BILL_ERROR, PAY_BILL_PENDING, PAY_BILL_RESET, PAY_BILL_SUCCESS} from "../types/WalletType";
|
||||
|
||||
const initialState = {
|
||||
loading: false,
|
||||
result: null,
|
||||
error: null
|
||||
};
|
||||
|
||||
export default (state = initialState, action) => {
|
||||
switch (action.type) {
|
||||
case PAY_BILL_PENDING:
|
||||
return {
|
||||
...state,
|
||||
loading: true
|
||||
}
|
||||
case PAY_BILL_SUCCESS:
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
result: action.result.data,
|
||||
error: null
|
||||
}
|
||||
case PAY_BILL_ERROR:
|
||||
return {
|
||||
...state,
|
||||
loading: false,
|
||||
result: null,
|
||||
error: action.result
|
||||
}
|
||||
case PAY_BILL_RESET:
|
||||
return initialState;
|
||||
|
||||
default: {
|
||||
return state;
|
||||
}
|
||||
}
|
||||
};
|
|
@ -47,6 +47,7 @@ import EnvoieUserWalletToBank from "./EnvoieUserWalletToBankReducer";
|
|||
import GetEpargneInProgressReducer from "./GetEpargneInProgressReducer";
|
||||
import GetNanoCreditUserHistoryInProgressReducer from "./GetNanoCreditUserHistoryInProgressReducer";
|
||||
import GetListOperatorReducer from "./GetListOperatorReducer";
|
||||
import PayBillReducer from "./PayBillReducer";
|
||||
|
||||
const persistConfig = {
|
||||
key: 'root',
|
||||
|
@ -102,7 +103,8 @@ const rootReducer = persistCombineReducers(persistConfig, {
|
|||
envoieUserWalletToBank: EnvoieUserWalletToBank,
|
||||
getEpargneInProgressReducer: GetEpargneInProgressReducer,
|
||||
getNanoCreditUserHistoryInProgressReducer: GetNanoCreditUserHistoryInProgressReducer,
|
||||
getListOperatorReducer: GetListOperatorReducer
|
||||
getListOperatorReducer: GetListOperatorReducer,
|
||||
payBillReducer: PayBillReducer,
|
||||
});
|
||||
|
||||
export default rootReducer;
|
|
@ -42,3 +42,8 @@ export const GET_OPERATOR_LIST_PENDING = 'GET_OPERATOR_LIST_PENDING';
|
|||
export const GET_OPERATOR_LIST_SUCCESS = 'GET_OPERATOR_LIST_SUCCESS';
|
||||
export const GET_OPERATOR_LIST_ERROR = 'GET_OPERATOR_LIST_ERROR';
|
||||
export const GET_OPERATOR_LIST_RESET = 'GET_OPERATOR_LIST_RESET';
|
||||
|
||||
export const PAY_BILL_PENDING = 'PAY_BILL_PENDING';
|
||||
export const PAY_BILL_SUCCESS = 'PAY_BILL_SUCCESS';
|
||||
export const PAY_BILL_ERROR = 'PAY_BILL_ERROR';
|
||||
export const PAY_BILL_RESET = 'PAY_BILL_RESET';
|
|
@ -176,8 +176,6 @@ class Home extends BaseScreen {
|
|||
AsyncStorage.getAllKeys((err, keys) => {
|
||||
AsyncStorage.multiGet(keys, (err, stores) => {
|
||||
stores.map(async (result, i, store) => {
|
||||
console.warn("KEY MAP", store);
|
||||
console.log("KEY SAVE " + store[i][0]);
|
||||
let key = store[i][0];
|
||||
if (i === 0) {
|
||||
if (!_.isEqual(key, '@config:onesignalIds')) {
|
||||
|
|
|
@ -23,7 +23,7 @@ import {IlinkEmitter} from '../../utils/events';
|
|||
import {readUser} from '../../webservice/AuthApi';
|
||||
import {getEpargneInProgressAction, getEpargneInProgressReset} from '../../webservice/NanoCreditApi';
|
||||
import {casserEpargneUserAction, casserEpargneUserReset} from '../../webservice/user/NanoCreditApi';
|
||||
import {cutStringWithoutDot, nanoCreditHistoryLabel} from "../../utils/UtilsFunction";
|
||||
import {cutString, cutStringWithoutDot, nanoCreditHistoryLabel} from "../../utils/UtilsFunction";
|
||||
import * as Utils from "../../utils/DeviceUtils";
|
||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
import thousands from "thousands";
|
||||
|
@ -375,7 +375,7 @@ class CasserEpargneUser extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
` ${thousands(item[element], ' ')}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'date_creation') ?
|
||||
cutStringWithoutDot(item[element], 16)
|
||||
: item[element]
|
||||
|
|
|
@ -27,7 +27,12 @@ import {
|
|||
getNanoCreditUserHistoryInProgressReset,
|
||||
} from "../../webservice/NanoCreditApi";
|
||||
import {Typography} from "../../config/typography";
|
||||
import {cutStringWithoutDot, displayTransactionType, nanoCreditHistoryLabel} from "../../utils/UtilsFunction";
|
||||
import {
|
||||
cutString,
|
||||
cutStringWithoutDot,
|
||||
displayTransactionType,
|
||||
nanoCreditHistoryLabel
|
||||
} from "../../utils/UtilsFunction";
|
||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
import thousands from "thousands";
|
||||
import * as Utils from "../../utils/DeviceUtils";
|
||||
|
@ -406,7 +411,7 @@ class RefundNanoCreditUser extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
` ${thousands(item[element], ' ')}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'date_creation') ?
|
||||
cutStringWithoutDot(item[element], 16)
|
||||
: item[element]
|
||||
|
|
|
@ -98,7 +98,9 @@ class OperateurOptionSelect extends Component {
|
|||
|
||||
this.props.navigation.push(this.state.options[0].screen, {
|
||||
title: item.operator_name,
|
||||
type: this.state.options[0].type
|
||||
type: this.state.options[0].type,
|
||||
operator_id: item.id_operator,
|
||||
typeOperator: this.state.operatorType
|
||||
});
|
||||
} else {
|
||||
if (this.state.user.category === 'geolocated')
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React, {Component} from 'react';
|
||||
import {StatusBar, StyleSheet, View} from 'react-native';
|
||||
import {Alert, StatusBar, StyleSheet, Text, View} from 'react-native';
|
||||
import I18n from 'react-native-i18n';
|
||||
import {Appbar, Provider} from 'react-native-paper';
|
||||
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
|
||||
|
@ -8,11 +8,16 @@ import {IlinkEmitter} from "../../utils/events";
|
|||
import OutlineTextInput from '../../components/OutlineTextInput';
|
||||
import CustomButton from '../../components/CustomButton';
|
||||
import {ScrollView} from 'react-native-gesture-handler';
|
||||
import {connect} from "react-redux";
|
||||
import {bindActionCreators} from "redux";
|
||||
import {payBillAction, payBillReset} from "../../webservice/WalletApi";
|
||||
import {store} from "../../redux/store";
|
||||
import isEqual from 'lodash/isEqual';
|
||||
|
||||
const route = require('../../route.json');
|
||||
let slugify = require('slugify');
|
||||
|
||||
export default class PaiementFacture extends Component {
|
||||
class PaiementFacture extends Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
@ -20,9 +25,17 @@ export default class PaiementFacture extends Component {
|
|||
this.state = {
|
||||
title: this.props.navigation.state.params.title,
|
||||
type: this.props.navigation.state.params.type,
|
||||
}
|
||||
id_operator: this.props.navigation.state.params.operator_id,
|
||||
typeOperator: this.props.navigation.state.params.typeOperator,
|
||||
billNumber: '',
|
||||
subscriberID: null,
|
||||
isSubmitClick: false,
|
||||
montant: '',
|
||||
password: '',
|
||||
wallet: store.getState().walletDetailReducer.result.response
|
||||
};
|
||||
this.props.payBillReset();
|
||||
console.log("Paiement facture props", this.props);
|
||||
|
||||
}
|
||||
|
||||
updateLangue() {
|
||||
|
@ -45,31 +58,161 @@ export default class PaiementFacture extends Component {
|
|||
/>)
|
||||
});
|
||||
|
||||
isNormalInteger = (str) => {
|
||||
if (/[ `!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~]/.test(str))
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
isMontantValid = () => {
|
||||
const {montant} = this.state;
|
||||
if ((parseInt(isEqual(montant, 0)) || montant < 0))
|
||||
return {
|
||||
errorMessage: I18n.t('ENTER_AMOUNT_SUPERIOR_ZEROR'),
|
||||
isValid: false
|
||||
};
|
||||
|
||||
else if (!this.isNormalInteger(montant))
|
||||
return {
|
||||
errorMessage: I18n.t('ENTER_VALID_AMOUNT'),
|
||||
isValid: false
|
||||
};
|
||||
else
|
||||
return {
|
||||
errorMessage: '',
|
||||
isValid: false
|
||||
};
|
||||
};
|
||||
|
||||
renderErrorNumberBill = () => {
|
||||
const {type} = this.state;
|
||||
|
||||
switch (type) {
|
||||
case 'PAIEMENT_ECOLE':
|
||||
return I18n.t('ENTER_VALID_IDENTIFIANT_ETUDIANT');
|
||||
case 'PAIEMENT_EAU':
|
||||
return I18n.t('ENTER_VALID_NUMERO_ABONNE');
|
||||
case 'PAIEMENT_EAU_ELECTRICITE':
|
||||
return I18n.t('ENTER_VALID_NUMERO_ABONNE');
|
||||
case 'PAIEMENT_CREDIT_TELEPHONE':
|
||||
return I18n.t('ENTER_VALID_PHONE_NUMBER');
|
||||
case 'PAIEMENT_ABONNEMENT_TV':
|
||||
return I18n.t('ENTER_VALID_NUMERO_ABONNE');
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
isBillnumberValid = () => {
|
||||
const {billNumber} = this.state;
|
||||
if ((parseInt(isEqual(billNumber, 0)) || billNumber < 0))
|
||||
return {
|
||||
errorMessage: this.renderErrorNumberBill(),
|
||||
isValid: false
|
||||
};
|
||||
else if (billNumber.length > 11) {
|
||||
return {
|
||||
errorMessage: this.renderErrorNumberBill(),
|
||||
isValid: false
|
||||
};
|
||||
} else
|
||||
return {
|
||||
errorMessage: '',
|
||||
isValid: false
|
||||
};
|
||||
};
|
||||
|
||||
renderLabel = () => {
|
||||
const {type} = this.state;
|
||||
|
||||
switch (type) {
|
||||
case 'PAIEMENT_ECOLE':
|
||||
return I18n.t('IDENTIFIANT_ETUDIANT')
|
||||
return I18n.t('IDENTIFIANT_ETUDIANT');
|
||||
case 'PAIEMENT_EAU':
|
||||
return I18n.t('NUMERO_ABONNE')
|
||||
return I18n.t('NUMERO_ABONNE');
|
||||
case 'PAIEMENT_EAU_ELECTRICITE':
|
||||
return I18n.t('NUMERO_ABONNE')
|
||||
return I18n.t('NUMERO_ABONNE');
|
||||
case 'PAIEMENT_CREDIT_TELEPHONE':
|
||||
return I18n.t('PHONE_NUMBER')
|
||||
return I18n.t('PHONE_NUMBER');
|
||||
case 'PAIEMENT_ABONNEMENT_TV':
|
||||
return I18n.t('NUMERO_ABONNE')
|
||||
|
||||
return I18n.t('NUMERO_ABONNE');
|
||||
default:
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
renderPayBill = () => {
|
||||
|
||||
const {result, error} = this.props;
|
||||
|
||||
if (error !== null) {
|
||||
Alert.alert(
|
||||
I18n.t("PAYMENT_ERROR"),
|
||||
error.data.error,
|
||||
[
|
||||
{
|
||||
text: I18n.t("OK"), onPress: () => {
|
||||
this.props.payBillReset();
|
||||
}
|
||||
}
|
||||
],
|
||||
{cancelable: false}
|
||||
)
|
||||
}
|
||||
|
||||
if (result !== null) {
|
||||
if (result.response !== null) {
|
||||
Alert.alert(
|
||||
I18n.t("PAYMENT_DONE"),
|
||||
result.response,
|
||||
[
|
||||
{
|
||||
text: I18n.t("OK"), onPress: () => {
|
||||
this.props.payBillReset();
|
||||
IlinkEmitter.emit("refreshWallet");
|
||||
this.props.navigation.pop();
|
||||
}
|
||||
}
|
||||
|
||||
],
|
||||
{cancelable: false}
|
||||
)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
onPayBill = () => {
|
||||
console.log("this.isBillnumberValid().isValid", this.isBillnumberValid().isValid);
|
||||
console.log("this.isMontantValid().isValid", this.isMontantValid().isValid);
|
||||
console.log("this.state.montant.length > 0", this.state.montant.length > 0);
|
||||
console.log("this.state.password.length > 0", this.state.password.length > 0);
|
||||
this.setState({isSubmitClick: true});
|
||||
if (/*this.isBillnumberValid().isValid && this.isMontantValid().isValid &&*/ this.state.montant.length > 0 && this.state.password.length > 0) {
|
||||
|
||||
this.props.payBillAction({
|
||||
type: 19,
|
||||
id_wallet_user: this.state.wallet.id,
|
||||
id_wallet_network: this.state.wallet.id_wallet_network,
|
||||
no_facture: this.state.billNumber,
|
||||
type_operator: this.state.typeOperator,
|
||||
id_operator: this.state.id_operator,
|
||||
montant: this.state.montant,
|
||||
password: this.state.password
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
console.log("this.isBillnumberValid().isValid", this.isBillnumberValid().isValid);
|
||||
console.log("this.isMontantValid().isValid", this.isMontantValid().isValid);
|
||||
console.log("this.state.montant.length > 0", this.state.montant.length > 0);
|
||||
console.log("this.state.password.length > 0", this.state.password.length > 0);
|
||||
console.log("-------------------------------");
|
||||
return (
|
||||
<Provider>
|
||||
<View style={{flex: 1}}>
|
||||
|
||||
{this.state.isSubmitClick && this.renderPayBill()}
|
||||
<StatusBar
|
||||
backgroundColor={Color.primaryDarkColor}
|
||||
barStyle="light-content"
|
||||
|
@ -88,33 +231,86 @@ export default class PaiementFacture extends Component {
|
|||
</Appbar.Header>
|
||||
|
||||
<View style={styles.container}>
|
||||
|
||||
<ScrollView style={{padding: 20}}>
|
||||
|
||||
<View style={{marginTop: 10, marginRight: 20, marginLeft: 20}}>
|
||||
<OutlineTextInput
|
||||
borderBottomColor={'black'}
|
||||
keyboardType="numeric"
|
||||
borderBottomColor={!this.isBillnumberValid().isValid ? 'black' : 'red'}
|
||||
value={this.state.billNumber}
|
||||
label={this.renderLabel()}
|
||||
style={{marginTop: 10}}
|
||||
placeholder={this.renderLabel()}
|
||||
onChangeText={(billNumber) => {
|
||||
this.setState({billNumber});
|
||||
this.isBillnumberValid();
|
||||
}}
|
||||
/>
|
||||
{
|
||||
(!this.isBillnumberValid().isValid) &&
|
||||
<Text
|
||||
style={{
|
||||
color: 'red',
|
||||
marginTop: 2
|
||||
}}>{this.isBillnumberValid().errorMessage}</Text>
|
||||
}
|
||||
{
|
||||
(this.state.isSubmitClick && this.state.billNumber.length === 0) &&
|
||||
<Text
|
||||
style={{color: 'red', marginTop: 2}}>{this.renderErrorNumberBill()}</Text>
|
||||
}
|
||||
</View>
|
||||
|
||||
<View style={{marginTop: 10, marginRight: 20, marginLeft: 20, marginBottom: 10}}>
|
||||
<OutlineTextInput
|
||||
borderBottomColor={'black'}
|
||||
borderBottomColor={!this.isMontantValid().isValid ? 'black' : 'red'}
|
||||
value={this.state.montant}
|
||||
keyboardType="numeric"
|
||||
label={I18n.t('AMOUNT')}
|
||||
label={I18n.t('AMOUNT_LABEL')}
|
||||
style={{marginTop: 10}}
|
||||
placeholder={I18n.t('AMOUNT_LABEL_DESCRIPTION')}
|
||||
onChangeText={(montant) => {
|
||||
this.setState({montant});
|
||||
this.isMontantValid();
|
||||
}}
|
||||
/>
|
||||
{
|
||||
(!this.isMontantValid.isValid) &&
|
||||
<Text
|
||||
style={{color: 'red', marginTop: 2}}>{this.isMontantValid().errorMessage}</Text>
|
||||
}
|
||||
{
|
||||
(this.state.isSubmitClick && this.state.montant.length === 0) &&
|
||||
<Text
|
||||
style={{color: 'red', marginTop: 2}}>{I18n.t('PLEASE_ENTER_THE_AMOUNT')}</Text>
|
||||
}
|
||||
</View>
|
||||
|
||||
<View style={{marginTop: 10, marginRight: 20, marginLeft: 20, marginBottom: 10}}>
|
||||
<OutlineTextInput
|
||||
borderBottomColor={(this.state.isSubmitClick && this.state.password.length === 0) ? 'red' : 'black'}
|
||||
value={this.state.password}
|
||||
secureTextEntry={true}
|
||||
label={I18n.t('PASSWORD')}
|
||||
style={{marginTop: 10}}
|
||||
placeholder={I18n.t('PLEASE_ENTER_THE_PASSWORD')}
|
||||
onChangeText={(password) => {
|
||||
this.setState({password});
|
||||
this.isMontantValid();
|
||||
}}
|
||||
/>
|
||||
{
|
||||
(this.state.isSubmitClick && this.state.password.length === 0) &&
|
||||
<Text
|
||||
style={{
|
||||
color: 'red',
|
||||
marginTop: 2
|
||||
}}>{I18n.t('PLEASE_ENTER_CORRECT_PASSWORD')}</Text>
|
||||
}
|
||||
</View>
|
||||
|
||||
|
||||
<View style={{margin: 10}}>
|
||||
<CustomButton outline onPress={() => {
|
||||
}}>
|
||||
<CustomButton loading={this.props.loading} outline onPress={() => this.onPayBill()}>
|
||||
{I18n.t('VALIDATE')}
|
||||
</CustomButton>
|
||||
</View>
|
||||
|
@ -128,8 +324,21 @@ export default class PaiementFacture extends Component {
|
|||
</Provider>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
loading: state.payBillReducer.loading,
|
||||
result: state.payBillReducer.result,
|
||||
error: state.payBillReducer.error,
|
||||
});
|
||||
|
||||
const mapDispatchToProps = dispatch => bindActionCreators({
|
||||
payBillAction,
|
||||
payBillReset,
|
||||
}, dispatch);
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(PaiementFacture);
|
||||
|
||||
const styles = StyleSheet.create({
|
||||
container: {
|
||||
|
|
|
@ -735,7 +735,7 @@ class WalletDetail extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
`${thousands(item[element], ' ')}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'destinataire') ?
|
||||
item[element].length > 13 ? cutString(item[element], 13) : item[element]
|
||||
: isEqual(element, 'date_creation') ?
|
||||
|
@ -814,7 +814,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -823,7 +823,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant_rembourse + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant_rembourse + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -832,7 +832,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.partiellement_rembourse + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.partiellement_rembourse + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -841,7 +841,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.taxe + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.taxe + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -850,7 +850,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.interet + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.interet + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -956,7 +956,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -965,7 +965,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant_retire + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant_retire + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -974,7 +974,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.taxe + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.taxe + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -983,7 +983,7 @@ class WalletDetail extends Component {
|
|||
</View>
|
||||
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||||
<Text
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.interet + ' ' + this.state.wallet.currency_code}</Text>
|
||||
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.interet + ' ' + wallet.currency_code}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||||
|
@ -1428,7 +1428,7 @@ class WalletDetail extends Component {
|
|||
|
||||
<View style={[styles.content]}>
|
||||
|
||||
<View style={{paddingTop: 20,}}>
|
||||
<View style={{paddingTop: 5,}}>
|
||||
<Text
|
||||
style={[Typography.headline, Typography.semibold]}>
|
||||
{I18n.t('NANO_CREDIT')}
|
||||
|
@ -1584,7 +1584,7 @@ class WalletDetail extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
`${thousands(item[element], ' ')}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'destinataire') ?
|
||||
item[element].length > 13 ? cutString(item[element], 13) : item[element]
|
||||
: isEqual(element, 'date') ?
|
||||
|
@ -1599,7 +1599,7 @@ class WalletDetail extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
`${thousands(item[element], ' ')}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'destinataire') ?
|
||||
item[element].length > 13 ? cutString(item[element], 13) : item[element]
|
||||
: isEqual(element, 'date') ?
|
||||
|
|
|
@ -53,7 +53,6 @@ import {
|
|||
optionRetraitUserScreen,
|
||||
transactionHistoryIlinkLabel
|
||||
} from '../../utils/UtilsFunction';
|
||||
import DeviceInfo from 'react-native-device-info';
|
||||
import {readUser} from '../../webservice/AuthApi';
|
||||
|
||||
let moment = require('moment-timezone');
|
||||
|
@ -554,7 +553,7 @@ class WalletDetailUser extends Component {
|
|||
|
||||
<View style={[styles.content]}>
|
||||
|
||||
<View style={{paddingTop: 20,}}>
|
||||
<View style={{paddingTop: 5,}}>
|
||||
<Text
|
||||
style={[Typography.headline, Typography.semibold]}>
|
||||
{I18n.t('NANO_CREDIT')}
|
||||
|
@ -840,7 +839,7 @@ class WalletDetailUser extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
`${thousands(item[element], ' ')}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')}`
|
||||
: isEqual(element, 'destinataire') ?
|
||||
item[element].length > 13 ? cutString(item[element], 13) : item[element]
|
||||
: isEqual(element, 'date') ?
|
||||
|
|
|
@ -32,6 +32,7 @@ import Icons from 'react-native-vector-icons/Ionicons'
|
|||
import {Typography} from '../../config/typography';
|
||||
import LottieView from 'lottie-react-native';
|
||||
import {
|
||||
cutString,
|
||||
cutStringWithoutDot,
|
||||
displayToast,
|
||||
displayTransactionType,
|
||||
|
@ -241,7 +242,7 @@ class WalletOptionSelect extends Component {
|
|||
|
||||
<View style={[styles.content]}>
|
||||
|
||||
<View style={styles.contentTitle}>
|
||||
<View style={[styles.contentTitle], {paddingTop: options.title.length > 20 ? 0 : 5}}>
|
||||
<Text style={[Typography.headline, Typography.semibold]}>
|
||||
{I18n.t(options.title)}
|
||||
</Text>
|
||||
|
@ -285,7 +286,7 @@ class WalletOptionSelect extends Component {
|
|||
|
||||
<View style={[styles.content]}>
|
||||
|
||||
<View style={styles.contentTitle}>
|
||||
<View style={[styles.contentTitle], {paddingTop: options.title.length > 20 ? 0 : 5}}>
|
||||
<Text style={[Typography.headline, Typography.semibold]}>
|
||||
{I18n.t(options.title)}
|
||||
</Text>
|
||||
|
@ -454,7 +455,7 @@ class WalletOptionSelect extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
` ${thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'date_creation') ?
|
||||
cutStringWithoutDot(item[element], 16)
|
||||
: item[element]
|
||||
|
@ -469,7 +470,7 @@ class WalletOptionSelect extends Component {
|
|||
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||||
{
|
||||
isEqual(element, 'montant') ?
|
||||
` ${thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet.currency_code}`
|
||||
: isEqual(element, 'date_creation') ?
|
||||
cutStringWithoutDot(item[element], 16)
|
||||
: item[element]
|
||||
|
|
|
@ -40,6 +40,8 @@
|
|||
"ENTER_VALID_AMOUNT": "Enter a valid amount",
|
||||
"ENTER_AMOUNT_SUPERIOR_ZEROR": "Enter amount superior to zero",
|
||||
"AMOUNT_SUPERIOR_TO_PRINCIPAL_ACCOUNT": "Amount greater than that of the agent's main account",
|
||||
"PAYMENT_DONE": "Payment done",
|
||||
"PAYMENT_ERROR": "Payment error",
|
||||
"MAKE_DEPOSIT": "Make a deposit",
|
||||
"MAKE_WITHDRAWAL": "Make withdrawal",
|
||||
"WITHDRAWAL_TYPE": "Withdrawal mode",
|
||||
|
@ -196,6 +198,9 @@
|
|||
"PAIEMENT_FACTURE": "Bill payment",
|
||||
"NUMERO_ABONNE": "Subscriber number",
|
||||
"IDENTIFIANT_ETUDIANT": "Student ID",
|
||||
"ENTER_VALID_IDENTIFIANT_ETUDIANT": "Enter a valid student ID",
|
||||
"ENTER_VALID_NUMERO_ABONNE": "Enter a valid subscriber number",
|
||||
"ENTER_VALID_PHONE_NUMBER": "Enter a valid phone number",
|
||||
"DEMAND_SEND": "Demand send",
|
||||
"EPARGNE_DEPOSE": "Savings deposited",
|
||||
"BREAK_EPARGNE": "Break my saving",
|
||||
|
@ -356,6 +361,7 @@
|
|||
"PASSWORD": "Password",
|
||||
"CONFIRM_PASSWORD": "Confirm the password",
|
||||
"PLEASE_ENTER_THE_PASSWORD": "Please enter the password",
|
||||
"PLEASE_ENTER_CORRECT_PASSWORD": "Please enter correct password",
|
||||
"PASSWORD_MODIFY": "Change your password",
|
||||
"OLD_PASSWORD": "Old password",
|
||||
"NEW_PASSWORD": "New password",
|
||||
|
|
|
@ -61,6 +61,8 @@
|
|||
"MAKE_DEPOSIT": "Effectuer un dépôt",
|
||||
"MAKE_WITHDRAWAL": "Effectuer un retrait",
|
||||
"WITHDRAWAL_TYPE": "Mode de paiement",
|
||||
"PAYMENT_DONE": "Paiement effectué",
|
||||
"PAYMENT_ERROR": "Erreur de paiement",
|
||||
"CHOOSE_SOURCE": "Choisir la source",
|
||||
"CHANGE_SOURCE_CARD": "Changer le type du numéro de saisie",
|
||||
"CREDIT_CARD": "Carte de crédit",
|
||||
|
@ -95,13 +97,13 @@
|
|||
"TRANSFER_IN_ACCOUNT": "Transfert dans le compte",
|
||||
"WITHDRAWAL_IN_CASH": "Retrait en cash",
|
||||
"WITHDRAWAL_IN_CASH_DESCRIPTION": "Retrait d'argent en cash",
|
||||
"WITHDRAWAL_WALLET_TO_CASH": "Retrait de votre wallet vers cash",
|
||||
"WITHDRAWAL_WALLET_TO_CASH": "Wallet vers cash",
|
||||
"WITHDRAWAL_WALLET_TO_CASH_DESCRIPTION": "Retirer de l'argent de votre Wallet vers cash",
|
||||
"WITHDRAWAL_CARD_TO_WALLET": "Retrait de votre carte vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_WALLET": "Retrait de votre banque vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_CASH": "Retrait de votre banque vers cash",
|
||||
"WITHDRAWAL_CARD_TO_WALLET": "Carte vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_WALLET": "Banque vers wallet",
|
||||
"WITHDRAWAL_BANK_TO_CASH": "Banque vers cash",
|
||||
"WITHDRAWAL_CARD_TO_WALLET_DESCRIPTION": "Retrait d'argent de votre carte vers wallet",
|
||||
"WITHDRAWAL_CARD_TO_CASH": "Retrait de votre carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH": "Carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH_AGENT": "Retrait carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH_DESCRIPTION": "Retrait de l'argent de votre carte vers cash",
|
||||
"WITHDRAWAL_CARD_TO_CASH_DESCRIPTION_AGENT": "Retrait de l'argent de carte vers cash",
|
||||
|
@ -112,13 +114,13 @@
|
|||
"DEPOSIT_CASH_TO_VISA": "Cash vers carte visa",
|
||||
"DEPOSIT_CASH_TO_VISA_DESCRIPTION": "Envoie d'argent de Cash vers carte visa",
|
||||
"DEPOSIT_CASH_TO_BANK": "Cash vers banque",
|
||||
"DEPOSIT_WALLET_TO_WALLET": "Votre Wallet vers wallet",
|
||||
"DEPOSIT_WALLET_TO_WALLET": "Wallet vers wallet",
|
||||
"ENVOIE_WALLET_TO_WALLET": "Envoie Wallet vers wallet",
|
||||
"DEPOSIT_WALLET_TO_CASH": "Votre Wallet vers cash",
|
||||
"ENVOIE_WALLET_TO_CASH": "Envoie Wallet vers cash",
|
||||
"DEPOSIT_WALLET_TO_CARD": "Votre Wallet vers carte",
|
||||
"DEPOSIT_WALLET_TO_CASH": "Wallet vers cash",
|
||||
"ENVOIE_WALLET_TO_CASH": "Wallet vers cash",
|
||||
"DEPOSIT_WALLET_TO_CARD": "Wallet vers carte",
|
||||
"ENVOIE_WALLET_TO_CARD": "Envoie Wallet vers carte",
|
||||
"DEPOSIT_WALLET_TO_BANK": "Votre Wallet vers banque",
|
||||
"DEPOSIT_WALLET_TO_BANK": "Wallet vers banque",
|
||||
"ENVOIE_WALLET_TO_BANK": "Envoie Wallet vers banque",
|
||||
"DEPOSIT_CASH_TO_CASH": "Cash vers cash",
|
||||
"ENVOIE_CASH_TO_CASH": "Envoie d'argent en cash vers cash",
|
||||
|
@ -161,9 +163,9 @@
|
|||
"TYPE_IDENTIFIANT": "Type d'identifiant",
|
||||
"PAYS_DESTINATION": "Pays destination",
|
||||
"ACTIVE_WALLET": "Réseau payeur",
|
||||
"DEPOSIT_TO_CASH": "Votre Wallet vers cash",
|
||||
"DEPOSIT_TO_CARD": "Votre Wallet vers carte",
|
||||
"DEPOSIT_TO_BANK": "Votre Wallet vers banque",
|
||||
"DEPOSIT_TO_CASH": "Wallet vers cash",
|
||||
"DEPOSIT_TO_CARD": "Wallet vers carte",
|
||||
"DEPOSIT_TO_BANK": "Wallet vers banque",
|
||||
"NANO_CREDIT": "Nano crédit",
|
||||
"NANO_CREDIT_LIST": "Liste des nano crédit",
|
||||
"SAVINGS_LIST": "Liste des épargnes",
|
||||
|
@ -182,11 +184,11 @@
|
|||
"CAUTIONNEMENT_DONE": "Cautionnement effectué",
|
||||
"ID_DEMAND": "Identifiant de la demande",
|
||||
"ID_SAVINGS": "Identifiant de l'épargne",
|
||||
"PAIEMENT_EAU": "Paiement eau",
|
||||
"PAIEMENT_ELECTRICITY": "Paiement électricité",
|
||||
"PAIEMENT_ECOLE": "Paiement école",
|
||||
"PAIEMENT_CREDIT_TELEPHONIQUE": "Paiement crédit téléphonique",
|
||||
"PAIEMENT_ABONNEMENT_TV": "Paiement abonnement TV",
|
||||
"PAIEMENT_EAU": "Eau",
|
||||
"PAIEMENT_ELECTRICITY": "Electricité",
|
||||
"PAIEMENT_ECOLE": "Ecole",
|
||||
"PAIEMENT_CREDIT_TELEPHONIQUE": "Crédit téléphonique",
|
||||
"PAIEMENT_ABONNEMENT_TV": "Abonnement TV",
|
||||
"NON_APPLICABLE": "Non applicable",
|
||||
"DATE": "Date",
|
||||
"DEMAND_DATE": "Date de la demande",
|
||||
|
@ -203,6 +205,9 @@
|
|||
"PAIEMENT_FACTURE": "Paiement de facture",
|
||||
"NUMERO_ABONNE": "Numéro d'abonnée",
|
||||
"IDENTIFIANT_ETUDIANT": "Identifiant étudiant",
|
||||
"ENTER_VALID_IDENTIFIANT_ETUDIANT": "Entrer un identifiant étudiant valide",
|
||||
"ENTER_VALID_NUMERO_ABONNE": "Entrer un numéro d'abonné valide",
|
||||
"ENTER_VALID_PHONE_NUMBER": "Entrer un numéro de téléphone valide",
|
||||
"WITHDRAWAL_DESCRIPTION": "Effectuer un retrait",
|
||||
"COMMISSION_ACCOUNT_TITLE": "Cpt. commission",
|
||||
"CONFIRM": "Confirmer",
|
||||
|
@ -367,6 +372,7 @@
|
|||
"NEW_PASSWORD": "Nouveau mot de passe",
|
||||
"CONFIRM_NEW_PASSWORD": "Confirmerz le nouveau mot de passe",
|
||||
"PLEASE_ENTER_THE_PASSWORD": "Veuillez renseigner le mot de passe",
|
||||
"PLEASE_ENTER_CORRECT_PASSWORD": "Veuillez renseigner un mot de passe correct",
|
||||
"MODIFY_AMOUNT": " Modifier le montant",
|
||||
"ENTER_NEW_AMOUNT_TO_SEND": " Entrer le nouveau montant à envoyer",
|
||||
"AMOUNT": "Montant",
|
||||
|
|
|
@ -205,6 +205,7 @@ export const readUser = () => {
|
|||
})
|
||||
});
|
||||
}
|
||||
|
||||
export const createGeolocatedAccount = (user) => {
|
||||
|
||||
return queryData(user, memberActionUrl)
|
||||
|
|
|
@ -74,6 +74,7 @@ export const getBankUrl = testBaseUrl + '/walletService/wallets/users/operators/
|
|||
export const getHistoryNanoPendingCreditUrl = testBaseUrl + '/walletService/groups/nanoCredit/demands_in_progress';
|
||||
export const getHistoryEpargnePendingUrl = testBaseUrl + '/walletService/groups/nanoCredit/savings/demands_in_progress';
|
||||
export const getOperatorListUrl = testBaseUrl + '/walletService/wallets/users/operators';
|
||||
export const payBillUrl = testBaseUrl + '/walletService/transactions/ilink';
|
||||
|
||||
export const authKeyUrl = testBaseUrl + '/oauth/token';
|
||||
export const videoUrl = "https://www.youtube.com/watch?v=wwGPDPsSLWY";
|
||||
|
|
|
@ -2,6 +2,7 @@ import {
|
|||
commissionAmount,
|
||||
getOperatorListUrl,
|
||||
linkCardUrl,
|
||||
payBillUrl,
|
||||
walletActionUrl,
|
||||
walletDetailUrl,
|
||||
walletUserSimpleActionUrl
|
||||
|
@ -15,6 +16,10 @@ import {
|
|||
fetchLinkCardPending,
|
||||
fetchLinkCardReset,
|
||||
fetchLinkCardSuccess,
|
||||
fetchPayBillError,
|
||||
fetchPayBillPending,
|
||||
fetchPayBillReset,
|
||||
fetchPayBillSuccess,
|
||||
fetchWalleGetCommissionError,
|
||||
fetchWalletGetCommissionPending,
|
||||
fetchWalletGetCommissionSuccess,
|
||||
|
@ -226,3 +231,40 @@ export const getOperatorListReset = () => {
|
|||
dispatch(fetchGetListOperatorReset());
|
||||
}
|
||||
}
|
||||
|
||||
export const payBillAction = (data) => {
|
||||
|
||||
const auth = store.getState().authKeyReducer;
|
||||
const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : '';
|
||||
console.log("Data send", data);
|
||||
return dispatch => {
|
||||
dispatch(fetchPayBillPending());
|
||||
|
||||
axios({
|
||||
url: payBillUrl,
|
||||
method: 'POST',
|
||||
data,
|
||||
headers: {
|
||||
'Authorization': authKey,
|
||||
'X-Localization': I18n.currentLocale()
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
console.log(response);
|
||||
dispatch(fetchPayBillSuccess(response));
|
||||
})
|
||||
.catch(error => {
|
||||
if (error.response)
|
||||
dispatch(fetchPayBillError(error.response));
|
||||
else if (error.request)
|
||||
dispatch(fetchPayBillError(error.request))
|
||||
else
|
||||
dispatch(fetchPayBillError(error.message))
|
||||
});
|
||||
}
|
||||
}
|
||||
export const payBillReset = () => {
|
||||
return dispatch => {
|
||||
dispatch(fetchPayBillReset());
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue