import fetch from 'isomorphic-fetch'
import {saveCommonInfo} from './common'
import barcodeActionType from '../actiontype/barcodeCommon'
import replenishAction from './replenish'
let domain = ENV.domain;

//test 输入条形码获取商品信息

const getBarCodeProductInfo = (data)=>{
      let {barcode='',commonInfo={}}=data;
      let {taskInfo={},storeInfo={}}=commonInfo;
      let storeId=storeInfo.id || 0;
      let currentTaskType = taskInfo.currentTaskType || '';
      let area = taskInfo.area || ''
      let taskId = taskInfo.taskId || 0
      let url=`${domain}flat/barcode/${storeId}/${taskId}/${area}/${currentTaskType}/${barcode}`
      return (dispatch)=>{
            fetch(url,{
                // credentials : 'include',
                method : 'GET',
                mode : 'cors'
            }).then((response)=>response.json())
            .then((json)=>{
                if(json.meta.success&&json.data){
                    dispatch(replenishAction.emptyErrorInfo()); //补货清空错误数据
                    let info = Object.assign({},{taskList:json.data});
                    dispatch(saveCommonInfo(info))
                    dispatch(saveProductInfo(json.data))
                }else{
                    dispatch(saveProductInfo({}));
                    switch (taskInfo.currentTaskType){
                        case 3 :
                            //回收任务
                            break;
                        case 'ADDR' :
                            //补货任务
                            let errorType = json.data && json.data.errorType ? json.data.errorType : "";
                            let errorMessage = json.meta.message;
                            switch (errorType){
                                case "NT":
                                    errorMessage = "不在本次补货范围内";
                                    break;
                                case "NA" :
                                    errorMessage = "不在本区补货范围";
                                    break;
                                case "NS":
                                    errorMessage = "需要补完上一次的商品";
                                    break;
                                case "TW":
                                    errorMessage = "拿错货品";
                                    break;
                            }
                            let errorInfo = {
                                errorType : errorType,
                                errorMessage : errorMessage
                            };
                            dispatch(replenishAction.wrongQrcode(errorInfo));
                            break;
                    }
                }
            })

      }
}


const saveProductInfo = (data)=>{
      return{
          type : barcodeActionType.GETPRODUCTINFO,
          data
      }
}


export {getBarCodeProductInfo,saveProductInfo}