//
//  OrderDetailModel.swift
//  GeliBusinessPlatform
//
//  Created by 刘俊宏 on 2020/5/12.
//  Copyright © 2020 junye lu. All rights reserved.
//

import Foundation
import ObjectMapper
//订单详情
class OrderDetailModel: Mappable {
    var code:Int?
    var message : String?
    var data : OrderDetailDataModel?

    required init?( map: Map) {

    }
    func mapping(map: Map) {
        code <- map["code"]
        message <- map["message"]
        data <- map["data"]
    }
}
class OrderDetailDataModel: Mappable {
    var order_res : OrderDetailResModel?  //订单信息
    var order_goods : Array<OrderDetailGoodsModel>?  //订单商品
    var receiving :OrderDetailReceivingModel?  //收货信息
    var dbt_info : OrderDetailDbtInfoDataModel?  //分销信息

    required init?( map: Map) {
        
    }
    func mapping(map: Map) {
        order_res <- map["order_res"]
        order_goods <- map["order_goods"]
        receiving <- map["receiving"]
        dbt_info <- map["dbt_info"]
     }
    
}
class OrderDetailDbtInfoDataModel: Mappable {
    var dbt_target : Int?   //分销对象 1供应商 2分销商 3分销员
    var target_id : Int?   //分销对象id
    var target_name :String?   //分销对象名称
    var dbt_type : Int?   //分销分账方式 1人工结算 2自动结算
    var commission_time : String?   //佣金结算时间
    var sum_commission_val : String?   //总佣金
    var commission_type : String?      //佣金方式

    required init?( map: Map) {
        
    }
    func mapping(map: Map) {
        dbt_target <- map["dbt_target"]
        target_id <- map["target_id"]
        target_name <- map["target_name"]
        dbt_type <- map["dbt_type"]
        commission_time <- map["commission_time"]
        sum_commission_val <- map["sum_commission_val"]
        commission_type <- map["commission_type"]
     }
    
}
class OrderDetailResModel: Mappable {
    var order_id:Int?
    var order_sn : String?
    var add_time : Double? //下单时间
    var user_id : Int? //用户Id,为0则无用户
    var cus_id : Int?//客户id,为0则无客户
    var goods_amount : String?
    var order_amount : String?
    var discount_amount : String?
    var logistics_price : String? //物流费用
    var other_price : String?//其他费用
    var sum_amount : String?  //订单合计价格
    var from : Int?
    var lc_id : Int?
    var lwb_no : String?//运单号
    var pay_type : Int?
    var pay_status : Int?
    var apply_cancel:Int?
    var postscript : String? //买家留言
    var order_postscript : String? //订单备注
    var address : String?
    var lc_name : String?
    var user_name : String?   //用户名
    var cus_name : String? //客户名
    var from_cn : String?     //订单来源中文
    var pay_type_cn : String?     //支付方式中文
    var pay_status_cn : String?  //支付状态中文
    var order_type : Int?//订单类型 1普通2期货3团购4预售
    var commission_time_type:Int?//佣金退款类型
    var order_status : Int?//订单状态
    var order_status_d : Int?//订单详细状态
    var shipping_type : Int?//配送方式:1派送,2自提
    var shipping_status : Int?//商品配送情况;0未发货,1已发货,2已收货,4退货
    var goods_before_pay:Int?
    var sale_res : OrderDetailSaleResModel?//订单预售详情(不是预售订单为空数组,无key=>value)
    var invoice_img : String? //发票图片
    var invoice_link : String? //发票链接
    var sum_commission_val : String? //总佣金
    var dbt_target : Int? //分销对象:1供应商 2分销商 3分销员
    var target_name : String? //分销商名称
    var order_associated_code : String?//关联凭证
    
    required init?( map: Map) {

    }
    func mapping(map: Map) {
        order_associated_code <- map["order_associated_code"]
        sum_commission_val <- map["sum_commission_val"]
        dbt_target <- map["dbt_target"]
        target_name <- map["target_name"]
        order_id <- map["order_id"]
        order_sn <- map["order_sn"]
        goods_before_pay <- map["goods_before_pay"]
        add_time <- map["add_time"]
        apply_cancel <- map["apply_cancel"]
        user_id <- map["user_id"]
        cus_id <- map["cus_id"]
        add_time <- map["add_time"]
        goods_amount <- map["goods_amount"]
        order_amount <- map["order_amount"]
        discount_amount <- map["discount_amount"]
        sum_amount <- map["sum_amount"]
        from <- map["from"]
        lc_id <- map["lc_id"]
        lwb_no <- map["lwb_no"]
        pay_type <- map["pay_type"]
        pay_status <- map["pay_status"]
        postscript <- map["postscript"]
        order_postscript <- map["order_postscript"]
        address <- map["address"]
        lc_name <- map["lc_name"]
        user_name <- map["user_name"]
        cus_name <- map["cus_name"]
        from_cn <- map["from_cn"]
        pay_type_cn <- map["pay_type_cn"]
        pay_status_cn <- map["pay_status_cn"]
        order_type <- map["order_type"]
        commission_time_type <- map["commission_time_type"]
        order_status <- map["order_status"]
        order_status_d <- map["order_status_d"]
        logistics_price <- map["logistics_price"]
        other_price <- map["other_price"]
        shipping_type <- map["shipping_type"]
        sale_res <- map["sale_res"]
        shipping_status <- map["shipping_status"]
        invoice_img <- map["invoice_img"]
        invoice_link <- map["invoice_link"]
    }
}
func orderStatusStrByInt(statusNumber:Int,status_d:Int,isBfPay:Int,LmIdx:Int) -> String? {
    var str = "订单完成"
    switch statusNumber {
    case 0:
        str = "待接单"
         break
    //待付款
    case 1:
        str = "待付款"
        break
    case 6:
        str = "待发货"
//        if LmIdx == 1 {
//            if isBfPay == 1 {
//                str = "待付款"
//            }
//        }
        break
    case 7:
        str = "待收货"
//        if LmIdx == 1 {
//            if isBfPay == 1 {
//                str = "待付款"
//            }
//        }
        break
    //订单完成
    case 5:
        str = "交易完成"
        break
    //订单关闭
    case 2:
        str = "交易关闭"
        
        break
    //已取消
    case 9:
        switch status_d {
        case 91:str = "退款中"
            break
        case 92:str = "退货退款中"
            break
        default:str = "退货中"
            break
        }
        break
    case 10:
        str = "已收货"
//        if LmIdx == 1 {
//            if isBfPay == 1 {
//                str = "待付款"
//            }
//        }
        break
    case 11:
        switch status_d {
        case 111,112,113:str = "退款审核"
            break
        case 114,115:str = "退货审核"
            break
        default:str = "退款退货审核"
            break
        }
        break
    default:
        break
        
    }
    return str
}
class OrderDetailSaleResModel: Mappable {
    var id:Int?
    var order_id : Int?
    var need_check : Int?
    var dj_time_start : Double?  //定金开始支付时间
    var dj_time_end : Double?  //定金截止支付时间
    var dj_pay_time : Double?
    var wk_time_start : Double?
    var wk_time_end : Double?  //尾款开始支付时间
    var wk_pay_time : Double?  //尾款截止支付时间
    var set_time : Int?
    var dj_amount : String? //定金金额
    var dj_pay_type : Int?
    var dj_pay_status : Int?  //定金支付状态:0未付款; 1已付款 2退款
    var wk_amount : String?   //尾款金额
    var wk_pay_type : Int?
    var wk_pay_status : Int? //尾款支付状态:0未付款; 1已付款 2退款
    
    var dj_pay_status_cn : String?    //定金支付状态(中文)
    var wk_pay_status_cn : String?   //尾款支付状态(中文)
    var dj_pay_type_cn : String?   //定金支付方式(中文)
    var wk_pay_type_cn : String?   //尾款支付方式(中文)


    required init?( map: Map) {
        
    }
    func mapping(map: Map) {
        id <- map["id"]
        order_id <- map["order_id"]
        need_check <- map["need_check"]
        dj_time_start <- map["dj_time_start"]
        dj_time_end <- map["dj_time_end"]
        dj_pay_time <- map["dj_pay_time"]
        wk_time_start <- map["wk_time_start"]
        wk_time_end <- map["wk_time_end"]
        wk_pay_time <- map["wk_pay_time"]
        set_time <- map["set_time"]
        dj_amount <- map["dj_amount"]
        dj_pay_type <- map["dj_pay_type"]
        dj_pay_status <- map["dj_pay_status"]
        wk_amount <- map["wk_amount"]
        wk_pay_type <- map["wk_pay_type"]
        wk_pay_status <- map["wk_pay_status"]
        dj_pay_status_cn <- map["dj_pay_status_cn"]
        wk_pay_status_cn <- map["wk_pay_status_cn"]
        
        dj_pay_type_cn <- map["dj_pay_type_cn"]
        wk_pay_type_cn <- map["wk_pay_type_cn"]
     }
    
}
class OrderDetailGoodsSourceModel: Mappable {
    var ven_id:Int?//供应商的ven_id
    var batch_id : Int?//产品批次号
    var add_time : String? //入库时间
    var production_data : String?    //生产日期
    var valid_date : String?  //有效日期
    
    var report_id:Int?//检测报告id
    var ven_name : String?  //供应商名称
    var report_picture : Array<String>?//检测报告
    var product_origin : String?   //产品产地
   

    required init?( map: Map) {
        
    }
    func mapping(map: Map) {
        ven_id <- map["ven_id"]
        batch_id <- map["batch_id"]
        add_time <- map["add_time"]
        production_data <- map["production_data"]
        valid_date <- map["valid_date"]
        report_id <- map["report_id"]
        ven_name <- map["ven_name"]
        report_picture <- map["report_picture"]
        product_origin <- map["product_origin"]
        
     }
    
}

class OrderDetailGoodsModel: Mappable {
    var og_id:Int?  //订单商品号
    var goods_id : Int? //商品id
    var goods_name : String? //商品名
    var goods_attr : String?  //商品规格
    var goods_unit : String? //商品单位
    var goods_price : String?  //商品单价
    var cart_number : Int? //商品数量
    var goods_subtotal : String?  //商品小计
    var goods_thumb : String? //商品缩略图
    var warehouse_inventory : Int?   //商品库存
    var is_edit : Int? = 0   //订单商品是否有修改,1是0非--前端自主添加的字段
    var commission_val:String? //这个商品的总佣金
    var remark:String?//商品备注
    var goods_source:OrderDetailGoodsSourceModel?//溯源信息
    required init?( map: Map) {

    }
    func mapping(map: Map) {
        commission_val <- map["commission_val"]
        goods_source <- map["goods_source"]
        og_id <- map["og_id"]
        goods_id <- map["goods_id"]
        goods_name <- map["goods_name"]
        goods_attr <- map["goods_attr"]
        goods_unit <- map["goods_unit"]
        goods_price <- map["goods_price"]
        cart_number <- map["cart_number"]
        goods_subtotal <- map["goods_subtotal"]
        goods_thumb <- map["goods_thumb"]
        warehouse_inventory <- map["warehouse_inventory"]
        is_edit <- map["is_edit"]
        remark <- map["remark"]

    }
}
class OrderDetailReceivingModel: Mappable {
    var country:Int?
    var consignee : String? //收货人
    var address : String?
    var city : String?
    var address_id : Int?
    var mobile : String? //联系方式
    var is_send_default : Int?
    var is_default : Int?
    var zipcode : String?
    var province : String?
    var user_id : Int?
    var street : String?
    var district : String?
    var tel : String?
    var addr_str : String? //地址

    required init?( map: Map) {

    }
    func mapping(map: Map) {
        country <- map["country"]
        consignee <- map["consignee"]
        address <- map["address"]
        city <- map["city"]
        address_id <- map["address_id"]
        mobile <- map["mobile"]
        is_send_default <- map["is_send_default"]
        is_default <- map["is_default"]
        zipcode <- map["zipcode"]
        province <- map["province"]
        user_id <- map["user_id"]
        street <- map["street"]
        district <- map["district"]
        tel <- map["tel"]
        addr_str <- map["addr_str"]
    }
}
//分销订单退款特殊处理
class fullCommissionInquiryModel: Mappable {
    var code:Int?
    var message : String?
    var data : fullCommissionDataModel?

    required init?( map: Map) {

    }
    func mapping(map: Map) {
        code <- map["code"]
        message <- map["message"]
        data <- map["data"]
    }
}
class fullCommissionDataModel: Mappable {
    var sufficient_code:Int?

    required init?( map: Map) {

    }
    func mapping(map: Map) {
        sufficient_code <- map["sufficient_code"]
    }
}