deliverGoodsActions.js 3.83 KB
/**
 * # guideActions.js
 *
 * App user guide
 *
 */
'use strict';

import {Actions} from 'react-native-router-flux';
import DeliverGoodsService from '../../services/DeliverGoodsService';
import {Alert, Linking} from 'react-native';

const {

	LOGOUT,
	DELIVERY_GOODS_REQUEST,
	DELIVERY_GOODS_SUCCESS,
	DELIVERY_GOODS_FAILURE,

	GET_EXPRESS_LIST_REQUEST,
	GET_EXPRESS_LIST_SUCCESS,
	GET_EXPRESS_LIST_FAILURE,

	QUERYBYSUPPLIER_REQUEST,
	QUERYBYSUPPLIER_SUCCESS,
	QUERYBYSUPPLIER_FAILURE,

	SET_EXPRESS_NUM,
	SET_EXPRESS_VALUE,

} = require('../../constants/actionTypes').default;

export function setExpressNum(value) {
	return {
		type: SET_EXPRESS_NUM,
		payload: value,
	};
}

export function setExpressValue(value,initialRes) {
	return {
		type: SET_EXPRESS_VALUE,
		payload: {
			value,
			initialRes,
		},
	};
}


export function deliveryGoodsRequest() {
	return {
		type: DELIVERY_GOODS_REQUEST,
	};
}

export function deliveryGoodsSuccess(json) {
	return {
		type: DELIVERY_GOODS_SUCCESS,
		payload: json,
	};
}

export function deliveryGoodsFailure(error) {
	return {
		type: DELIVERY_GOODS_FAILURE,
		payload: error,
	};
}

export function deliveryGoods() {
	return (dispatch,getState) => {
		let {deliverGoods,home} = getState();
		let deliverData = deliverGoods.deliverData?deliverGoods.deliverData:[];
		let expressValue = deliverGoods.expressValue?deliverGoods.expressValue:null;
		let expressId = expressValue?expressValue.get('id'):0;
		let expressNumber = deliverGoods.expressNum;
		let shopId = home.shopId;
		let deliverDataJson = deliverData?deliverData.toJS():[];
		let expressGoodsMap = {};
		deliverDataJson.map((item0, i) => {
			let id = item0.id;
			let list = item0.value;
			let expressList = [];
			list.map((item1, i) => {
				expressList.push({sku: item1.productSku,num: item1.num,factoryCode: item1.skuFactoryCode});
			})
			expressGoodsMap[id] = expressList;
		})

		dispatch(deliveryGoodsRequest())
		return new DeliverGoodsService().deliveryGoods(expressId,expressNumber,shopId,expressGoodsMap)
			.then((json) => {
				dispatch(deliveryGoodsSuccess(json))
			})
			.catch((error) => {
				dispatch(deliveryGoodsFailure(error))
			});
	};
}


export function getExpressListRequest() {
	return {
		type: GET_EXPRESS_LIST_REQUEST,
	};
}

export function getExpressListSuccess(json) {
	return {
		type: GET_EXPRESS_LIST_SUCCESS,
		payload: json,
	};
}

export function getExpressListFailure(error) {
	return {
		type: GET_EXPRESS_LIST_FAILURE,
		payload: error,
	};
}

export function getExpressList() {
	return (dispatch,getState) => {
		let {home} = getState();

		dispatch(getExpressListRequest())
		return new DeliverGoodsService().getExpressList()
			.then((json) => {
				dispatch(getExpressListSuccess(json))
			})
			.catch((error) => {
				dispatch(getExpressListFailure(error))
			});
	};
}


export function queryBySupplierIdRequest() {
	return {
		type: QUERYBYSUPPLIER_REQUEST,
	};
}

export function queryBySupplierIdSuccess(json) {
	return {
		type: QUERYBYSUPPLIER_SUCCESS,
		payload: json,
	};
}

export function queryBySupplierIdFailure(error) {
	return {
		type: QUERYBYSUPPLIER_FAILURE,
		payload: error,
	};
}

export function queryBySupplierId() {
	return (dispatch,getState) => {
		let {home} = getState();
		let supplierId = 1;

		dispatch(queryBySupplierIdRequest())
		return new DeliverGoodsService().queryBySupplierId(supplierId)
			.then((json) => {
				let res = exposePruductListData(json);
				dispatch(queryBySupplierIdSuccess(res))
			})
			.catch((error) => {
				dispatch(queryBySupplierIdFailure(error))
			});
	};
}
function exposePruductListData(json) {

	let adminName=json?json.adminName:'';
	let address=json?json.address:'';
	let phone=json?json.phone:'';
	let storehouseName=json?json.storehouseName:'';
	let id=json?json.id:'';
	let status=json?json.status:'';

	return {
		adminName,
		address,
		phone,
		storehouseName,
		id,
		status,
	};
}