Commit b0c4f993 by Giang Tran

update exchange rate

parent 89a27f91
import React from 'react'; import React from 'react';
import {FlatList, StyleSheet, Text, TouchableOpacity, View, ScrollView} from 'react-native'; import {
FlatList,
StyleSheet,
Text,
TouchableOpacity,
View,
ScrollView,
} from 'react-native';
import HeaderBack from '../../../components/Header/HeaderBack'; import HeaderBack from '../../../components/Header/HeaderBack';
import {getFontXD, HEIGHTXD, toPriceVnd, WIDTHXD} from '../../../Config/Functions'; import {
getFontXD,
HEIGHTXD,
toPriceVnd,
WIDTHXD,
} from '../../../Config/Functions';
import R from '../../../assets/R'; import R from '../../../assets/R';
import I18n from '../../../helper/i18/i18n'; import I18n from '../../../helper/i18/i18n';
import TextMoney from '../../../components/Input/InputMoney'; import TextMoney from '../../../components/Input/InputMoney';
...@@ -11,23 +23,27 @@ import ItemEscrowCalculator from './ItemEscrowCalculator'; ...@@ -11,23 +23,27 @@ import ItemEscrowCalculator from './ItemEscrowCalculator';
const EscrowCalculatorView = (props) => { const EscrowCalculatorView = (props) => {
return ( return (
<View style={{flex: 1, flexDirection: 'column', backgroundColor: 'white'}}> <View style={{flex: 1, flexDirection: 'column', backgroundColor: 'white'}}>
<HeaderBack title={'EscrowCalculator'} isWhite={true}/> <HeaderBack title={'EscrowCalculator'} isWhite={true} />
<ScrollView style={{paddingVertical:HEIGHTXD(60)}}> <ScrollView style={{paddingVertical: HEIGHTXD(60)}}>
<View > <View>
<FlatList <FlatList
keyExtractor={(item) => item.id} keyExtractor={(item) => item.id}
data={props.listInput} data={props.listInput}
renderItem={({item, index}) => <ItemEscrowCalculator item={item} renderItem={({item, index}) => (
<ItemEscrowCalculator
item={item}
dataProduct={props.dataProduct} dataProduct={props.dataProduct}
setProduct={(product) => { setProduct={(product) => {
item.product = product item.product = product;
props.setItemInput(item, index) props.setItemInput(item, index);
}} }}
setLotNumber={(lotNumber) => { setLotNumber={(lotNumber) => {
item.lotNumber = lotNumber.split('.').join('') item.lotNumber = lotNumber.split('.').join('');
item.firstEscrow = parseFloat(item.lotNumber)*12312 item.firstEscrow = parseFloat(item.lotNumber) * 12312;
props.setItemInput(item, index) props.setItemInput(item, index);
}}/>} }}
/>
)}
/> />
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}> <View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<TouchableOpacity <TouchableOpacity
...@@ -35,13 +51,13 @@ const EscrowCalculatorView = (props) => { ...@@ -35,13 +51,13 @@ const EscrowCalculatorView = (props) => {
props.onAdd(); props.onAdd();
}} }}
style={styles.containerBtn}> style={styles.containerBtn}>
<Icon name={'plus'} size={27} color={R.colors.white}/> <Icon name={'plus'} size={27} color={R.colors.white} />
</TouchableOpacity> </TouchableOpacity>
</View> </View>
<View style={{paddingHorizontal: WIDTHXD(60)}}> <View style={{paddingHorizontal: WIDTHXD(60)}}>
<TextMoney <TextMoney
onChangeText={(val) => { onChangeText={(val) => {
props.setFirstEscrow(val.split('.').join('')) props.setFirstEscrow(val.split('.').join(''));
}} }}
title={I18n.t('FirstEscrow')} title={I18n.t('FirstEscrow')}
value={props.firstEscrow} value={props.firstEscrow}
...@@ -57,26 +73,36 @@ const EscrowCalculatorView = (props) => { ...@@ -57,26 +73,36 @@ const EscrowCalculatorView = (props) => {
titleStyle={{marginTop: HEIGHTXD(20), fontSize: getFontXD(39)}} titleStyle={{marginTop: HEIGHTXD(20), fontSize: getFontXD(39)}}
inputStyle={{backgroundColor: R.colors.gray7}} inputStyle={{backgroundColor: R.colors.gray7}}
/> />
<Text style={styles.textMessage}>Bn có th giao dch các hp đồng k trên vi mc ký qu <Text style={styles.textMessage}>
kh dung hin ti</Text> Bn có th giao dch các hp đồng k trên vi mc ký qu kh dung
hin ti
</Text>
</View> </View>
<View style={{ <View
style={{
width: '100%', width: '100%',
flexDirection: 'row', flexDirection: 'row',
justifyContent: 'center', justifyContent: 'center',
alignItems: 'center', alignItems: 'center',
marginTop: HEIGHTXD(80), marginTop: HEIGHTXD(80),
marginBottom: HEIGHTXD(150) marginBottom: HEIGHTXD(150),
}}> }}>
<TouchableOpacity onPress={() => { <TouchableOpacity
onPress={() => {
props.onDelete(); props.onDelete();
}} style={[styles.btn, {backgroundColor: R.colors.red2, marginRight: WIDTHXD(72)}]}> }}
style={[
styles.btn,
{backgroundColor: R.colors.red2, marginRight: WIDTHXD(72)},
]}>
<Text style={styles.txtButton}>{I18n.t('Delete')}</Text> <Text style={styles.txtButton}>{I18n.t('Delete')}</Text>
</TouchableOpacity> </TouchableOpacity>
<TouchableOpacity onPress={() => { <TouchableOpacity
onPress={() => {
props.onCalculator(); props.onCalculator();
}} style={styles.btn}> }}
style={styles.btn}>
<Text style={styles.txtButton}>{I18n.t('Calculator')}</Text> <Text style={styles.txtButton}>{I18n.t('Calculator')}</Text>
</TouchableOpacity> </TouchableOpacity>
</View> </View>
...@@ -84,7 +110,6 @@ const EscrowCalculatorView = (props) => { ...@@ -84,7 +110,6 @@ const EscrowCalculatorView = (props) => {
</ScrollView> </ScrollView>
</View> </View>
); );
}; };
export default EscrowCalculatorView; export default EscrowCalculatorView;
const styles = StyleSheet.create({ const styles = StyleSheet.create({
......
...@@ -2,7 +2,12 @@ import React from 'react'; ...@@ -2,7 +2,12 @@ import React from 'react';
import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'; import {StyleSheet, Text, TouchableOpacity, View} from 'react-native';
import I18n from '../../../helper/i18/i18n'; import I18n from '../../../helper/i18/i18n';
import PickerItem from '../../../components/Picker/PickerItem'; import PickerItem from '../../../components/Picker/PickerItem';
import {getFontXD, HEIGHTXD, toPriceVnd, WIDTHXD} from '../../../Config/Functions'; import {
getFontXD,
HEIGHTXD,
toPriceVnd,
WIDTHXD,
} from '../../../Config/Functions';
import R from '../../../assets/R'; import R from '../../../assets/R';
import TextMoney from '../../../components/Input/InputMoney'; import TextMoney from '../../../components/Input/InputMoney';
import Icon from 'react-native-vector-icons/Entypo'; import Icon from 'react-native-vector-icons/Entypo';
...@@ -10,10 +15,7 @@ import Icon from 'react-native-vector-icons/Entypo'; ...@@ -10,10 +15,7 @@ import Icon from 'react-native-vector-icons/Entypo';
const ItemEscrowCalculator = (props) => { const ItemEscrowCalculator = (props) => {
return ( return (
<View style={styles.viewInput}> <View style={styles.viewInput}>
<Text <Text style={styles.textTitle}>{I18n.t('Product')}</Text>
style={styles.textTitle}>
{I18n.t('Product')}
</Text>
<PickerItem <PickerItem
data={props.dataProduct} data={props.dataProduct}
onValueChange={(value, item) => { onValueChange={(value, item) => {
...@@ -32,8 +34,7 @@ const ItemEscrowCalculator = (props) => { ...@@ -32,8 +34,7 @@ const ItemEscrowCalculator = (props) => {
titleStyle={{marginTop: HEIGHTXD(20), fontSize: getFontXD(39)}} titleStyle={{marginTop: HEIGHTXD(20), fontSize: getFontXD(39)}}
/> />
<TextMoney <TextMoney
onChangeText={(val) => { onChangeText={(val) => {}}
}}
title={I18n.t('FirstEscrow')} title={I18n.t('FirstEscrow')}
value={props.item.firstEscrow} value={props.item.firstEscrow}
titleStyle={{ontSize: getFontXD(39)}} titleStyle={{ontSize: getFontXD(39)}}
...@@ -56,5 +57,5 @@ const styles = StyleSheet.create({ ...@@ -56,5 +57,5 @@ const styles = StyleSheet.create({
fontSize: getFontXD(39), fontSize: getFontXD(39),
color: R.colors.color777, color: R.colors.color777,
}, },
}) });
export default ItemEscrowCalculator; export default ItemEscrowCalculator;
...@@ -13,62 +13,111 @@ import PickerItem from '../../components/Picker/PickerItem'; ...@@ -13,62 +13,111 @@ import PickerItem from '../../components/Picker/PickerItem';
import I18n from '../../helper/i18/i18n'; import I18n from '../../helper/i18/i18n';
import AppText from '../../components/AppText'; import AppText from '../../components/AppText';
import TextField from '../../components/Input/TextField'; import TextField from '../../components/Input/TextField';
import {getFontXD, HEIGHTXD, WIDTHXD} from '../../Config/Functions'; import {getFontXD, HEIGHTXD, toPriceVnd, WIDTHXD} from '../../Config/Functions';
import R from '../../assets/R'; import R from '../../assets/R';
import {showAlert, TYPE} from '../../components/DropdownAlert'; import {showAlert, TYPE} from '../../components/DropdownAlert';
import {getTransactionListByCategory} from '../../apis/Functions/Transaction'; import {getTransactionListByCategory} from '../../apis/Functions/Transaction';
const dataType = [
const DATA = [
{
id: 1,
name: 'Đậu tương',
value: 0.36744,
},
{
id: 2,
name: 'Khô đậu tương',
value: 1.1023,
},
{
id: 3,
name: 'Dầu đậu tương',
value: 22.0462,
},
{
id: 4,
name: 'Ngô',
value: 0.39368,
},
{
id: 5,
name: 'Lúa mỳ',
value: 0.36744,
},
{
id: 6,
name: 'Cà phê arabica',
value: 22.0462,
},
{ {
value: '0', id: 7,
name: 'KG', name: 'Cà phê Robusta',
value: 1,
},
{
id: 8,
name: 'Ca cao',
value: 1,
},
{
id: 9,
name: 'Bông',
value: 22.0462,
},
{
id: 10,
name: 'Đường',
value: 22.0462,
}, },
{ {
value: '1', id: 11,
name: 'Pound', name: 'Cao su',
value: 9.4,
}, },
]; ];
const ExchangeRate = (props) => { const ExchangeRate = (props) => {
const [dataProduct, setDataProduct] = useState([]);
const [product, setProduct] = useState(); const [product, setProduct] = useState();
const [priceExchange, setPriceExchange] = useState();
const [usdTan, setUsdTan] = useState();
useEffect(() => { useEffect(() => {
getProductData(); caculator();
}, []); }, [product, priceExchange]);
const getProductData = async () => { const caculator = () => {
const res = await getTransactionListByCategory({ if (product && priceExchange) {
keyword: '', const total = priceExchange * product.value;
platform: Platform.OS, setUsdTan(total + '');
page_size: 1000, } else if (!priceExchange) setUsdTan('');
page_index: 1,
type: 'PRICE_TABLE',
category_id: -1,
});
if (res.status == 200 && res.data.code == 200) {
setDataProduct(res.data.data);
} else {
showAlert(TYPE.ERROR, I18n.t('Notification', I18n.t('Can_not_get_data')));
}
}; };
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<HeaderBack title={'ConvertUnit'} /> <HeaderBack title={'ExchangeRate'} />
<View style={{flex: 1, paddingTop: 10, paddingHorizontal: 10}}> <View style={{flex: 1, paddingTop: 10, paddingHorizontal: 10}}>
<AppText style={styles.txtTitle} i18nKey={'Product'} /> <AppText style={styles.txtTitle} i18nKey={'Product'} />
<PickerItem <PickerItem
width={width - 20} width={width - 20}
data={dataProduct} data={DATA}
onValueChange={(value, items) => { onValueChange={(value, items) => {
setProduct(items); setProduct(items);
}} }}
/> />
<TextField title={I18n.t('UnitsQuotedFloor')} /> <TextField
<TextField title={I18n.t('ConversionPrice')} /> value={'US cent/ giạ'}
<TextField title={I18n.t('ConvertUSD')} /> editable={true}
title={I18n.t('UnitsQuotedFloor')}
/>
<TextField
onChangeText={(val) => setPriceExchange(val)}
title={I18n.t('ConversionPrice')}
/>
<TextField
value={usdTan}
editable={true}
title={I18n.t('ConvertUSD')}
/>
<View style={styles.footer}> <View style={styles.footer}>
<TouchableOpacity style={styles.btnContainer}> <TouchableOpacity style={styles.btnContainer}>
<AppText style={styles.txtBtn} i18nKey={'Delete'} /> <AppText style={styles.txtBtn} i18nKey={'Delete'} />
......
...@@ -144,12 +144,12 @@ const menus = [ ...@@ -144,12 +144,12 @@ const menus = [
icon: R.images.toolProfitLoss, icon: R.images.toolProfitLoss,
screen: CACULATEDPROFITLOSS, screen: CACULATEDPROFITLOSS,
}, },
{ // {
id: '93', // id: '93',
title: 'CaculatedStopLoss', // title: 'CaculatedStopLoss',
icon: R.images.toolStopLoss, // icon: R.images.toolStopLoss,
screen: CACULATEDSTOPLOSS, // screen: CACULATEDSTOPLOSS,
}, // },
{ {
id: '94', id: '94',
title: 'ConvertUnit', title: 'ConvertUnit',
......
...@@ -19,12 +19,13 @@ const TextField = (props) => { ...@@ -19,12 +19,13 @@ const TextField = (props) => {
<TextInput <TextInput
maxLength={maxLength ? maxLength : 256} maxLength={maxLength ? maxLength : 256}
placeholderTextColor={R.colors.placeHolder} placeholderTextColor={R.colors.placeHolder}
editable={editable != null ? editable : true} editable={editable != null ? false : true}
autoCapitalize="none" autoCapitalize="none"
value={value} value={value}
keyboardType={isNumber ? 'number-pad' : 'default'} keyboardType={isNumber ? 'number-pad' : 'default'}
onChangeText={(val) => onChangeText(val)} onChangeText={(val) => onChangeText(val)}
style={{ style={[
{
height: HEIGHTXD(109), height: HEIGHTXD(109),
color: 'black', color: 'black',
borderRadius: 7, borderRadius: 7,
...@@ -33,7 +34,7 @@ const TextField = (props) => { ...@@ -33,7 +34,7 @@ const TextField = (props) => {
fontSize: getFontXD(42), fontSize: getFontXD(42),
paddingVertical: 5, paddingVertical: 5,
paddingHorizontal: 10, paddingHorizontal: 10,
backgroundColor: 'white',
shadowColor: '#AFA9A9', shadowColor: '#AFA9A9',
shadowOffset: { shadowOffset: {
width: 0, width: 0,
...@@ -42,7 +43,9 @@ const TextField = (props) => { ...@@ -42,7 +43,9 @@ const TextField = (props) => {
shadowOpacity: 0.25, shadowOpacity: 0.25,
shadowRadius: 1.84, shadowRadius: 1.84,
elevation: 1, elevation: 1,
}} },
editable ? {backgroundColor: '#DBDBDB'} : {backgroundColor: 'white'},
]}
/> />
</View> </View>
); );
......
...@@ -137,9 +137,17 @@ export default class PickerItem extends Component { ...@@ -137,9 +137,17 @@ export default class PickerItem extends Component {
{defaultValue || this.state.value} {defaultValue || this.state.value}
</Text> </Text>
{iconDropdown || isTriangle ? ( {iconDropdown || isTriangle ? (
<Icon name={'up'} size={iconSize ? iconSize : 20} color={iconColor ? iconColor : R.colors.borderGray}/> <Icon
name={'up'}
size={iconSize ? iconSize : 20}
color={iconColor ? iconColor : R.colors.borderGray}
/>
) : ( ) : (
<Icon name={'down'} size={iconSize ? iconSize : 20} color={iconColor ? iconColor : R.colors.borderGray}/> <Icon
name={'down'}
size={iconSize ? iconSize : 20}
color={iconColor ? iconColor : R.colors.borderGray}
/>
)} )}
</TouchableOpacity> </TouchableOpacity>
<ModalDropdown <ModalDropdown
...@@ -196,7 +204,7 @@ export default class PickerItem extends Component { ...@@ -196,7 +204,7 @@ export default class PickerItem extends Component {
return []; return [];
} }
let key = `spr_${rowID}`; let key = `spr_${rowID}`;
return <View style={styles.dropdown_separator} key={key}/>; return <View style={styles.dropdown_separator} key={key} />;
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment