import React, {Component} from 'react';
import {
View,
TouchableOpacity,
Text,
TextInput,
ScrollView,
SafeAreaView,
RefreshControl,
FlatList,
DeviceEventEmitter,
Alert,
ActivityIndicator,
} from 'react-native';
import {
Drawer,
List,
Picker,
Provider,
SwipeAction,
Tabs,
WhiteSpace,
WingBlank,
} from '@ant-design/react-native';
import DateTimePicker from '@react-native-community/datetimepicker';
import public_css from '../../source/css/public_css';
import {GetDateString} from '../../utils/date';
import {RetrieveData} from '../../data/storage';
import {RequestNetwork} from '../../data/encryption';
import {ToastShow} from '../../components/toast/toast';
import {CleanAll} from '../../components/abnormalMessage/abnormal_message';
import wait_invoice_css from './wait_invoice_css';
let pageNo = 1; //当前第几页
let totalPage = 5; //总的页数
export default class wait_invoice_list extends Component {
constructor(props) {
super(props);
this.props.navigation.dangerouslyGetParent().setOptions({
tabBarVisible: false,
});
this.state = {
isShowSearch: false,
visible1: false,
tab: 0,
clickNum: 0,
beginDateTime: undefined,
endDateTime: undefined,
customerName: '',
customerPhone: '',
invoiceCode: '',
invoiceNumber: '',
beginDate: new Date(),
beginDateText: '开始时间',
endDate: new Date(),
endDateText: '结束时间',
beginDateShow: false,
endDateShow: false,
invoiceCategory: 1,
statusList: [
{
value: 2,
label: '待提交',
},
{
value: 3,
label: '已提交',
},
{
value: 4,
label: '开票成功',
},
{
value: 5,
label: '开票失败',
},
],
customerMobile: '',
belongEntTaxId: '',
entName: '',
createTimeEnd: undefined,
createTimeBegin: undefined,
listData: [],
status: 2,
showFoot: 0, // 控制foot, 0:隐藏footer 1:已加载完成,没有更多数据 2 :显示加载中
isLoading: false,
};
}
render() {
let draw = (
,
nextState: Readonly,
nextContext: any,
): boolean {
if (nextProps.route.params !== undefined) {
if (nextProps.route.params.isShow) {
if (this.state.clickNum === 0) {
this.setState({
isShowSearch: true,
clickNum: this.state.clickNum++,
});
this.drawer.openDrawer();
this.props.navigation.setParams({
isShow: false,
});
}
}
}
return true;
}
//查询菜单开关状态
openStatus = (open) => {
if (open) {
} else {
// this.props.children.setClickNum();
}
};
// 点击开始和结束时间显示时间选择器
isShowDateSelect = (dateStatus) => {
// 开始时间和结束时间选择器显示 1:开始时间 2:结束时间
if (dateStatus === 1) {
this.setState({
beginDateShow: true,
});
} else {
this.setState({
endDateShow: true,
});
}
};
// 获取开始时间
beginDateChange = (event, date) => {
let dateText = GetDateString(date);
this.setState({
beginDate: date,
beginDateShow: false,
beginDateText: dateText,
});
};
//获取结束时间
endDateChange = (event, date) => {
let dateText = GetDateString(date);
this.setState({
endDate: date,
endDateShow: false,
endDateText: dateText,
});
};
// 重置
setEmptyData = () => {
this.drawer.closeDrawer();
this.initData();
};
// 查询
getSearchData = () => {
this.drawer.closeDrawer();
this.setState({
listData: [],
isLoading: false,
showFoot: 0,
});
pageNo = 1;
this.getWaitInvoiceList();
};
//数据初始化
initData = () => {
this.setState({
listData: [],
isLoading: false,
showFoot: 0,
beginDate: new Date(),
beginDateText: '开始时间',
endDate: new Date(),
endDateText: '结束时间',
beginDateShow: false,
endDateShow: false,
customerName: '',
customerPhone: '',
status: 2,
});
pageNo = 1;
this.getWaitInvoiceList();
};
//获取抬头列表数据
getWaitInvoiceList = async () => {
let beginTime = '';
let endTime = '';
if (this.state.beginDateText !== undefined) {
if (this.state.beginDateText !== '开始时间') {
beginTime = this.state.beginDateText + ' 00:00:00';
}
}
if (this.state.endDateText !== undefined) {
if (this.state.endDateText !== '结束时间') {
endTime = this.state.endDateText + ' 23:59:59';
}
}
console.log('岑氏');
console.log(beginTime);
console.log(endTime);
let account = await RetrieveData('account');
let token = await RetrieveData('token');
let company = JSON.parse(await RetrieveData('company'));
if (token && account) {
const url = '/sys/fapiao/todo/findPage';
let res = await RequestNetwork(
url,
token,
{
mobile: account,
reqChannel: 3,
pageNum: pageNo,
pageSize: 10,
createTimeEnd: endTime,
createTimeBegin: beginTime,
customerName: this.state.customerName,
customerMobile: this.state.customerPhone,
belongEntTaxId: company.entTaxId,
status: this.state.status,
},
false,
2,
);
if (res) {
if (res.code === 0) {
if (res.data.pages > 0) {
totalPage = res.data.pages;
this.setList(res.data.records);
} else {
totalPage = res.data.pages;
this.setState({
listData: [],
showFoot: 1,
});
}
} else {
await this.abnormalMessage(res);
}
}
}
};
//设置抬头列表
setList = (data) => {
let listDatas = data.map((_, i) => ({
key: data[i].recordId,
customerName: data[i].customerName,
customerEntTaxId: data[i].customerEntTaxId,
address: data[i].address,
contactPhone: data[i].contactPhone,
bankName: data[i].bankName,
bankAccountNo: data[i].bankAccountNo,
customerEmail: data[i].customerEmail,
customerMobile: data[i].customerMobile,
remark: data[i].remark,
belongEntTaxId: data[i].belongEntTaxId,
entName: data[i].entName,
createTime: data[i].createTime,
totalAmountTaxes: data[i].totalAmountTaxes,
invoiceCategory: data[i].invoiceCategory,
interactType: data[i].interactType,
interactTypeDetail: data[i].interactTypeDetail,
customerType: data[i].customerType,
status: data[i].status,
}));
let list = this.state.listData.concat(listDatas);
this.setState({
listData: list,
showFoot: 0,
});
};
//删除发票抬头信息
deleteData = async (data) => {
let company = JSON.parse(await RetrieveData('company'));
let account = await RetrieveData('account');
let token = await RetrieveData('token');
if (account && token) {
const url = '/sys/fapiao/todo/delete';
let res = await RequestNetwork(
url,
token,
{
mobile: account,
reqChannel: 3,
delList: [
{
recordId: data.item.key,
belongEntTaxId: company.entTaxId,
status: 2,
},
],
},
false,
1,
);
if (res) {
if (res.code === 0) {
ToastShow(1, '删除成功!');
await this.cleanData();
} else {
ToastShow(1, res.msg);
}
}
}
};
// 提交开票
submitInvoice = async (data) => {
let account = await RetrieveData('account');
let token = await RetrieveData('token');
if (token && account) {
const url = '/sys/fapiao/todo/findCmdParam';
let res = await RequestNetwork(
url,
token,
{
recordId: data.item.key,
},
false,
2,
);
if (res) {
if (res.code === 0) {
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.TTLX =
data.item.customerType;
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.SPF_MC =
data.item.customerName;
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.SPF_NSRSBH =
data.item.customerEntTaxId;
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.SPF_DZ =
data.item.address;
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.SPF_DH =
data.item.contactPhone;
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.SPF_KHHMC =
data.item.bankName;
res.data.cmdParamObject.REQUEST_COMMON_FPKJ.SPF_YHZH =
data.item.bankAccountNo;
const url = '/sys/fapiao/todo/commit';
let response = await RequestNetwork(
url,
token,
{
mobile: account,
reqChannel: 3,
interactType: data.item.interactType,
interactTypeDetail: data.item.interactTypeDetail,
cmdParam: res.data.cmdParamObject,
todoRecordId: data.item.key,
},
false,
1,
);
if (response) {
if (response.code === 0) {
DeviceEventEmitter.emit('updateStatistics');
ToastShow(1, '开票成功!');
await this.cleanData();
} else {
ToastShow(1, response.msg);
}
}
} else {
ToastShow(1, res.msg);
}
}
}
};
//加载列表list数据
renderItem = (data) => (