2271 lines
120 KiB
JavaScript
2271 lines
120 KiB
JavaScript
|
import isEqual from 'lodash/isEqual';
|
||
|
import isArray from 'lodash/isArray';
|
||
|
import omit from 'lodash/omit';
|
||
|
import 'moment/locale/en-au';
|
||
|
import 'moment/locale/en-ca';
|
||
|
import 'moment/locale/en-gb';
|
||
|
import 'moment/locale/en-ie';
|
||
|
import 'moment/locale/en-il';
|
||
|
import 'moment/locale/en-nz';
|
||
|
import 'moment/locale/es-us';
|
||
|
import 'moment/locale/fr';
|
||
|
import React, {Component} from 'react';
|
||
|
import {
|
||
|
ActivityIndicator,
|
||
|
Alert,
|
||
|
Animated,
|
||
|
FlatList,
|
||
|
Platform,
|
||
|
ProgressBarAndroid,
|
||
|
ScrollView,
|
||
|
StatusBar,
|
||
|
StyleSheet,
|
||
|
Text,
|
||
|
TouchableOpacity,
|
||
|
View
|
||
|
} from 'react-native';
|
||
|
import I18n from 'react-native-i18n';
|
||
|
import {responsiveWidth} from 'react-native-responsive-dimensions';
|
||
|
import {TabBar} from 'react-native-tab-view';
|
||
|
import Icons from 'react-native-vector-icons/Ionicons';
|
||
|
import Icon from 'react-native-vector-icons/MaterialCommunityIcons';
|
||
|
import {connect} from 'react-redux';
|
||
|
import {bindActionCreators} from 'redux';
|
||
|
import Tag from '../../components/Tag';
|
||
|
import {Color} from '../../config/Color';
|
||
|
import Dialog from "react-native-dialog";
|
||
|
import {Typography} from '../../config/typography';
|
||
|
import * as Utils from '../../utils/DeviceUtils';
|
||
|
import {IlinkEmitter} from "../../utils/events";
|
||
|
import {
|
||
|
cutString,
|
||
|
cutStringWithoutDot,
|
||
|
isEmptyObject,
|
||
|
isIlinkCityWallet,
|
||
|
optionNumeroQuitanceScreen,
|
||
|
optionOrdreRecetteScreen,
|
||
|
transactionHistoryHyperOrdreRecetteLabel,
|
||
|
transactionHistorySuperOrdreRecetteLabel,
|
||
|
transactionHistorySuperTaxNoticeLabel
|
||
|
} from '../../utils/UtilsFunction';
|
||
|
import {depositActionReset} from '../../webservice/DepositApi';
|
||
|
import {baseUrl} from '../../webservice/IlinkConstants';
|
||
|
import {getWalletDetailActivated, resetWalletListDetailReducer} from '../../webservice/WalletApi';
|
||
|
import {
|
||
|
getHyperSuperTransactionHistoryAction,
|
||
|
getHyperSuperTransactionHistoryReset,
|
||
|
getWalletTransactionHistory,
|
||
|
getWalletTransactionHistoryReset
|
||
|
} from '../../webservice/WalletTransactionHistoryApi';
|
||
|
import {resetCommissionReducer, transferCommissionAction} from '../../webservice/WalletTransferCommission';
|
||
|
import {readUser} from '../../webservice/AuthApi';
|
||
|
|
||
|
let moment = require('moment-timezone');
|
||
|
const thousands = require('thousands');
|
||
|
|
||
|
let route = require('./../../route.json');
|
||
|
let slugify = require('slugify');
|
||
|
require('../../utils/Translations');
|
||
|
|
||
|
|
||
|
|
||
|
class WalletDetail extends Component {
|
||
|
|
||
|
constructor(props) {
|
||
|
super(props);
|
||
|
this.state = {
|
||
|
index: 0,
|
||
|
routes: [
|
||
|
{key: 'depot', title: I18n.t('DEPOSIT')},
|
||
|
{key: 'retrait', title: I18n.t('WITHDRAWAL')}
|
||
|
],
|
||
|
heightHeader: Utils.heightHeader(),
|
||
|
isModalConfirmVisible: false,
|
||
|
wallet: {currency_code: ''},
|
||
|
triggerTransferCommission: false,
|
||
|
loading: false,
|
||
|
isTriggerRefresh: false,
|
||
|
scrollHeaderY: 0,
|
||
|
displayModalHistory: false,
|
||
|
displaySuperHyperModalHistory: false,
|
||
|
historyItemDetail: null,
|
||
|
user: null,
|
||
|
isDisplayHistoryOrdreRecette: false,
|
||
|
isDisplayHistoryDeclaration: true,
|
||
|
isDisplayHistoryReceipt: false,
|
||
|
historyTransactionMessage: I18n.t('HISTORY_OF') + ' ' + I18n.t('AVIS_IMPOSITIONS'),
|
||
|
historyResult: [],
|
||
|
page: 1,
|
||
|
perPage: 20,
|
||
|
loadMore: false,
|
||
|
};
|
||
|
|
||
|
this.renderContent = null;
|
||
|
slugify.extend({'+': 'plus'});
|
||
|
this.onEndReachedCalledDuringMomentum = true;
|
||
|
|
||
|
this.user = null;
|
||
|
this.scrollY = new Animated.Value(0);
|
||
|
this.scrollHeaderY = new Animated.Value(0);
|
||
|
this.deltaY = new Animated.Value(0);
|
||
|
this.bgBannerY = new Animated.Value(0);
|
||
|
|
||
|
this.heightImageBanner = Utils.scaleWithPixel(250, 1);
|
||
|
this.marginTopBanner = this.heightImageBanner - this.state.heightHeader - 40;
|
||
|
this.isHomeRootView = this.props.navigation.state.params.hasOwnProperty('agentId');
|
||
|
|
||
|
IlinkEmitter.on("langueChange", this.updateLangue.bind(this));
|
||
|
|
||
|
this.props.getWalletTransactionHistoryReset();
|
||
|
this.props.depositActionReset();
|
||
|
this.props.resetWalletListDetailReducer();
|
||
|
|
||
|
this.currentLocale = I18n.locale.includes("fr") ? "fr" : "en-gb";
|
||
|
moment.locale(this.currentLocale);
|
||
|
|
||
|
readUser().then((user) => {
|
||
|
if (user) {
|
||
|
if (user !== undefined) {
|
||
|
if (user.category !== undefined) {
|
||
|
if (user.category === "hyper" || user.category === "geolocated" || user.category === "super") {
|
||
|
let agentId = this.props.navigation.state.params.agentId;
|
||
|
this.props.getWalletDetailActivated(agentId, false);
|
||
|
this.props.getHyperSuperTransactionHistoryReset();
|
||
|
this.user = user;
|
||
|
}
|
||
|
if (user.category === "super") {
|
||
|
this.props.getWalletDetailActivated(this.props.navigation.state.params.wallet.id, false);
|
||
|
if (isIlinkCityWallet(this.props.navigation.state.params.wallet.type))
|
||
|
this.props.getWalletTransactionHistory(this.props.navigation.state.params.wallet.id, true);
|
||
|
else
|
||
|
this.props.getWalletTransactionHistory(this.props.navigation.state.params.wallet.id, false);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
this.getWalletDetail();
|
||
|
|
||
|
this.willFocus = this.props.navigation.addListener(
|
||
|
'willFocus',
|
||
|
payload => {
|
||
|
const {result} = this.props;
|
||
|
console.warn("will focus detail");
|
||
|
this.getWalletDetail();
|
||
|
this.setState({
|
||
|
wallet: {currency_code: ''}
|
||
|
}, () => {
|
||
|
if (result !== null) {
|
||
|
if (typeof result.response !== 'undefined') {
|
||
|
const wallet = result.response[0];
|
||
|
readUser().then((user) => {
|
||
|
if (user !== null && user !== undefined) {
|
||
|
if (user.category !== undefined) {
|
||
|
switch (user.category) {
|
||
|
case "super":
|
||
|
console.log("ON est pas superviseur nous");
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.agentId}?page=1&perPage=20`, false, 1);
|
||
|
break;
|
||
|
case "hyper":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.network_id}?page=1&perPage=20`, true, 1);
|
||
|
break;
|
||
|
case "geolocated":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.agentId}?page=1&perPage=20`, null, 0);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
this.setState({
|
||
|
wallet: wallet,
|
||
|
isTriggerRefresh: false
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
})
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
getWalletDetail = () => {
|
||
|
readUser().then((user) => {
|
||
|
if (user) {
|
||
|
if (user !== undefined) {
|
||
|
if (user.category !== undefined) {
|
||
|
let agentId = this.props.navigation.state.params.agentId;
|
||
|
this.props.getWalletDetailActivated(agentId, false);
|
||
|
if (user.category === "super") {
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.agentId}?page=1&perPage=20`, false, 1);
|
||
|
}
|
||
|
if (user.category === "hyper") {
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.network_id}?page=1&perPage=20`, true, 1);
|
||
|
}
|
||
|
if (user.category === "geolocated") {
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.agentId}?page=1&perPage=20`, null, 0);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
static navigatorStyle = {
|
||
|
navBarBackgroundColor: Color.primaryColor,
|
||
|
statusBarColor: Color.primaryDarkColor,
|
||
|
navBarTextColor: '#FFFFFF',
|
||
|
navBarButtonColor: '#FFFFFF'
|
||
|
|
||
|
};
|
||
|
|
||
|
static navigationOptions = () => {
|
||
|
return {
|
||
|
//title: I18n.t('WALLET'),
|
||
|
//title: this.isHomeRootView ? I18n.t('WALLET') : ((typeof this.props.navigation.state.params !== 'undefined') && this.props.navigation.state.params.wallet.network),
|
||
|
drawerLabel: () => null,
|
||
|
headerTitle: I18n.t('WALLET'),
|
||
|
headerTintColor: 'white',
|
||
|
headerStyle: {
|
||
|
backgroundColor: Color.primaryColor,
|
||
|
marginTop: 23,
|
||
|
color: 'white'
|
||
|
},
|
||
|
headerTitleStyle: {
|
||
|
color: "white"
|
||
|
},
|
||
|
title: I18n.t('WALLET')
|
||
|
}
|
||
|
};
|
||
|
|
||
|
componentDidMount() {
|
||
|
const {result, resultHistoryHyperSuper} = this.props;
|
||
|
if (result !== null) {
|
||
|
if (result.response !== null) {
|
||
|
const wallet = result.response;
|
||
|
console.warn('RESULT REQUEST', result.response);
|
||
|
|
||
|
this.setState({
|
||
|
wallet: wallet,
|
||
|
isTriggerRefresh: false
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
if (resultHistoryHyperSuper !== null) {
|
||
|
this.setState({loadMore: true});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
componentWillReceiveProps(nextProps, nextContext) {
|
||
|
|
||
|
this.setState({historyResult: []}, () => {
|
||
|
const {resultHistoryHyperSuper} = nextProps;
|
||
|
if (resultHistoryHyperSuper !== null) {
|
||
|
if (resultHistoryHyperSuper.response !== null) {
|
||
|
if (this.state.page < resultHistoryHyperSuper.response.last_page) {
|
||
|
this.setState({
|
||
|
historyResult: resultHistoryHyperSuper.response.data
|
||
|
});
|
||
|
}
|
||
|
if (this.state.page === resultHistoryHyperSuper.response.last_page) {
|
||
|
this.setState({
|
||
|
historyResult: resultHistoryHyperSuper.response.data
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
}
|
||
|
|
||
|
shouldComponentUpdate(nextProps, nextState) {
|
||
|
|
||
|
if (this.state.triggerTransferCommission !== nextState.triggerTransferCommission) {
|
||
|
|
||
|
return false;
|
||
|
} else {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// getWalletIcon = (wallet) => {
|
||
|
// return `${baseUrl}/datas/img/network/${slugify(wallet.type, {lower: true})}-logo.png`;
|
||
|
|
||
|
// }
|
||
|
// getWalletIcon = (wallet) => {
|
||
|
// return '../';
|
||
|
|
||
|
// }
|
||
|
|
||
|
getCreationDateToHumanFormat = (date) => {
|
||
|
let re = moment.tz(date, moment.tz.guess()).format();
|
||
|
return moment(re).fromNow();
|
||
|
}
|
||
|
|
||
|
updateLangue() {
|
||
|
this.props.navigation.setParams({name: I18n.t('WALLET')})
|
||
|
this.forceUpdate()
|
||
|
}
|
||
|
|
||
|
handleIndexChange = index => this.setState({index});
|
||
|
|
||
|
imageScale = () => {
|
||
|
return this.scrollY.interpolate({
|
||
|
inputRange: [0, 100],
|
||
|
outputRange: [1, 0.5],
|
||
|
extrapolate: 'clamp',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
imageTranslateY = () => {
|
||
|
return this.scrollY.interpolate({
|
||
|
inputRange: [0, 100],
|
||
|
outputRange: [-5, 50],
|
||
|
extrapolate: 'clamp',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
bgHeaderTranslateY = () => {
|
||
|
return this.scrollY.interpolate({
|
||
|
inputRange: [0, 150],
|
||
|
outputRange: [-5, 0],
|
||
|
extrapolate: 'clamp',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
refresh = () => {
|
||
|
const {result} = this.props;
|
||
|
console.log("STATE NAVIGATION PARAMS REFRESH", this.props.navigation.state);
|
||
|
|
||
|
if (!this.isHomeRootView) {
|
||
|
const {wallet} = this.props.navigation.state.params;
|
||
|
this.props.getWalletDetailActivated(wallet.id, false);
|
||
|
if (isIlinkCityWallet(wallet.type))
|
||
|
this.props.getWalletTransactionHistory(wallet.id, true);
|
||
|
else
|
||
|
this.props.getWalletTransactionHistory(wallet.id, false);
|
||
|
this.setState({
|
||
|
isTriggerRefresh: true
|
||
|
});
|
||
|
|
||
|
/* if (typeof this.props.navigation.state.params.onRefreshDetail !== 'undefined')
|
||
|
this.props.navigation.state.params.onRefreshDetail(); */
|
||
|
|
||
|
} else {
|
||
|
let agentId = this.props.navigation.state.params.agentId;
|
||
|
this.props.getWalletDetailActivated(agentId, true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
renderTabBar = props => (
|
||
|
<TabBar
|
||
|
{...props}
|
||
|
scrollEnabled
|
||
|
indicatorStyle={[styles.indicator, {backgroundColor: Color.primaryColor}]}
|
||
|
style={[styles.tabBar, {backgroundColor: Color.containerBackgroundColor}]}
|
||
|
inactiveColor={Color.dividerColor}
|
||
|
activeColor={Color.grayColor}
|
||
|
tabStyle={styles.tab}
|
||
|
renderLabel={({route, focused, color}) => (
|
||
|
<View style={{
|
||
|
flex: 1,
|
||
|
width: Utils.getWidthDevice() / 2,
|
||
|
alignItems: 'center'
|
||
|
}}>
|
||
|
<Text style={Typography.headline} style={{color}}>
|
||
|
{
|
||
|
(route.key === 'depot') ?
|
||
|
(<Icon name='arrow-bottom-right'
|
||
|
color={color} size={20}/>)
|
||
|
:
|
||
|
(<Icon name='arrow-top-left'
|
||
|
color={color} size={20}/>)
|
||
|
}
|
||
|
{` ${route.title}`}
|
||
|
|
||
|
</Text>
|
||
|
|
||
|
</View>
|
||
|
)}
|
||
|
|
||
|
/>
|
||
|
);
|
||
|
|
||
|
renderHeader = (wallet) => (
|
||
|
<View style={[
|
||
|
styles.containField,
|
||
|
{
|
||
|
backgroundColor: Color.cardBackgroundColor,
|
||
|
zIndex: 11,
|
||
|
shadowColor: Color.borderColor,
|
||
|
borderColor: Color.borderColor,
|
||
|
}
|
||
|
]}>
|
||
|
<View style={[styles.contentLeftItem]}>
|
||
|
<Text numberOfLines={1} style={[Typography.caption2, Typography.semibold]}>{I18n.t('COUNTRY')}</Text>
|
||
|
<Text numberOfLines={1} adjustsFontSizeToFit={true} style={Typography.caption1}>{wallet.country}</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{
|
||
|
flex: 1,
|
||
|
alignItems: 'center',
|
||
|
justifyContent: 'flex-end',
|
||
|
}}>
|
||
|
<Animated.Image
|
||
|
source={require('../../assets/img/png/wallet.png')}
|
||
|
style={{
|
||
|
width: 120,
|
||
|
height: 120,
|
||
|
borderRadius: 60,
|
||
|
position: 'absolute',
|
||
|
alignSelf: 'center',
|
||
|
backgroundColor: Color.whiteColor,
|
||
|
bottom: 70,
|
||
|
transform: [{
|
||
|
scale: this.imageScale()
|
||
|
},
|
||
|
{
|
||
|
translateY: this.imageTranslateY()
|
||
|
}]
|
||
|
}}/>
|
||
|
|
||
|
<View style={{
|
||
|
marginTop: 1, flex: 1,
|
||
|
alignItems: 'center',
|
||
|
justifyContent: 'flex-end'
|
||
|
}}>
|
||
|
{(this.user !== null) ?
|
||
|
(this.user.role === "REFILL_AGENT") &&
|
||
|
<View style={{flexDirection: 'row'}}>
|
||
|
<Tag primary
|
||
|
icon={<Icon name='swap-horizontal' size={20} color={Color.whiteColor}
|
||
|
style={{marginLeft: 15}}/>}
|
||
|
style={{
|
||
|
paddingRight: 10,
|
||
|
width: 120,
|
||
|
}}
|
||
|
onPress={() => {
|
||
|
const {result} = this.props.result;
|
||
|
|
||
|
if (result !== null) {
|
||
|
if (typeof result.response !== 'undefined') {
|
||
|
|
||
|
if (parseInt(result.response.balance_com) === 0) {
|
||
|
Alert.alert(
|
||
|
I18n.t("TRANSFER_COMMISSION_IMPOSSIBLE"),
|
||
|
I18n.t("COMMISSION_TRANSFER_ERROR_EMPTY"),
|
||
|
[
|
||
|
{
|
||
|
text: I18n.t("OK"), onPress: () => {
|
||
|
this.props.resetCommissionReducer();
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
{cancelable: false}
|
||
|
)
|
||
|
} else
|
||
|
this.renderDialogConfirmTransferCommission()
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}}>
|
||
|
{I18n.t('TRANSFER_TO_PRINCIPAL_ACCOUNT')}
|
||
|
</Tag>
|
||
|
</View>
|
||
|
: null
|
||
|
}
|
||
|
|
||
|
{this.user !== null ?
|
||
|
this.user.category === "hyper" &&
|
||
|
<Text style={[Typography.headline, Typography.semibold]}
|
||
|
numberOfLines={1}>{wallet.network}</Text>
|
||
|
: null}
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={styles.contentLeftItem}>
|
||
|
<Text numberOfLines={1}
|
||
|
style={[Typography.caption2, Typography.semibold]}>{I18n.t('CREATION_DATE')}</Text>
|
||
|
<Text numberOfLines={1} adjustsFontSizeToFit={true}
|
||
|
style={Typography.caption1}>{moment(wallet.created_date).format('DD/MM/YYYY')}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
);
|
||
|
|
||
|
renderLoader = () => {
|
||
|
return (
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
{Platform.OS === 'android'
|
||
|
?
|
||
|
(
|
||
|
<>
|
||
|
<ProgressBarAndroid/>
|
||
|
<Text>{I18n.t('LOADING_DOTS')}</Text>
|
||
|
|
||
|
</>
|
||
|
) :
|
||
|
<>
|
||
|
<ActivityIndicator size="large" color={'#ccc'}/>
|
||
|
<Text>{I18n.t('LOADING_DOTS')}</Text>
|
||
|
</>
|
||
|
}
|
||
|
</View>
|
||
|
)
|
||
|
}
|
||
|
|
||
|
renderAccountDetail = (wallet) => (
|
||
|
<View style={{flexDirection: 'row', flex: 1, justifyContent: 'space-between'}}>
|
||
|
|
||
|
<View
|
||
|
style={{
|
||
|
flexDirection: 'row',
|
||
|
alignItems: 'center',
|
||
|
}}>
|
||
|
<View
|
||
|
style={[
|
||
|
styles.circlePoint,
|
||
|
{backgroundColor: Color.primaryColor},
|
||
|
]}>
|
||
|
<Icons name='md-wallet'
|
||
|
size={28}
|
||
|
color={Color.whiteColor}
|
||
|
/>
|
||
|
</View>
|
||
|
<View>
|
||
|
<Text style={[Typography.title3, Color.primaryColor, {marginBottom: 3}]}>
|
||
|
{I18n.t('PRINCIPAL_ACCOUNT_TITLE')}
|
||
|
</Text>
|
||
|
<Text
|
||
|
style={[Typography.body2]}>{`${thousands(wallet.balance_princ, ' ')} ${wallet.currency_code}`}</Text>
|
||
|
</View>
|
||
|
|
||
|
{
|
||
|
(this.user !== null) ?
|
||
|
(this.user.role === "REFILL_AGENT") ?
|
||
|
<View
|
||
|
style={{
|
||
|
flexDirection: 'row',
|
||
|
alignItems: 'center',
|
||
|
marginLeft: 30
|
||
|
}}>
|
||
|
<View
|
||
|
style={[
|
||
|
styles.circlePoint,
|
||
|
{backgroundColor: Color.primaryColor},
|
||
|
]}>
|
||
|
<Icons name='md-cash'
|
||
|
size={28}
|
||
|
color={Color.whiteColor}
|
||
|
/>
|
||
|
</View>
|
||
|
<View>
|
||
|
<Text style={[Typography.title3, Color.primaryColor, {marginBottom: 3}]}>
|
||
|
{I18n.t('COMMISSION_ACCOUNT_TITLE')}
|
||
|
</Text>
|
||
|
<Text
|
||
|
style={Typography.body2}>{`${thousands(wallet.balance_com, ' ')} ${wallet.currency_code}`}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
: null
|
||
|
:null
|
||
|
}
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
);
|
||
|
|
||
|
renderModalHistoryDetail = (wallet) => {
|
||
|
const {historyItemDetail} = this.state;
|
||
|
|
||
|
return (
|
||
|
|
||
|
<Dialog.Container useNativeDriver={true} visible={this.state.displayModalHistory}>
|
||
|
|
||
|
<Dialog.Title>{I18n.t('HISTORY_DETAIL')}</Dialog.Title>
|
||
|
|
||
|
<View>
|
||
|
<View style={[styles.blockView, {borderBottomColor: Color.borderColor}]}>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('OPERATION')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.operation}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('TRANSACTION_ID')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.id_transaction}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>Date</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.date}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('INIT_COUNTRY')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.init_country}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('FEES_AND_TAXES')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.frais}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('NET_AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant_net_init}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('EMETTEUR')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.emetteur}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('DESTINATAIRE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.destinataire}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('FINAL_COUNTRY')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.final_country}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('NET_AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.montant_net_final}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('ACTIVE_WALLET')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.reseau_payeur}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
|
||
|
<Dialog.Button bold={true} label={I18n.t('OK')} onPress={() => {
|
||
|
this.setState({
|
||
|
displayModalHistory: !this.state.displayModalHistory,
|
||
|
});
|
||
|
|
||
|
}}/>
|
||
|
|
||
|
</Dialog.Container>
|
||
|
|
||
|
);
|
||
|
}
|
||
|
|
||
|
handleLoadMore = () => {
|
||
|
|
||
|
//this.props.getHyperSuperTransactionHistoryReset();
|
||
|
console.log('load more call isDisplayHistoryOrdreRecette', this.state.isDisplayHistoryOrdreRecette);
|
||
|
console.log('load more call isDisplayHistoryDeclaration', this.state.isDisplayHistoryDeclaration);
|
||
|
console.log('load more call isDisplayHistoryReceipt', this.state.isDisplayHistoryReceipt);
|
||
|
if (this.state.isDisplayHistoryOrdreRecette) {
|
||
|
if (this.user !== null) {
|
||
|
if (this.user.category !== null) {
|
||
|
switch (this.user.category) {
|
||
|
case "hyper":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${this.user.network_id}?page=1&perPage=${this.state.perPage + 20}`, true, 2);
|
||
|
break;
|
||
|
|
||
|
case "super":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${this.user.agentId}?page=1&perPage=${this.state.perPage + 20}`, false, 2);
|
||
|
break;
|
||
|
|
||
|
case "geolocated":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${user.agentId}?page=1&perPage=${this.state.perPage + 20}`, null, 0);
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (this.state.isDisplayHistoryDeclaration) {
|
||
|
if (this.user !== null) {
|
||
|
if (this.user.category !== null) {
|
||
|
switch (this.user.category) {
|
||
|
case "hyper":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${this.user.network_id}?page=1&perPage=${this.state.perPage + 20}`, true, 1);
|
||
|
break;
|
||
|
|
||
|
case "super":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${this.user.agentId}?page=1&perPage=${this.state.perPage + 20}`, false, 1);
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (this.state.isDisplayHistoryReceipt) {
|
||
|
if (this.user !== null) {
|
||
|
if (this.user.category !== null) {
|
||
|
switch (this.user.category) {
|
||
|
case "hyper":
|
||
|
this.props.getHyperSuperTransactionHistoryAction(`${this.user.network_id}?page=1&perPage=${this.state.perPage + 20}`, true, 3);
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
this.setState({perPage: this.state.perPage + 20});
|
||
|
}
|
||
|
|
||
|
renderFooterLoader = () => {
|
||
|
|
||
|
if (!this.state.loadMore)
|
||
|
return null;
|
||
|
else
|
||
|
return (
|
||
|
<View
|
||
|
style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}
|
||
|
>
|
||
|
{Platform.OS === 'android'
|
||
|
?
|
||
|
(
|
||
|
<>
|
||
|
<ProgressBarAndroid/>
|
||
|
<Text>{I18n.t('LOADING_DOTS')}</Text>
|
||
|
|
||
|
</>
|
||
|
) :
|
||
|
<>
|
||
|
<ActivityIndicator size="small" color={'#ccc'}/>
|
||
|
<Text>{I18n.t('LOADING_DOTS')}</Text>
|
||
|
</>
|
||
|
}
|
||
|
</View>
|
||
|
);
|
||
|
};
|
||
|
|
||
|
renderSuperHyperHistoryTransactionItem = (item, index) => {
|
||
|
|
||
|
return (
|
||
|
<TouchableOpacity onPress={() => {
|
||
|
this.setState({displaySuperHyperModalHistory: true, historyItemDetail: item})
|
||
|
}} style={[styles.contentService, {borderBottomColor: Color.primaryColor}]}>
|
||
|
{
|
||
|
this.state.isDisplayHistoryOrdreRecette ?
|
||
|
|
||
|
Object.keys(omit(item, ['id', 'id_actor', 'action', 'old_tax_units_count', 'id_network_tax', 'tax_units_count', 'old_data_id', 'id_royalty_fee', 'tax_deleted', 'amount', 'tax_name', 'prototype', 'tax_billing_period', 'tax_measurement_unit', 'tax_notice_amount', 'tax_notice_created_at', 'tax_unit_price', 'new_data_id', 'new_data_id', 'registration_year',
|
||
|
'id_receipt', 'image', 'id_agent', 'id_super', 'updated_at', 'created_at', 'id_tax_notice', 'is_company', 'recall_number',
|
||
|
'year', 'office_penalties', 'month_delay_penalties', 'month_delay_penalties', 'payment_deadline_date',
|
||
|
'revenue_order_created_at', 'adresse', 'lastname', 'code_membre', 'code_parrain', 'phone', 'email', 'status',
|
||
|
'currency_code', 'owner_id', 'owner_id', 'issuer_lastname', 'issuer_phone',
|
||
|
'IRPP', 'tax_notice_created_at', 'TVA', 'activity_type', 'responsable_name', 'taxes', 'identification_number', 'district',
|
||
|
'id_tax_notice', 'year_tax_paid_N_3', 'issuer_id', 'image', 'year_tax_paid_N_1', 'year_tax_paid_N_2', 'trade_registry', 'technical_approval',
|
||
|
'neighborhood', 'network_id', 'id_network', 'office_penalties', 'payment_deadline_date', 'recall_number', 'id_patente', 'id_country', 'id_agent', 'municipality'])).map((element, i) => (
|
||
|
<View style={{alignItems: 'center'}} key={i}>
|
||
|
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{
|
||
|
isEqual(element, 'montant') ?
|
||
|
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet !== undefined ? this.state.wallet.currency_code : ""}`
|
||
|
: isEqual(element, 'history_action') ?
|
||
|
item[element] === "M" ? I18n.t("UPDATE") : I18n.t("ADD")
|
||
|
: isEqual(element, 'date') ?
|
||
|
cutStringWithoutDot(item[element], 16)
|
||
|
: isArray(item[element]) ? "" : item[element]
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
)) : this.state.isDisplayHistoryReceipt ?
|
||
|
|
||
|
Object.keys(omit(item, ['old_data_id', 'old_tax_units_count', 'id_actor', 'id_network_tax', 'tax_units_count', 'id', 'id_network', 'id_royalty_fee', 'tax_deleted', 'network_amount', 'registration_year', 'receipt_created_at', 'revenue_order_created_at', 'history_status', 'new_data_id', 'new_data_id',
|
||
|
'image', 'id_agent', 'id_super', 'date', 'id_revenue_order', 'is_company', 'recall_number',
|
||
|
'year', 'office_penalties', 'month_delay_penalties', 'month_delay_penalties', 'payment_deadline_date', 'status',
|
||
|
'status', 'revenue_order_created_at', 'issuer_id', 'image', 'adresse', 'lastname', 'code_membre', 'code_parrain', 'phone', 'email',
|
||
|
'currency_code', 'owner_id', 'owner_id', 'issuer_lastname', 'issuer_phone',
|
||
|
'IRPP', 'tax_notice_created_at', 'TVA', 'activity_type', 'responsable_name', 'taxes', 'identification_number', 'district', 'year_tax_paid_N_3', 'year_tax_paid_N_1', 'year_tax_paid_N_2', 'trade_registry', 'technical_approval',
|
||
|
'neighborhood', 'network_id', 'office_penalties', 'payment_deadline_date', 'recall_number', 'id_patente', 'id_country', 'id_agent', 'municipality'])).map((element, i) => (
|
||
|
<View style={{alignItems: 'center'}} key={i}>
|
||
|
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{
|
||
|
isEqual(element, 'montant') ?
|
||
|
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet !== undefined ? this.state.wallet.currency_code : ""}`
|
||
|
: isEqual(element, 'history_action') ?
|
||
|
item[element] === "M" ? I18n.t("UPDATE") : I18n.t("ADD")
|
||
|
: isEqual(element, 'updated_at') ?
|
||
|
cutStringWithoutDot(item[element], 16)
|
||
|
: isArray(item[element]) ? "" : item[element]
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
)) :
|
||
|
Object.keys(omit(item, ['old_data_id', 'old_tax_units_count', 'id_actor', 'id_network_tax', 'tax_units_count', 'id', 'id_network', 'id_royalty_fee', 'tax_deleted', 'network_amount', 'registration_year', 'receipt_created_at', 'revenue_order_created_at', 'history_status', 'new_data_id', 'new_data_id',
|
||
|
'id_receipt', 'image', 'id_agent', 'id_super', 'date', 'updated_at', 'id_revenue_order', 'is_company', 'recall_number',
|
||
|
'year', 'office_penalties', 'month_delay_penalties', 'month_delay_penalties', 'payment_deadline_date', 'status',
|
||
|
'status', 'revenue_order_created_at', 'issuer_id', 'image', 'adresse', 'lastname', 'code_membre', 'code_parrain', 'phone', 'email',
|
||
|
'action', 'currency_code', 'owner_id', 'owner_id', 'issuer_lastname', 'issuer_phone',
|
||
|
'IRPP', 'tax_notice_created_at', 'TVA', 'activity_type', 'responsable_name', 'taxes', 'identification_number', 'district', 'year_tax_paid_N_3', 'year_tax_paid_N_1', 'year_tax_paid_N_2', 'trade_registry', 'technical_approval',
|
||
|
'neighborhood', 'network_id', 'office_penalties', 'payment_deadline_date', 'recall_number', 'id_patente', 'id_country', 'id_agent', 'municipality'])).map((element, i) => (
|
||
|
<View style={{alignItems: 'center'}} key={i}>
|
||
|
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{
|
||
|
isEqual(element, 'montant') ?
|
||
|
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet !== undefined ? this.state.wallet.currency_code : ""}`
|
||
|
: isEqual(element, 'history_action') ?
|
||
|
item[element] === "M" ? I18n.t("UPDATE") : I18n.t("ADD")
|
||
|
: isEqual(element, 'date') ?
|
||
|
cutStringWithoutDot(item[element], 16)
|
||
|
: isArray(item[element]) ? "" : item[element]
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
))
|
||
|
}
|
||
|
</TouchableOpacity>
|
||
|
);
|
||
|
|
||
|
}
|
||
|
|
||
|
renderModalSuperHyperHistoryDetail = (wallet) => {
|
||
|
const {historyItemDetail} = this.state;
|
||
|
|
||
|
return (
|
||
|
|
||
|
<Dialog.Container useNativeDriver={true} visible={this.state.displaySuperHyperModalHistory}>
|
||
|
|
||
|
<Dialog.Title>{I18n.t('HISTORY_DETAIL')}</Dialog.Title>
|
||
|
|
||
|
{
|
||
|
this.state.isDisplayHistoryOrdreRecette ?
|
||
|
<ScrollView persistentScrollbar={true}>
|
||
|
<View style={[styles.blockView, {borderBottomColor: Color.borderColor}]}>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>Type</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{(this.state.historyItemDetail.type)}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
{
|
||
|
this.user !== null ?
|
||
|
this.user.category !== "geolocated" &&
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('ACTION')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.history_action === "M" ? I18n.t('UPDATE') : I18n.t('ADD')}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
: null
|
||
|
}
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('NAME')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.lastname}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('EMAIL')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.email}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('PHONE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.phone}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('ISSUER_LASTNAME')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.issuer_lastname}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('ISSUER_PHONE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.issuer_phone}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('OLD_VALUE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.old_data_id}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('NEW_VALUE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.new_data_id}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
{
|
||
|
this.state.historyItemDetail.hasOwnProperty("revenue_orders") &&
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('ORDRE_DE_RECETTE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>
|
||
|
{
|
||
|
this.state.historyItemDetail.revenue_orders.map((ordreRecette) => {
|
||
|
let message = "";
|
||
|
message = ordreRecette.tax_name + " | " + ordreRecette.amount + " | " + ordreRecette.payment_deadline_date + "\n\n";
|
||
|
return message;
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
}
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('PRINCIPAL_AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.amount}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('TOTAL_AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.amount}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('DATE_AVIS_IMPOSITION')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.created_at}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('UPDATE_DATE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.updated_at}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('PAYMENT_DEADLINE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.payment_deadline_date}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('YEAR')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.year}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
</View>
|
||
|
</ScrollView>
|
||
|
:
|
||
|
<ScrollView persistentScrollbar={true}>
|
||
|
<View style={[styles.blockView, {borderBottomColor: Color.borderColor}]}>
|
||
|
{
|
||
|
this.user !== null ?
|
||
|
this.user.category !== "geolocated" &&
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('ACTION')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.history_action === "M" ? I18n.t('UPDATE') : I18n.t('ADD')}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
: null
|
||
|
}
|
||
|
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('ID_TAX_NOTICE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.id_tax_notice}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('STATUS')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.status}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('NAME')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.lastname}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('EMAIL')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.email}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('ARRONDISSEMENT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.district}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('NEIGHTBORHOOD')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.neighborhood}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('NOM_RESPONSABLE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.responsable_name}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('TECHNICAL_AGREMENT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.technical_approval}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('PHONE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.phone}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('PRINCIPAL_AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.amount}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('OFFICE_PENALITIES')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.office_penalties}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('MONTH_DELAY_PENALTIES')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.month_delay_penalties}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('TOTAL_AMOUNT')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.amount}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
{
|
||
|
this.state.historyItemDetail.hasOwnProperty("penalties") ?
|
||
|
this.state.historyItemDetail.penalties.length > 0 ?
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('PENALITE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>
|
||
|
{
|
||
|
this.state.historyItemDetail.penalties.map((penalite) => {
|
||
|
let message = "";
|
||
|
message = penalite.name + " \n " + (penalite.n_order === 2 ? penalite.tax_amount : penalite.amount) + (penalite.n_order === 1 ? ` | ${penalite.rate} %` : "") + "\n\n";
|
||
|
return message;
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
</View> : null : null
|
||
|
}
|
||
|
{
|
||
|
this.state.historyItemDetail.hasOwnProperty("taxes") &&
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('AVIS_IMPOSITION')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>
|
||
|
{
|
||
|
this.state.historyItemDetail.taxes.map((taxe) => {
|
||
|
let message = "";
|
||
|
if (taxe.hasOwnProperty('new_quantity'))
|
||
|
message = taxe.name + " | " + taxe.unit_price + " | (" + taxe.old_quantity + ", " + taxe.old_quantity + ")\n\n";
|
||
|
else
|
||
|
message = taxe.name + " | " + taxe.quantity + " | " + taxe.amount + "\n\n";
|
||
|
return message;
|
||
|
}
|
||
|
)
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
}
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('DATE_AVIS_IMPOSITION')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.created_at}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text style={[styles.body2]}>{I18n.t('UPDATE_DATE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.updated_at}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('PAYMENT_DEADLINE')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.payment_deadline_date}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
<View style={{flexDirection: 'row', marginTop: 10}}>
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text tyle={[Typography.body2]}>{I18n.t('YEAR')}</Text>
|
||
|
</View>
|
||
|
<View style={{flex: 1, alignItems: 'flex-end'}}>
|
||
|
<Text
|
||
|
style={[Typography.caption1, Color.grayColor]}>{this.state.historyItemDetail.year}</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
</View>
|
||
|
</ScrollView>
|
||
|
|
||
|
}
|
||
|
|
||
|
<Dialog.Button bold={true} label={I18n.t('OK')} onPress={() => {
|
||
|
this.setState({
|
||
|
displaySuperHyperModalHistory: !this.state.displaySuperHyperModalHistory,
|
||
|
});
|
||
|
|
||
|
}}/>
|
||
|
|
||
|
</Dialog.Container>
|
||
|
|
||
|
);
|
||
|
}
|
||
|
|
||
|
renderSuperHyperHistoryTransactionList = () => {
|
||
|
|
||
|
const {resultHistoryHyperSuper, errorHistoryHyperSuper} = this.props;
|
||
|
if (errorHistoryHyperSuper !== null) {
|
||
|
if (typeof errorHistoryHyperSuper.data !== 'undefined') {
|
||
|
return (
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
<Text style={Typography.body1}>{errorHistoryHyperSuper.data.error}</Text>
|
||
|
</View>
|
||
|
)
|
||
|
} else {
|
||
|
return (
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
<Text style={Typography.body1}>{errorHistoryHyperSuper}</Text>
|
||
|
</View>
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (resultHistoryHyperSuper !== null) {
|
||
|
if (resultHistoryHyperSuper.response !== null) {
|
||
|
return (
|
||
|
<>
|
||
|
<View style={[styles.contentService, {borderBottomColor: Color.primaryColor}]}>
|
||
|
{
|
||
|
this.state.isDisplayHistoryOrdreRecette ?
|
||
|
this.user.category === "hyper" ?
|
||
|
transactionHistoryHyperOrdreRecetteLabel().map((item, index) => (
|
||
|
<View style={{alignItems: 'center'}} key={index}>
|
||
|
<Icon name={item.icon} size={24} color={Color.primaryColor}/>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{I18n.t(item.label)}
|
||
|
</Text>
|
||
|
</View>
|
||
|
)) :
|
||
|
transactionHistorySuperOrdreRecetteLabel().map((item, index) => (
|
||
|
<View style={{alignItems: 'center'}} key={index}>
|
||
|
<Icon name={item.icon} size={24} color={Color.primaryColor}/>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{I18n.t(item.label)}
|
||
|
</Text>
|
||
|
</View>
|
||
|
)) :
|
||
|
transactionHistorySuperTaxNoticeLabel().map((item, index) => (
|
||
|
<View style={{alignItems: 'center'}} key={index}>
|
||
|
<Icon name={item.icon} size={24} color={Color.primaryColor}/>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{I18n.t(item.label)}
|
||
|
</Text>
|
||
|
</View>
|
||
|
))
|
||
|
}
|
||
|
</View>
|
||
|
<FlatList
|
||
|
style={{flex: 1}}
|
||
|
ListEmptyComponent={() => {
|
||
|
return (
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'flex-start'}}>
|
||
|
<Text style={Typography.body1}>{I18n.t('NO_WALLET_HISTORY')}</Text>
|
||
|
</View>)
|
||
|
}}
|
||
|
data={this.state.historyResult}
|
||
|
keyExtractor={(item, index) => item.id}
|
||
|
renderItem={({item, index}) => (
|
||
|
this.renderSuperHyperHistoryTransactionItem(item, index)
|
||
|
)}
|
||
|
onEndReached={({distanceFromEnd}) => {
|
||
|
if (this.state.page < resultHistoryHyperSuper.response.last_page) {
|
||
|
this.setState({loadMore: true}, () => {
|
||
|
this.handleLoadMore();
|
||
|
this.onEndReachedCalledDuringMomentum = true;
|
||
|
});
|
||
|
}
|
||
|
}}
|
||
|
ListFooterComponent={this.renderFooterLoader()}
|
||
|
onEndReachedThreshold={0.5}
|
||
|
/>
|
||
|
</>
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
renderSuperHyperHistoryTransaction = () => {
|
||
|
|
||
|
return (
|
||
|
<>
|
||
|
{
|
||
|
this.props.resultHistoryHyperSuper &&
|
||
|
<>
|
||
|
<View style={[styles.checkDefault, {borderBottomColor: Color.borderColor}]}>
|
||
|
<Text
|
||
|
style={[Typography.title3, Typography.semibold]}>
|
||
|
{
|
||
|
this.user !== null ?
|
||
|
this.user.category === "super" || this.user.category === "hyper" ?
|
||
|
this.state.historyTransactionMessage
|
||
|
:
|
||
|
I18n.t('HISTORY_OF') + ' ' + I18n.t('AVIS_IMPOSITIONS') :
|
||
|
null
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
{this.renderSuperHyperHistoryTransactionList()}
|
||
|
</>
|
||
|
}
|
||
|
</>
|
||
|
)
|
||
|
}
|
||
|
|
||
|
renderDetailWallet = (wallet) => {
|
||
|
return (
|
||
|
|
||
|
!isEmptyObject(wallet) ?
|
||
|
(<>
|
||
|
{this.state.triggerTransferCommission && this.renderDialogTransferCommissionResponse()}
|
||
|
{/* {this.state.loading ?
|
||
|
<View
|
||
|
style={{ position: "absolute", zIndex: 1, backgroundColor: "#00000050", width: this.state.loading ? responsiveWidth(100) : 0, height: this.state.loading ? responsiveHeight(100) : 0, flex: 1, justifyContent: 'center', alignItems: 'center' }}>
|
||
|
<Text style={{ fontSize: 20, color: 'white', fontWeight: 'bold' }}>{I18n.t("LOADING_DOTS")}</Text>
|
||
|
</View> : null
|
||
|
} */}
|
||
|
|
||
|
<View
|
||
|
style={styles.container}>
|
||
|
|
||
|
<Animated.View style={{
|
||
|
position: 'absolute',
|
||
|
width: "100%",
|
||
|
zIndex: 1,
|
||
|
backgroundColor: Color.primaryColor,
|
||
|
height: 140 - this.state.scrollHeaderY,
|
||
|
}}/>
|
||
|
|
||
|
<ScrollView ref={component => this._scrollView = component}
|
||
|
style={{
|
||
|
paddingHorizontal: 20,
|
||
|
flex: 1,
|
||
|
zIndex: 2
|
||
|
}}
|
||
|
scrollEventThrottle={8}
|
||
|
onScroll={Animated.event([
|
||
|
{
|
||
|
nativeEvent: {
|
||
|
contentOffset: {y: this.scrollY},
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
{
|
||
|
listener: (event) => {
|
||
|
this.setState({scrollHeaderY: event.nativeEvent.contentOffset.y});
|
||
|
}
|
||
|
})}>
|
||
|
<View style={{marginTop: 80,}}>
|
||
|
|
||
|
{this.renderHeader(wallet)}
|
||
|
|
||
|
<View
|
||
|
style={[styles.blockView, {borderBottomColor: Color.borderColor}]}>
|
||
|
|
||
|
{this.renderAccountDetail(wallet)}
|
||
|
{this.user !== null ?
|
||
|
this.user.category === "super" && this.user.role !== "REFILL_AGENT" ? (
|
||
|
<>
|
||
|
<View
|
||
|
style={[styles.checkDefault, {borderBottomColor: Color.borderColor}]}>
|
||
|
<Text
|
||
|
style={[Typography.title3, Typography.semibold]}>
|
||
|
{I18n.t('TRANSACTIONS')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={styles.transactionContainer}>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.modifyTaxeImposition);
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='pencil'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('MODIFY_AVIS_IMPOSITION')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('DEPOSIT_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
|
||
|
<View style={styles.containerTouch}>
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.walletOptionSelect, {
|
||
|
optionSelect: optionOrdreRecetteScreen,
|
||
|
wallet,
|
||
|
onGoBack: () => this.refresh(),
|
||
|
lottie: {
|
||
|
source: require("../../assets/json/25237-receipt"),
|
||
|
loop: false
|
||
|
}
|
||
|
});
|
||
|
//this.props.navigation.navigate(route.ordreRecette);
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
<Icon name='file'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('ORDRE_DE_RECETTE')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('WITHDRAWAL_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
</View>
|
||
|
|
||
|
<View style={styles.transactionContainer}>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.walletOptionSelect, {
|
||
|
optionSelect: optionNumeroQuitanceScreen,
|
||
|
wallet,
|
||
|
onGoBack: () => this.refresh(),
|
||
|
lottie: {
|
||
|
source: require("../../assets/json/25237-receipt"),
|
||
|
loop: false
|
||
|
}
|
||
|
});
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='file'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('NUMERO_QUITANCE')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('DEPOSIT_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.penalteTaxe, {
|
||
|
wallet,
|
||
|
onGoBack: () => this.refresh()
|
||
|
});
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='file'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('PENALITE_MANAGE')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('DEPOSIT_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
</View>
|
||
|
|
||
|
<View style={styles.transactionContainer}>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.historicScreen, {
|
||
|
isAgentGeolocated: false,
|
||
|
isSuper: true,
|
||
|
isHyper: false
|
||
|
|
||
|
});
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='history'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('HISTORY')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
|
||
|
<View/>
|
||
|
</View>
|
||
|
|
||
|
</>
|
||
|
) :
|
||
|
this.user.category === "geolocated" ?
|
||
|
|
||
|
<>
|
||
|
<View
|
||
|
style={[styles.checkDefault, {borderBottomColor: Color.borderColor}]}>
|
||
|
<Text
|
||
|
style={[Typography.title3, Typography.semibold]}>
|
||
|
{I18n.t('TRANSACTIONS')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={styles.transactionContainer}>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.numeroQuitance, {
|
||
|
isModify: false,
|
||
|
isAgentGeolocated: true
|
||
|
});
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='pencil'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('SAISIR_QUITANCE')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('DEPOSIT_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.historicScreen, {
|
||
|
isAgentGeolocated: true,
|
||
|
isSuper: false,
|
||
|
isHyper: false
|
||
|
});
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='history'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('HISTORY')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('DEPOSIT_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
|
||
|
</>
|
||
|
:
|
||
|
this.user.category === "hyper" &&
|
||
|
<>
|
||
|
<View
|
||
|
style={[styles.checkDefault, {borderBottomColor: Color.borderColor}]}>
|
||
|
<Text
|
||
|
style={[Typography.title3, Typography.semibold]}>
|
||
|
{I18n.t('TRANSACTIONS')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={styles.transactionContainer}>
|
||
|
|
||
|
<View style={[styles.containerTouch]}>
|
||
|
|
||
|
<TouchableOpacity style={styles.contain}
|
||
|
onPress={() => {
|
||
|
this.props.navigation.push(route.historicScreen, {
|
||
|
isAgentGeolocated: false,
|
||
|
isSuper: false,
|
||
|
isHyper: true
|
||
|
});
|
||
|
}}
|
||
|
activeOpacity={0.9}>
|
||
|
|
||
|
<Icon name='history'
|
||
|
color={Color.primaryColor}
|
||
|
size={30}
|
||
|
style={styles.imageBanner}/>
|
||
|
|
||
|
<View style={[styles.content]}>
|
||
|
|
||
|
<View style={styles.contentTitle}>
|
||
|
<Text
|
||
|
style={[Typography.headline, Typography.semibold]}>
|
||
|
{I18n.t('HISTORY')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
<View style={{flex: 1}}>
|
||
|
<Text
|
||
|
style={[Typography.overline, Color.grayColor], {paddingVertical: 5}}
|
||
|
numberOfLines={5}>
|
||
|
{/*I18n.t('DEPOSIT_DESCRIPTION')*/}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
</TouchableOpacity>
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
|
||
|
</> : null}
|
||
|
</View>
|
||
|
|
||
|
</View>
|
||
|
|
||
|
</ScrollView>
|
||
|
{/* <View style={{flex: 1, paddingHorizontal: 20,}}>
|
||
|
{!this.isHomeRootView && this.renderHistoryTransaction(wallet)}
|
||
|
{this.isHomeRootView && this.renderSuperHyperHistoryTransaction()}
|
||
|
</View>*/}
|
||
|
</View>
|
||
|
</>)
|
||
|
:
|
||
|
(
|
||
|
<View style={{
|
||
|
flex: 1,
|
||
|
width: "100%",
|
||
|
height: "30%",
|
||
|
justifyContent: 'center',
|
||
|
alignItems: 'center'
|
||
|
}}>
|
||
|
<Text style={Typography.body1}>{I18n.t('NO_WALLET_ACTIVED')}</Text>
|
||
|
</View>
|
||
|
)
|
||
|
)
|
||
|
}
|
||
|
|
||
|
renderHistoryTransactionItem = (item, index, wallet) => {
|
||
|
|
||
|
return (
|
||
|
<TouchableOpacity onPress={() => {
|
||
|
this.setState({displayModalHistory: true, historyItemDetail: item})
|
||
|
}} style={[styles.contentService, {borderBottomColor: Color.primaryColor}]}>
|
||
|
{
|
||
|
isIlinkCityWallet(wallet.type) ?
|
||
|
Object.keys(omit(item, ['id', 'id_transaction', 'type', 'frais', 'init_country', 'final_country', 'source', 'emetteur', 'montant_net_final', 'montant_net_init', 'reseau_payeur', 'operation'])).map((element, i) => (
|
||
|
<View style={{alignItems: 'center'}} key={i}>
|
||
|
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{
|
||
|
isEqual(element, 'montant') ?
|
||
|
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet !== undefined ? this.state.wallet.currency_code : ""}`
|
||
|
: isEqual(element, 'destinataire') ?
|
||
|
item[element].length > 13 ? cutString(item[element], 13) : item[element]
|
||
|
: isEqual(element, 'date') ?
|
||
|
cutStringWithoutDot(item[element], 16)
|
||
|
: item[element]
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
)) :
|
||
|
Object.keys(omit(item, ['id', 'id_transaction', 'type', 'frais', 'init_country', 'final_country', 'source', 'emetteur', 'montant_net_final', 'montant_net_init', 'reseau_payeur', 'operation'])).map((element, i) => (
|
||
|
<View style={{alignItems: 'center'}} key={i}>
|
||
|
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{
|
||
|
isEqual(element, 'montant') ?
|
||
|
` ${item[element].length > 8 ? cutString(thousands(item[element], ' '), 6) : thousands(item[element], ' ')} ${this.state.wallet !== undefined ? this.state.wallet.currency_code : ""}`
|
||
|
: isEqual(element, 'destinataire') ?
|
||
|
item[element].length > 13 ? cutString(item[element], 13) : item[element]
|
||
|
: isEqual(element, 'date') ?
|
||
|
cutStringWithoutDot(item[element], 16)
|
||
|
: item[element]
|
||
|
}
|
||
|
</Text>
|
||
|
</View>
|
||
|
))
|
||
|
}
|
||
|
</TouchableOpacity>
|
||
|
);
|
||
|
|
||
|
/* <View
|
||
|
key={item.id}
|
||
|
style={[styles.paymentItem, { borderBottomColor: Color.borderColor }]}>
|
||
|
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
||
|
<View style={styles.iconContent}>
|
||
|
<Icon name='arrow-bottom-right'
|
||
|
color={Color.primaryColor} size={20} />
|
||
|
</View>
|
||
|
<View>
|
||
|
<Text style={Typography.subhead}>{item.description}</Text>
|
||
|
<Text style={[Typography.caption1, Color.grayColor]} style={{ marginTop: 5 }}>
|
||
|
{date}
|
||
|
</Text>
|
||
|
</View>
|
||
|
</View>
|
||
|
</View> */
|
||
|
|
||
|
}
|
||
|
|
||
|
renderHistoryTransactionList = (wallet) => {
|
||
|
const {resultTransaction, errorTransaction} = this.props;
|
||
|
if (errorTransaction !== null) {
|
||
|
if (typeof errorTransaction.data !== 'undefined') {
|
||
|
return (
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
<Text style={Typography.body1}>{errorTransaction.data.error}</Text>
|
||
|
</View>
|
||
|
)
|
||
|
} else {
|
||
|
return (
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
<Text style={Typography.body1}>{errorTransaction}</Text>
|
||
|
</View>
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (resultTransaction !== null) {
|
||
|
if (resultTransaction.response !== null) {
|
||
|
return (
|
||
|
Array.isArray(resultTransaction.response) && (resultTransaction.response.length) > 0 ?
|
||
|
(
|
||
|
<>
|
||
|
<View style={[styles.contentService, {borderBottomColor: Color.primaryColor}]}>
|
||
|
{
|
||
|
transactionHistorySuperOrdreRecetteLabel().map((item, index) => (
|
||
|
<View style={{alignItems: 'center'}} key={index}>
|
||
|
<Icon name={item.icon} size={24} color={Color.primaryColor}/>
|
||
|
<Text style={[Typography.overline, Color.grayColor], {marginTop: 4}}>
|
||
|
{I18n.t(item.label)}
|
||
|
</Text>
|
||
|
</View>
|
||
|
))
|
||
|
}
|
||
|
</View>
|
||
|
{
|
||
|
resultTransaction.response.map((item, index) => (
|
||
|
this.renderHistoryTransactionItem(item, index, wallet)
|
||
|
))
|
||
|
}
|
||
|
</>
|
||
|
) :
|
||
|
(
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'flex-start'}}>
|
||
|
<Text style={Typography.body1}>{I18n.t('NO_WALLET_HISTORY')}</Text>
|
||
|
</View>
|
||
|
)
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
renderHistoryTransaction = (wallet) => {
|
||
|
|
||
|
return (
|
||
|
<>
|
||
|
{
|
||
|
this.props.loadingTransaction && this.state.loadMore ?
|
||
|
(
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
{Platform.OS === 'android'
|
||
|
?
|
||
|
(
|
||
|
<>
|
||
|
<ProgressBarAndroid/>
|
||
|
<Text>{I18n.t('LOADING_DOTS')}</Text>
|
||
|
|
||
|
</>
|
||
|
) :
|
||
|
<>
|
||
|
<ActivityIndicator size="large" color={'#ccc'}/>
|
||
|
<Text>{I18n.t('LOADING_DOTS')}</Text>
|
||
|
</>
|
||
|
}
|
||
|
</View>
|
||
|
) :
|
||
|
<>
|
||
|
<View style={[styles.checkDefault, {borderBottomColor: Color.borderColor}]}>
|
||
|
<Text
|
||
|
style={[Typography.title3, Typography.semibold]}>
|
||
|
{I18n.t('TRANSACTION_HISTORY')}
|
||
|
</Text>
|
||
|
</View>
|
||
|
|
||
|
{this.renderHistoryTransactionList(wallet)}
|
||
|
</>
|
||
|
}
|
||
|
</>
|
||
|
)
|
||
|
}
|
||
|
|
||
|
renderDialogConfirmTransferCommission = () => {
|
||
|
Alert.alert(
|
||
|
I18n.t("CONFIRM"),
|
||
|
I18n.t('CONFIRM_TRANSFER_COMMISSION')
|
||
|
,
|
||
|
[
|
||
|
{
|
||
|
text: I18n.t("NO"), onPress: () => {
|
||
|
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
text: I18n.t("YES"), onPress: () => {
|
||
|
const {result} = this.props;
|
||
|
if (result !== null) {
|
||
|
if (typeof result.response !== 'undefined') {
|
||
|
this.props.transferCommissionAction(result.response.id);
|
||
|
}
|
||
|
}/*
|
||
|
else
|
||
|
this.props.transferCommissionAction(this.state.wallet.id); */
|
||
|
|
||
|
this.setState({
|
||
|
triggerTransferCommission: true
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
],
|
||
|
{cancelable: false}
|
||
|
)
|
||
|
}
|
||
|
|
||
|
renderDialogTransferCommissionResponse = () => {
|
||
|
const {resultTransferCommission, errorTransferCommission} = this.props;
|
||
|
|
||
|
if (errorTransferCommission !== null) {
|
||
|
if (typeof errorTransferCommission.data !== 'undefined') {
|
||
|
Alert.alert(
|
||
|
I18n.t("ERROR_TRANSFER_COMMISSION"),
|
||
|
errorTransferCommission.data.error,
|
||
|
[
|
||
|
{
|
||
|
text: I18n.t("OK"), onPress: () => {
|
||
|
this.props.resetCommissionReducer();
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
{cancelable: false}
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (resultTransferCommission !== null) {
|
||
|
if (resultTransferCommission.response !== null) {
|
||
|
Alert.alert(
|
||
|
I18n.t("SUCCESS_TRANSFER_COMMISSION"),
|
||
|
I18n.t("COMMISSION_TRANSFER_SUCCESS"),
|
||
|
[
|
||
|
{
|
||
|
text: I18n.t("OK"), onPress: () => {
|
||
|
this.props.resetCommissionReducer();
|
||
|
this.refresh();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
],
|
||
|
{cancelable: false}
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
render() {
|
||
|
return (
|
||
|
<>
|
||
|
{this.state.displayModalHistory && this.renderModalHistoryDetail()}
|
||
|
{this.props.result !== null &&
|
||
|
this.state.displaySuperHyperModalHistory &&
|
||
|
this.renderModalSuperHyperHistoryDetail(this.props.result.response)}
|
||
|
|
||
|
<StatusBar
|
||
|
backgroundColor={Color.primaryDarkColor}
|
||
|
barStyle="light-content"
|
||
|
translucent={true}
|
||
|
/>
|
||
|
{
|
||
|
((this.props.loading || this.props.loadingTransferCommission) ?
|
||
|
this.renderLoader() :
|
||
|
(
|
||
|
this.props.result !== null ?
|
||
|
|
||
|
Array.isArray(this.props.result.response) && (this.props.result.response.length) === 0 ?
|
||
|
|
||
|
<View style={{flex: 1, justifyContent: 'center', alignItems: 'center'}}>
|
||
|
<Text style={Typography.body1}>{I18n.t('NO_WALLET_ACTIVED')}</Text>
|
||
|
</View>
|
||
|
:
|
||
|
|
||
|
this.renderDetailWallet(this.props.result.response)
|
||
|
:
|
||
|
null
|
||
|
)
|
||
|
)
|
||
|
|
||
|
}
|
||
|
|
||
|
</>
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
const mapStateToProps = state => ({
|
||
|
loading: state.walletDetailReducer.loading,
|
||
|
result: state.walletDetailReducer.result,
|
||
|
error: state.walletDetailReducer.error,
|
||
|
|
||
|
loadingTransaction: state.walletHistoryReducer.loadingTransaction,
|
||
|
resultTransaction: state.walletHistoryReducer.resultTransaction,
|
||
|
errorTransaction: state.walletHistoryReducer.errorTransaction,
|
||
|
|
||
|
loadingTransferCommission: state.walletTransferCommissionReducer.loadingTransferCommission,
|
||
|
resultTransferCommission: state.walletTransferCommissionReducer.resultTransferCommission,
|
||
|
errorTransferCommission: state.walletTransferCommissionReducer.errorTransferCommission,
|
||
|
|
||
|
loadingHistoryHyperSuper: state.getHyperSuperHistoryReducer.loading,
|
||
|
resultHistoryHyperSuper: state.getHyperSuperHistoryReducer.result,
|
||
|
errorHistoryHyperSuper: state.getHyperSuperHistoryReducer.error,
|
||
|
});
|
||
|
|
||
|
const mapDispatchToProps = dispatch => bindActionCreators({
|
||
|
getWalletDetailActivated,
|
||
|
getWalletTransactionHistory,
|
||
|
transferCommissionAction,
|
||
|
resetWalletListDetailReducer,
|
||
|
resetCommissionReducer,
|
||
|
getWalletTransactionHistoryReset,
|
||
|
depositActionReset,
|
||
|
getHyperSuperTransactionHistoryAction,
|
||
|
getHyperSuperTransactionHistoryReset
|
||
|
}, dispatch);
|
||
|
|
||
|
export default connect(mapStateToProps, mapDispatchToProps)(WalletDetail);
|
||
|
const styles = StyleSheet.create({
|
||
|
container: {
|
||
|
flex: 1,
|
||
|
flexDirection: 'column',
|
||
|
backgroundColor: Color.containerBackgroundColor
|
||
|
},
|
||
|
indicator: {
|
||
|
height: 2
|
||
|
},
|
||
|
tab: {
|
||
|
width: Utils.getWidthDevice() / 2
|
||
|
},
|
||
|
tabbar: {
|
||
|
height: 40
|
||
|
},
|
||
|
imgBanner: {
|
||
|
width: '100%',
|
||
|
height: 250,
|
||
|
position: 'absolute',
|
||
|
},
|
||
|
contentService: {
|
||
|
paddingVertical: 10,
|
||
|
borderBottomWidth: 0.5,
|
||
|
flexDirection: 'row',
|
||
|
flexWrap: 'wrap',
|
||
|
justifyContent: 'space-between',
|
||
|
},
|
||
|
blockView: {
|
||
|
paddingVertical: 10,
|
||
|
borderBottomWidth: 0.5,
|
||
|
},
|
||
|
containField: {
|
||
|
padding: 10,
|
||
|
marginBottom: 20,
|
||
|
borderWidth: 0.5,
|
||
|
shadowOffset: {width: 1.5, height: 1.5},
|
||
|
shadowOpacity: 1.0,
|
||
|
elevation: 5,
|
||
|
flexDirection: "row",
|
||
|
height: 140,
|
||
|
borderRadius: 10
|
||
|
},
|
||
|
paymentItem: {
|
||
|
flexDirection: "row",
|
||
|
alignItems: "center",
|
||
|
justifyContent: "space-between",
|
||
|
borderBottomWidth: 1,
|
||
|
paddingVertical: 5,
|
||
|
width: responsiveWidth(100),
|
||
|
marginBottom: 15
|
||
|
},
|
||
|
iconContent: {
|
||
|
width: 60,
|
||
|
marginRight: 10,
|
||
|
alignItems: "center"
|
||
|
},
|
||
|
contentLeftItem: {
|
||
|
flex: 1,
|
||
|
paddingTop: 40,
|
||
|
paddingLeft: 10,
|
||
|
paddingRight: 10,
|
||
|
alignItems: "center"
|
||
|
},
|
||
|
tagFollow: {width: 150, margin: 10},
|
||
|
profileItem: {
|
||
|
flexDirection: "row",
|
||
|
justifyContent: "space-between",
|
||
|
alignItems: "center",
|
||
|
paddingBottom: 20,
|
||
|
paddingTop: 20
|
||
|
},
|
||
|
checkDefault: {
|
||
|
flexDirection: "row",
|
||
|
justifyContent: "space-between",
|
||
|
alignItems: "center",
|
||
|
borderBottomWidth: 1,
|
||
|
paddingVertical: 10,
|
||
|
marginTop: 5
|
||
|
},
|
||
|
blockView: {
|
||
|
paddingVertical: 10,
|
||
|
borderBottomWidth: 0.5,
|
||
|
},
|
||
|
circlePoint: {
|
||
|
width: 50,
|
||
|
height: 50,
|
||
|
borderRadius: 25,
|
||
|
marginRight: 5,
|
||
|
alignItems: 'center',
|
||
|
justifyContent: 'center',
|
||
|
},
|
||
|
transactionContainer: {
|
||
|
flexDirection: 'row',
|
||
|
paddingTop: 10,
|
||
|
},
|
||
|
containerTouch: {
|
||
|
flex: 1,
|
||
|
flexDirection: 'row',
|
||
|
alignItems: 'center',
|
||
|
shadowColor: Color.borderColor,
|
||
|
borderColor: Color.borderColor,
|
||
|
borderWidth: 0.5,
|
||
|
shadowOffset: {width: 1.5, height: 1.5},
|
||
|
shadowOpacity: 1.0,
|
||
|
elevation: 5,
|
||
|
borderRadius: 10,
|
||
|
backgroundColor: Color.cardBackgroundColor
|
||
|
},
|
||
|
contain: {
|
||
|
flexDirection: 'row',
|
||
|
justifyContent: 'space-between',
|
||
|
},
|
||
|
imageBanner: {
|
||
|
marginTop: 15,
|
||
|
marginLeft: 5,
|
||
|
width: Utils.scaleWithPixel(30),
|
||
|
height: Utils.scaleWithPixel(30)
|
||
|
},
|
||
|
content: {
|
||
|
height: Utils.scaleWithPixel(60),
|
||
|
paddingHorizontal: 10,
|
||
|
justifyContent: 'space-between',
|
||
|
alignItems: 'flex-start',
|
||
|
flex: 1,
|
||
|
},
|
||
|
contentTitle: {
|
||
|
paddingTop: 5,
|
||
|
}
|
||
|
})
|